New issue
Advanced search Search tips

Issue 649343 link

Starred by 6 users

Issue metadata

Status: Fixed
Owner: ----
Closed: Dec 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug

Blocked on:
issue 658423
issue 658428
issue 659286



Sign in to add a comment

Expose RTCPeerConnection and related interfaces (currently [NoInterfaceObject] + window.RTCPeerConnection)

Project Member Reported by foolip@chromium.org, Sep 22 2016

Issue description

These are the currently exposed things in Chrome 53, as tested with Object.getOwnPropertyNames(window).filter(name => name.includes('RTC')):

webkitRTCPeerConnection
RTCCertificate
RTCIceCandidate
RTCSessionDescription

Firefox 50 has:

RTCPeerConnection
RTCStatsReport
mozRTCPeerConnection
RTCPeerConnectionIceEvent
RTCSessionDescription
mozRTCSessionDescription
RTCTrackEvent
RTCCertificate
RTCDataChannelEvent
RTCIceCandidate
mozRTCIceCandidate
RTCRtpReceiver
RTCRtpSender

Edge 14 has:

RTCDTMFToneChangeEvent
RTCStatsProvider
RTCDtlsTransport
RTCDtlsTransportStateChangedEvent
RTCDtmfSender
RTCIceCandidatePairChangedEvent
RTCIceGatherer
RTCIceGathererEvent
RTCIceTransport
RTCIceTransportStateChangedEvent
RTCRtpReceiver
RTCRtpSender
RTCSrtpSdesTransport
RTCSsrcConflictEvent

The things in the spec that seem ripe to expose in Blink are:

RTCPeerConnection (in Firefox)
RTCDTMFToneChangeEvent (in Edge)
RTCDataChannel (nowhere yet)
RTCDataChannelEvent (in  Firefox, odd)

RTCDTMFSender is called RTCDtmfSender in Edge and so it's worth considering if the name should change to match that. There are 22 hits in HTTP Archive, originating from something called twilio:
https://github.com/twilio/ortc-adapter/blob/7831cfbdb069749fcb98d79e2f0c5d263a7beccf/lib/rtcpeerconnection.js#L530
 

Comment 1 by foolip@chromium.org, Sep 22 2016

Summary: Expose the RTCPeerConnection and related interfaces (currently [NoInterfaceObject] + window.webkitRTCStatsCallback) (was: Expose the RTCPeerConnection and related interfaces (currently [NoInterfaceObject] + window.webkitMediaStream) )

Comment 2 by foolip@chromium.org, Sep 22 2016

Cc: guidou@chromium.org hta@chromium.org hbos@chromium.org
Status: Available (was: Untriaged)
Anyone eager to expose some interfaces?

Comment 3 by foolip@chromium.org, Sep 22 2016

There are two spec issues around the events that would be best to resolve before exposing their constructors:
https://github.com/w3c/webrtc-pc/issues/816
https://github.com/w3c/webrtc-pc/issues/817

Comment 4 by foolip@chromium.org, Sep 26 2016

Summary: Expose RTCPeerConnection and related interfaces (currently [NoInterfaceObject] + window.webkitRTCStatsCallback) (was: Expose the RTCPeerConnection and related interfaces (currently [NoInterfaceObject] + window.webkitRTCStatsCallback) )

Comment 5 by foolip@chromium.org, Sep 27 2016

Oh, looks like RTCDtmfSender is from http://draft.ortc.org/#rtcdtmfsender*, I've filed https://github.com/w3c/ortc/issues/601

Comment 6 by foolip@chromium.org, Sep 30 2016

Labels: Hotlist-Interop
Summary: Expose RTCPeerConnection and related interfaces (currently [NoInterfaceObject] + window.RTCPeerConnection) (was: Expose RTCPeerConnection and related interfaces (currently [NoInterfaceObject] + window.webkitRTCStatsCallback) )
At this time, I think it would be fine to expose RTCPeerConnection, RTCDataChannel and RTCDataChannelEvent, waiting with *DTMF* until https://github.com/w3c/ortc/issues/601 is resolved in one way or another.

Any takers?
Project Member

Comment 8 by bugdroid1@chromium.org, Oct 21 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/15d04a3473cb60cba6ceb7205353df67642126f7

commit 15d04a3473cb60cba6ceb7205353df67642126f7
Author: foolip <foolip@chromium.org>
Date: Fri Oct 21 17:47:11 2016

Merge RTCConfiguration into WebRTCConfiguration

This makes WebRTCConfiguration into a data struct instead of wrapping a
RTCConfiguration. The motivation for this is to introduce
RTCConfiguration as an IDL dictionary, at which point the extra layer
starts to look unnecessary.

BUG= 649343 

