// Copyright 2017 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. module media.mojom; import "media/mojo/interfaces/interface_factory.mojom"; import "mojo/common/file_path.mojom"; import "sandbox/mac/mojom/seatbelt_extension_token.mojom"; import "services/service_manager/public/interfaces/interface_provider.mojom"; // TODO(xhwang): Merge this file with media_service.mojom once EnabledIf // attribute is supported in mojom files. See https://crbug.com/676224 // A service to provide media InterfaceFactory, typically to the media pipeline // running in the renderer process. The service itself runs in the process // specified by the |mojo_media_host| gn build flag, or in the utility process // when this service runs as an standalone CDM service (see gn build flag // |enable_standalone_cdm_service| for details). The service is always connected // from the browser process. // TODO(crbug.com/771791): Separate CdmService from MediaService. interface MediaService { // Loads the CDM at |cdm_path| into the process. // Since the client will not know whether LoadCdm() has been called by a // previous MediaService instance, the client should always call it after // interface connection. If the CDM is already loaded, this will be a no-op. // |token_provider| can be used to get a sandbox seatbelt extension token // synchronously so that the MediaService instance can load the CDM and other // needed files within the Mac sandbox. LoadCdm(mojo.common.mojom.FilePath cdm_path, SeatbeltExtensionTokenProvider? token_provider); // Requests an InterfaceFactory. |host_interfaces| can optionally be used to // provide interfaces hosted by the caller to the remote InterfaceFactory // implementation. CreateInterfaceFactory( InterfaceFactory& factory, service_manager.mojom.InterfaceProvider? host_interfaces); }; // An interface to provide a sandbox seatbelt extension token synchronously. interface SeatbeltExtensionTokenProvider { [Sync] GetTokens() => (array tokens); };