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(
cdm_service->LoadCdm(cdm_path);
#endif // defined(OS_MACOSX)
media::mojom::CdmFactoryPtr cdm_factory_ptr;
cdm_service->CreateCdmFactory(MakeRequest(&cdm_factory_ptr),
mojo::Remote<media::mojom::CdmFactory> cdm_factory_remote;
cdm_service->CreateCdmFactory(cdm_factory_remote.BindNewPipeAndPassReceiver(),
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::Unretained(this), cdm_guid));
auto* cdm_factory = cdm_factory_ptr.get();
cdm_factory_map_.emplace(cdm_guid, std::move(cdm_factory_ptr));
auto* cdm_factory = cdm_factory_remote.get();
cdm_factory_map_.emplace(cdm_guid, std::move(cdm_factory_remote));
return cdm_factory;
}
......
......@@ -22,6 +22,7 @@
#include "mojo/public/cpp/bindings/binding.h"
#include "mojo/public/cpp/bindings/pending_receiver.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"
namespace media {
......@@ -141,9 +142,10 @@ class MediaInterfaceProxy : public media::mojom::InterfaceFactory {
#endif // BUILDFLAG(ENABLE_CAST_RENDERER)
#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.
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)
base::ThreadChecker thread_checker_;
......
......@@ -31,7 +31,7 @@ interface CdmService {
// Requests an CdmFactory. |host_interfaces| can optionally be used to provide
// interfaces hosted by the caller to the remote CdmFactory implementation.
CreateCdmFactory(
CdmFactory& factory,
pending_receiver<CdmFactory> factory,
pending_remote<service_manager.mojom.InterfaceProvider> host_interfaces);
};
......
......@@ -228,17 +228,17 @@ void CdmService::LoadCdm(const base::FilePath& cdm_path) {
}
void CdmService::CreateCdmFactory(
mojom::CdmFactoryRequest request,
mojo::PendingReceiver<mojom::CdmFactory> receiver,
mojo::PendingRemote<service_manager::mojom::InterfaceProvider>
host_interfaces) {
// Ignore request if service has already stopped.
// Ignore receiver if service has already stopped.
if (!client_)
return;
cdm_factory_bindings_.AddBinding(
std::make_unique<CdmFactoryImpl>(
client_.get(), std::move(host_interfaces), keepalive_->CreateRef()),
std::move(request));
std::move(receiver));
}
} // namespace media
......@@ -88,7 +88,7 @@ class MEDIA_MOJO_EXPORT CdmService : public service_manager::Service,
void LoadCdm(const base::FilePath& cdm_path) final;
#endif // defined(OS_MACOSX)
void CreateCdmFactory(
mojom::CdmFactoryRequest request,
mojo::PendingReceiver<mojom::CdmFactory> receiver,
mojo::PendingRemote<service_manager::mojom::InterfaceProvider>
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