author Carsten "Tomcat" Book <>
Mon, 12 Jan 2015 09:02:13 +0100
changeset 249072 4583ade26b7e1af024bccacfaa3bccb9a9051e1d
parent 205443 a7cb611859922955b239281ac730ecf31b5db464
child 298099 2981db92416a47b00f646bada98982f8fb48b25f
permissions -rw-r--r--
Backed out changeset df960e299bcd (bug 1108096) for m1 test failures

/* -*- 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);