author Marian-Vasile Laza <>
Wed, 01 Dec 2021 07:02:05 +0200
changeset 600693 89800efd9e5cfcf0146767961a63d5c4e2a86e2c
parent 579262 b7eaa0c29a5f221fdcdfcf69b2b8d4303cfecf02
permissions -rw-r--r--
Merge autoland to mozilla-central. a=merge

/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
 * You can obtain one at */

#include "nsISupports.idl"

interface nsIArray;
interface nsIDOMWindow;
interface nsIMediaDevice;

#define NS_MEDIAMANAGERSERVICE_CID {0xabc622ea, 0x9655, 0x4123, {0x80, 0xd9, 0x22, 0x62, 0x1b, 0xdd, 0x54, 0x65}}

[scriptable, builtinclass, uuid(24b23e01-33fd-401f-ba25-6e52658750b0)]
interface nsIMediaManagerService : nsISupports
  /* return a array of inner windows that have active captures */
  readonly attribute nsIArray activeMediaCaptureWindows;

  /* possible states for camera and microphone capture */
  const unsigned short STATE_NOCAPTURE = 0;
  const unsigned short STATE_CAPTURE_ENABLED = 1;
  const unsigned short STATE_CAPTURE_DISABLED = 2;

  /* Get the capture state for the given window. This will not check
   * descendants, such as iframes. Callers who need to check descendants should
   * iterate descendants manually and call this on each.
  void mediaCaptureWindowState(in nsIDOMWindow aWindow,
                               out unsigned short aCamera,
                               out unsigned short aMicrophone,
                               out unsigned short aScreenShare,
                               out unsigned short aWindowShare,
                               out unsigned short aBrowserShare,
                               out Array<nsIMediaDevice> devices);

  /* Clear per-orgin list of persistent DeviceIds stored for enumerateDevices
     sinceTime is milliseconds since 1 January 1970 00:00:00 UTC. 0 = clear all */
  void sanitizeDeviceIds(in long long sinceWhen);