chromium/services/media_session/public/mojom/media_session_service.mojom

// Copyright 2018 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_session.mojom;

import "services/media_session/public/mojom/audio_focus.mojom";
import "services/media_session/public/mojom/media_controller.mojom";

// The main interface to the Media Session service. Privileged and bound only by
// the browser process. In Lacros the service does not exist in lacros-chrome
// which will forward requests to ash-chrome which hosts the service in its
// own browser process.
// Next method id: 4
[Stable, Uuid="efd33ccb-8b58-4ddc-84a2-ba58d052979b"]
interface MediaSessionService {
  // Binds an AudioFocusManager endpoint in the service.
  BindAudioFocusManager@0(pending_receiver<AudioFocusManager> receiver);

  // Binds an endpoint for debugging the AudioFocusManager.
  BindAudioFocusManagerDebug@1(pending_receiver<AudioFocusManagerDebug> receiver);

  // Binds a MediaControllerManager endpoint in the service.
  BindMediaControllerManager@2(pending_receiver<MediaControllerManager> receiver);

  // Binds a receiver to this service. This is used by Lacros to allow one
  // browser process (lacros-chrome) to bind the entire MediaSessionService
  // interface in another process (ash-chrome).
  Bind@3(pending_receiver<MediaSessionService> receiver);
};