1
    2
    3
    4
    5
    6
    7
    8
    9
   10
   11
   12
   13
   14
   15
   16
   17
   18
   19
   20
   21
   22
   23
   24
   25
   26
   27
   28
   29
   30
   31
   32

media / mojo / mojom / media_service.mojom [blame]

// Copyright 2016 The Chromium Authors
// 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);
};