Commit 917706c0 authored by Mario Sanchez Prada's avatar Mario Sanchez Prada Committed by Commit Bot

Migrate references to the video_capture::mojom::VideoSourceProvider interface

Convert the remaining bits referencing the VideoSourceProvider mojo interface
(from video_capture service) using the old APIs to the new mojo types, and
adapt unit tests.

Bug: 955171
Change-Id: I321f8d47bd0efc12bc054ad13e4ac44f02516da3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1886854
Commit-Queue: Mario Sanchez Prada <mario@igalia.com>
Reviewed-by: default avatarGuido Urdaneta <guidou@chromium.org>
Reviewed-by: default avatarToni Baržić <tbarzic@chromium.org>
Reviewed-by: default avatarChrome Cunningham <chcunningham@chromium.org>
Reviewed-by: default avatarOksana Zhuravlova <oksamyt@chromium.org>
Reviewed-by: default avatarDominick Ng <dominickn@chromium.org>
Cr-Commit-Position: refs/heads/master@{#711652}
parent 2ca93eb0
...@@ -25,6 +25,5 @@ interface MediaPerceptionControllerClient { ...@@ -25,6 +25,5 @@ interface MediaPerceptionControllerClient {
// Interface for the service to connect to the Video Capture Service // Interface for the service to connect to the Video Capture Service
// directly via a Mojo pipe set up through a DeviceFactory request. // directly via a Mojo pipe set up through a DeviceFactory request.
ConnectToVideoCaptureService@0( ConnectToVideoCaptureService@0(
video_capture.mojom.VideoSourceProvider& request); pending_receiver<video_capture.mojom.VideoSourceProvider> receiver);
}; };
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
namespace content { namespace content {
RefCountedVideoSourceProvider::RefCountedVideoSourceProvider( RefCountedVideoSourceProvider::RefCountedVideoSourceProvider(
video_capture::mojom::VideoSourceProviderPtr source_provider, mojo::Remote<video_capture::mojom::VideoSourceProvider> source_provider,
base::OnceClosure destruction_cb) base::OnceClosure destruction_cb)
: source_provider_(std::move(source_provider)), : source_provider_(std::move(source_provider)),
destruction_cb_(std::move(destruction_cb)) {} destruction_cb_(std::move(destruction_cb)) {}
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include "base/memory/ref_counted.h" #include "base/memory/ref_counted.h"
#include "content/common/content_export.h" #include "content/common/content_export.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "services/video_capture/public/mojom/video_source_provider.mojom.h" #include "services/video_capture/public/mojom/video_source_provider.mojom.h"
namespace content { namespace content {
...@@ -20,12 +21,13 @@ class CONTENT_EXPORT RefCountedVideoSourceProvider ...@@ -20,12 +21,13 @@ class CONTENT_EXPORT RefCountedVideoSourceProvider
: public base::RefCounted<RefCountedVideoSourceProvider> { : public base::RefCounted<RefCountedVideoSourceProvider> {
public: public:
RefCountedVideoSourceProvider( RefCountedVideoSourceProvider(
video_capture::mojom::VideoSourceProviderPtr source_provider, mojo::Remote<video_capture::mojom::VideoSourceProvider> source_provider,
base::OnceClosure destruction_cb); base::OnceClosure destruction_cb);
base::WeakPtr<RefCountedVideoSourceProvider> GetWeakPtr(); base::WeakPtr<RefCountedVideoSourceProvider> GetWeakPtr();
const video_capture::mojom::VideoSourceProviderPtr& source_provider() { const mojo::Remote<video_capture::mojom::VideoSourceProvider>&
source_provider() {
return source_provider_; return source_provider_;
} }
...@@ -36,7 +38,7 @@ class CONTENT_EXPORT RefCountedVideoSourceProvider ...@@ -36,7 +38,7 @@ class CONTENT_EXPORT RefCountedVideoSourceProvider
friend class base::RefCounted<RefCountedVideoSourceProvider>; friend class base::RefCounted<RefCountedVideoSourceProvider>;
~RefCountedVideoSourceProvider(); ~RefCountedVideoSourceProvider();
video_capture::mojom::VideoSourceProviderPtr source_provider_; mojo::Remote<video_capture::mojom::VideoSourceProvider> source_provider_;
base::OnceClosure destruction_cb_; base::OnceClosure destruction_cb_;
base::WeakPtrFactory<RefCountedVideoSourceProvider> weak_ptr_factory_{this}; base::WeakPtrFactory<RefCountedVideoSourceProvider> weak_ptr_factory_{this};
......
...@@ -12,8 +12,6 @@ ...@@ -12,8 +12,6 @@
#include "content/browser/renderer_host/media/ref_counted_video_source_provider.h" #include "content/browser/renderer_host/media/ref_counted_video_source_provider.h"
#include "content/browser/renderer_host/media/service_launched_video_capture_device.h" #include "content/browser/renderer_host/media/service_launched_video_capture_device.h"
#include "content/public/test/browser_task_environment.h" #include "content/public/test/browser_task_environment.h"
#include "mojo/public/cpp/bindings/binding.h"
#include "mojo/public/cpp/bindings/binding_set.h"
#include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/receiver.h" #include "mojo/public/cpp/bindings/receiver.h"
...@@ -59,9 +57,9 @@ class ServiceVideoCaptureDeviceLauncherTest : public testing::Test { ...@@ -59,9 +57,9 @@ class ServiceVideoCaptureDeviceLauncherTest : public testing::Test {
protected: protected:
void SetUp() override { void SetUp() override {
source_provider_binding_ = std::make_unique< source_provider_receiver_ = std::make_unique<
mojo::Binding<video_capture::mojom::VideoSourceProvider>>( mojo::Receiver<video_capture::mojom::VideoSourceProvider>>(
&mock_source_provider_, mojo::MakeRequest(&source_provider_)); &mock_source_provider_, source_provider_.BindNewPipeAndPassReceiver());
service_connection_ = base::MakeRefCounted<RefCountedVideoSourceProvider>( service_connection_ = base::MakeRefCounted<RefCountedVideoSourceProvider>(
std::move(source_provider_), std::move(source_provider_),
release_connection_cb_.Get()); release_connection_cb_.Get());
...@@ -124,10 +122,10 @@ class ServiceVideoCaptureDeviceLauncherTest : public testing::Test { ...@@ -124,10 +122,10 @@ class ServiceVideoCaptureDeviceLauncherTest : public testing::Test {
BrowserTaskEnvironment task_environment_; BrowserTaskEnvironment task_environment_;
MockVideoCaptureDeviceLauncherCallbacks mock_callbacks_; MockVideoCaptureDeviceLauncherCallbacks mock_callbacks_;
video_capture::mojom::VideoSourceProviderPtr source_provider_; mojo::Remote<video_capture::mojom::VideoSourceProvider> source_provider_;
video_capture::MockVideoSourceProvider mock_source_provider_; video_capture::MockVideoSourceProvider mock_source_provider_;
std::unique_ptr<mojo::Binding<video_capture::mojom::VideoSourceProvider>> std::unique_ptr<mojo::Receiver<video_capture::mojom::VideoSourceProvider>>
source_provider_binding_; source_provider_receiver_;
video_capture::MockVideoSource mock_source_; video_capture::MockVideoSource mock_source_;
std::unique_ptr<mojo::Receiver<video_capture::mojom::VideoSource>> std::unique_ptr<mojo::Receiver<video_capture::mojom::VideoSource>>
source_receiver_; source_receiver_;
......
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
#include "content/public/common/content_features.h" #include "content/public/common/content_features.h"
#include "mojo/public/cpp/bindings/callback_helpers.h" #include "mojo/public/cpp/bindings/callback_helpers.h"
#include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "mojo/public/cpp/bindings/self_owned_receiver.h" #include "mojo/public/cpp/bindings/self_owned_receiver.h"
#include "services/video_capture/public/mojom/video_capture_service.mojom.h" #include "services/video_capture/public/mojom/video_capture_service.mojom.h"
#include "services/video_capture/public/uma/video_capture_service_event.h" #include "services/video_capture/public/uma/video_capture_service_event.h"
...@@ -227,10 +228,10 @@ ServiceVideoCaptureProvider::LazyConnectToService() { ...@@ -227,10 +228,10 @@ ServiceVideoCaptureProvider::LazyConnectToService() {
std::move(accelerator_factory)); std::move(accelerator_factory));
#endif // defined(OS_CHROMEOS) #endif // defined(OS_CHROMEOS)
video_capture::mojom::VideoSourceProviderPtr source_provider; mojo::Remote<video_capture::mojom::VideoSourceProvider> source_provider;
GetVideoCaptureService().ConnectToVideoSourceProvider( GetVideoCaptureService().ConnectToVideoSourceProvider(
mojo::MakeRequest(&source_provider)); source_provider.BindNewPipeAndPassReceiver());
source_provider.set_connection_error_handler(base::BindOnce( source_provider.set_disconnect_handler(base::BindOnce(
&ServiceVideoCaptureProvider::OnLostConnectionToSourceProvider, &ServiceVideoCaptureProvider::OnLostConnectionToSourceProvider,
weak_ptr_factory_.GetWeakPtr())); weak_ptr_factory_.GetWeakPtr()));
auto result = base::MakeRefCounted<RefCountedVideoSourceProvider>( auto result = base::MakeRefCounted<RefCountedVideoSourceProvider>(
......
...@@ -15,10 +15,9 @@ ...@@ -15,10 +15,9 @@
#include "content/public/browser/video_capture_device_launcher.h" #include "content/public/browser/video_capture_device_launcher.h"
#include "content/public/browser/video_capture_service.h" #include "content/public/browser/video_capture_service.h"
#include "content/public/test/browser_task_environment.h" #include "content/public/test/browser_task_environment.h"
#include "mojo/public/cpp/bindings/binding.h"
#include "mojo/public/cpp/bindings/binding_set.h"
#include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/receiver.h"
#include "mojo/public/cpp/bindings/receiver_set.h" #include "mojo/public/cpp/bindings/receiver_set.h"
#include "services/video_capture/public/cpp/mock_push_subscription.h" #include "services/video_capture/public/cpp/mock_push_subscription.h"
#include "services/video_capture/public/cpp/mock_video_capture_service.h" #include "services/video_capture/public/cpp/mock_video_capture_service.h"
...@@ -58,7 +57,7 @@ class MockVideoCaptureDeviceLauncherCallbacks ...@@ -58,7 +57,7 @@ class MockVideoCaptureDeviceLauncherCallbacks
class ServiceVideoCaptureProviderTest : public testing::Test { class ServiceVideoCaptureProviderTest : public testing::Test {
public: public:
ServiceVideoCaptureProviderTest() ServiceVideoCaptureProviderTest()
: source_provider_binding_(&mock_source_provider_) { : source_provider_receiver_(&mock_source_provider_) {
OverrideVideoCaptureServiceForTesting(&mock_video_capture_service_); OverrideVideoCaptureServiceForTesting(&mock_video_capture_service_);
} }
...@@ -84,9 +83,9 @@ class ServiceVideoCaptureProviderTest : public testing::Test { ...@@ -84,9 +83,9 @@ class ServiceVideoCaptureProviderTest : public testing::Test {
[this]( [this](
mojo::PendingReceiver<video_capture::mojom::VideoSourceProvider> mojo::PendingReceiver<video_capture::mojom::VideoSourceProvider>
receiver) { receiver) {
if (source_provider_binding_.is_bound()) if (source_provider_receiver_.is_bound())
source_provider_binding_.Close(); source_provider_receiver_.reset();
source_provider_binding_.Bind(std::move(receiver)); source_provider_receiver_.Bind(std::move(receiver));
wait_for_connection_to_service_.Quit(); wait_for_connection_to_service_.Quit();
})); }));
...@@ -130,8 +129,8 @@ class ServiceVideoCaptureProviderTest : public testing::Test { ...@@ -130,8 +129,8 @@ class ServiceVideoCaptureProviderTest : public testing::Test {
content::BrowserTaskEnvironment task_environment_; content::BrowserTaskEnvironment task_environment_;
video_capture::MockVideoCaptureService mock_video_capture_service_; video_capture::MockVideoCaptureService mock_video_capture_service_;
video_capture::MockVideoSourceProvider mock_source_provider_; video_capture::MockVideoSourceProvider mock_source_provider_;
mojo::Binding<video_capture::mojom::VideoSourceProvider> mojo::Receiver<video_capture::mojom::VideoSourceProvider>
source_provider_binding_; source_provider_receiver_;
video_capture::MockVideoSource mock_source_; video_capture::MockVideoSource mock_source_;
mojo::ReceiverSet<video_capture::mojom::VideoSource> source_receivers_; mojo::ReceiverSet<video_capture::mojom::VideoSource> source_receivers_;
video_capture::MockPushSubcription mock_subscription_; video_capture::MockPushSubcription mock_subscription_;
...@@ -182,7 +181,7 @@ TEST_F(ServiceVideoCaptureProviderTest, ...@@ -182,7 +181,7 @@ TEST_F(ServiceVideoCaptureProviderTest,
wait_for_call_to_arrive_at_service.Run(); wait_for_call_to_arrive_at_service.Run();
// Simulate that the service goes down by cutting the connections. // Simulate that the service goes down by cutting the connections.
source_provider_binding_.Close(); source_provider_receiver_.reset();
wait_for_callback_from_service.Run(); wait_for_callback_from_service.Run();
} }
...@@ -212,7 +211,7 @@ TEST_F(ServiceVideoCaptureProviderTest, ...@@ -212,7 +211,7 @@ TEST_F(ServiceVideoCaptureProviderTest,
// Setup part 2: Now that the connection to the service is established, we can // Setup part 2: Now that the connection to the service is established, we can
// listen for disconnects. // listen for disconnects.
base::RunLoop wait_for_connection_to_source_provider_to_close; base::RunLoop wait_for_connection_to_source_provider_to_close;
source_provider_binding_.set_connection_error_handler( source_provider_receiver_.set_disconnect_handler(
base::BindOnce([](base::RunLoop* run_loop) { run_loop->Quit(); }, base::BindOnce([](base::RunLoop* run_loop) { run_loop->Quit(); },
&wait_for_connection_to_source_provider_to_close)); &wait_for_connection_to_source_provider_to_close));
...@@ -244,7 +243,7 @@ TEST_F(ServiceVideoCaptureProviderTest, ...@@ -244,7 +243,7 @@ TEST_F(ServiceVideoCaptureProviderTest,
// Monitor if connection gets closed // Monitor if connection gets closed
bool connection_has_been_closed = false; bool connection_has_been_closed = false;
source_provider_binding_.set_connection_error_handler(base::BindOnce( source_provider_receiver_.set_disconnect_handler(base::BindOnce(
[](bool* connection_has_been_closed) { [](bool* connection_has_been_closed) {
*connection_has_been_closed = true; *connection_has_been_closed = true;
}, },
...@@ -335,7 +334,7 @@ TEST_F(ServiceVideoCaptureProviderTest, ...@@ -335,7 +334,7 @@ TEST_F(ServiceVideoCaptureProviderTest,
// Monitor if connection gets closed // Monitor if connection gets closed
bool connection_has_been_closed = false; bool connection_has_been_closed = false;
source_provider_binding_.set_connection_error_handler(base::BindOnce( source_provider_receiver_.set_disconnect_handler(base::BindOnce(
[](bool* connection_has_been_closed) { [](bool* connection_has_been_closed) {
*connection_has_been_closed = true; *connection_has_been_closed = true;
}, },
......
...@@ -86,7 +86,7 @@ class WebRtcVideoCaptureServiceEnumerationBrowserTest ...@@ -86,7 +86,7 @@ class WebRtcVideoCaptureServiceEnumerationBrowserTest
break; break;
case ServiceApi::kMultiClient: case ServiceApi::kMultiClient:
GetVideoCaptureService().ConnectToVideoSourceProvider( GetVideoCaptureService().ConnectToVideoSourceProvider(
mojo::MakeRequest(&video_source_provider_)); video_source_provider_.BindNewPipeAndPassReceiver());
video_source_provider_->RegisterVirtualDevicesChangedObserver( video_source_provider_->RegisterVirtualDevicesChangedObserver(
std::move(observer), std::move(observer),
false /*raise_event_if_virtual_devices_already_present*/); false /*raise_event_if_virtual_devices_already_present*/);
...@@ -166,7 +166,7 @@ class WebRtcVideoCaptureServiceEnumerationBrowserTest ...@@ -166,7 +166,7 @@ class WebRtcVideoCaptureServiceEnumerationBrowserTest
void DisconnectFromService() { void DisconnectFromService() {
factory_.reset(); factory_.reset();
video_source_provider_ = nullptr; video_source_provider_.reset();
} }
void EnumerateDevicesInRendererAndVerifyDeviceCount( void EnumerateDevicesInRendererAndVerifyDeviceCount(
...@@ -234,7 +234,8 @@ class WebRtcVideoCaptureServiceEnumerationBrowserTest ...@@ -234,7 +234,8 @@ class WebRtcVideoCaptureServiceEnumerationBrowserTest
devices_changed_observer_receiver_{this}; devices_changed_observer_receiver_{this};
base::test::ScopedFeatureList scoped_feature_list_; base::test::ScopedFeatureList scoped_feature_list_;
mojo::Remote<video_capture::mojom::DeviceFactory> factory_; mojo::Remote<video_capture::mojom::DeviceFactory> factory_;
video_capture::mojom::VideoSourceProviderPtr video_source_provider_; mojo::Remote<video_capture::mojom::VideoSourceProvider>
video_source_provider_;
base::OnceClosure closure_to_be_called_on_devices_changed_; base::OnceClosure closure_to_be_called_on_devices_changed_;
DISALLOW_COPY_AND_ASSIGN(WebRtcVideoCaptureServiceEnumerationBrowserTest); DISALLOW_COPY_AND_ASSIGN(WebRtcVideoCaptureServiceEnumerationBrowserTest);
......
...@@ -87,7 +87,7 @@ class WebRtcVideoCaptureSharedDeviceBrowserTest ...@@ -87,7 +87,7 @@ class WebRtcVideoCaptureSharedDeviceBrowserTest
break; break;
case ServiceApi::kMultiClient: case ServiceApi::kMultiClient:
GetVideoCaptureService().ConnectToVideoSourceProvider( GetVideoCaptureService().ConnectToVideoSourceProvider(
mojo::MakeRequest(&video_source_provider_)); video_source_provider_.BindNewPipeAndPassReceiver());
video_source_provider_->GetSourceInfos(base::BindOnce( video_source_provider_->GetSourceInfos(base::BindOnce(
&WebRtcVideoCaptureSharedDeviceBrowserTest::OnSourceInfosReceived, &WebRtcVideoCaptureSharedDeviceBrowserTest::OnSourceInfosReceived,
weak_factory_.GetWeakPtr(), GetParam().buffer_type_to_request)); weak_factory_.GetWeakPtr(), GetParam().buffer_type_to_request));
...@@ -198,7 +198,8 @@ class WebRtcVideoCaptureSharedDeviceBrowserTest ...@@ -198,7 +198,8 @@ class WebRtcVideoCaptureSharedDeviceBrowserTest
mojo::Remote<video_capture::mojom::Device> device_; mojo::Remote<video_capture::mojom::Device> device_;
// For multi-client API case only // For multi-client API case only
video_capture::mojom::VideoSourceProviderPtr video_source_provider_; mojo::Remote<video_capture::mojom::VideoSourceProvider>
video_source_provider_;
mojo::Remote<video_capture::mojom::VideoSource> video_source_; mojo::Remote<video_capture::mojom::VideoSource> video_source_;
mojo::Remote<video_capture::mojom::PushVideoStreamSubscription> subscription_; mojo::Remote<video_capture::mojom::PushVideoStreamSubscription> subscription_;
......
...@@ -99,9 +99,10 @@ class MediaPerceptionAPIManager::MediaPerceptionControllerClient ...@@ -99,9 +99,10 @@ class MediaPerceptionAPIManager::MediaPerceptionControllerClient
// media_perception::mojom::MediaPerceptionControllerClient: // media_perception::mojom::MediaPerceptionControllerClient:
void ConnectToVideoCaptureService( void ConnectToVideoCaptureService(
video_capture::mojom::VideoSourceProviderRequest request) override { mojo::PendingReceiver<video_capture::mojom::VideoSourceProvider> receiver)
override {
DCHECK(delegate_) << "Delegate not set."; DCHECK(delegate_) << "Delegate not set.";
delegate_->BindVideoSourceProvider(std::move(request)); delegate_->BindVideoSourceProvider(std::move(receiver));
} }
private: private:
......
...@@ -75,9 +75,9 @@ TEST_F(VideoCaptureServiceLifecycleTest, ...@@ -75,9 +75,9 @@ TEST_F(VideoCaptureServiceLifecycleTest,
// provider. // provider.
TEST_F(VideoCaptureServiceLifecycleTest, TEST_F(VideoCaptureServiceLifecycleTest,
ServiceQuitsWhenSingleVideoSourceProviderClientDisconnected) { ServiceQuitsWhenSingleVideoSourceProviderClientDisconnected) {
mojom::VideoSourceProviderPtr source_provider; mojo::Remote<mojom::VideoSourceProvider> source_provider;
service_remote_->ConnectToVideoSourceProvider( service_remote_->ConnectToVideoSourceProvider(
mojo::MakeRequest(&source_provider)); source_provider.BindNewPipeAndPassReceiver());
source_provider.reset(); source_provider.reset();
service_idle_wait_loop_.Run(); service_idle_wait_loop_.Run();
} }
...@@ -85,9 +85,9 @@ TEST_F(VideoCaptureServiceLifecycleTest, ...@@ -85,9 +85,9 @@ TEST_F(VideoCaptureServiceLifecycleTest,
// Tests that the service quits when the only client disconnects after // Tests that the service quits when the only client disconnects after
// enumerating devices via the video source provider. // enumerating devices via the video source provider.
TEST_F(VideoCaptureServiceLifecycleTest, ServiceQuitsAfterEnumeratingDevices) { TEST_F(VideoCaptureServiceLifecycleTest, ServiceQuitsAfterEnumeratingDevices) {
mojom::VideoSourceProviderPtr source_provider; mojo::Remote<mojom::VideoSourceProvider> source_provider;
service_remote_->ConnectToVideoSourceProvider( service_remote_->ConnectToVideoSourceProvider(
mojo::MakeRequest(&source_provider)); source_provider.BindNewPipeAndPassReceiver());
base::RunLoop wait_loop; base::RunLoop wait_loop;
EXPECT_CALL(device_info_receiver_, Run(_)) EXPECT_CALL(device_info_receiver_, Run(_))
...@@ -108,9 +108,9 @@ TEST_F(VideoCaptureServiceLifecycleTest, ServiceQuitsAfterEnumeratingDevices) { ...@@ -108,9 +108,9 @@ TEST_F(VideoCaptureServiceLifecycleTest, ServiceQuitsAfterEnumeratingDevices) {
// reconnects via the video source provider. // reconnects via the video source provider.
TEST_F(VideoCaptureServiceLifecycleTest, EnumerateDevicesAfterReconnect) { TEST_F(VideoCaptureServiceLifecycleTest, EnumerateDevicesAfterReconnect) {
// Connect |source_provider|. // Connect |source_provider|.
mojom::VideoSourceProviderPtr source_provider; mojo::Remote<mojom::VideoSourceProvider> source_provider;
service_remote_->ConnectToVideoSourceProvider( service_remote_->ConnectToVideoSourceProvider(
mojo::MakeRequest(&source_provider)); source_provider.BindNewPipeAndPassReceiver());
// Disconnect |source_provider| and wait for the disconnect to propagate to // Disconnect |source_provider| and wait for the disconnect to propagate to
// the service. // the service.
...@@ -124,7 +124,7 @@ TEST_F(VideoCaptureServiceLifecycleTest, EnumerateDevicesAfterReconnect) { ...@@ -124,7 +124,7 @@ TEST_F(VideoCaptureServiceLifecycleTest, EnumerateDevicesAfterReconnect) {
// Reconnect |source_provider|. // Reconnect |source_provider|.
service_remote_->ConnectToVideoSourceProvider( service_remote_->ConnectToVideoSourceProvider(
mojo::MakeRequest(&source_provider)); source_provider.BindNewPipeAndPassReceiver());
// Enumerate devices. // Enumerate devices.
base::RunLoop wait_loop; base::RunLoop wait_loop;
......
...@@ -17,16 +17,16 @@ VideoSourceProviderImpl::VideoSourceProviderImpl( ...@@ -17,16 +17,16 @@ VideoSourceProviderImpl::VideoSourceProviderImpl(
: device_factory_(device_factory), : device_factory_(device_factory),
on_last_client_disconnected_cb_( on_last_client_disconnected_cb_(
std::move(on_last_client_disconnected_cb)) { std::move(on_last_client_disconnected_cb)) {
// Unretained |this| is safe because |bindings_| is owned by |this|. // Unretained |this| is safe because |receivers_| is owned by |this|.
bindings_.set_connection_error_handler(base::BindRepeating( receivers_.set_disconnect_handler(base::BindRepeating(
&VideoSourceProviderImpl::OnClientDisconnected, base::Unretained(this))); &VideoSourceProviderImpl::OnClientDisconnected, base::Unretained(this)));
} }
VideoSourceProviderImpl::~VideoSourceProviderImpl() = default; VideoSourceProviderImpl::~VideoSourceProviderImpl() = default;
void VideoSourceProviderImpl::AddClient( void VideoSourceProviderImpl::AddClient(
mojom::VideoSourceProviderRequest request) { mojo::PendingReceiver<mojom::VideoSourceProvider> receiver) {
bindings_.AddBinding(this, std::move(request)); receivers_.Add(this, std::move(receiver));
client_count_++; client_count_++;
} }
......
...@@ -7,9 +7,9 @@ ...@@ -7,9 +7,9 @@
#include <map> #include <map>
#include "mojo/public/cpp/bindings/binding_set.h"
#include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/receiver_set.h"
#include "services/video_capture/device_factory.h" #include "services/video_capture/device_factory.h"
#include "services/video_capture/public/mojom/video_source_provider.mojom.h" #include "services/video_capture/public/mojom/video_source_provider.mojom.h"
...@@ -24,7 +24,7 @@ class VideoSourceProviderImpl : public mojom::VideoSourceProvider { ...@@ -24,7 +24,7 @@ class VideoSourceProviderImpl : public mojom::VideoSourceProvider {
base::RepeatingClosure on_last_client_disconnected_cb); base::RepeatingClosure on_last_client_disconnected_cb);
~VideoSourceProviderImpl() override; ~VideoSourceProviderImpl() override;
void AddClient(mojom::VideoSourceProviderRequest request); void AddClient(mojo::PendingReceiver<mojom::VideoSourceProvider> receiver);
// mojom::VideoSourceProvider implementation. // mojom::VideoSourceProvider implementation.
void GetSourceInfos(GetSourceInfosCallback callback) override; void GetSourceInfos(GetSourceInfosCallback callback) override;
...@@ -55,7 +55,7 @@ class VideoSourceProviderImpl : public mojom::VideoSourceProvider { ...@@ -55,7 +55,7 @@ class VideoSourceProviderImpl : public mojom::VideoSourceProvider {
base::RepeatingClosure on_last_client_disconnected_cb_; base::RepeatingClosure on_last_client_disconnected_cb_;
int client_count_ = 0; int client_count_ = 0;
int closed_but_not_yet_disconnected_client_count_ = 0; int closed_but_not_yet_disconnected_client_count_ = 0;
mojo::BindingSet<mojom::VideoSourceProvider> bindings_; mojo::ReceiverSet<mojom::VideoSourceProvider> receivers_;
std::map<std::string, std::unique_ptr<VideoSourceImpl>> sources_; std::map<std::string, std::unique_ptr<VideoSourceImpl>> sources_;
DISALLOW_COPY_AND_ASSIGN(VideoSourceProviderImpl); DISALLOW_COPY_AND_ASSIGN(VideoSourceProviderImpl);
}; };
......
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