author James Cheng <>
Fri, 05 Aug 2016 13:23:44 -0400
changeset 308428 8ee6f2eb8b349a351f6f76585eb85e0ec2b5c475
parent 265183 42657128cf5602b4844b5913722b94ab4e236588
child 436243 b417c2d937e8b0a4987e61b1d47efae4435a3fde
permissions -rw-r--r--
Bug 1291229 - Fix typo for moving Java bindings to mozilla::java namespace. r=jchen MozReview-Commit-ID: KGAS6EhnwAI

/* -*- 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 RTCPeerConnection.
  TODO( Merge this code into RTCPeerConnection once this
  limitation is gone. (Bug 1017082)

enum RTCLifecycleEvent {

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

interface RTCPeerConnectionStatic {

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