author Bas Schouten <>
Mon, 11 Nov 2013 12:42:07 +1300
changeset 155112 f2e964f107992348465e513b95f604b7732a8345
parent 153807 1413b0652528c6b767a6d1af38da353b010e44cd
child 157122 5bd84d8e22396cfbf07a757f2fabe94199920623
permissions -rw-r--r--
Bug 939049 - Part 2: Add generic ComputeLength code for backends with no such functionality. r=jrmuizel

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

interface nsISupports;

 Constructor (mozRTCPeerConnection domPC)]
interface PeerConnectionObserver
  /* JSEP callbacks */
  void onCreateOfferSuccess(DOMString offer);
  void onCreateOfferError(unsigned long name, DOMString message);
  void onCreateAnswerSuccess(DOMString answer);
  void onCreateAnswerError(unsigned long name, DOMString message);
  void onSetLocalDescriptionSuccess();
  void onSetRemoteDescriptionSuccess();
  void onSetLocalDescriptionError(unsigned long name, DOMString message);
  void onSetRemoteDescriptionError(unsigned long name, DOMString message);
  void onAddIceCandidateSuccess();
  void onAddIceCandidateError(unsigned long name, DOMString message);
  void onIceCandidate(unsigned short level, DOMString mid, DOMString candidate);

  /* Stats callbacks */
  void onGetStatsSuccess(optional RTCStatsReportInternal report);
  void onGetStatsError(unsigned long name, DOMString message);

  /* Data channel callbacks */
  void notifyDataChannel(DataChannel channel);
  void notifyConnection();
  void notifyClosedConnection();

  /* Notification of one of several types of state changed */
  void onStateChange(PCObserverStateType state);

  /* Changes to MediaStreams */
  void onAddStream(MediaStream stream);
  void onRemoveStream();
  void onAddTrack();
  void onRemoveTrack();

  /* Used by c++ to know when Observer goes away */
  readonly attribute nsISupports weakReferent;

  /* Helper function to access supported constraints defined in webidl. Needs to
   * be in a separate webidl object we hold, so putting it here was convenient.
// TODO: Bug 863949
//  MediaConstraintSet getSupportedConstraints(optional
  object getSupportedConstraints(optional
      MediaConstraintSet constraints);