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 @@
#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/mock_gpu_memory_buffer_manager.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
......@@ -155,9 +156,9 @@ class CameraDeviceDelegateTest : public ::testing::Test {
}
void GetFakeVendorTagOps(
cros::mojom::VendorTagOpsRequest& vendor_tag_ops_request,
mojo::PendingReceiver<cros::mojom::VendorTagOps> vendor_tag_ops_receiver,
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,
......
......@@ -425,7 +425,7 @@ void CameraHalDelegate::OnGotNumberOfCamerasOnIpcThread(int32_t num_cameras) {
base::BindOnce(&CameraHalDelegate::OnSetCallbacksOnIpcThread, this));
camera_module_->GetVendorTagOps(
vendor_tag_ops_delegate_.MakeRequest(),
vendor_tag_ops_delegate_.MakeReceiver(),
base::BindOnce(&CameraHalDelegate::OnGotVendorTagOpsOnIpcThread, this));
}
......
......@@ -17,6 +17,7 @@
#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/mock_gpu_memory_buffer_manager.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
......@@ -146,9 +147,10 @@ TEST_F(CameraHalDelegateTest, GetBuiltinCameraInfo) {
};
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&) {
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 =
......@@ -169,7 +171,7 @@ TEST_F(CameraHalDelegateTest, GetBuiltinCameraInfo) {
.WillOnce(Invoke(set_callbacks_cb));
EXPECT_CALL(mock_camera_module_,
DoGetVendorTagOps(
A<cros::mojom::VendorTagOpsRequest&>(),
A<mojo::PendingReceiver<cros::mojom::VendorTagOps>>(),
A<cros::mojom::CameraModule::GetVendorTagOpsCallback&>()))
.Times(1)
.WillOnce(Invoke(get_vendor_tag_ops_cb));
......
......@@ -61,9 +61,9 @@ void MockCameraModule::SetTorchMode(int32_t camera_id,
}
void MockCameraModule::GetVendorTagOps(
cros::mojom::VendorTagOpsRequest vendor_tag_ops_request,
mojo::PendingReceiver<cros::mojom::VendorTagOps> vendor_tag_ops_receiver,
GetVendorTagOpsCallback callback) {
DoGetVendorTagOps(vendor_tag_ops_request, callback);
DoGetVendorTagOps(std::move(vendor_tag_ops_receiver), callback);
std::move(callback).Run();
}
......
......@@ -12,6 +12,7 @@
#include "media/capture/video/chromeos/mojom/camera3.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 "testing/gmock/include/gmock/gmock.h"
namespace media {
......@@ -57,10 +58,12 @@ class MockCameraModule : public cros::mojom::CameraModule {
bool enabled,
SetTorchModeCallback& callback));
void GetVendorTagOps(cros::mojom::VendorTagOpsRequest vendor_tag_ops_request,
GetVendorTagOpsCallback callback) override;
void GetVendorTagOps(
mojo::PendingReceiver<cros::mojom::VendorTagOps> vendor_tag_ops_receiver,
GetVendorTagOpsCallback callback) override;
MOCK_METHOD2(DoGetVendorTagOps,
void(cros::mojom::VendorTagOpsRequest& vendor_tag_ops_request,
void(mojo::PendingReceiver<cros::mojom::VendorTagOps>
vendor_tag_ops_receiver,
GetVendorTagOpsCallback& callback));
void NotifyCameraDeviceChange(int camera_id,
......
......@@ -12,7 +12,7 @@ namespace media {
namespace unittest_internal {
MockVendorTagOps::MockVendorTagOps()
: mock_vendor_tag_ops_thread_("MockVendorTagOpsThread"), binding_(this) {
: mock_vendor_tag_ops_thread_("MockVendorTagOpsThread") {
CHECK(mock_vendor_tag_ops_thread_.Start());
}
......@@ -23,14 +23,15 @@ MockVendorTagOps::~MockVendorTagOps() {
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::InitialState::NOT_SIGNALED);
cros::mojom::CameraModulePtrInfo ptr_info;
mock_vendor_tag_ops_thread_.task_runner()->PostTask(
FROM_HERE,
base::BindOnce(&MockVendorTagOps::BindOnThread, base::Unretained(this),
base::Unretained(&done), std::move(request)));
base::Unretained(&done), std::move(receiver)));
done.Wait();
}
......@@ -52,14 +53,13 @@ void MockVendorTagOps::GetTagName(uint32_t tag, GetTagNameCallback callback) {
}
void MockVendorTagOps::CloseBindingOnThread() {
if (binding_.is_bound()) {
binding_.Close();
}
receiver_.reset();
}
void MockVendorTagOps::BindOnThread(base::WaitableEvent* done,
cros::mojom::VendorTagOpsRequest request) {
binding_.Bind(std::move(request));
void MockVendorTagOps::BindOnThread(
base::WaitableEvent* done,
mojo::PendingReceiver<cros::mojom::VendorTagOps> receiver) {
receiver_.Bind(std::move(receiver));
done->Signal();
}
......
......@@ -11,7 +11,8 @@
#include "base/threading/thread.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"
namespace media {
......@@ -22,7 +23,7 @@ class MockVendorTagOps : public cros::mojom::VendorTagOps {
MockVendorTagOps();
~MockVendorTagOps();
void Bind(cros::mojom::VendorTagOpsRequest request);
void Bind(mojo::PendingReceiver<cros::mojom::VendorTagOps> receiver);
MOCK_METHOD0(DoGetTagCount, int32_t());
void GetTagCount(GetTagCountCallback callback);
......@@ -45,10 +46,10 @@ class MockVendorTagOps : public cros::mojom::VendorTagOps {
void CloseBindingOnThread();
void BindOnThread(base::WaitableEvent* done,
cros::mojom::VendorTagOpsRequest request);
mojo::PendingReceiver<cros::mojom::VendorTagOps> receiver);
base::Thread mock_vendor_tag_ops_thread_;
mojo::Binding<cros::mojom::VendorTagOps> binding_;
mojo::Receiver<cros::mojom::VendorTagOps> receiver_{this};
};
} // namespace unittest_internal
......
......@@ -118,5 +118,6 @@ interface CameraModule {
// should fill in all the vendor tag operation methods, or leave ops unchanged
// if no vendor tags are defined.
[MinVersion=2]
GetVendorTagOps@6(VendorTagOps& vendor_tag_ops_request) => ();
GetVendorTagOps@6(pending_receiver<VendorTagOps> vendor_tag_ops_request)
=> ();
};
......@@ -17,12 +17,13 @@ VendorTagOpsDelegate::VendorTagOpsDelegate(
VendorTagOpsDelegate::~VendorTagOpsDelegate() = default;
cros::mojom::VendorTagOpsRequest VendorTagOpsDelegate::MakeRequest() {
mojo::PendingReceiver<cros::mojom::VendorTagOps>
VendorTagOpsDelegate::MakeReceiver() {
DCHECK(ipc_task_runner_->RunsTasksInCurrentSequence());
auto request = mojo::MakeRequest(&vendor_tag_ops_);
vendor_tag_ops_.set_connection_error_handler(
auto receiver = vendor_tag_ops_.BindNewPipeAndPassReceiver();
vendor_tag_ops_.set_disconnect_handler(
base::BindOnce(&VendorTagOpsDelegate::Reset, base::Unretained(this)));
return request;
return receiver;
}
void VendorTagOpsDelegate::Initialize() {
......
......@@ -10,6 +10,8 @@
#include <vector>
#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 {
......@@ -28,7 +30,7 @@ class VendorTagOpsDelegate {
// Setups/Teardowns the VendorTagOpsDelegate instance. All methods here should
// be called on |ipc_task_runner_|.
cros::mojom::VendorTagOpsRequest MakeRequest();
mojo::PendingReceiver<cros::mojom::VendorTagOps> MakeReceiver();
void Initialize();
void Reset();
......@@ -49,7 +51,7 @@ class VendorTagOpsDelegate {
void OnGotTagType(uint32_t tag, int32_t type);
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
// |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