Commit 4ecda5ce authored by Gyuyoung Kim's avatar Gyuyoung Kim Committed by Commit Bot

Migrate CdmService::CreateCdmFactory to new Mojo type more

This CL applies pending_receiver to the first parameter of
CreateCdmFactory function in CdmService interface.

Bug: 955171
Change-Id: I3c262ce12c9a9a0cc095ff71a6d9901a73d2c320
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1880412
Commit-Queue: Gyuyoung Kim <gyuyoung@igalia.com>
Reviewed-by: default avatarSam McNally <sammc@chromium.org>
Reviewed-by: default avatarChrome Cunningham <chcunningham@chromium.org>
Reviewed-by: default avatarKen Rockot <rockot@google.com>
Cr-Commit-Position: refs/heads/master@{#709718}
parent 45778863
...@@ -363,15 +363,15 @@ media::mojom::CdmFactory* MediaInterfaceProxy::ConnectToCdmService( ...@@ -363,15 +363,15 @@ media::mojom::CdmFactory* MediaInterfaceProxy::ConnectToCdmService(
cdm_service->LoadCdm(cdm_path); cdm_service->LoadCdm(cdm_path);
#endif // defined(OS_MACOSX) #endif // defined(OS_MACOSX)
media::mojom::CdmFactoryPtr cdm_factory_ptr; mojo::Remote<media::mojom::CdmFactory> cdm_factory_remote;
cdm_service->CreateCdmFactory(MakeRequest(&cdm_factory_ptr), cdm_service->CreateCdmFactory(cdm_factory_remote.BindNewPipeAndPassReceiver(),
GetFrameServices(cdm_guid, cdm_file_system_id)); GetFrameServices(cdm_guid, cdm_file_system_id));
cdm_factory_ptr.set_connection_error_handler( cdm_factory_remote.set_disconnect_handler(
base::BindOnce(&MediaInterfaceProxy::OnCdmServiceConnectionError, base::BindOnce(&MediaInterfaceProxy::OnCdmServiceConnectionError,
base::Unretained(this), cdm_guid)); base::Unretained(this), cdm_guid));
auto* cdm_factory = cdm_factory_ptr.get(); auto* cdm_factory = cdm_factory_remote.get();
cdm_factory_map_.emplace(cdm_guid, std::move(cdm_factory_ptr)); cdm_factory_map_.emplace(cdm_guid, std::move(cdm_factory_remote));
return cdm_factory; return cdm_factory;
} }
......
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
#include "mojo/public/cpp/bindings/binding.h" #include "mojo/public/cpp/bindings/binding.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/remote.h"
#include "services/service_manager/public/mojom/interface_provider.mojom.h" #include "services/service_manager/public/mojom/interface_provider.mojom.h"
namespace media { namespace media {
...@@ -141,9 +142,10 @@ class MediaInterfaceProxy : public media::mojom::InterfaceFactory { ...@@ -141,9 +142,10 @@ class MediaInterfaceProxy : public media::mojom::InterfaceFactory {
#endif // BUILDFLAG(ENABLE_CAST_RENDERER) #endif // BUILDFLAG(ENABLE_CAST_RENDERER)
#if BUILDFLAG(ENABLE_LIBRARY_CDMS) #if BUILDFLAG(ENABLE_LIBRARY_CDMS)
// CDM GUID to CDM InterfaceFactoryPtr mapping, where the InterfaceFactory // CDM GUID to CDM InterfaceFactoryRemote mapping, where the InterfaceFactory
// instances live in the standalone kCdmServiceName service instances. // instances live in the standalone kCdmServiceName service instances.
std::map<base::Token, media::mojom::CdmFactoryPtr> cdm_factory_map_; std::map<base::Token, mojo::Remote<media::mojom::CdmFactory>>
cdm_factory_map_;
#endif // BUILDFLAG(ENABLE_LIBRARY_CDMS) #endif // BUILDFLAG(ENABLE_LIBRARY_CDMS)
base::ThreadChecker thread_checker_; base::ThreadChecker thread_checker_;
......
...@@ -31,7 +31,7 @@ interface CdmService { ...@@ -31,7 +31,7 @@ interface CdmService {
// Requests an CdmFactory. |host_interfaces| can optionally be used to provide // Requests an CdmFactory. |host_interfaces| can optionally be used to provide
// interfaces hosted by the caller to the remote CdmFactory implementation. // interfaces hosted by the caller to the remote CdmFactory implementation.
CreateCdmFactory( CreateCdmFactory(
CdmFactory& factory, pending_receiver<CdmFactory> factory,
pending_remote<service_manager.mojom.InterfaceProvider> host_interfaces); pending_remote<service_manager.mojom.InterfaceProvider> host_interfaces);
}; };
......
...@@ -228,17 +228,17 @@ void CdmService::LoadCdm(const base::FilePath& cdm_path) { ...@@ -228,17 +228,17 @@ void CdmService::LoadCdm(const base::FilePath& cdm_path) {
} }
void CdmService::CreateCdmFactory( void CdmService::CreateCdmFactory(
mojom::CdmFactoryRequest request, mojo::PendingReceiver<mojom::CdmFactory> receiver,
mojo::PendingRemote<service_manager::mojom::InterfaceProvider> mojo::PendingRemote<service_manager::mojom::InterfaceProvider>
host_interfaces) { host_interfaces) {
// Ignore request if service has already stopped. // Ignore receiver if service has already stopped.
if (!client_) if (!client_)
return; return;
cdm_factory_bindings_.AddBinding( cdm_factory_bindings_.AddBinding(
std::make_unique<CdmFactoryImpl>( std::make_unique<CdmFactoryImpl>(
client_.get(), std::move(host_interfaces), keepalive_->CreateRef()), client_.get(), std::move(host_interfaces), keepalive_->CreateRef()),
std::move(request)); std::move(receiver));
} }
} // namespace media } // namespace media
...@@ -88,7 +88,7 @@ class MEDIA_MOJO_EXPORT CdmService : public service_manager::Service, ...@@ -88,7 +88,7 @@ class MEDIA_MOJO_EXPORT CdmService : public service_manager::Service,
void LoadCdm(const base::FilePath& cdm_path) final; void LoadCdm(const base::FilePath& cdm_path) final;
#endif // defined(OS_MACOSX) #endif // defined(OS_MACOSX)
void CreateCdmFactory( void CreateCdmFactory(
mojom::CdmFactoryRequest request, mojo::PendingReceiver<mojom::CdmFactory> receiver,
mojo::PendingRemote<service_manager::mojom::InterfaceProvider> mojo::PendingRemote<service_manager::mojom::InterfaceProvider>
host_interfaces) final; host_interfaces) final;
......
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