Commit 12a04c90 authored by Mario Sanchez Prada's avatar Mario Sanchez Prada Committed by Commit Bot

Migrate references to the PushVideoStreamSubscription interface

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

Bug: 955171
Change-Id: Ic1b588835553340a22272d3f4ac43b79ce3f0ef6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1886614
Commit-Queue: Mario Sanchez Prada <mario@igalia.com>
Reviewed-by: default avatarGuido Urdaneta <guidou@chromium.org>
Reviewed-by: default avatarOksana Zhuravlova <oksamyt@chromium.org>
Reviewed-by: default avatarChrome Cunningham <chcunningham@chromium.org>
Cr-Commit-Position: refs/heads/master@{#711310}
parent 24c14ee1
...@@ -13,7 +13,8 @@ namespace content { ...@@ -13,7 +13,8 @@ namespace content {
ServiceLaunchedVideoCaptureDevice::ServiceLaunchedVideoCaptureDevice( ServiceLaunchedVideoCaptureDevice::ServiceLaunchedVideoCaptureDevice(
video_capture::mojom::VideoSourcePtr source, video_capture::mojom::VideoSourcePtr source,
video_capture::mojom::PushVideoStreamSubscriptionPtr subscription, mojo::Remote<video_capture::mojom::PushVideoStreamSubscription>
subscription,
base::OnceClosure connection_lost_cb) base::OnceClosure connection_lost_cb)
: source_(std::move(source)), : source_(std::move(source)),
subscription_(std::move(subscription)), subscription_(std::move(subscription)),
...@@ -24,7 +25,7 @@ ServiceLaunchedVideoCaptureDevice::ServiceLaunchedVideoCaptureDevice( ...@@ -24,7 +25,7 @@ ServiceLaunchedVideoCaptureDevice::ServiceLaunchedVideoCaptureDevice(
OnLostConnectionToSourceOrSubscription, OnLostConnectionToSourceOrSubscription,
base::Unretained(this))); base::Unretained(this)));
// Unretained |this| is safe, because |this| owns |subscription_|. // Unretained |this| is safe, because |this| owns |subscription_|.
subscription_.set_connection_error_handler( subscription_.set_disconnect_handler(
base::BindOnce(&ServiceLaunchedVideoCaptureDevice:: base::BindOnce(&ServiceLaunchedVideoCaptureDevice::
OnLostConnectionToSourceOrSubscription, OnLostConnectionToSourceOrSubscription,
base::Unretained(this))); base::Unretained(this)));
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include "content/browser/renderer_host/media/video_capture_provider.h" #include "content/browser/renderer_host/media/video_capture_provider.h"
#include "content/public/browser/video_capture_device_launcher.h" #include "content/public/browser/video_capture_device_launcher.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "services/video_capture/public/mojom/video_source.mojom.h" #include "services/video_capture/public/mojom/video_source.mojom.h"
namespace content { namespace content {
...@@ -17,7 +18,8 @@ class ServiceLaunchedVideoCaptureDevice : public LaunchedVideoCaptureDevice { ...@@ -17,7 +18,8 @@ class ServiceLaunchedVideoCaptureDevice : public LaunchedVideoCaptureDevice {
public: public:
ServiceLaunchedVideoCaptureDevice( ServiceLaunchedVideoCaptureDevice(
video_capture::mojom::VideoSourcePtr source, video_capture::mojom::VideoSourcePtr source,
video_capture::mojom::PushVideoStreamSubscriptionPtr subscription, mojo::Remote<video_capture::mojom::PushVideoStreamSubscription>
subscription,
base::OnceClosure connection_lost_cb); base::OnceClosure connection_lost_cb);
~ServiceLaunchedVideoCaptureDevice() override; ~ServiceLaunchedVideoCaptureDevice() override;
...@@ -51,7 +53,7 @@ class ServiceLaunchedVideoCaptureDevice : public LaunchedVideoCaptureDevice { ...@@ -51,7 +53,7 @@ class ServiceLaunchedVideoCaptureDevice : public LaunchedVideoCaptureDevice {
media::mojom::BlobPtr blob); media::mojom::BlobPtr blob);
video_capture::mojom::VideoSourcePtr source_; video_capture::mojom::VideoSourcePtr source_;
video_capture::mojom::PushVideoStreamSubscriptionPtr subscription_; mojo::Remote<video_capture::mojom::PushVideoStreamSubscription> subscription_;
base::OnceClosure connection_lost_cb_; base::OnceClosure connection_lost_cb_;
base::SequenceChecker sequence_checker_; base::SequenceChecker sequence_checker_;
}; };
......
...@@ -26,7 +26,8 @@ namespace { ...@@ -26,7 +26,8 @@ namespace {
void ConcludeLaunchDeviceWithSuccess( void ConcludeLaunchDeviceWithSuccess(
video_capture::mojom::VideoSourcePtr source, video_capture::mojom::VideoSourcePtr source,
video_capture::mojom::PushVideoStreamSubscriptionPtr subscription, mojo::Remote<video_capture::mojom::PushVideoStreamSubscription>
subscription,
base::OnceClosure connection_lost_cb, base::OnceClosure connection_lost_cb,
VideoCaptureDeviceLauncher::Callbacks* callbacks, VideoCaptureDeviceLauncher::Callbacks* callbacks,
base::OnceClosure done_cb) { base::OnceClosure done_cb) {
...@@ -122,13 +123,13 @@ void ServiceVideoCaptureDeviceLauncher::LaunchDeviceAsync( ...@@ -122,13 +123,13 @@ void ServiceVideoCaptureDeviceLauncher::LaunchDeviceAsync(
std::move(receiver_adapter), std::move(receiver_adapter),
pending_remote_proxy.InitWithNewPipeAndPassReceiver()); pending_remote_proxy.InitWithNewPipeAndPassReceiver());
video_capture::mojom::PushVideoStreamSubscriptionPtr subscription; mojo::Remote<video_capture::mojom::PushVideoStreamSubscription> subscription;
// Create message pipe so that we can subsequently call // Create message pipe so that we can subsequently call
// subscription.set_connection_error_handler(). // subscription.set_disconnect_handler().
auto subscription_request = mojo::MakeRequest(&subscription); auto subscription_receiver = subscription.BindNewPipeAndPassReceiver();
// Use of Unretained(this) is safe, because |done_cb_| guarantees that |this| // Use of Unretained(this) is safe, because |done_cb_| guarantees that |this|
// stays alive. // stays alive.
subscription.set_connection_error_handler( subscription.set_disconnect_handler(
base::BindOnce(&ServiceVideoCaptureDeviceLauncher:: base::BindOnce(&ServiceVideoCaptureDeviceLauncher::
OnConnectionLostWhileWaitingForCallback, OnConnectionLostWhileWaitingForCallback,
base::Unretained(this))); base::Unretained(this)));
...@@ -155,7 +156,7 @@ void ServiceVideoCaptureDeviceLauncher::LaunchDeviceAsync( ...@@ -155,7 +156,7 @@ void ServiceVideoCaptureDeviceLauncher::LaunchDeviceAsync(
// service indicating that the device closing is complete. // service indicating that the device closing is complete.
source->CreatePushSubscription( source->CreatePushSubscription(
std::move(pending_remote_proxy), new_params, std::move(pending_remote_proxy), new_params,
true /*force_reopen_with_new_settings*/, std::move(subscription_request), true /*force_reopen_with_new_settings*/, std::move(subscription_receiver),
base::BindOnce( base::BindOnce(
// Use of Unretained |this| is safe, because |done_cb_| guarantees // Use of Unretained |this| is safe, because |done_cb_| guarantees
// that |this| stays alive. // that |this| stays alive.
...@@ -173,14 +174,15 @@ void ServiceVideoCaptureDeviceLauncher::AbortLaunch() { ...@@ -173,14 +174,15 @@ void ServiceVideoCaptureDeviceLauncher::AbortLaunch() {
void ServiceVideoCaptureDeviceLauncher::OnCreatePushSubscriptionCallback( void ServiceVideoCaptureDeviceLauncher::OnCreatePushSubscriptionCallback(
video_capture::mojom::VideoSourcePtr source, video_capture::mojom::VideoSourcePtr source,
video_capture::mojom::PushVideoStreamSubscriptionPtr subscription, mojo::Remote<video_capture::mojom::PushVideoStreamSubscription>
subscription,
base::OnceClosure connection_lost_cb, base::OnceClosure connection_lost_cb,
video_capture::mojom::CreatePushSubscriptionResultCode result_code, video_capture::mojom::CreatePushSubscriptionResultCode result_code,
const media::VideoCaptureParams& params) { const media::VideoCaptureParams& params) {
DCHECK(sequence_checker_.CalledOnValidSequence()); DCHECK(sequence_checker_.CalledOnValidSequence());
DCHECK(callbacks_); DCHECK(callbacks_);
DCHECK(done_cb_); DCHECK(done_cb_);
subscription.set_connection_error_handler(base::DoNothing()); subscription.set_disconnect_handler(base::DoNothing());
const bool abort_requested = (state_ == State::DEVICE_START_ABORTING); const bool abort_requested = (state_ == State::DEVICE_START_ABORTING);
state_ = State::READY_TO_LAUNCH; state_ = State::READY_TO_LAUNCH;
Callbacks* callbacks = callbacks_; Callbacks* callbacks = callbacks_;
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
#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/video_capture_provider.h" #include "content/browser/renderer_host/media/video_capture_provider.h"
#include "content/public/browser/video_capture_device_launcher.h" #include "content/public/browser/video_capture_device_launcher.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "services/video_capture/public/mojom/device_factory.mojom.h" #include "services/video_capture/public/mojom/device_factory.mojom.h"
#include "third_party/blink/public/common/mediastream/media_stream_request.h" #include "third_party/blink/public/common/mediastream/media_stream_request.h"
...@@ -47,7 +48,8 @@ class CONTENT_EXPORT ServiceVideoCaptureDeviceLauncher ...@@ -47,7 +48,8 @@ class CONTENT_EXPORT ServiceVideoCaptureDeviceLauncher
void OnCreatePushSubscriptionCallback( void OnCreatePushSubscriptionCallback(
video_capture::mojom::VideoSourcePtr source, video_capture::mojom::VideoSourcePtr source,
video_capture::mojom::PushVideoStreamSubscriptionPtr subscription, mojo::Remote<video_capture::mojom::PushVideoStreamSubscription>
subscription,
base::OnceClosure connection_lost_cb, base::OnceClosure connection_lost_cb,
video_capture::mojom::CreatePushSubscriptionResultCode result_code, video_capture::mojom::CreatePushSubscriptionResultCode result_code,
const media::VideoCaptureParams& params); const media::VideoCaptureParams& params);
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
#include "mojo/public/cpp/bindings/binding_set.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_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_source.h" #include "services/video_capture/public/cpp/mock_video_source.h"
#include "services/video_capture/public/cpp/mock_video_source_provider.h" #include "services/video_capture/public/cpp/mock_video_source_provider.h"
...@@ -53,9 +54,7 @@ class ServiceVideoCaptureDeviceLauncherTest : public testing::Test { ...@@ -53,9 +54,7 @@ class ServiceVideoCaptureDeviceLauncherTest : public testing::Test {
void CloseSourceBinding() { source_binding_.reset(); } void CloseSourceBinding() { source_binding_.reset(); }
void CloseSubscriptionBindings() { void CloseSubscriptionReceivers() { subscription_receivers_.Clear(); }
subscription_bindings_.CloseAllBindings();
}
protected: protected:
void SetUp() override { void SetUp() override {
...@@ -104,7 +103,7 @@ class ServiceVideoCaptureDeviceLauncherTest : public testing::Test { ...@@ -104,7 +103,7 @@ class ServiceVideoCaptureDeviceLauncherTest : public testing::Test {
subscription, subscription,
video_capture::mojom::VideoSource:: video_capture::mojom::VideoSource::
CreatePushSubscriptionCallback& callback) { CreatePushSubscriptionCallback& callback) {
subscription_bindings_.AddBinding(&mock_subscription_, subscription_receivers_.Add(&mock_subscription_,
std::move(subscription)); std::move(subscription));
std::move(callback).Run( std::move(callback).Run(
video_capture::mojom::CreatePushSubscriptionResultCode:: video_capture::mojom::CreatePushSubscriptionResultCode::
...@@ -131,8 +130,8 @@ class ServiceVideoCaptureDeviceLauncherTest : public testing::Test { ...@@ -131,8 +130,8 @@ class ServiceVideoCaptureDeviceLauncherTest : public testing::Test {
std::unique_ptr<mojo::Binding<video_capture::mojom::VideoSource>> std::unique_ptr<mojo::Binding<video_capture::mojom::VideoSource>>
source_binding_; source_binding_;
video_capture::MockPushSubcription mock_subscription_; video_capture::MockPushSubcription mock_subscription_;
mojo::BindingSet<video_capture::mojom::PushVideoStreamSubscription> mojo::ReceiverSet<video_capture::mojom::PushVideoStreamSubscription>
subscription_bindings_; subscription_receivers_;
std::unique_ptr<ServiceVideoCaptureDeviceLauncher> launcher_; std::unique_ptr<ServiceVideoCaptureDeviceLauncher> launcher_;
base::MockCallback<base::OnceClosure> connection_lost_cb_; base::MockCallback<base::OnceClosure> connection_lost_cb_;
base::MockCallback<base::OnceClosure> done_cb_; base::MockCallback<base::OnceClosure> done_cb_;
...@@ -217,7 +216,8 @@ void ServiceVideoCaptureDeviceLauncherTest::RunLaunchingDeviceIsAbortedTest( ...@@ -217,7 +216,8 @@ void ServiceVideoCaptureDeviceLauncherTest::RunLaunchingDeviceIsAbortedTest(
// Prepare the callback, but save it for now instead of invoking it. // Prepare the callback, but save it for now instead of invoking it.
create_push_subscription_success_answer_cb = base::BindOnce( create_push_subscription_success_answer_cb = base::BindOnce(
[](const media::VideoCaptureParams& requested_settings, [](const media::VideoCaptureParams& requested_settings,
video_capture::mojom::PushVideoStreamSubscriptionRequest mojo::PendingReceiver<
video_capture::mojom::PushVideoStreamSubscription>
subscription, subscription,
video_capture::mojom::VideoSource:: video_capture::mojom::VideoSource::
CreatePushSubscriptionCallback callback, CreatePushSubscriptionCallback callback,
...@@ -277,7 +277,8 @@ TEST_F(ServiceVideoCaptureDeviceLauncherTest, ...@@ -277,7 +277,8 @@ TEST_F(ServiceVideoCaptureDeviceLauncherTest,
[](mojo::PendingRemote<video_capture::mojom::Receiver> [](mojo::PendingRemote<video_capture::mojom::Receiver>
subscriber, subscriber,
const media::VideoCaptureParams& requested_settings, const media::VideoCaptureParams& requested_settings,
video_capture::mojom::PushVideoStreamSubscriptionRequest mojo::PendingReceiver<
video_capture::mojom::PushVideoStreamSubscription>
subscription, subscription,
video_capture::mojom::VideoSource:: video_capture::mojom::VideoSource::
CreatePushSubscriptionCallback callback) { CreatePushSubscriptionCallback callback) {
...@@ -394,7 +395,7 @@ TEST_F(ServiceVideoCaptureDeviceLauncherTest, ...@@ -394,7 +395,7 @@ TEST_F(ServiceVideoCaptureDeviceLauncherTest,
TEST_F(ServiceVideoCaptureDeviceLauncherTest, TEST_F(ServiceVideoCaptureDeviceLauncherTest,
ConnectionToSourceLostAfterSuccessfulLaunch) { ConnectionToSourceLostAfterSuccessfulLaunch) {
RunConnectionLostAfterSuccessfulStartTest(base::BindOnce( RunConnectionLostAfterSuccessfulStartTest(base::BindOnce(
&ServiceVideoCaptureDeviceLauncherTest::CloseSubscriptionBindings, &ServiceVideoCaptureDeviceLauncherTest::CloseSubscriptionReceivers,
base::Unretained(this))); base::Unretained(this)));
} }
......
...@@ -173,11 +173,10 @@ class WebRtcVideoCaptureSharedDeviceBrowserTest ...@@ -173,11 +173,10 @@ class WebRtcVideoCaptureSharedDeviceBrowserTest
requestable_settings.requested_format.frame_size = kVideoSize; requestable_settings.requested_format.frame_size = kVideoSize;
requestable_settings.buffer_type = buffer_type_to_request; requestable_settings.buffer_type = buffer_type_to_request;
video_capture::mojom::PushVideoStreamSubscriptionPtr subscription;
video_source_->CreatePushSubscription( video_source_->CreatePushSubscription(
std::move(subscriber_), requestable_settings, std::move(subscriber_), requestable_settings,
false /*force_reopen_with_new_settings*/, false /*force_reopen_with_new_settings*/,
mojo::MakeRequest(&subscription_), subscription_.BindNewPipeAndPassReceiver(),
base::BindOnce(&WebRtcVideoCaptureSharedDeviceBrowserTest:: base::BindOnce(&WebRtcVideoCaptureSharedDeviceBrowserTest::
OnCreatePushSubscriptionCallback, OnCreatePushSubscriptionCallback,
weak_factory_.GetWeakPtr())); weak_factory_.GetWeakPtr()));
...@@ -200,7 +199,7 @@ class WebRtcVideoCaptureSharedDeviceBrowserTest ...@@ -200,7 +199,7 @@ class WebRtcVideoCaptureSharedDeviceBrowserTest
// For multi-client API case only // For multi-client API case only
video_capture::mojom::VideoSourceProviderPtr video_source_provider_; video_capture::mojom::VideoSourceProviderPtr video_source_provider_;
video_capture::mojom::VideoSourcePtr video_source_; video_capture::mojom::VideoSourcePtr video_source_;
video_capture::mojom::PushVideoStreamSubscriptionPtr subscription_; mojo::Remote<video_capture::mojom::PushVideoStreamSubscription> subscription_;
mojo::PendingRemote<video_capture::mojom::Receiver> subscriber_; mojo::PendingRemote<video_capture::mojom::Receiver> subscriber_;
base::WeakPtrFactory<WebRtcVideoCaptureSharedDeviceBrowserTest> weak_factory_{ base::WeakPtrFactory<WebRtcVideoCaptureSharedDeviceBrowserTest> weak_factory_{
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
#include "media/capture/video/video_capture_device.h" #include "media/capture/video/video_capture_device.h"
#include "media/capture/video/video_capture_system_impl.h" #include "media/capture/video/video_capture_system_impl.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 "services/video_capture/device_factory_media_to_mojo_adapter.h" #include "services/video_capture/device_factory_media_to_mojo_adapter.h"
#include "services/video_capture/device_media_to_mojo_adapter.h" #include "services/video_capture/device_media_to_mojo_adapter.h"
#include "services/video_capture/public/cpp/mock_receiver.h" #include "services/video_capture/public/cpp/mock_receiver.h"
...@@ -85,7 +86,7 @@ class MockDeviceSharedAccessTest : public ::testing::Test { ...@@ -85,7 +86,7 @@ class MockDeviceSharedAccessTest : public ::testing::Test {
source_->CreatePushSubscription( source_->CreatePushSubscription(
std::move(receiver_1_), requestable_settings_, std::move(receiver_1_), requestable_settings_,
false /*force_reopen_with_new_settings*/, false /*force_reopen_with_new_settings*/,
mojo::MakeRequest(&subscription_1_), subscription_1_.BindNewPipeAndPassReceiver(),
base::BindOnce( base::BindOnce(
[](base::RunLoop* run_loop, [](base::RunLoop* run_loop,
media::VideoCaptureParams* requested_settings, media::VideoCaptureParams* requested_settings,
...@@ -114,7 +115,8 @@ class MockDeviceSharedAccessTest : public ::testing::Test { ...@@ -114,7 +115,8 @@ class MockDeviceSharedAccessTest : public ::testing::Test {
base::RunLoop run_loop; base::RunLoop run_loop;
source_->CreatePushSubscription( source_->CreatePushSubscription(
std::move(receiver_2_), requestable_settings_, std::move(receiver_2_), requestable_settings_,
force_reopen_with_new_settings, mojo::MakeRequest(&subscription_2_), force_reopen_with_new_settings,
subscription_2_.BindNewPipeAndPassReceiver(),
base::BindOnce( base::BindOnce(
[](base::RunLoop* run_loop, [](base::RunLoop* run_loop,
media::VideoCaptureParams* requested_settings, media::VideoCaptureParams* requested_settings,
...@@ -151,7 +153,7 @@ class MockDeviceSharedAccessTest : public ::testing::Test { ...@@ -151,7 +153,7 @@ class MockDeviceSharedAccessTest : public ::testing::Test {
source_->CreatePushSubscription( source_->CreatePushSubscription(
std::move(receiver_1_), requestable_settings_, std::move(receiver_1_), requestable_settings_,
false /*force_reopen_with_new_settings*/, false /*force_reopen_with_new_settings*/,
mojo::MakeRequest(&subscription_1_), subscription_1_.BindNewPipeAndPassReceiver(),
base::BindOnce( base::BindOnce(
[](base::RunLoop* run_loop_1, [](base::RunLoop* run_loop_1,
media::VideoCaptureParams* requested_settings, media::VideoCaptureParams* requested_settings,
...@@ -174,7 +176,7 @@ class MockDeviceSharedAccessTest : public ::testing::Test { ...@@ -174,7 +176,7 @@ class MockDeviceSharedAccessTest : public ::testing::Test {
source_->CreatePushSubscription( source_->CreatePushSubscription(
std::move(receiver_2_), different_settings, std::move(receiver_2_), different_settings,
false /*force_reopen_with_new_settings*/, false /*force_reopen_with_new_settings*/,
mojo::MakeRequest(&subscription_2_), subscription_2_.BindNewPipeAndPassReceiver(),
base::BindOnce( base::BindOnce(
[](base::RunLoop* run_loop_2, [](base::RunLoop* run_loop_2,
media::VideoCaptureParams* requested_settings, media::VideoCaptureParams* requested_settings,
...@@ -256,10 +258,10 @@ class MockDeviceSharedAccessTest : public ::testing::Test { ...@@ -256,10 +258,10 @@ class MockDeviceSharedAccessTest : public ::testing::Test {
mojom::VideoSourcePtr source_; mojom::VideoSourcePtr source_;
media::VideoCaptureParams requestable_settings_; media::VideoCaptureParams requestable_settings_;
mojom::PushVideoStreamSubscriptionPtr subscription_1_; mojo::Remote<mojom::PushVideoStreamSubscription> subscription_1_;
mojo::PendingRemote<mojom::Receiver> receiver_1_; mojo::PendingRemote<mojom::Receiver> receiver_1_;
MockReceiver mock_receiver_1_; MockReceiver mock_receiver_1_;
mojom::PushVideoStreamSubscriptionPtr subscription_2_; mojo::Remote<mojom::PushVideoStreamSubscription> subscription_2_;
mojo::PendingRemote<mojom::Receiver> receiver_2_; mojo::PendingRemote<mojom::Receiver> receiver_2_;
MockReceiver mock_receiver_2_; MockReceiver mock_receiver_2_;
......
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