Review-Url: https://chromiumcodereview.appspot.com/2415673003
Cr-Commit-Position: refs/heads/master@{#426836}

[modify] https://crrev.com/15d04a3473cb60cba6ceb7205353df67642126f7/content/renderer/media/rtc_peer_connection_handler.cc
[modify] https://crrev.com/15d04a3473cb60cba6ceb7205353df67642126f7/third_party/WebKit/Source/modules/peerconnection/RTCPeerConnection.cpp
[modify] https://crrev.com/15d04a3473cb60cba6ceb7205353df67642126f7/third_party/WebKit/Source/modules/peerconnection/RTCPeerConnection.h
[modify] https://crrev.com/15d04a3473cb60cba6ceb7205353df67642126f7/third_party/WebKit/Source/platform/BUILD.gn
[delete] https://crrev.com/ff8dfc8dad9f98b4022c1108335820204fee3c70/third_party/WebKit/Source/platform/exported/WebRTCConfiguration.cpp
[delete] https://crrev.com/ff8dfc8dad9f98b4022c1108335820204fee3c70/third_party/WebKit/Source/platform/peerconnection/RTCConfiguration.h
[modify] https://crrev.com/15d04a3473cb60cba6ceb7205353df67642126f7/third_party/WebKit/public/platform/WebRTCConfiguration.h
[modify] https://crrev.com/15d04a3473cb60cba6ceb7205353df67642126f7/third_party/WebKit/public/platform/WebRTCPeerConnectionHandler.h

Comment 9 by foolip@chromium.org, Oct 21 2016

Blockedon: 658423
Blockedon: 658428
Project Member

Comment 11 by bugdroid1@chromium.org, Oct 24 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/379271912cc80682629cc26c7199f89841e3c038

commit 379271912cc80682629cc26c7199f89841e3c038
Author: foolip <foolip@chromium.org>
Date: Mon Oct 24 14:08:43 2016

Convert Dictionary handling to RTCConfiguration IDL dictionary

This preserves behavior as far as possible and adds use counters for
cases that aren't per spec. One intentional change is that the first
argument of the RTCPeerConnection constructor is made optional, as that
is a very low risk change, and requiring the dictionary makes no sense
when providing null, undefined and {iceServers:[]} already work.

Without custom bindings it is unfortunately not possible to distinguish
{certificates:null} from no certificates specified, so that is not
measured.

BUG= 649343 

Review-Url: https://codereview.chromium.org/2442763002
Cr-Commit-Position: refs/heads/master@{#427065}

[modify] https://crrev.com/379271912cc80682629cc26c7199f89841e3c038/third_party/WebKit/LayoutTests/fast/peerconnection/RTCPeerConnection-expected.txt
[modify] https://crrev.com/379271912cc80682629cc26c7199f89841e3c038/third_party/WebKit/LayoutTests/fast/peerconnection/RTCPeerConnection.html
[modify] https://crrev.com/379271912cc80682629cc26c7199f89841e3c038/third_party/WebKit/Source/core/frame/UseCounter.h
[modify] https://crrev.com/379271912cc80682629cc26c7199f89841e3c038/third_party/WebKit/Source/modules/modules_idl_files.gni
[add] https://crrev.com/379271912cc80682629cc26c7199f89841e3c038/third_party/WebKit/Source/modules/peerconnection/RTCConfiguration.idl
[add] https://crrev.com/379271912cc80682629cc26c7199f89841e3c038/third_party/WebKit/Source/modules/peerconnection/RTCIceServer.idl
[modify] https://crrev.com/379271912cc80682629cc26c7199f89841e3c038/third_party/WebKit/Source/modules/peerconnection/RTCPeerConnection.cpp
[modify] https://crrev.com/379271912cc80682629cc26c7199f89841e3c038/third_party/WebKit/Source/modules/peerconnection/RTCPeerConnection.h
[modify] https://crrev.com/379271912cc80682629cc26c7199f89841e3c038/third_party/WebKit/Source/modules/peerconnection/RTCPeerConnection.idl
[modify] https://crrev.com/379271912cc80682629cc26c7199f89841e3c038/tools/metrics/histograms/histograms.xml

These are the *RTC* interfaces supported by EdgeHTML 15.14951:
RTCDTMFToneChangeEvent
RTCStatsProvider
RTCDtlsTransport
RTCDtlsTransportStateChangedEvent
RTCDtmfSender
RTCIceCandidate
RTCIceCandidatePairChangedEvent
RTCIceGatherer
RTCIceGathererEvent
RTCIceTransport
RTCIceTransportStateChangedEvent
RTCPeerConnection
RTCPeerConnectionIceEvent
RTCRtpReceiver
RTCRtpSender
RTCSessionDescription
RTCSrtpSdesTransport
RTCSsrcConflictEvent
webkitRTCPeerConnection
These are new in Edge 15:
RTCIceCandidate
RTCPeerConnection
RTCPeerConnectionIceEvent
RTCSessionDescription
webkitRTCPeerConnection

RTCPeerConnectionIceEvent is the one not also in Chrome, so I'll add to the list of good things to fix:

Rename RTCIceCandidateEvent to RTCPeerConnectionIceEvent. (It currently has [NoInterfaceObject])
Blockedon: 659286
Blockedon: 651800
Blockedon: -651800
Status: Fixed (was: Available)
I think this issue has served its purpose, we found some things and fixed it. To keep in sync with the specs over time we're working on issue 673852. Unblocking  issue 651800 .
Labels: M-56

Sign in to add a comment