Commit 2ac7706e authored by Miyoung Shin's avatar Miyoung Shin Committed by Commit Bot

Convert VendorTagOps to new Mojo types

This CL converts VendorTagOps{Ptr, Request} in media to the new
Mojo type, and uses pending_remote<VendorTagOps> in
camera_common.mojom.

Bug: 955171
Change-Id: Iba025ca880018490b35dde697e2a3acd86e12efb
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1862919Reviewed-by: default avatarSam McNally <sammc@chromium.org>
Reviewed-by: default avatarKen Rockot <rockot@google.com>
Reviewed-by: default avatarGuido Urdaneta <guidou@chromium.org>
Commit-Queue: Miyoung Shin <myid.shin@igalia.com>
Cr-Commit-Position: refs/heads/master@{#707637}
parent cc66e0aa
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
#include "media/capture/video/chromeos/mock_video_capture_client.h" #include "media/capture/video/chromeos/mock_video_capture_client.h"
#include "media/capture/video/chromeos/video_capture_device_factory_chromeos.h" #include "media/capture/video/chromeos/video_capture_device_factory_chromeos.h"
#include "media/capture/video/mock_gpu_memory_buffer_manager.h" #include "media/capture/video/mock_gpu_memory_buffer_manager.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "testing/gmock/include/gmock/gmock.h" #include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h" #include "testing/gtest/include/gtest/gtest.h"
...@@ -155,9 +156,9 @@ class CameraDeviceDelegateTest : public ::testing::Test { ...@@ -155,9 +156,9 @@ class CameraDeviceDelegateTest : public ::testing::Test {
} }
void GetFakeVendorTagOps( void GetFakeVendorTagOps(
cros::mojom::VendorTagOpsRequest& vendor_tag_ops_request, mojo::PendingReceiver<cros::mojom::VendorTagOps> vendor_tag_ops_receiver,
cros::mojom::CameraModule::GetVendorTagOpsCallback& cb) { cros::mojom::CameraModule::GetVendorTagOpsCallback& cb) {
mock_vendor_tag_ops_.Bind(std::move(vendor_tag_ops_request)); mock_vendor_tag_ops_.Bind(std::move(vendor_tag_ops_receiver));
} }
void GetFakeCameraInfo(uint32_t camera_id, void GetFakeCameraInfo(uint32_t camera_id,
......
...@@ -425,7 +425,7 @@ void CameraHalDelegate::OnGotNumberOfCamerasOnIpcThread(int32_t num_cameras) { ...@@ -425,7 +425,7 @@ void CameraHalDelegate::OnGotNumberOfCamerasOnIpcThread(int32_t num_cameras) {
base::BindOnce(&CameraHalDelegate::OnSetCallbacksOnIpcThread, this)); base::BindOnce(&CameraHalDelegate::OnSetCallbacksOnIpcThread, this));
camera_module_->GetVendorTagOps( camera_module_->GetVendorTagOps(
vendor_tag_ops_delegate_.MakeRequest(), vendor_tag_ops_delegate_.MakeReceiver(),
base::BindOnce(&CameraHalDelegate::OnGotVendorTagOpsOnIpcThread, this)); base::BindOnce(&CameraHalDelegate::OnGotVendorTagOpsOnIpcThread, this));
} }
......
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
#include "media/capture/video/chromeos/mock_vendor_tag_ops.h" #include "media/capture/video/chromeos/mock_vendor_tag_ops.h"
#include "media/capture/video/chromeos/video_capture_device_factory_chromeos.h" #include "media/capture/video/chromeos/video_capture_device_factory_chromeos.h"
#include "media/capture/video/mock_gpu_memory_buffer_manager.h" #include "media/capture/video/mock_gpu_memory_buffer_manager.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "testing/gmock/include/gmock/gmock.h" #include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h" #include "testing/gtest/include/gtest/gtest.h"
...@@ -146,9 +147,10 @@ TEST_F(CameraHalDelegateTest, GetBuiltinCameraInfo) { ...@@ -146,9 +147,10 @@ TEST_F(CameraHalDelegateTest, GetBuiltinCameraInfo) {
}; };
auto get_vendor_tag_ops_cb = auto get_vendor_tag_ops_cb =
[&](cros::mojom::VendorTagOpsRequest& vendor_tag_ops_request, [&](mojo::PendingReceiver<cros::mojom::VendorTagOps>
vendor_tag_ops_receiver,
cros::mojom::CameraModule::GetVendorTagOpsCallback&) { cros::mojom::CameraModule::GetVendorTagOpsCallback&) {
mock_vendor_tag_ops_.Bind(std::move(vendor_tag_ops_request)); mock_vendor_tag_ops_.Bind(std::move(vendor_tag_ops_receiver));
}; };
auto set_callbacks_cb = auto set_callbacks_cb =
...@@ -169,7 +171,7 @@ TEST_F(CameraHalDelegateTest, GetBuiltinCameraInfo) { ...@@ -169,7 +171,7 @@ TEST_F(CameraHalDelegateTest, GetBuiltinCameraInfo) {
.WillOnce(Invoke(set_callbacks_cb)); .WillOnce(Invoke(set_callbacks_cb));
EXPECT_CALL(mock_camera_module_, EXPECT_CALL(mock_camera_module_,
DoGetVendorTagOps( DoGetVendorTagOps(
A<cros::mojom::VendorTagOpsRequest&>(), A<mojo::PendingReceiver<cros::mojom::VendorTagOps>>(),
A<cros::mojom::CameraModule::GetVendorTagOpsCallback&>())) A<cros::mojom::CameraModule::GetVendorTagOpsCallback&>()))
.Times(1) .Times(1)
.WillOnce(Invoke(get_vendor_tag_ops_cb)); .WillOnce(Invoke(get_vendor_tag_ops_cb));
......
...@@ -61,9 +61,9 @@ void MockCameraModule::SetTorchMode(int32_t camera_id, ...@@ -61,9 +61,9 @@ void MockCameraModule::SetTorchMode(int32_t camera_id,
} }
void MockCameraModule::GetVendorTagOps( void MockCameraModule::GetVendorTagOps(
cros::mojom::VendorTagOpsRequest vendor_tag_ops_request, mojo::PendingReceiver<cros::mojom::VendorTagOps> vendor_tag_ops_receiver,
GetVendorTagOpsCallback callback) { GetVendorTagOpsCallback callback) {
DoGetVendorTagOps(vendor_tag_ops_request, callback); DoGetVendorTagOps(std::move(vendor_tag_ops_receiver), callback);
std::move(callback).Run(); std::move(callback).Run();
} }
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
#include "media/capture/video/chromeos/mojom/camera3.mojom.h" #include "media/capture/video/chromeos/mojom/camera3.mojom.h"
#include "media/capture/video/chromeos/mojom/camera_common.mojom.h" #include "media/capture/video/chromeos/mojom/camera_common.mojom.h"
#include "mojo/public/cpp/bindings/binding.h" #include "mojo/public/cpp/bindings/binding.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "testing/gmock/include/gmock/gmock.h" #include "testing/gmock/include/gmock/gmock.h"
namespace media { namespace media {
...@@ -57,10 +58,12 @@ class MockCameraModule : public cros::mojom::CameraModule { ...@@ -57,10 +58,12 @@ class MockCameraModule : public cros::mojom::CameraModule {
bool enabled, bool enabled,
SetTorchModeCallback& callback)); SetTorchModeCallback& callback));
void GetVendorTagOps(cros::mojom::VendorTagOpsRequest vendor_tag_ops_request, void GetVendorTagOps(
GetVendorTagOpsCallback callback) override; mojo::PendingReceiver<cros::mojom::VendorTagOps> vendor_tag_ops_receiver,
GetVendorTagOpsCallback callback) override;
MOCK_METHOD2(DoGetVendorTagOps, MOCK_METHOD2(DoGetVendorTagOps,
void(cros::mojom::VendorTagOpsRequest& vendor_tag_ops_request, void(mojo::PendingReceiver<cros::mojom::VendorTagOps>
vendor_tag_ops_receiver,
GetVendorTagOpsCallback& callback)); GetVendorTagOpsCallback& callback));
void NotifyCameraDeviceChange(int camera_id, void NotifyCameraDeviceChange(int camera_id,
......
...@@ -12,7 +12,7 @@ namespace media { ...@@ -12,7 +12,7 @@ namespace media {
namespace unittest_internal { namespace unittest_internal {
MockVendorTagOps::MockVendorTagOps() MockVendorTagOps::MockVendorTagOps()
: mock_vendor_tag_ops_thread_("MockVendorTagOpsThread"), binding_(this) { : mock_vendor_tag_ops_thread_("MockVendorTagOpsThread") {
CHECK(mock_vendor_tag_ops_thread_.Start()); CHECK(mock_vendor_tag_ops_thread_.Start());
} }
...@@ -23,14 +23,15 @@ MockVendorTagOps::~MockVendorTagOps() { ...@@ -23,14 +23,15 @@ MockVendorTagOps::~MockVendorTagOps() {
mock_vendor_tag_ops_thread_.Stop(); mock_vendor_tag_ops_thread_.Stop();
} }
void MockVendorTagOps::Bind(cros::mojom::VendorTagOpsRequest request) { void MockVendorTagOps::Bind(
mojo::PendingReceiver<cros::mojom::VendorTagOps> receiver) {
base::WaitableEvent done(base::WaitableEvent::ResetPolicy::MANUAL, base::WaitableEvent done(base::WaitableEvent::ResetPolicy::MANUAL,
base::WaitableEvent::InitialState::NOT_SIGNALED); base::WaitableEvent::InitialState::NOT_SIGNALED);
cros::mojom::CameraModulePtrInfo ptr_info; cros::mojom::CameraModulePtrInfo ptr_info;
mock_vendor_tag_ops_thread_.task_runner()->PostTask( mock_vendor_tag_ops_thread_.task_runner()->PostTask(
FROM_HERE, FROM_HERE,
base::BindOnce(&MockVendorTagOps::BindOnThread, base::Unretained(this), base::BindOnce(&MockVendorTagOps::BindOnThread, base::Unretained(this),
base::Unretained(&done), std::move(request))); base::Unretained(&done), std::move(receiver)));
done.Wait(); done.Wait();
} }
...@@ -52,14 +53,13 @@ void MockVendorTagOps::GetTagName(uint32_t tag, GetTagNameCallback callback) { ...@@ -52,14 +53,13 @@ void MockVendorTagOps::GetTagName(uint32_t tag, GetTagNameCallback callback) {
} }
void MockVendorTagOps::CloseBindingOnThread() { void MockVendorTagOps::CloseBindingOnThread() {
if (binding_.is_bound()) { receiver_.reset();
binding_.Close();
}
} }
void MockVendorTagOps::BindOnThread(base::WaitableEvent* done, void MockVendorTagOps::BindOnThread(
cros::mojom::VendorTagOpsRequest request) { base::WaitableEvent* done,
binding_.Bind(std::move(request)); mojo::PendingReceiver<cros::mojom::VendorTagOps> receiver) {
receiver_.Bind(std::move(receiver));
done->Signal(); done->Signal();
} }
......
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
#include "base/threading/thread.h" #include "base/threading/thread.h"
#include "media/capture/video/chromeos/mojom/camera_common.mojom.h" #include "media/capture/video/chromeos/mojom/camera_common.mojom.h"
#include "mojo/public/cpp/bindings/binding.h" #include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/receiver.h"
#include "testing/gmock/include/gmock/gmock.h" #include "testing/gmock/include/gmock/gmock.h"
namespace media { namespace media {
...@@ -22,7 +23,7 @@ class MockVendorTagOps : public cros::mojom::VendorTagOps { ...@@ -22,7 +23,7 @@ class MockVendorTagOps : public cros::mojom::VendorTagOps {
MockVendorTagOps(); MockVendorTagOps();
~MockVendorTagOps(); ~MockVendorTagOps();
void Bind(cros::mojom::VendorTagOpsRequest request); void Bind(mojo::PendingReceiver<cros::mojom::VendorTagOps> receiver);
MOCK_METHOD0(DoGetTagCount, int32_t()); MOCK_METHOD0(DoGetTagCount, int32_t());
void GetTagCount(GetTagCountCallback callback); void GetTagCount(GetTagCountCallback callback);
...@@ -45,10 +46,10 @@ class MockVendorTagOps : public cros::mojom::VendorTagOps { ...@@ -45,10 +46,10 @@ class MockVendorTagOps : public cros::mojom::VendorTagOps {
void CloseBindingOnThread(); void CloseBindingOnThread();
void BindOnThread(base::WaitableEvent* done, void BindOnThread(base::WaitableEvent* done,
cros::mojom::VendorTagOpsRequest request); mojo::PendingReceiver<cros::mojom::VendorTagOps> receiver);
base::Thread mock_vendor_tag_ops_thread_; base::Thread mock_vendor_tag_ops_thread_;
mojo::Binding<cros::mojom::VendorTagOps> binding_; mojo::Receiver<cros::mojom::VendorTagOps> receiver_{this};
}; };
} // namespace unittest_internal } // namespace unittest_internal
......
...@@ -118,5 +118,6 @@ interface CameraModule { ...@@ -118,5 +118,6 @@ interface CameraModule {
// should fill in all the vendor tag operation methods, or leave ops unchanged // should fill in all the vendor tag operation methods, or leave ops unchanged
// if no vendor tags are defined. // if no vendor tags are defined.
[MinVersion=2] [MinVersion=2]
GetVendorTagOps@6(VendorTagOps& vendor_tag_ops_request) => (); GetVendorTagOps@6(pending_receiver<VendorTagOps> vendor_tag_ops_request)
=> ();
}; };
...@@ -17,12 +17,13 @@ VendorTagOpsDelegate::VendorTagOpsDelegate( ...@@ -17,12 +17,13 @@ VendorTagOpsDelegate::VendorTagOpsDelegate(
VendorTagOpsDelegate::~VendorTagOpsDelegate() = default; VendorTagOpsDelegate::~VendorTagOpsDelegate() = default;
cros::mojom::VendorTagOpsRequest VendorTagOpsDelegate::MakeRequest() { mojo::PendingReceiver<cros::mojom::VendorTagOps>
VendorTagOpsDelegate::MakeReceiver() {
DCHECK(ipc_task_runner_->RunsTasksInCurrentSequence()); DCHECK(ipc_task_runner_->RunsTasksInCurrentSequence());
auto request = mojo::MakeRequest(&vendor_tag_ops_); auto receiver = vendor_tag_ops_.BindNewPipeAndPassReceiver();
vendor_tag_ops_.set_connection_error_handler( vendor_tag_ops_.set_disconnect_handler(
base::BindOnce(&VendorTagOpsDelegate::Reset, base::Unretained(this))); base::BindOnce(&VendorTagOpsDelegate::Reset, base::Unretained(this)));
return request; return receiver;
} }
void VendorTagOpsDelegate::Initialize() { void VendorTagOpsDelegate::Initialize() {
......
...@@ -10,6 +10,8 @@ ...@@ -10,6 +10,8 @@
#include <vector> #include <vector>
#include "media/capture/video/chromeos/mojom/camera_common.mojom.h" #include "media/capture/video/chromeos/mojom/camera_common.mojom.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/remote.h"
namespace media { namespace media {
...@@ -28,7 +30,7 @@ class VendorTagOpsDelegate { ...@@ -28,7 +30,7 @@ class VendorTagOpsDelegate {
// Setups/Teardowns the VendorTagOpsDelegate instance. All methods here should // Setups/Teardowns the VendorTagOpsDelegate instance. All methods here should
// be called on |ipc_task_runner_|. // be called on |ipc_task_runner_|.
cros::mojom::VendorTagOpsRequest MakeRequest(); mojo::PendingReceiver<cros::mojom::VendorTagOps> MakeReceiver();
void Initialize(); void Initialize();
void Reset(); void Reset();
...@@ -49,7 +51,7 @@ class VendorTagOpsDelegate { ...@@ -49,7 +51,7 @@ class VendorTagOpsDelegate {
void OnGotTagType(uint32_t tag, int32_t type); void OnGotTagType(uint32_t tag, int32_t type);
scoped_refptr<base::SequencedTaskRunner> ipc_task_runner_; scoped_refptr<base::SequencedTaskRunner> ipc_task_runner_;
cros::mojom::VendorTagOpsPtr vendor_tag_ops_; mojo::Remote<cros::mojom::VendorTagOps> vendor_tag_ops_;
// The paritally initialized tags. A tag with its info would be moved to // The paritally initialized tags. A tag with its info would be moved to
// |name_map_| and |tag_map_| once it's fully initialized. The |inited_| event // |name_map_| and |tag_map_| once it's fully initialized. The |inited_| event
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment