media: Support hosting mojo CDM in a standalone service

Desktop / Chromium - Xiaohan Wang [chromium.org] - 14 July 2017 19:55 EDT

Currently when mojo CDM is enabled it is hosted in the MediaService running in the process specified by "mojo_media_host". However, on some platforms we need to run mojo CDM and other mojo media services in different processes. For example, on desktop platforms, we want to run mojo video decoder in the GPU process, but run the mojo CDM in the utility process.

This CL adds a new build flag "enable_standalone_cdm_service". When enabled, the mojo CDM service will be hosted in a standalone "cdm" service running in the utility process. All other mojo media services will sill be hosted in the "media" servie running in the process specified by "mojo_media_host".

BUG=664364 TEST=Encrypted media browser tests using mojo CDM is still working.

Change-Id: I95be6e05adc9ebcff966b26958ef1d7becdfb487 Reviewed-on: https://chromium-review.googlesource.com/567172 Commit-Queue: Xiaohan Wang

bc1f34b media: Support hosting mojo CDM in a standalone service
content/browser/media/media_interface_proxy.cc | 69 ++++++++++++++++++----
content/browser/media/media_interface_proxy.h | 30 ++++++++--
.../service_manager/service_manager_context.cc | 10 +++-
.../service_manager_connection_impl.cc | 3 +-
content/public/app/BUILD.gn | 1 +
.../public/app/mojo/content_browser_manifest.json | 1 +
content/utility/utility_service_factory.cc | 8 +--
media/media_options.gni | 9 ++-
media/mojo/BUILD.gn | 8 ++-
media/mojo/interfaces/constants.mojom | 4 ++
media/mojo/services/BUILD.gn | 5 ++
media/mojo/services/cdm_manifest.json | 14 +++++
12 files changed, 135 insertions(+), 27 deletions(-)

Upstream: git.chromium.org


  • Share