Commit d5c7ecc7 authored by Gyuyoung Kim's avatar Gyuyoung Kim Committed by Commit Bot

Migrate InterfaceFactory to new Mojo types more

This CL converts old Mojo types to new Mojo types in
InterfaceFactory::CreateCdm and InterfaceFactory::CreateDefaultRenderer.

  - Convert FooRequest to mojo::PendingReceiver.
  - Convert FooPtr to mojo::PendingRemote or mojo::Remote.
  - Convert mojo::StrongBindingSet to mojo::UniqueReceiverSet.

Bug: 955171
Change-Id: I5f26b7efddf75ab48f6b6a5f02d84f91e027ba9a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1883447Reviewed-by: default avatarKen Rockot <rockot@google.com>
Reviewed-by: default avatarChrome Cunningham <chcunningham@chromium.org>
Reviewed-by: default avatarSam McNally <sammc@chromium.org>
Commit-Queue: Gyuyoung Kim <gyuyoung@igalia.com>
Cr-Commit-Position: refs/heads/master@{#710116}
parent 7d986cad
...@@ -166,12 +166,12 @@ void MediaInterfaceProxy::CreateVideoDecoder( ...@@ -166,12 +166,12 @@ void MediaInterfaceProxy::CreateVideoDecoder(
void MediaInterfaceProxy::CreateDefaultRenderer( void MediaInterfaceProxy::CreateDefaultRenderer(
const std::string& audio_device_id, const std::string& audio_device_id,
media::mojom::RendererRequest request) { mojo::PendingReceiver<media::mojom::Renderer> receiver) {
DCHECK(thread_checker_.CalledOnValidThread()); DCHECK(thread_checker_.CalledOnValidThread());
InterfaceFactory* factory = media_interface_factory_ptr_->Get(); InterfaceFactory* factory = media_interface_factory_ptr_->Get();
if (factory) if (factory)
factory->CreateDefaultRenderer(audio_device_id, std::move(request)); factory->CreateDefaultRenderer(audio_device_id, std::move(receiver));
} }
#if BUILDFLAG(ENABLE_CAST_RENDERER) #if BUILDFLAG(ENABLE_CAST_RENDERER)
...@@ -230,7 +230,7 @@ void MediaInterfaceProxy::CreateMediaPlayerRenderer( ...@@ -230,7 +230,7 @@ void MediaInterfaceProxy::CreateMediaPlayerRenderer(
void MediaInterfaceProxy::CreateCdm( void MediaInterfaceProxy::CreateCdm(
const std::string& key_system, const std::string& key_system,
media::mojom::ContentDecryptionModuleRequest request) { mojo::PendingReceiver<media::mojom::ContentDecryptionModule> receiver) {
DCHECK(thread_checker_.CalledOnValidThread()); DCHECK(thread_checker_.CalledOnValidThread());
#if BUILDFLAG(ENABLE_LIBRARY_CDMS) #if BUILDFLAG(ENABLE_LIBRARY_CDMS)
auto* factory = GetCdmFactory(key_system); auto* factory = GetCdmFactory(key_system);
...@@ -244,7 +244,7 @@ void MediaInterfaceProxy::CreateCdm( ...@@ -244,7 +244,7 @@ void MediaInterfaceProxy::CreateCdm(
#endif #endif
if (factory) if (factory)
factory->CreateCdm(key_system, std::move(request)); factory->CreateCdm(key_system, std::move(receiver));
} }
void MediaInterfaceProxy::CreateDecryptor( void MediaInterfaceProxy::CreateDecryptor(
......
...@@ -55,8 +55,9 @@ class MediaInterfaceProxy : public media::mojom::InterfaceFactory { ...@@ -55,8 +55,9 @@ class MediaInterfaceProxy : public media::mojom::InterfaceFactory {
mojo::PendingReceiver<media::mojom::AudioDecoder> receiver) final; mojo::PendingReceiver<media::mojom::AudioDecoder> receiver) final;
void CreateVideoDecoder( void CreateVideoDecoder(
mojo::PendingReceiver<media::mojom::VideoDecoder> receiver) final; mojo::PendingReceiver<media::mojom::VideoDecoder> receiver) final;
void CreateDefaultRenderer(const std::string& audio_device_id, void CreateDefaultRenderer(
media::mojom::RendererRequest request) final; const std::string& audio_device_id,
mojo::PendingReceiver<media::mojom::Renderer> receiver) final;
#if BUILDFLAG(ENABLE_CAST_RENDERER) #if BUILDFLAG(ENABLE_CAST_RENDERER)
void CreateCastRenderer( void CreateCastRenderer(
const base::UnguessableToken& overlay_plane_id, const base::UnguessableToken& overlay_plane_id,
...@@ -76,7 +77,8 @@ class MediaInterfaceProxy : public media::mojom::InterfaceFactory { ...@@ -76,7 +77,8 @@ class MediaInterfaceProxy : public media::mojom::InterfaceFactory {
renderer_extension_request) final; renderer_extension_request) final;
#endif // defined(OS_ANDROID) #endif // defined(OS_ANDROID)
void CreateCdm(const std::string& key_system, void CreateCdm(const std::string& key_system,
media::mojom::ContentDecryptionModuleRequest request) final; mojo::PendingReceiver<media::mojom::ContentDecryptionModule>
receiver) final;
void CreateDecryptor( void CreateDecryptor(
int cdm_id, int cdm_id,
mojo::PendingReceiver<media::mojom::Decryptor> receiver) final; mojo::PendingReceiver<media::mojom::Decryptor> receiver) final;
......
...@@ -44,7 +44,7 @@ void VideoDecoderProxy::CreateVideoDecoder( ...@@ -44,7 +44,7 @@ void VideoDecoderProxy::CreateVideoDecoder(
void VideoDecoderProxy::CreateDefaultRenderer( void VideoDecoderProxy::CreateDefaultRenderer(
const std::string& audio_device_id, const std::string& audio_device_id,
media::mojom::RendererRequest request) {} mojo::PendingReceiver<media::mojom::Renderer> receiver) {}
#if BUILDFLAG(ENABLE_CAST_RENDERER) #if BUILDFLAG(ENABLE_CAST_RENDERER)
void VideoDecoderProxy::CreateCastRenderer( void VideoDecoderProxy::CreateCastRenderer(
...@@ -69,7 +69,7 @@ void VideoDecoderProxy::CreateMediaPlayerRenderer( ...@@ -69,7 +69,7 @@ void VideoDecoderProxy::CreateMediaPlayerRenderer(
void VideoDecoderProxy::CreateCdm( void VideoDecoderProxy::CreateCdm(
const std::string& key_system, const std::string& key_system,
media::mojom::ContentDecryptionModuleRequest request) {} mojo::PendingReceiver<media::mojom::ContentDecryptionModule> receiver) {}
void VideoDecoderProxy::CreateDecryptor( void VideoDecoderProxy::CreateDecryptor(
int cdm_id, int cdm_id,
......
...@@ -37,8 +37,9 @@ class CONTENT_EXPORT VideoDecoderProxy : public media::mojom::InterfaceFactory { ...@@ -37,8 +37,9 @@ class CONTENT_EXPORT VideoDecoderProxy : public media::mojom::InterfaceFactory {
mojo::PendingReceiver<media::mojom::AudioDecoder> receiver) final; mojo::PendingReceiver<media::mojom::AudioDecoder> receiver) final;
void CreateVideoDecoder( void CreateVideoDecoder(
mojo::PendingReceiver<media::mojom::VideoDecoder> receiver) final; mojo::PendingReceiver<media::mojom::VideoDecoder> receiver) final;
void CreateDefaultRenderer(const std::string& audio_device_id, void CreateDefaultRenderer(
media::mojom::RendererRequest request) final; const std::string& audio_device_id,
mojo::PendingReceiver<media::mojom::Renderer> receiver) final;
#if BUILDFLAG(ENABLE_CAST_RENDERER) #if BUILDFLAG(ENABLE_CAST_RENDERER)
void CreateCastRenderer( void CreateCastRenderer(
const base::UnguessableToken& overlay_plane_id, const base::UnguessableToken& overlay_plane_id,
...@@ -58,7 +59,8 @@ class CONTENT_EXPORT VideoDecoderProxy : public media::mojom::InterfaceFactory { ...@@ -58,7 +59,8 @@ class CONTENT_EXPORT VideoDecoderProxy : public media::mojom::InterfaceFactory {
mojo::PendingReceiver<media::mojom::Renderer> receiver) final; mojo::PendingReceiver<media::mojom::Renderer> receiver) final;
#endif // defined(OS_ANDROID) #endif // defined(OS_ANDROID)
void CreateCdm(const std::string& key_system, void CreateCdm(const std::string& key_system,
media::mojom::ContentDecryptionModuleRequest request) final; mojo::PendingReceiver<media::mojom::ContentDecryptionModule>
receiver) final;
void CreateDecryptor( void CreateDecryptor(
int cdm_id, int cdm_id,
mojo::PendingReceiver<media::mojom::Decryptor> receiver) final; mojo::PendingReceiver<media::mojom::Decryptor> receiver) final;
......
...@@ -54,18 +54,18 @@ void MediaInterfaceFactory::CreateVideoDecoder( ...@@ -54,18 +54,18 @@ void MediaInterfaceFactory::CreateVideoDecoder(
void MediaInterfaceFactory::CreateDefaultRenderer( void MediaInterfaceFactory::CreateDefaultRenderer(
const std::string& audio_device_id, const std::string& audio_device_id,
media::mojom::RendererRequest request) { mojo::PendingReceiver<media::mojom::Renderer> receiver) {
if (!task_runner_->BelongsToCurrentThread()) { if (!task_runner_->BelongsToCurrentThread()) {
task_runner_->PostTask( task_runner_->PostTask(
FROM_HERE, FROM_HERE,
base::BindOnce(&MediaInterfaceFactory::CreateDefaultRenderer, base::BindOnce(&MediaInterfaceFactory::CreateDefaultRenderer,
weak_this_, audio_device_id, std::move(request))); weak_this_, audio_device_id, std::move(receiver)));
return; return;
} }
DVLOG(1) << __func__; DVLOG(1) << __func__;
GetMediaInterfaceFactory()->CreateDefaultRenderer(audio_device_id, GetMediaInterfaceFactory()->CreateDefaultRenderer(audio_device_id,
std::move(request)); std::move(receiver));
} }
#if BUILDFLAG(ENABLE_CAST_RENDERER) #if BUILDFLAG(ENABLE_CAST_RENDERER)
...@@ -131,16 +131,16 @@ void MediaInterfaceFactory::CreateFlingingRenderer( ...@@ -131,16 +131,16 @@ void MediaInterfaceFactory::CreateFlingingRenderer(
void MediaInterfaceFactory::CreateCdm( void MediaInterfaceFactory::CreateCdm(
const std::string& key_system, const std::string& key_system,
media::mojom::ContentDecryptionModuleRequest request) { mojo::PendingReceiver<media::mojom::ContentDecryptionModule> receiver) {
if (!task_runner_->BelongsToCurrentThread()) { if (!task_runner_->BelongsToCurrentThread()) {
task_runner_->PostTask( task_runner_->PostTask(
FROM_HERE, base::BindOnce(&MediaInterfaceFactory::CreateCdm, weak_this_, FROM_HERE, base::BindOnce(&MediaInterfaceFactory::CreateCdm, weak_this_,
key_system, std::move(request))); key_system, std::move(receiver)));
return; return;
} }
DVLOG(1) << __func__ << ": key_system = " << key_system; DVLOG(1) << __func__ << ": key_system = " << key_system;
GetMediaInterfaceFactory()->CreateCdm(key_system, std::move(request)); GetMediaInterfaceFactory()->CreateCdm(key_system, std::move(receiver));
} }
void MediaInterfaceFactory::CreateDecryptor( void MediaInterfaceFactory::CreateDecryptor(
......
...@@ -39,8 +39,9 @@ class CONTENT_EXPORT MediaInterfaceFactory ...@@ -39,8 +39,9 @@ class CONTENT_EXPORT MediaInterfaceFactory
mojo::PendingReceiver<media::mojom::AudioDecoder> receiver) final; mojo::PendingReceiver<media::mojom::AudioDecoder> receiver) final;
void CreateVideoDecoder( void CreateVideoDecoder(
mojo::PendingReceiver<media::mojom::VideoDecoder> receiver) final; mojo::PendingReceiver<media::mojom::VideoDecoder> receiver) final;
void CreateDefaultRenderer(const std::string& audio_device_id, void CreateDefaultRenderer(
media::mojom::RendererRequest request) final; const std::string& audio_device_id,
mojo::PendingReceiver<media::mojom::Renderer> receiver) final;
#if BUILDFLAG(ENABLE_CAST_RENDERER) #if BUILDFLAG(ENABLE_CAST_RENDERER)
void CreateCastRenderer( void CreateCastRenderer(
const base::UnguessableToken& overlay_plane_id, const base::UnguessableToken& overlay_plane_id,
...@@ -60,7 +61,8 @@ class CONTENT_EXPORT MediaInterfaceFactory ...@@ -60,7 +61,8 @@ class CONTENT_EXPORT MediaInterfaceFactory
renderer_extension_receiver) final; renderer_extension_receiver) final;
#endif // defined(OS_ANDROID) #endif // defined(OS_ANDROID)
void CreateCdm(const std::string& key_system, void CreateCdm(const std::string& key_system,
media::mojom::ContentDecryptionModuleRequest request) final; mojo::PendingReceiver<media::mojom::ContentDecryptionModule>
receiver) final;
void CreateDecryptor( void CreateDecryptor(
int cdm_id, int cdm_id,
mojo::PendingReceiver<media::mojom::Decryptor> receiver) final; mojo::PendingReceiver<media::mojom::Decryptor> receiver) final;
......
...@@ -21,7 +21,8 @@ interface InterfaceFactory { ...@@ -21,7 +21,8 @@ interface InterfaceFactory {
CreateVideoDecoder(pending_receiver<VideoDecoder> video_decoder); CreateVideoDecoder(pending_receiver<VideoDecoder> video_decoder);
// Creates a regular media::Renderer (DefaultRendererFactory). // Creates a regular media::Renderer (DefaultRendererFactory).
CreateDefaultRenderer(string audio_device_id, Renderer& renderer); CreateDefaultRenderer(string audio_device_id,
pending_receiver<Renderer> renderer);
[EnableIf=enable_cast_renderer] [EnableIf=enable_cast_renderer]
// Creates a CastRenderer (CastRendererFactory). // Creates a CastRenderer (CastRendererFactory).
...@@ -62,7 +63,7 @@ interface InterfaceFactory { ...@@ -62,7 +63,7 @@ interface InterfaceFactory {
// It should be a reverse domain name, e.g. "com.example.somesystem". However, // It should be a reverse domain name, e.g. "com.example.somesystem". However,
// this call may be initiated by an untrusted process (e.g. renderer), so the // this call may be initiated by an untrusted process (e.g. renderer), so the
// implementation must fully validate |key_system| before creating the CDM. // implementation must fully validate |key_system| before creating the CDM.
CreateCdm(string key_system, ContentDecryptionModule& cdm); CreateCdm(string key_system, pending_receiver<ContentDecryptionModule> cdm);
// Creates a Decryptor associated with the |cdm_id|. // Creates a Decryptor associated with the |cdm_id|.
CreateDecryptor(int32 cdm_id, pending_receiver<Decryptor> decryptor); CreateDecryptor(int32 cdm_id, pending_receiver<Decryptor> decryptor);
......
...@@ -95,7 +95,7 @@ void InterfaceFactoryImpl::CreateVideoDecoder( ...@@ -95,7 +95,7 @@ void InterfaceFactoryImpl::CreateVideoDecoder(
void InterfaceFactoryImpl::CreateDefaultRenderer( void InterfaceFactoryImpl::CreateDefaultRenderer(
const std::string& audio_device_id, const std::string& audio_device_id,
mojo::InterfaceRequest<mojom::Renderer> request) { mojo::PendingReceiver<mojom::Renderer> receiver) {
DVLOG(2) << __func__; DVLOG(2) << __func__;
#if BUILDFLAG(ENABLE_MOJO_RENDERER) #if BUILDFLAG(ENABLE_MOJO_RENDERER)
auto renderer = mojo_media_client_->CreateRenderer( auto renderer = mojo_media_client_->CreateRenderer(
...@@ -112,15 +112,14 @@ void InterfaceFactoryImpl::CreateDefaultRenderer( ...@@ -112,15 +112,14 @@ void InterfaceFactoryImpl::CreateDefaultRenderer(
MojoRendererService* mojo_renderer_service_ptr = mojo_renderer_service.get(); MojoRendererService* mojo_renderer_service_ptr = mojo_renderer_service.get();
mojo::BindingId binding_id = renderer_bindings_.AddBinding( mojo::ReceiverId receiver_id = renderer_receivers_.Add(
std::move(mojo_renderer_service), std::move(request)); std::move(mojo_renderer_service), std::move(receiver));
// base::Unretained() is safe because the callback will be fired by // base::Unretained() is safe because the callback will be fired by
// |mojo_renderer_service|, which is owned by |renderer_bindings_|. // |mojo_renderer_service|, which is owned by |renderer_receivers_|.
mojo_renderer_service_ptr->set_bad_message_cb( mojo_renderer_service_ptr->set_bad_message_cb(base::Bind(
base::Bind(base::IgnoreResult( base::IgnoreResult(&mojo::UniqueReceiverSet<mojom::Renderer>::Remove),
&mojo::StrongBindingSet<mojom::Renderer>::RemoveBinding), base::Unretained(&renderer_receivers_), receiver_id));
base::Unretained(&renderer_bindings_), binding_id));
#endif // BUILDFLAG(ENABLE_MOJO_RENDERER) #endif // BUILDFLAG(ENABLE_MOJO_RENDERER)
} }
...@@ -143,15 +142,14 @@ void InterfaceFactoryImpl::CreateCastRenderer( ...@@ -143,15 +142,14 @@ void InterfaceFactoryImpl::CreateCastRenderer(
MojoRendererService* mojo_renderer_service_ptr = mojo_renderer_service.get(); MojoRendererService* mojo_renderer_service_ptr = mojo_renderer_service.get();
mojo::BindingId binding_id = renderer_bindings_.AddBinding( mojo::ReceiverId receiver_id = renderer_receivers_.Add(
std::move(mojo_renderer_service), std::move(receiver)); std::move(mojo_renderer_service), std::move(receiver));
// base::Unretained() is safe because the callback will be fired by // base::Unretained() is safe because the callback will be fired by
// |mojo_renderer_service|, which is owned by |renderer_bindings_|. // |mojo_renderer_service|, which is owned by |renderer_receivers_|.
mojo_renderer_service_ptr->set_bad_message_cb(base::BindRepeating( mojo_renderer_service_ptr->set_bad_message_cb(base::BindRepeating(
base::IgnoreResult( base::IgnoreResult(&mojo::UniqueReceiverSet<mojom::Renderer>::Remove),
&mojo::StrongBindingSet<mojom::Renderer>::RemoveBinding), base::Unretained(&renderer_receivers_), receiver_id));
base::Unretained(&renderer_bindings_), binding_id));
} }
#endif #endif
...@@ -176,16 +174,16 @@ void InterfaceFactoryImpl::CreateFlingingRenderer( ...@@ -176,16 +174,16 @@ void InterfaceFactoryImpl::CreateFlingingRenderer(
void InterfaceFactoryImpl::CreateCdm( void InterfaceFactoryImpl::CreateCdm(
const std::string& /* key_system */, const std::string& /* key_system */,
mojo::InterfaceRequest<mojom::ContentDecryptionModule> request) { mojo::PendingReceiver<mojom::ContentDecryptionModule> receiver) {
DVLOG(2) << __func__; DVLOG(2) << __func__;
#if BUILDFLAG(ENABLE_MOJO_CDM) #if BUILDFLAG(ENABLE_MOJO_CDM)
CdmFactory* cdm_factory = GetCdmFactory(); CdmFactory* cdm_factory = GetCdmFactory();
if (!cdm_factory) if (!cdm_factory)
return; return;
cdm_bindings_.AddBinding( cdm_receivers_.Add(
std::make_unique<MojoCdmService>(cdm_factory, &cdm_service_context_), std::make_unique<MojoCdmService>(cdm_factory, &cdm_service_context_),
std::move(request)); std::move(receiver));
#endif // BUILDFLAG(ENABLE_MOJO_CDM) #endif // BUILDFLAG(ENABLE_MOJO_CDM)
} }
...@@ -241,12 +239,12 @@ bool InterfaceFactoryImpl::IsEmpty() { ...@@ -241,12 +239,12 @@ bool InterfaceFactoryImpl::IsEmpty() {
#endif // BUILDFLAG(ENABLE_MOJO_VIDEO_DECODER) #endif // BUILDFLAG(ENABLE_MOJO_VIDEO_DECODER)
#if BUILDFLAG(ENABLE_MOJO_RENDERER) #if BUILDFLAG(ENABLE_MOJO_RENDERER)
if (!renderer_bindings_.empty()) if (!renderer_receivers_.empty())
return false; return false;
#endif // BUILDFLAG(ENABLE_MOJO_RENDERER) #endif // BUILDFLAG(ENABLE_MOJO_RENDERER)
#if BUILDFLAG(ENABLE_MOJO_CDM) #if BUILDFLAG(ENABLE_MOJO_CDM)
if (!cdm_bindings_.empty()) if (!cdm_receivers_.empty())
return false; return false;
#endif // BUILDFLAG(ENABLE_MOJO_CDM) #endif // BUILDFLAG(ENABLE_MOJO_CDM)
...@@ -277,11 +275,11 @@ void InterfaceFactoryImpl::SetBindingConnectionErrorHandler() { ...@@ -277,11 +275,11 @@ void InterfaceFactoryImpl::SetBindingConnectionErrorHandler() {
#endif // BUILDFLAG(ENABLE_MOJO_VIDEO_DECODER) #endif // BUILDFLAG(ENABLE_MOJO_VIDEO_DECODER)
#if BUILDFLAG(ENABLE_MOJO_RENDERER) #if BUILDFLAG(ENABLE_MOJO_RENDERER)
renderer_bindings_.set_connection_error_handler(connection_error_cb); renderer_receivers_.set_disconnect_handler(connection_error_cb);
#endif // BUILDFLAG(ENABLE_MOJO_RENDERER) #endif // BUILDFLAG(ENABLE_MOJO_RENDERER)
#if BUILDFLAG(ENABLE_MOJO_CDM) #if BUILDFLAG(ENABLE_MOJO_CDM)
cdm_bindings_.set_connection_error_handler(connection_error_cb); cdm_receivers_.set_disconnect_handler(connection_error_cb);
#endif // BUILDFLAG(ENABLE_MOJO_CDM) #endif // BUILDFLAG(ENABLE_MOJO_CDM)
#if BUILDFLAG(ENABLE_LIBRARY_CDMS) #if BUILDFLAG(ENABLE_LIBRARY_CDMS)
......
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
#include "media/mojo/services/mojo_cdm_service_context.h" #include "media/mojo/services/mojo_cdm_service_context.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/remote.h" #include "mojo/public/cpp/bindings/remote.h"
#include "mojo/public/cpp/bindings/unique_receiver_set.h" #include "mojo/public/cpp/bindings/unique_receiver_set.h"
#include "services/service_manager/public/cpp/connector.h" #include "services/service_manager/public/cpp/connector.h"
...@@ -47,8 +48,9 @@ class InterfaceFactoryImpl : public DeferredDestroy<mojom::InterfaceFactory> { ...@@ -47,8 +48,9 @@ class InterfaceFactoryImpl : public DeferredDestroy<mojom::InterfaceFactory> {
mojo::PendingReceiver<mojom::AudioDecoder> receiver) final; mojo::PendingReceiver<mojom::AudioDecoder> receiver) final;
void CreateVideoDecoder( void CreateVideoDecoder(
mojo::PendingReceiver<mojom::VideoDecoder> receiver) final; mojo::PendingReceiver<mojom::VideoDecoder> receiver) final;
void CreateDefaultRenderer(const std::string& audio_device_id, void CreateDefaultRenderer(
mojom::RendererRequest request) final; const std::string& audio_device_id,
mojo::PendingReceiver<mojom::Renderer> receiver) final;
#if BUILDFLAG(ENABLE_CAST_RENDERER) #if BUILDFLAG(ENABLE_CAST_RENDERER)
void CreateCastRenderer( void CreateCastRenderer(
const base::UnguessableToken& overlay_plane_id, const base::UnguessableToken& overlay_plane_id,
...@@ -67,8 +69,9 @@ class InterfaceFactoryImpl : public DeferredDestroy<mojom::InterfaceFactory> { ...@@ -67,8 +69,9 @@ class InterfaceFactoryImpl : public DeferredDestroy<mojom::InterfaceFactory> {
client_extension, client_extension,
mojo::PendingReceiver<mojom::Renderer> receiver) final; mojo::PendingReceiver<mojom::Renderer> receiver) final;
#endif // defined(OS_ANDROID) #endif // defined(OS_ANDROID)
void CreateCdm(const std::string& key_system, void CreateCdm(
mojom::ContentDecryptionModuleRequest request) final; const std::string& key_system,
mojo::PendingReceiver<mojom::ContentDecryptionModule> receiver) final;
void CreateDecryptor(int cdm_id, void CreateDecryptor(int cdm_id,
mojo::PendingReceiver<mojom::Decryptor> receiver) final; mojo::PendingReceiver<mojom::Decryptor> receiver) final;
void CreateCdmProxy(const base::Token& cdm_guid, void CreateCdmProxy(const base::Token& cdm_guid,
...@@ -105,12 +108,12 @@ class InterfaceFactoryImpl : public DeferredDestroy<mojom::InterfaceFactory> { ...@@ -105,12 +108,12 @@ class InterfaceFactoryImpl : public DeferredDestroy<mojom::InterfaceFactory> {
#if BUILDFLAG(ENABLE_MOJO_RENDERER) || BUILDFLAG(ENABLE_CAST_RENDERER) #if BUILDFLAG(ENABLE_MOJO_RENDERER) || BUILDFLAG(ENABLE_CAST_RENDERER)
// TODO(xhwang): Use MojoMediaLog for Renderer. // TODO(xhwang): Use MojoMediaLog for Renderer.
NullMediaLog media_log_; NullMediaLog media_log_;
mojo::StrongBindingSet<mojom::Renderer> renderer_bindings_; mojo::UniqueReceiverSet<mojom::Renderer> renderer_receivers_;
#endif // BUILDFLAG(ENABLE_MOJO_RENDERER) || BUILDFLAG(ENABLE_CAST_RENDERER) #endif // BUILDFLAG(ENABLE_MOJO_RENDERER) || BUILDFLAG(ENABLE_CAST_RENDERER)
#if BUILDFLAG(ENABLE_MOJO_CDM) #if BUILDFLAG(ENABLE_MOJO_CDM)
std::unique_ptr<CdmFactory> cdm_factory_; std::unique_ptr<CdmFactory> cdm_factory_;
mojo::StrongBindingSet<mojom::ContentDecryptionModule> cdm_bindings_; mojo::UniqueReceiverSet<mojom::ContentDecryptionModule> cdm_receivers_;
#endif // BUILDFLAG(ENABLE_MOJO_CDM) #endif // BUILDFLAG(ENABLE_MOJO_CDM)
#if BUILDFLAG(ENABLE_LIBRARY_CDMS) #if BUILDFLAG(ENABLE_LIBRARY_CDMS)
......
...@@ -31,7 +31,6 @@ ...@@ -31,7 +31,6 @@
#include "media/mojo/services/media_interface_provider.h" #include "media/mojo/services/media_interface_provider.h"
#include "media/mojo/services/media_manifest.h" #include "media/mojo/services/media_manifest.h"
#include "mojo/public/cpp/bindings/associated_binding.h" #include "mojo/public/cpp/bindings/associated_binding.h"
#include "mojo/public/cpp/bindings/interface_request.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/remote.h"
#include "services/service_manager/public/cpp/manifest_builder.h" #include "services/service_manager/public/cpp/manifest_builder.h"
...@@ -162,8 +161,9 @@ class MediaServiceTest : public testing::Test { ...@@ -162,8 +161,9 @@ class MediaServiceTest : public testing::Test {
auto provider = std::make_unique<MediaInterfaceProvider>( auto provider = std::make_unique<MediaInterfaceProvider>(
host_interfaces.InitWithNewPipeAndPassReceiver()); host_interfaces.InitWithNewPipeAndPassReceiver());
connector()->BindInterface(mojom::kMediaServiceName, &media_service_); connector()->Connect(mojom::kMediaServiceName,
media_service_.set_connection_error_handler( media_service_.BindNewPipeAndPassReceiver());
media_service_.set_disconnect_handler(
base::BindRepeating(&MediaServiceTest::MediaServiceConnectionClosed, base::BindRepeating(&MediaServiceTest::MediaServiceConnectionClosed,
base::Unretained(this))); base::Unretained(this)));
media_service_->CreateInterfaceFactory( media_service_->CreateInterfaceFactory(
...@@ -180,8 +180,9 @@ class MediaServiceTest : public testing::Test { ...@@ -180,8 +180,9 @@ class MediaServiceTest : public testing::Test {
// Returns the CDM ID associated with the CDM. // Returns the CDM ID associated with the CDM.
int InitializeCdm(const std::string& key_system, bool expected_result) { int InitializeCdm(const std::string& key_system, bool expected_result) {
base::RunLoop run_loop; base::RunLoop run_loop;
interface_factory_->CreateCdm(key_system, mojo::MakeRequest(&cdm_)); interface_factory_->CreateCdm(key_system,
cdm_.set_connection_error_handler(base::BindRepeating( cdm_.BindNewPipeAndPassReceiver());
cdm_.set_disconnect_handler(base::BindRepeating(
&MediaServiceTest::OnCdmConnectionError, base::Unretained(this))); &MediaServiceTest::OnCdmConnectionError, base::Unretained(this)));
int cdm_id = CdmContext::kInvalidCdmId; int cdm_id = CdmContext::kInvalidCdmId;
...@@ -253,8 +254,8 @@ class MediaServiceTest : public testing::Test { ...@@ -253,8 +254,8 @@ class MediaServiceTest : public testing::Test {
void InitializeRenderer(const VideoDecoderConfig& video_config, void InitializeRenderer(const VideoDecoderConfig& video_config,
bool expected_result) { bool expected_result) {
base::RunLoop run_loop; base::RunLoop run_loop;
interface_factory_->CreateDefaultRenderer(std::string(), interface_factory_->CreateDefaultRenderer(
mojo::MakeRequest(&renderer_)); std::string(), renderer_.BindNewPipeAndPassReceiver());
video_stream_.set_video_decoder_config(video_config); video_stream_.set_video_decoder_config(video_config);
...@@ -284,11 +285,11 @@ class MediaServiceTest : public testing::Test { ...@@ -284,11 +285,11 @@ class MediaServiceTest : public testing::Test {
service_manager::TestServiceManager test_service_manager_; service_manager::TestServiceManager test_service_manager_;
service_manager::TestService test_service_; service_manager::TestService test_service_;
mojom::MediaServicePtr media_service_; mojo::Remote<mojom::MediaService> media_service_;
mojo::Remote<mojom::InterfaceFactory> interface_factory_; mojo::Remote<mojom::InterfaceFactory> interface_factory_;
mojom::ContentDecryptionModulePtr cdm_; mojo::Remote<mojom::ContentDecryptionModule> cdm_;
mojo::Remote<mojom::CdmProxy> cdm_proxy_; mojo::Remote<mojom::CdmProxy> cdm_proxy_;
mojom::RendererPtr renderer_; mojo::Remote<mojom::Renderer> renderer_;
NiceMock<MockCdmProxyClient> cdm_proxy_client_; NiceMock<MockCdmProxyClient> cdm_proxy_client_;
mojo::AssociatedBinding<mojom::CdmProxyClient> cdm_proxy_client_binding_; mojo::AssociatedBinding<mojom::CdmProxyClient> cdm_proxy_client_binding_;
......
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