author Byron Campen [:bwc] <>
Thu, 22 May 2014 14:14:56 -0700
changeset 205443 a7cb611859922955b239281ac730ecf31b5db464
child 298099 2981db92416a47b00f646bada98982f8fb48b25f
permissions -rw-r--r--
Bug 998989 - Part 1: ChromeOnly API for getting notifications when PCs are initted, or change ICE connection/gathering state. Also, expose the PC id, and allow getAllStats to be filtered by the same. r=jib, r=bz

/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* 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

  Right now, it is not possible to add static functions to a JS implemented
  interface (see bug 863952), so we need to create a simple interface with a
  trivial constructor and no data to hold these functions that really ought to
  be static in mozRTCPeerConnection.
  TODO( Merge this code into RTCPeerConnection once this
  limitation is gone. (Bug 1017082)

enum RTCLifecycleEvent {

callback PeerConnectionLifecycleCallback = void (mozRTCPeerConnection pc,
                                                 unsigned long long windowId,
                                                 RTCLifecycleEvent eventType);

interface mozRTCPeerConnectionStatic {

  /* One slot per window (the window in which the register call is made),
     automatically unregistered when window goes away.
     Fires when a PC is created, and whenever the ICE connection state or
     gathering state changes. */
  void registerPeerConnectionLifecycleCallback(
    PeerConnectionLifecycleCallback cb);