WebKit Bugzilla
Attachment 342944 Details for
Bug 186770
: Expose RTCPeerConnectionIceEventInit constructor
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-186770-20180618181324.patch (text/plain), 29.01 KB, created by
youenn fablet
on 2018-06-18 09:13:25 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
youenn fablet
Created:
2018-06-18 09:13:25 PDT
Size:
29.01 KB
patch
obsolete
>Subversion Revision: 232923 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index f29c5300c88b6934e0c322e6cc2362c9cf9f0d4f..455946198778ee2c74177b97b83884a9fc776a86 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,35 @@ >+2018-06-18 Youenn Fablet <youenn@apple.com> >+ >+ Expose RTCPeerConnectionIceEventInit constructor >+ https://bugs.webkit.org/show_bug.cgi?id=186770 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Add event constructor as per specification. >+ Add support for the url attribute. >+ For that purpose, we need to pipe that information from LibWebRTCMediaEndpoint >+ up to RTCPeerConnectionIceEvent. >+ >+ Covered by rebased test. >+ >+ * Modules/mediastream/PeerConnectionBackend.cpp: >+ (WebCore::PeerConnectionBackend::fireICECandidateEvent): >+ (WebCore::PeerConnectionBackend::disableICECandidateFiltering): >+ (WebCore::PeerConnectionBackend::newICECandidate): >+ (WebCore::PeerConnectionBackend::doneGatheringCandidates): >+ (WebCore::PeerConnectionBackend::finishedRegisteringMDNSName): >+ * Modules/mediastream/PeerConnectionBackend.h: >+ * Modules/mediastream/RTCPeerConnectionIceEvent.cpp: >+ (WebCore::RTCPeerConnectionIceEvent::create): >+ (WebCore::RTCPeerConnectionIceEvent::RTCPeerConnectionIceEvent): >+ * Modules/mediastream/RTCPeerConnectionIceEvent.h: >+ (WebCore::RTCPeerConnectionIceEvent::url const): >+ * Modules/mediastream/RTCPeerConnectionIceEvent.idl: >+ * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: >+ (WebCore::LibWebRTCMediaEndpoint::OnIceCandidate): >+ * bindings/js/WebCoreBuiltinNames.h: >+ * dom/EventNames.in: >+ > 2018-06-18 Youenn Fablet <youenn@apple.com> > > RTCRtpSender.replaceTrack(null) ends current track >diff --git a/Source/WebCore/Modules/mediastream/PeerConnectionBackend.cpp b/Source/WebCore/Modules/mediastream/PeerConnectionBackend.cpp >index e12a08676f9e1211472f3e14407e203f4c8613a0..907919c1b83b2ea02b2b0b148e336f144e670203 100644 >--- a/Source/WebCore/Modules/mediastream/PeerConnectionBackend.cpp >+++ b/Source/WebCore/Modules/mediastream/PeerConnectionBackend.cpp >@@ -352,11 +352,11 @@ void PeerConnectionBackend::addIceCandidateFailed(Exception&& exception) > endOfIceCandidates(WTFMove(*m_endOfIceCandidatePromise)); > } > >-void PeerConnectionBackend::fireICECandidateEvent(RefPtr<RTCIceCandidate>&& candidate) >+void PeerConnectionBackend::fireICECandidateEvent(RefPtr<RTCIceCandidate>&& candidate, String&& serverURL) > { > ASSERT(isMainThread()); > >- m_peerConnection.fireEvent(RTCPeerConnectionIceEvent::create(false, false, WTFMove(candidate))); >+ m_peerConnection.fireEvent(RTCPeerConnectionIceEvent::create(false, false, WTFMove(candidate), WTFMove(serverURL))); > } > > void PeerConnectionBackend::enableICECandidateFiltering() >@@ -368,7 +368,7 @@ void PeerConnectionBackend::disableICECandidateFiltering() > { > m_shouldFilterICECandidates = false; > for (auto& pendingICECandidate : m_pendingICECandidates) >- fireICECandidateEvent(RTCIceCandidate::create(WTFMove(pendingICECandidate.sdp), WTFMove(pendingICECandidate.mid), pendingICECandidate.sdpMLineIndex)); >+ fireICECandidateEvent(RTCIceCandidate::create(WTFMove(pendingICECandidate.sdp), WTFMove(pendingICECandidate.mid), pendingICECandidate.sdpMLineIndex), WTFMove(pendingICECandidate.serverURL)); > m_pendingICECandidates.clear(); > } > >@@ -424,18 +424,18 @@ String PeerConnectionBackend::filterSDP(String&& sdp) const > return filteredSDP.toString(); > } > >-void PeerConnectionBackend::newICECandidate(String&& sdp, String&& mid, unsigned short sdpMLineIndex) >+void PeerConnectionBackend::newICECandidate(String&& sdp, String&& mid, unsigned short sdpMLineIndex, String&& serverURL) > { > ALWAYS_LOG(LOGIDENTIFIER, "Gathered ice candidate:", sdp); > m_finishedGatheringCandidates = false; > > if (!m_shouldFilterICECandidates) { >- fireICECandidateEvent(RTCIceCandidate::create(WTFMove(sdp), WTFMove(mid), sdpMLineIndex)); >+ fireICECandidateEvent(RTCIceCandidate::create(WTFMove(sdp), WTFMove(mid), sdpMLineIndex), WTFMove(serverURL)); > return; > } > if (sdp.find(" host ", 0) != notFound) { > // FIXME: We might need to clear all pending candidates when setting again local description. >- m_pendingICECandidates.append(PendingICECandidate { String { sdp }, WTFMove(mid), sdpMLineIndex}); >+ m_pendingICECandidates.append(PendingICECandidate { String { sdp }, WTFMove(mid), sdpMLineIndex, WTFMove(serverURL) }); > if (RuntimeEnabledFeatures::sharedFeatures().mdnsICECandidatesEnabled()) { > auto ipAddress = extractIPAddres(sdp); > // We restrict to IPv4 candidates for now. >@@ -444,7 +444,7 @@ void PeerConnectionBackend::newICECandidate(String&& sdp, String&& mid, unsigned > } > return; > } >- fireICECandidateEvent(RTCIceCandidate::create(filterICECandidate(WTFMove(sdp)), WTFMove(mid), sdpMLineIndex)); >+ fireICECandidateEvent(RTCIceCandidate::create(filterICECandidate(WTFMove(sdp)), WTFMove(mid), sdpMLineIndex), WTFMove(serverURL)); > } > > void PeerConnectionBackend::doneGatheringCandidates() >@@ -456,7 +456,7 @@ void PeerConnectionBackend::doneGatheringCandidates() > if (m_waitingForMDNSRegistration) > return; > >- m_peerConnection.fireEvent(RTCPeerConnectionIceEvent::create(false, false, nullptr)); >+ m_peerConnection.fireEvent(RTCPeerConnectionIceEvent::create(false, false, nullptr, { })); > m_peerConnection.updateIceGatheringState(RTCIceGatheringState::Complete); > m_pendingICECandidates.clear(); > } >@@ -487,7 +487,7 @@ void PeerConnectionBackend::finishedRegisteringMDNSName(const String& ipAddress, > if (candidate.sdp.find(ipAddress) != notFound) { > auto sdp = candidate.sdp; > sdp.replace(ipAddress, name); >- fireICECandidateEvent(RTCIceCandidate::create(String(sdp), String(candidate.mid), candidate.sdpMLineIndex)); >+ fireICECandidateEvent(RTCIceCandidate::create(String(sdp), String(candidate.mid), candidate.sdpMLineIndex), String(candidate.serverURL)); > candidates.append(&candidate); > } > } >diff --git a/Source/WebCore/Modules/mediastream/PeerConnectionBackend.h b/Source/WebCore/Modules/mediastream/PeerConnectionBackend.h >index 08ca435ecbe4054e7ac991b89e4b60f659fbf51f..29da984376f16f537d3f067b669131c3b4a3ce67 100644 >--- a/Source/WebCore/Modules/mediastream/PeerConnectionBackend.h >+++ b/Source/WebCore/Modules/mediastream/PeerConnectionBackend.h >@@ -113,7 +113,7 @@ public: > > virtual void emulatePlatformEvent(const String& action) = 0; > >- void newICECandidate(String&& sdp, String&& mid, unsigned short sdpMLineIndex); >+ void newICECandidate(String&& sdp, String&& mid, unsigned short sdpMLineIndex, String&& serverURL); > void disableICECandidateFiltering(); > void enableICECandidateFiltering(); > >@@ -131,7 +131,7 @@ public: > void finishedRegisteringMDNSName(const String& ipAddress, const String& name); > > protected: >- void fireICECandidateEvent(RefPtr<RTCIceCandidate>&&); >+ void fireICECandidateEvent(RefPtr<RTCIceCandidate>&&, String&& url); > void doneGatheringCandidates(); > > void updateSignalingState(RTCSignalingState); >@@ -179,6 +179,7 @@ private: > String sdp; > String mid; > unsigned short sdpMLineIndex; >+ String serverURL; > }; > Vector<PendingICECandidate> m_pendingICECandidates; > >diff --git a/Source/WebCore/Modules/mediastream/RTCPeerConnectionIceEvent.cpp b/Source/WebCore/Modules/mediastream/RTCPeerConnectionIceEvent.cpp >index f2aedfe94b639e1afd51b4ae31351dd510c3d1b5..6c6e55745713a642a379e9e3cc9ebb583f308123 100644 >--- a/Source/WebCore/Modules/mediastream/RTCPeerConnectionIceEvent.cpp >+++ b/Source/WebCore/Modules/mediastream/RTCPeerConnectionIceEvent.cpp >@@ -32,14 +32,21 @@ > > namespace WebCore { > >-Ref<RTCPeerConnectionIceEvent> RTCPeerConnectionIceEvent::create(bool canBubble, bool cancelable, RefPtr<RTCIceCandidate>&& candidate) >+Ref<RTCPeerConnectionIceEvent> RTCPeerConnectionIceEvent::create(bool canBubble, bool cancelable, RefPtr<RTCIceCandidate>&& candidate, String&& serverURL) > { >- return adoptRef(*new RTCPeerConnectionIceEvent(canBubble, cancelable, WTFMove(candidate))); >+ return adoptRef(*new RTCPeerConnectionIceEvent(eventNames().icecandidateEvent, canBubble, cancelable, WTFMove(candidate), WTFMove(serverURL))); > } > >-RTCPeerConnectionIceEvent::RTCPeerConnectionIceEvent(bool canBubble, bool cancelable, RefPtr<RTCIceCandidate>&& candidate) >- : Event(eventNames().icecandidateEvent, canBubble, cancelable) >+Ref<RTCPeerConnectionIceEvent> RTCPeerConnectionIceEvent::create(const AtomicString& type, Init&& init) >+{ >+ return adoptRef(*new RTCPeerConnectionIceEvent(type, init.bubbles, init.cancelable, WTFMove(init.candidate), WTFMove(init.url))); >+ return create(init.bubbles, init.cancelable, WTFMove(init.candidate), WTFMove(init.url)); >+} >+ >+RTCPeerConnectionIceEvent::RTCPeerConnectionIceEvent(const AtomicString& type, bool canBubble, bool cancelable, RefPtr<RTCIceCandidate>&& candidate, String&& serverURL) >+ : Event(type, canBubble, cancelable) > , m_candidate(WTFMove(candidate)) >+ , m_url(WTFMove(serverURL)) > { > } > >diff --git a/Source/WebCore/Modules/mediastream/RTCPeerConnectionIceEvent.h b/Source/WebCore/Modules/mediastream/RTCPeerConnectionIceEvent.h >index 967e9f8d0b15db6626b9f3e18802241bc8f7723c..5ae69b7d9c67ab784832cf28779c8569dfa38822 100644 >--- a/Source/WebCore/Modules/mediastream/RTCPeerConnectionIceEvent.h >+++ b/Source/WebCore/Modules/mediastream/RTCPeerConnectionIceEvent.h >@@ -36,16 +36,24 @@ class RTCPeerConnectionIceEvent : public Event { > public: > virtual ~RTCPeerConnectionIceEvent(); > >- static Ref<RTCPeerConnectionIceEvent> create(bool canBubble, bool cancelable, RefPtr<RTCIceCandidate>&&); >+ struct Init : EventInit { >+ RefPtr<RTCIceCandidate> candidate; >+ String url; >+ }; >+ >+ static Ref<RTCPeerConnectionIceEvent> create(const AtomicString& type, Init&&); >+ static Ref<RTCPeerConnectionIceEvent> create(bool canBubble, bool cancelable, RefPtr<RTCIceCandidate>&&, String&& serverURL); > > RTCIceCandidate* candidate() const; >+ const String& url() const { return m_url; } > > virtual EventInterface eventInterface() const; > > private: >- RTCPeerConnectionIceEvent(bool canBubble, bool cancelable, RefPtr<RTCIceCandidate>&&); >+ RTCPeerConnectionIceEvent(const AtomicString& type, bool canBubble, bool cancelable, RefPtr<RTCIceCandidate>&&, String&& serverURL); > > RefPtr<RTCIceCandidate> m_candidate; >+ String m_url; > }; > > } // namespace WebCore >diff --git a/Source/WebCore/Modules/mediastream/RTCPeerConnectionIceEvent.idl b/Source/WebCore/Modules/mediastream/RTCPeerConnectionIceEvent.idl >index 305261d7b62d3a53235274b3b04104e8ebba8ec2..a1059b6d0de3cf8afb3740aa58fb4d88d9d11c30 100644 >--- a/Source/WebCore/Modules/mediastream/RTCPeerConnectionIceEvent.idl >+++ b/Source/WebCore/Modules/mediastream/RTCPeerConnectionIceEvent.idl >@@ -23,12 +23,16 @@ > * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > */ > >-// FIXME 169662: missing Constructor(DOMString type, optional RTCPeerConnectionIceEventInit eventInitDict) >+dictionary RTCPeerConnectionIceEventInit : EventInit { >+ RTCIceCandidate? candidate; >+ DOMString? url; >+}; >+ > [ >- NoInterfaceObject, > Conditional=WEB_RTC, >+ Constructor(DOMString type, optional RTCPeerConnectionIceEventInit eventInitDict), > EnabledAtRuntime=PeerConnection > ] interface RTCPeerConnectionIceEvent : Event { > readonly attribute RTCIceCandidate? candidate; >- // FIXME 169662: missing url >+ readonly attribute DOMString? url; > }; >diff --git a/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp b/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp >index 0599d0970347b8e7fef0ec294acafa379e1d98c6..a79cbabdd298704d33bc1b1daa3feb83c2cb5466 100644 >--- a/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp >+++ b/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp >@@ -867,10 +867,10 @@ void LibWebRTCMediaEndpoint::OnIceCandidate(const webrtc::IceCandidateInterface > > auto sdpMLineIndex = safeCast<unsigned short>(rtcCandidate->sdp_mline_index()); > >- callOnMainThread([protectedThis = makeRef(*this), mid = fromStdString(rtcCandidate->sdp_mid()), sdp = fromStdString(sdp), sdpMLineIndex]() mutable { >+ callOnMainThread([protectedThis = makeRef(*this), mid = fromStdString(rtcCandidate->sdp_mid()), sdp = fromStdString(sdp), sdpMLineIndex, url = fromStdString(rtcCandidate->server_url())]() mutable { > if (protectedThis->isStopped()) > return; >- protectedThis->m_peerConnectionBackend.newICECandidate(WTFMove(sdp), WTFMove(mid), sdpMLineIndex); >+ protectedThis->m_peerConnectionBackend.newICECandidate(WTFMove(sdp), WTFMove(mid), sdpMLineIndex, WTFMove(url)); > }); > } > >diff --git a/Source/WebCore/bindings/js/WebCoreBuiltinNames.h b/Source/WebCore/bindings/js/WebCoreBuiltinNames.h >index e9bf55c922ef51b094c483db39ebe994153707b2..99eb328d818314c40a37d69f1971baa952fc762c 100644 >--- a/Source/WebCore/bindings/js/WebCoreBuiltinNames.h >+++ b/Source/WebCore/bindings/js/WebCoreBuiltinNames.h >@@ -127,6 +127,7 @@ namespace WebCore { > macro(RTCIceCandidate) \ > macro(RTCIceTransport) \ > macro(RTCPeerConnection) \ >+ macro(RTCPeerConnectionIceEvent) \ > macro(RTCRtpReceiver) \ > macro(RTCRtpSender) \ > macro(RTCRtpTransceiver) \ >diff --git a/Source/WebCore/dom/EventNames.in b/Source/WebCore/dom/EventNames.in >index 2be641389810f575a9564b639ca292cd468188e2..bc92e05b66e37bb7523c4dc66f9de0b9d3f366a5 100644 >--- a/Source/WebCore/dom/EventNames.in >+++ b/Source/WebCore/dom/EventNames.in >@@ -53,6 +53,7 @@ PaymentRequestUpdateEvent conditional=PAYMENT_REQUEST > RTCPeerConnectionIceEvent conditional=WEB_RTC > RTCDataChannelEvent conditional=WEB_RTC > RTCDTMFToneChangeEvent conditional=WEB_RTC_DTMF >+RTCPeerConnectionIceEvent conditional=WEB_RTC > RTCTrackEvent conditional=WEB_RTC > SpeechSynthesisEvent conditional=SPEECH_SYNTHESIS > WebGLContextEvent conditional=WEBGL >diff --git a/LayoutTests/imported/w3c/ChangeLog b/LayoutTests/imported/w3c/ChangeLog >index a95ef879e5c6d468f4eac0036983a5e12486ccae..b0423e23329811d0212a7125de1ae8eadfb1cb64 100644 >--- a/LayoutTests/imported/w3c/ChangeLog >+++ b/LayoutTests/imported/w3c/ChangeLog >@@ -1,3 +1,15 @@ >+2018-06-18 Youenn Fablet <youenn@apple.com> >+ >+ Expose RTCPeerConnectionIceEventInit constructor >+ https://bugs.webkit.org/show_bug.cgi?id=186770 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * web-platform-tests/webrtc/RTCPeerConnectionIceEvent-constructor-expected.txt: >+ Updated expectation as per patch. >+ * web-platform-tests/webrtc/rtcpeerconnection/rtcpeerconnection-idl-expected.txt: >+ Rebasing this file, changes are unrelated but test is marked as flaky. >+ > 2018-06-18 Youenn Fablet <youenn@apple.com> > > RTCRtpSender.replaceTrack(null) ends current track >diff --git a/LayoutTests/imported/w3c/web-platform-tests/webrtc/RTCPeerConnectionIceEvent-constructor-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/webrtc/RTCPeerConnectionIceEvent-constructor-expected.txt >index 66fd9ef83908b3cf38347ece693d5abc1dae857d..b44fa13dc824841f3c0ec6c9b3c402e4e90b809b 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/webrtc/RTCPeerConnectionIceEvent-constructor-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/webrtc/RTCPeerConnectionIceEvent-constructor-expected.txt >@@ -1,12 +1,10 @@ > >-FAIL RTCPeerConnectionIceEvent with no arguments throws TypeError assert_throws: function "() => { >- new RTCPeerConnectionIceEvent(); >- }" threw object "ReferenceError: Can't find variable: RTCPeerConnectionIceEvent" ("ReferenceError") expected object "TypeError" ("TypeError") >-FAIL RTCPeerConnectionIceEvent with no eventInitDict (default) Can't find variable: RTCPeerConnectionIceEvent >-FAIL RTCPeerConnectionIceEvent with empty object as eventInitDict (default) Can't find variable: RTCPeerConnectionIceEvent >-FAIL RTCPeerConnectionIceEvent.candidate is null when constructed with { candidate: null } Can't find variable: RTCPeerConnectionIceEvent >-FAIL RTCPeerConnectionIceEvent.candidate is null when constructed with { candidate: undefined } Can't find variable: RTCPeerConnectionIceEvent >-FAIL RTCPeerConnectionIceEvent with RTCIceCandidate Can't find variable: RTCPeerConnectionIceEvent >-FAIL RTCPeerConnectionIceEvent with non RTCIceCandidate object throws assert_throws: function "() => new RTCPeerConnectionIceEvent("type", { candidate: plain })" threw object "ReferenceError: Can't find variable: RTCPeerConnectionIceEvent" ("ReferenceError") expected object "TypeError" ("TypeError") >-FAIL RTCPeerConnectionIceEvent bubbles and cancelable Can't find variable: RTCPeerConnectionIceEvent >+PASS RTCPeerConnectionIceEvent with no arguments throws TypeError >+PASS RTCPeerConnectionIceEvent with no eventInitDict (default) >+PASS RTCPeerConnectionIceEvent with empty object as eventInitDict (default) >+PASS RTCPeerConnectionIceEvent.candidate is null when constructed with { candidate: null } >+PASS RTCPeerConnectionIceEvent.candidate is null when constructed with { candidate: undefined } >+PASS RTCPeerConnectionIceEvent with RTCIceCandidate >+PASS RTCPeerConnectionIceEvent with non RTCIceCandidate object throws >+PASS RTCPeerConnectionIceEvent bubbles and cancelable > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/webrtc/rtcpeerconnection/rtcpeerconnection-idl-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/webrtc/rtcpeerconnection/rtcpeerconnection-idl-expected.txt >index d5e13ff3789ade1cd15289d247c2b9ee2f0109f7..1766b2fb90f7585af37f2a9e375022e30a2af580 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/webrtc/rtcpeerconnection/rtcpeerconnection-idl-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/webrtc/rtcpeerconnection/rtcpeerconnection-idl-expected.txt >@@ -1,69 +1,123 @@ >+CONSOLE MESSAGE: Unhandled Promise Rejection: TypeError: Can only call RTCPeerConnection.createOffer on instances of RTCPeerConnection >+CONSOLE MESSAGE: Unhandled Promise Rejection: TypeError: Can only call RTCPeerConnection.createAnswer on instances of RTCPeerConnection >+CONSOLE MESSAGE: Unhandled Promise Rejection: TypeError: Can only call RTCPeerConnection.addIceCandidate on instances of RTCPeerConnection >+CONSOLE MESSAGE: Unhandled Promise Rejection: TypeError: Can only call RTCPeerConnection.getStats on instances of RTCPeerConnection >+CONSOLE MESSAGE: Unhandled Promise Rejection: TypeError: Argument 1 ('description') to RTCPeerConnection.setLocalDescription must be an instance of RTCSessionDescription >+CONSOLE MESSAGE: Unhandled Promise Rejection: TypeError: Argument 1 ('description') to RTCPeerConnection.setRemoteDescription must be an instance of RTCSessionDescription >+CONSOLE MESSAGE: Unhandled Promise Rejection: TypeError: Not enough arguments > Description > > This test verifies the availability of the RTCPeerConnection interface. > > >+Harness Error (FAIL), message = Not enough arguments >+ > PASS EventTarget interface: existence and properties of interface object > PASS EventTarget interface object length > PASS EventTarget interface object name > PASS EventTarget interface: existence and properties of interface prototype object > PASS EventTarget interface: existence and properties of interface prototype object's "constructor" property >+PASS EventTarget interface: existence and properties of interface prototype object's @@unscopables property > PASS RTCPeerConnection interface: existence and properties of interface object > PASS RTCPeerConnection interface object length > PASS RTCPeerConnection interface object name > PASS RTCPeerConnection interface: existence and properties of interface prototype object > PASS RTCPeerConnection interface: existence and properties of interface prototype object's "constructor" property >+PASS RTCPeerConnection interface: existence and properties of interface prototype object's @@unscopables property > PASS RTCPeerConnection interface: operation createOffer(RTCOfferOptions) >+PASS Unscopable handled correctly for createOffer(RTCOfferOptions) on RTCPeerConnection > PASS RTCPeerConnection interface: operation createAnswer(RTCAnswerOptions) >+PASS Unscopable handled correctly for createAnswer(RTCAnswerOptions) on RTCPeerConnection > FAIL RTCPeerConnection interface: operation setLocalDescription(RTCSessionDescription) assert_equals: property has wrong .length expected 1 but got 0 >+PASS Unscopable handled correctly for setLocalDescription(RTCSessionDescription) on RTCPeerConnection > PASS RTCPeerConnection interface: attribute localDescription >+PASS Unscopable handled correctly for localDescription property on RTCPeerConnection > PASS RTCPeerConnection interface: attribute currentLocalDescription >+PASS Unscopable handled correctly for currentLocalDescription property on RTCPeerConnection > PASS RTCPeerConnection interface: attribute pendingLocalDescription >+PASS Unscopable handled correctly for pendingLocalDescription property on RTCPeerConnection > FAIL RTCPeerConnection interface: operation setRemoteDescription(RTCSessionDescription) assert_equals: property has wrong .length expected 1 but got 0 >+PASS Unscopable handled correctly for setRemoteDescription(RTCSessionDescription) on RTCPeerConnection > PASS RTCPeerConnection interface: attribute remoteDescription >+PASS Unscopable handled correctly for remoteDescription property on RTCPeerConnection > PASS RTCPeerConnection interface: attribute currentRemoteDescription >+PASS Unscopable handled correctly for currentRemoteDescription property on RTCPeerConnection > PASS RTCPeerConnection interface: attribute pendingRemoteDescription >+PASS Unscopable handled correctly for pendingRemoteDescription property on RTCPeerConnection > PASS RTCPeerConnection interface: operation addIceCandidate(RTCIceCandidate) >+PASS Unscopable handled correctly for addIceCandidate(RTCIceCandidate) on RTCPeerConnection > PASS RTCPeerConnection interface: attribute signalingState >+PASS Unscopable handled correctly for signalingState property on RTCPeerConnection > PASS RTCPeerConnection interface: attribute iceGatheringState >+PASS Unscopable handled correctly for iceGatheringState property on RTCPeerConnection > PASS RTCPeerConnection interface: attribute iceConnectionState >+PASS Unscopable handled correctly for iceConnectionState property on RTCPeerConnection > FAIL RTCPeerConnection interface: attribute canTrickleIceCandidates assert_true: The prototype object must have a property "canTrickleIceCandidates" expected true got false >+PASS Unscopable handled correctly for canTrickleIceCandidates property on RTCPeerConnection > PASS RTCPeerConnection interface: operation getConfiguration() >+PASS Unscopable handled correctly for getConfiguration() on RTCPeerConnection > PASS RTCPeerConnection interface: operation setConfiguration(RTCConfiguration) >+PASS Unscopable handled correctly for setConfiguration(RTCConfiguration) on RTCPeerConnection > PASS RTCPeerConnection interface: operation close() >+PASS Unscopable handled correctly for close() on RTCPeerConnection > PASS RTCPeerConnection interface: attribute onnegotiationneeded >+PASS Unscopable handled correctly for onnegotiationneeded property on RTCPeerConnection > PASS RTCPeerConnection interface: attribute onicecandidate >+PASS Unscopable handled correctly for onicecandidate property on RTCPeerConnection > PASS RTCPeerConnection interface: attribute onsignalingstatechange >+PASS Unscopable handled correctly for onsignalingstatechange property on RTCPeerConnection > PASS RTCPeerConnection interface: attribute oniceconnectionstatechange >+PASS Unscopable handled correctly for oniceconnectionstatechange property on RTCPeerConnection > PASS RTCPeerConnection interface: attribute onicegatheringstatechange >+PASS Unscopable handled correctly for onicegatheringstatechange property on RTCPeerConnection > FAIL RTCPeerConnection interface: operation createOffer(RTCSessionDescriptionCallback, RTCPeerConnectionErrorCallback, RTCOfferOptions) assert_throws: calling operation with this = null didn't throw TypeError function "function () { > fn.apply(obj, args); > }" did not throw >+PASS Unscopable handled correctly for createOffer(RTCSessionDescriptionCallback, RTCPeerConnectionErrorCallback, RTCOfferOptions) on RTCPeerConnection > FAIL RTCPeerConnection interface: operation setLocalDescription(RTCSessionDescription, VoidFunction, RTCPeerConnectionErrorCallback) assert_equals: property has wrong .length expected 1 but got 0 >+PASS Unscopable handled correctly for setLocalDescription(RTCSessionDescription, VoidFunction, RTCPeerConnectionErrorCallback) on RTCPeerConnection > FAIL RTCPeerConnection interface: operation createAnswer(RTCSessionDescriptionCallback, RTCPeerConnectionErrorCallback) assert_throws: calling operation with this = null didn't throw TypeError function "function () { > fn.apply(obj, args); > }" did not throw >+PASS Unscopable handled correctly for createAnswer(RTCSessionDescriptionCallback, RTCPeerConnectionErrorCallback) on RTCPeerConnection > FAIL RTCPeerConnection interface: operation setRemoteDescription(RTCSessionDescription, VoidFunction, RTCPeerConnectionErrorCallback) assert_equals: property has wrong .length expected 1 but got 0 >+PASS Unscopable handled correctly for setRemoteDescription(RTCSessionDescription, VoidFunction, RTCPeerConnectionErrorCallback) on RTCPeerConnection > FAIL RTCPeerConnection interface: operation addIceCandidate(RTCIceCandidate, VoidFunction, RTCPeerConnectionErrorCallback) assert_throws: calling operation with this = null didn't throw TypeError function "function () { > fn.apply(obj, args); > }" did not throw >+PASS Unscopable handled correctly for addIceCandidate(RTCIceCandidate, VoidFunction, RTCPeerConnectionErrorCallback) on RTCPeerConnection > FAIL RTCPeerConnection interface: operation getStats(MediaStreamTrack, RTCStatsCallback, RTCPeerConnectionErrorCallback) assert_throws: calling operation with this = null didn't throw TypeError function "function () { > fn.apply(obj, args); > }" did not throw >+PASS Unscopable handled correctly for getStats(MediaStreamTrack, RTCStatsCallback, RTCPeerConnectionErrorCallback) on RTCPeerConnection > FAIL RTCPeerConnection interface: operation generateCertificate(AlgorithmIdentifier) assert_own_property: interface object missing static operation expected property "generateCertificate" missing >+PASS Unscopable handled correctly for generateCertificate(AlgorithmIdentifier) on RTCPeerConnection > PASS RTCPeerConnection interface: operation getSenders() >+PASS Unscopable handled correctly for getSenders() on RTCPeerConnection > PASS RTCPeerConnection interface: operation getReceivers() >+PASS Unscopable handled correctly for getReceivers() on RTCPeerConnection > PASS RTCPeerConnection interface: operation addTrack(MediaStreamTrack, MediaStream) >+PASS Unscopable handled correctly for addTrack(MediaStreamTrack, MediaStream) on RTCPeerConnection > PASS RTCPeerConnection interface: operation removeTrack(RTCRtpSender) >+PASS Unscopable handled correctly for removeTrack(RTCRtpSender) on RTCPeerConnection > PASS RTCPeerConnection interface: attribute ontrack >+PASS Unscopable handled correctly for ontrack property on RTCPeerConnection > PASS RTCPeerConnection interface: operation createDataChannel(DOMString, RTCDataChannelInit) >+PASS Unscopable handled correctly for createDataChannel(DOMString, RTCDataChannelInit) on RTCPeerConnection > PASS RTCPeerConnection interface: attribute ondatachannel >+PASS Unscopable handled correctly for ondatachannel property on RTCPeerConnection > FAIL RTCPeerConnection interface: attribute dtmf assert_true: The prototype object must have a property "dtmf" expected true got false >+PASS Unscopable handled correctly for dtmf property on RTCPeerConnection > PASS RTCPeerConnection interface: operation getStats(MediaStreamTrack) >+PASS Unscopable handled correctly for getStats(MediaStreamTrack) on RTCPeerConnection > FAIL RTCPeerConnection interface: operation setIdentityProvider(DOMString, DOMString, DOMString) assert_own_property: interface prototype object missing non-static operation expected property "setIdentityProvider" missing >+PASS Unscopable handled correctly for setIdentityProvider(DOMString, DOMString, DOMString) on RTCPeerConnection > FAIL RTCPeerConnection interface: operation getIdentityAssertion() assert_own_property: interface prototype object missing non-static operation expected property "getIdentityAssertion" missing >+PASS Unscopable handled correctly for getIdentityAssertion() on RTCPeerConnection > FAIL RTCPeerConnection interface: attribute peerIdentity assert_true: The prototype object must have a property "peerIdentity" expected true got false >+PASS Unscopable handled correctly for peerIdentity property on RTCPeerConnection > FAIL RTCPeerConnection interface: attribute idpLoginUrl assert_true: The prototype object must have a property "idpLoginUrl" expected true got false >+PASS Unscopable handled correctly for idpLoginUrl property on RTCPeerConnection > PASS RTCPeerConnection must be primary interface of pc > PASS Stringification of pc > PASS RTCPeerConnection interface: pc must inherit property "createOffer(RTCOfferOptions)" with the proper type
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 186770
:
342944
|
342965