blob: 8c641b89d508ca81aefb7c8320c3747cad7f301b [file] [log] [blame]
// Copyright 2016 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/mojom/frame_interface_factory.mojom";
import "media/mojo/mojom/interface_factory.mojom";
import "sandbox/policy/mojom/sandbox.mojom";
// Determined in BUILD.gn from //media/media_options.gni.
[EnableIf=mojo_media_in_browser]
const sandbox.mojom.Sandbox kMediaSandbox = sandbox.mojom.Sandbox.kNoSandbox;
[EnableIf=mojo_media_in_gpu]
const sandbox.mojom.Sandbox kMediaSandbox = sandbox.mojom.Sandbox.kGpu;
// This placeholder is required to allow compilation.
[EnableIf=mojo_media_service_unused]
const sandbox.mojom.Sandbox kMediaSandbox = sandbox.mojom.Sandbox.kService;
// 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. The service is always
// connected from the browser process.
[ServiceSandbox=kMediaSandbox]
interface MediaService {
// Requests an InterfaceFactory. |frame_interfaces| can optionally be used to
// provide interfaces hosted by the caller to the remote InterfaceFactory
// implementation.
CreateInterfaceFactory(
pending_receiver<InterfaceFactory> factory,
pending_remote<FrameInterfaceFactory> frame_interfaces);
};