WebKit Bugzilla
Attachment 350026 Details for
Bug 189671
: Implement RTCRtpReceiver getContributingSources/getSynchronizationSources
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch for landing
bug-189671-20180918095128.patch (text/plain), 99.06 KB, created by
youenn fablet
on 2018-09-18 09:51:29 PDT
(
hide
)
Description:
Patch for landing
Filename:
MIME Type:
Creator:
youenn fablet
Created:
2018-09-18 09:51:29 PDT
Size:
99.06 KB
patch
obsolete
>Subversion Revision: 236098 >diff --git a/Source/ThirdParty/libwebrtc/ChangeLog b/Source/ThirdParty/libwebrtc/ChangeLog >index 383c71fc204a2adabd2e53c166b155fd61a6dab2..601176a45675040943a178421b7e0853e85dfbf3 100644 >--- a/Source/ThirdParty/libwebrtc/ChangeLog >+++ b/Source/ThirdParty/libwebrtc/ChangeLog >@@ -1,3 +1,14 @@ >+2018-09-18 Youenn Fablet <youenn@apple.com> >+ >+ Implement RTCRtpReceiver getContributingSources/getSynchronizationSources >+ https://bugs.webkit.org/show_bug.cgi?id=189671 >+ >+ Reviewed by Eric Carlson. >+ >+ * Configurations/libwebrtc.iOS.exp: >+ * Configurations/libwebrtc.iOSsim.exp: >+ * Configurations/libwebrtc.mac.exp: >+ > 2018-09-17 Youenn Fablet <youenn@apple.com> > > Build fix after https://trac.webkit.org/changeset/236070 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 14a6dc5470d4b147a673b4a0bb1510f616bb925e..834476ba3c6511812a2648bd1057deec2183c298 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,37 @@ >+2018-09-18 Youenn Fablet <youenn@apple.com> >+ >+ Implement RTCRtpReceiver getContributingSources/getSynchronizationSources >+ https://bugs.webkit.org/show_bug.cgi?id=189671 >+ >+ Reviewed by Eric Carlson. >+ >+ Introduce implementation of these two methods by calling the libwebrtc corresponding method. >+ Add corresponding IDL as per spec. >+ Covered by rebased WPT tests. >+ >+ * CMakeLists.txt: >+ * DerivedSources.make: >+ * Modules/mediastream/RTCRtpContributingSource.h: Added. >+ * Modules/mediastream/RTCRtpContributingSource.idl: Added. >+ * Modules/mediastream/RTCRtpReceiver.h: >+ (WebCore::RTCRtpReceiver::getContributingSources const): >+ (WebCore::RTCRtpReceiver::getSynchronizationSources const): >+ * Modules/mediastream/RTCRtpReceiver.idl: >+ * Modules/mediastream/RTCRtpReceiverBackend.h: >+ (WebCore::RTCRtpReceiverBackend::getContributingSources const): >+ (WebCore::RTCRtpReceiverBackend::getSynchronizationSources const): >+ * Modules/mediastream/RTCRtpSynchronizationSource.h: Added. >+ * Modules/mediastream/RTCRtpSynchronizationSource.idl: Added. >+ * Modules/mediastream/libwebrtc/LibWebRTCRtpReceiverBackend.cpp: >+ (WebCore::fillRTCRtpContributingSource): >+ (WebCore::toRTCRtpContributingSource): >+ (WebCore::toRTCRtpSynchronizationSource): >+ (WebCore::LibWebRTCRtpReceiverBackend::getContributingSources const): >+ (WebCore::LibWebRTCRtpReceiverBackend::getSynchronizationSources const): >+ * Modules/mediastream/libwebrtc/LibWebRTCRtpReceiverBackend.h: >+ * Sources.txt: >+ * WebCore.xcodeproj/project.pbxproj: >+ > 2018-09-18 Youenn Fablet <youenn@apple.com> > > Layout Test webrtc/video-mute.html is flaky. >diff --git a/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.iOS.exp b/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.iOS.exp >index 76497e3c57c1733d166ecaf0750f9ee10024b4aa..939d2a8af0ea2a333d69d7a81c3966e3112148b7 100644 >--- a/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.iOS.exp >+++ b/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.iOS.exp >@@ -214,3 +214,4 @@ __ZN6webrtc21RtpEncodingParametersC1Ev > __ZN6webrtc21RtpEncodingParametersD1Ev > __ZN6webrtc18RtpTransceiverInitC1Ev > __ZN6webrtc18RtpTransceiverInitD1Ev >+__ZN6webrtc9RtpSourceD1Ev >diff --git a/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.iOSsim.exp b/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.iOSsim.exp >index 1e713ce54b8a7d852a43292b8753cc745e9312c4..09b048ce2790b4d074b8d1bebbdffcee6f43dc3e 100644 >--- a/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.iOSsim.exp >+++ b/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.iOSsim.exp >@@ -213,6 +213,6 @@ __ZN6webrtc12RtpExtensionD1Ev > __ZN6webrtc21RtpEncodingParametersC1ERKS0_ > __ZN6webrtc21RtpEncodingParametersC1Ev > __ZN6webrtc21RtpEncodingParametersD1Ev >- > __ZN6webrtc18RtpTransceiverInitC1Ev > __ZN6webrtc18RtpTransceiverInitD1Ev >+__ZN6webrtc9RtpSourceD1Ev >diff --git a/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.mac.exp b/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.mac.exp >index c2e741b36a79a94e9199f13c16344ed853f03b0c..09b048ce2790b4d074b8d1bebbdffcee6f43dc3e 100644 >--- a/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.mac.exp >+++ b/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.mac.exp >@@ -215,3 +215,4 @@ __ZN6webrtc21RtpEncodingParametersC1Ev > __ZN6webrtc21RtpEncodingParametersD1Ev > __ZN6webrtc18RtpTransceiverInitC1Ev > __ZN6webrtc18RtpTransceiverInitD1Ev >+__ZN6webrtc9RtpSourceD1Ev >diff --git a/Source/WebCore/CMakeLists.txt b/Source/WebCore/CMakeLists.txt >index 29cef4ab89639588061cc3e7bc82bb59b4603389..f7853e162bddc32630e0fc7d152d8aa34f91cf16 100644 >--- a/Source/WebCore/CMakeLists.txt >+++ b/Source/WebCore/CMakeLists.txt >@@ -321,6 +321,7 @@ set(WebCore_NON_SVG_IDL_FILES > Modules/mediastream/RTCPeerConnectionState.idl > Modules/mediastream/RTCPriorityType.idl > Modules/mediastream/RTCRtpCodecParameters.idl >+ Modules/mediastream/RTCRtpContributingSource.idl > Modules/mediastream/RTCRtpEncodingParameters.idl > Modules/mediastream/RTCRtpFecParameters.idl > Modules/mediastream/RTCRtpHeaderExtensionParameters.idl >@@ -329,6 +330,7 @@ set(WebCore_NON_SVG_IDL_FILES > Modules/mediastream/RTCRtpRtxParameters.idl > Modules/mediastream/RTCRtpSendParameters.idl > Modules/mediastream/RTCRtpSender.idl >+ Modules/mediastream/RTCRtpSynchronizationSource.idl > Modules/mediastream/RTCRtpTransceiver.idl > Modules/mediastream/RTCRtpTransceiverDirection.idl > Modules/mediastream/RTCSessionDescription.idl >diff --git a/Source/WebCore/DerivedSources.make b/Source/WebCore/DerivedSources.make >index e6a427de4ed40b9192e4038b41a11046c52fe5d2..bb25ff9022da49845fcdc51098fd427b9bb13e6c 100644 >--- a/Source/WebCore/DerivedSources.make >+++ b/Source/WebCore/DerivedSources.make >@@ -245,6 +245,7 @@ JS_BINDING_IDLS = \ > $(WebCore)/Modules/mediastream/RTCPeerConnection.idl \ > $(WebCore)/Modules/mediastream/RTCPeerConnectionState.idl \ > $(WebCore)/Modules/mediastream/RTCRtpCodecParameters.idl \ >+ $(WebCore)/Modules/mediastream/RTCRtpContributingSource.idl \ > $(WebCore)/Modules/mediastream/RTCRtpEncodingParameters.idl \ > $(WebCore)/Modules/mediastream/RTCRtpFecParameters.idl \ > $(WebCore)/Modules/mediastream/RTCRtpHeaderExtensionParameters.idl \ >@@ -255,6 +256,7 @@ JS_BINDING_IDLS = \ > $(WebCore)/Modules/mediastream/RTCRtpSender.idl \ > $(WebCore)/Modules/mediastream/RTCRtpTransceiver.idl \ > $(WebCore)/Modules/mediastream/RTCRtpTransceiverDirection.idl \ >+ $(WebCore)/Modules/mediastream/RTCRtpSynchronizationSource.idl \ > $(WebCore)/Modules/mediastream/RTCSessionDescription.idl \ > $(WebCore)/Modules/mediastream/RTCSignalingState.idl \ > $(WebCore)/Modules/mediastream/RTCStatsReport.idl \ >diff --git a/Source/WebCore/Modules/mediastream/RTCRtpContributingSource.h b/Source/WebCore/Modules/mediastream/RTCRtpContributingSource.h >new file mode 100644 >index 0000000000000000000000000000000000000000..8d89753b2995638ff3655f2546141149c8ede23e >--- /dev/null >+++ b/Source/WebCore/Modules/mediastream/RTCRtpContributingSource.h >@@ -0,0 +1,41 @@ >+/* >+ * Copyright (C) 2018 Apple Inc. All rights reserved. >+ * >+ * Redistribution and use in source and binary forms, with or without >+ * modification, are permitted provided that the following conditions >+ * are met: >+ * 1. Redistributions of source code must retain the above copyright >+ * notice, this list of conditions and the following disclaimer. >+ * 2. Redistributions in binary form must reproduce the above copyright >+ * notice, this list of conditions and the following disclaimer in the >+ * documentation and/or other materials provided with the distribution. >+ * >+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' >+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, >+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR >+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS >+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR >+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF >+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS >+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN >+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) >+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF >+ * THE POSSIBILITY OF SUCH DAMAGE. >+ */ >+ >+#pragma once >+ >+#if ENABLE(WEB_RTC) >+ >+namespace WebCore { >+ >+struct RTCRtpContributingSource { >+ double timestamp; >+ unsigned long source; >+ std::optional<double> audioLevel; >+}; >+ >+ >+} // namespace WebCore >+ >+#endif // ENABLE(WEB_RTC) >diff --git a/Source/WebCore/Modules/mediastream/RTCRtpContributingSource.idl b/Source/WebCore/Modules/mediastream/RTCRtpContributingSource.idl >new file mode 100644 >index 0000000000000000000000000000000000000000..f058150e6f626784d0d334577c2e69d72df758ed >--- /dev/null >+++ b/Source/WebCore/Modules/mediastream/RTCRtpContributingSource.idl >@@ -0,0 +1,36 @@ >+/* >+* Copyright (C) 2018 Apple Inc. All rights reserved. >+* >+* Redistribution and use in source and binary forms, with or without >+* modification, are permitted provided that the following conditions >+* are met: >+* 1. Redistributions of source code must retain the above copyright >+* notice, this list of conditions and the following disclaimer. >+* 2. Redistributions in binary form must reproduce the above copyright >+* notice, this list of conditions and the following disclaimer in the >+* documentation and/or other materials provided with the distribution. >+* >+* THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' >+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, >+* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR >+* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS >+* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR >+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF >+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS >+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN >+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) >+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF >+* THE POSSIBILITY OF SUCH DAMAGE. >+*/ >+ >+typedef double DOMHighResTimeStamp; >+ >+[ >+ Conditional=WEB_RTC, >+ EnabledAtRuntime=PeerConnection, >+ JSGenerateToJSObject, >+] dictionary RTCRtpContributingSource { >+ required DOMHighResTimeStamp timestamp; >+ required unsigned long source; >+ double audioLevel; >+}; >diff --git a/Source/WebCore/Modules/mediastream/RTCRtpReceiver.h b/Source/WebCore/Modules/mediastream/RTCRtpReceiver.h >index 5d2ec71ffd4cc43b79d36a08ffd681ee2a1e5863..532e2c027dbad9551f0dd01f637377b2dbe8bd4d 100644 >--- a/Source/WebCore/Modules/mediastream/RTCRtpReceiver.h >+++ b/Source/WebCore/Modules/mediastream/RTCRtpReceiver.h >@@ -34,6 +34,7 @@ > > #include "MediaStreamTrack.h" > #include "RTCRtpReceiverBackend.h" >+#include "RTCRtpSynchronizationSource.h" > #include "ScriptWrappable.h" > > namespace WebCore { >@@ -50,6 +51,8 @@ public: > > void setBackend(std::unique_ptr<RTCRtpReceiverBackend>&& backend) { m_backend = WTFMove(backend); } > RTCRtpParameters getParameters() { return m_backend ? m_backend->getParameters() : RTCRtpParameters(); } >+ Vector<RTCRtpContributingSource> getContributingSources() const { return m_backend ? m_backend->getContributingSources() : Vector<RTCRtpContributingSource> { }; } >+ Vector<RTCRtpSynchronizationSource> getSynchronizationSources() const { return m_backend ? m_backend->getSynchronizationSources() : Vector<RTCRtpSynchronizationSource> { }; } > > MediaStreamTrack& track() { return m_track.get(); } > >diff --git a/Source/WebCore/Modules/mediastream/RTCRtpReceiver.idl b/Source/WebCore/Modules/mediastream/RTCRtpReceiver.idl >index e5c9cdddc0ea1b28ed55caea057a0c0004131288..9f53d5d538822488ad1d65e5a68f84bcd2c88eac 100644 >--- a/Source/WebCore/Modules/mediastream/RTCRtpReceiver.idl >+++ b/Source/WebCore/Modules/mediastream/RTCRtpReceiver.idl >@@ -39,5 +39,6 @@ > // FIXME 169662: missing transport > // FIXME 169662: missing rtcpTransport > // FIXME 169662: missing getCapabilities >- // FIXME 169662: missing getContributingSources >+ sequence<RTCRtpContributingSource> getContributingSources(); >+ sequence<RTCRtpSynchronizationSource> getSynchronizationSources(); > }; >diff --git a/Source/WebCore/Modules/mediastream/RTCRtpReceiverBackend.h b/Source/WebCore/Modules/mediastream/RTCRtpReceiverBackend.h >index 137d646ce29c895a7c8f5add1ed03eae50e87bd8..782dd67d5516c8d6e7b41954bcbb90bba7472693 100644 >--- a/Source/WebCore/Modules/mediastream/RTCRtpReceiverBackend.h >+++ b/Source/WebCore/Modules/mediastream/RTCRtpReceiverBackend.h >@@ -27,6 +27,7 @@ > #if ENABLE(WEB_RTC) > > #include "RTCRtpParameters.h" >+#include "RTCRtpSynchronizationSource.h" > > namespace WebCore { > >@@ -34,6 +35,8 @@ class RTCRtpReceiverBackend { > public: > virtual ~RTCRtpReceiverBackend() = default; > virtual RTCRtpParameters getParameters() { return { }; } >+ virtual Vector<RTCRtpContributingSource> getContributingSources() const { return { }; } >+ virtual Vector<RTCRtpSynchronizationSource> getSynchronizationSources() const { return { }; } > }; > > } // namespace WebCore >diff --git a/Source/WebCore/Modules/mediastream/RTCRtpSynchronizationSource.h b/Source/WebCore/Modules/mediastream/RTCRtpSynchronizationSource.h >new file mode 100644 >index 0000000000000000000000000000000000000000..7f33816a75fd1dc30c6f4877d956842eaf06ce33 >--- /dev/null >+++ b/Source/WebCore/Modules/mediastream/RTCRtpSynchronizationSource.h >@@ -0,0 +1,40 @@ >+/* >+ * Copyright (C) 2018 Apple Inc. All rights reserved. >+ * >+ * Redistribution and use in source and binary forms, with or without >+ * modification, are permitted provided that the following conditions >+ * are met: >+ * 1. Redistributions of source code must retain the above copyright >+ * notice, this list of conditions and the following disclaimer. >+ * 2. Redistributions in binary form must reproduce the above copyright >+ * notice, this list of conditions and the following disclaimer in the >+ * documentation and/or other materials provided with the distribution. >+ * >+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' >+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, >+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR >+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS >+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR >+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF >+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS >+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN >+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) >+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF >+ * THE POSSIBILITY OF SUCH DAMAGE. >+ */ >+ >+#pragma once >+ >+#if ENABLE(WEB_RTC) >+ >+#include "RTCRtpContributingSource.h" >+ >+namespace WebCore { >+ >+struct RTCRtpSynchronizationSource : RTCRtpContributingSource { >+ std::optional<bool> voiceActivityFlag; >+}; >+ >+} // namespace WebCore >+ >+#endif // ENABLE(WEB_RTC) >diff --git a/Source/WebCore/Modules/mediastream/RTCRtpSynchronizationSource.idl b/Source/WebCore/Modules/mediastream/RTCRtpSynchronizationSource.idl >new file mode 100644 >index 0000000000000000000000000000000000000000..02bdabaa731af2947d688e917af08757277f61b0 >--- /dev/null >+++ b/Source/WebCore/Modules/mediastream/RTCRtpSynchronizationSource.idl >@@ -0,0 +1,34 @@ >+/* >+* Copyright (C) 2018 Apple Inc. All rights reserved. >+* >+* Redistribution and use in source and binary forms, with or without >+* modification, are permitted provided that the following conditions >+* are met: >+* 1. Redistributions of source code must retain the above copyright >+* notice, this list of conditions and the following disclaimer. >+* 2. Redistributions in binary form must reproduce the above copyright >+* notice, this list of conditions and the following disclaimer in the >+* documentation and/or other materials provided with the distribution. >+* >+* THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' >+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, >+* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR >+* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS >+* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR >+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF >+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS >+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN >+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) >+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF >+* THE POSSIBILITY OF SUCH DAMAGE. >+*/ >+ >+typedef double DOMHighResTimeStamp; >+ >+[ >+ Conditional=WEB_RTC, >+ EnabledAtRuntime=PeerConnection, >+ JSGenerateToJSObject, >+] dictionary RTCRtpSynchronizationSource : RTCRtpContributingSource { >+ boolean voiceActivityFlag; >+}; >diff --git a/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCRtpReceiverBackend.cpp b/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCRtpReceiverBackend.cpp >index 5406d864fda0493c860884aa7fb315c29ddc6667..6a0beb3bf73e132b609196184bc9ead48f3fc8a9 100644 >--- a/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCRtpReceiverBackend.cpp >+++ b/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCRtpReceiverBackend.cpp >@@ -36,6 +36,48 @@ RTCRtpParameters LibWebRTCRtpReceiverBackend::getParameters() > return toRTCRtpParameters(m_rtcReceiver->GetParameters()); > } > >+static inline void fillRTCRtpContributingSource(RTCRtpContributingSource& source, const webrtc::RtpSource& rtcSource) >+{ >+ source.timestamp = rtcSource.timestamp_ms(); >+ source.source = rtcSource.source_id(); >+ if (rtcSource.audio_level()) >+ source.audioLevel = *rtcSource.audio_level(); >+} >+ >+static inline RTCRtpContributingSource toRTCRtpContributingSource(const webrtc::RtpSource& rtcSource) >+{ >+ RTCRtpContributingSource source; >+ fillRTCRtpContributingSource(source, rtcSource); >+ return source; >+} >+ >+static inline RTCRtpSynchronizationSource toRTCRtpSynchronizationSource(const webrtc::RtpSource& rtcSource) >+{ >+ RTCRtpSynchronizationSource source; >+ fillRTCRtpContributingSource(source, rtcSource); >+ return source; >+} >+ >+Vector<RTCRtpContributingSource> LibWebRTCRtpReceiverBackend::getContributingSources() const >+{ >+ Vector<RTCRtpContributingSource> sources; >+ for (auto& rtcSource : m_rtcReceiver->GetSources()) { >+ if (rtcSource.source_type() == webrtc::RtpSourceType::CSRC) >+ sources.append(toRTCRtpContributingSource(rtcSource)); >+ } >+ return sources; >+} >+ >+Vector<RTCRtpSynchronizationSource> LibWebRTCRtpReceiverBackend::getSynchronizationSources() const >+{ >+ Vector<RTCRtpSynchronizationSource> sources; >+ for (auto& rtcSource : m_rtcReceiver->GetSources()) { >+ if (rtcSource.source_type() == webrtc::RtpSourceType::SSRC) >+ sources.uncheckedAppend(toRTCRtpSynchronizationSource(rtcSource)); >+ } >+ return sources; >+} >+ > } // namespace WebCore > > #endif // ENABLE(WEB_RTC) && USE(LIBWEBRTC) >diff --git a/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCRtpReceiverBackend.h b/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCRtpReceiverBackend.h >index f157336a96add1b4d487ef06a91ecabffb4b61ef..fd0d95ec32975c16a53c4812f1379ae73431bae7 100644 >--- a/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCRtpReceiverBackend.h >+++ b/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCRtpReceiverBackend.h >@@ -47,6 +47,8 @@ public: > > private: > RTCRtpParameters getParameters() final; >+ Vector<RTCRtpContributingSource> getContributingSources() const final; >+ Vector<RTCRtpSynchronizationSource> getSynchronizationSources() const final; > > rtc::scoped_refptr<webrtc::RtpReceiverInterface> m_rtcReceiver; > }; >diff --git a/Source/WebCore/Sources.txt b/Source/WebCore/Sources.txt >index a13d20d9391a5cdce73697e7abbfbc1b0b80231e..30623545c80822ddeafb403ce2930c4dc805b76f 100644 >--- a/Source/WebCore/Sources.txt >+++ b/Source/WebCore/Sources.txt >@@ -2879,6 +2879,7 @@ JSRTCPeerConnectionIceEvent.cpp > JSRTCPeerConnectionState.cpp > JSRTCPriorityType.cpp > JSRTCRtpCodecParameters.cpp >+JSRTCRtpContributingSource.cpp > JSRTCRtpEncodingParameters.cpp > JSRTCRtpFecParameters.cpp > JSRTCRtpHeaderExtensionParameters.cpp >@@ -2887,6 +2888,7 @@ JSRTCRtpRtxParameters.cpp > JSRTCRtpReceiver.cpp > JSRTCRtpSendParameters.cpp > JSRTCRtpSender.cpp >+JSRTCRtpSynchronizationSource.cpp > JSRTCRtpTransceiver.cpp > JSRTCRtpTransceiverDirection.cpp > JSRTCSessionDescription.cpp >diff --git a/Source/WebCore/WebCore.xcodeproj/project.pbxproj b/Source/WebCore/WebCore.xcodeproj/project.pbxproj >index 6172a038ba3bf57298dd85037ad201e2226aeb80..4e66e92712b4808faf29430e3cb8017a5b478980 100644 >--- a/Source/WebCore/WebCore.xcodeproj/project.pbxproj >+++ b/Source/WebCore/WebCore.xcodeproj/project.pbxproj >@@ -7262,6 +7262,10 @@ > 4157EBF91E3AB06800AC9FE9 /* MockLibWebRTCPeerConnection.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MockLibWebRTCPeerConnection.cpp; sourceTree = "<group>"; }; > 415A3B732138E264001B4BAA /* LibWebRTCObservers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = LibWebRTCObservers.h; path = libwebrtc/LibWebRTCObservers.h; sourceTree = "<group>"; }; > 415CDAF61E6CE0D3004F11EE /* JSMediaStreamTrackCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSMediaStreamTrackCustom.cpp; sourceTree = "<group>"; }; >+ 415E1BB3215010800022DA96 /* RTCRtpContributingSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RTCRtpContributingSource.h; sourceTree = "<group>"; }; >+ 415E1BB5215010810022DA96 /* RTCRtpContributingSource.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = RTCRtpContributingSource.idl; sourceTree = "<group>"; }; >+ 415E1BB62150152A0022DA96 /* RTCRtpSynchronizationSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RTCRtpSynchronizationSource.h; sourceTree = "<group>"; }; >+ 415E1BB7215015300022DA96 /* RTCRtpSynchronizationSource.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = RTCRtpSynchronizationSource.idl; sourceTree = "<group>"; }; > 41614A761DA64236004AD06F /* HTTPHeaderValues.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HTTPHeaderValues.cpp; sourceTree = "<group>"; }; > 41614A771DA64236004AD06F /* HTTPHeaderValues.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HTTPHeaderValues.h; sourceTree = "<group>"; }; > 4162A44D101145AE00DFF3ED /* DedicatedWorkerGlobalScope.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DedicatedWorkerGlobalScope.cpp; sourceTree = "<group>"; }; >@@ -15205,6 +15209,8 @@ > 41FCB759214865D30038ADC6 /* RTCRtpCodecParameters.idl */, > 414AD3FF21498D3000521676 /* RTCRtpCodingParameters.h */, > 414AD40221498D3200521676 /* RTCRtpCodingParameters.idl */, >+ 415E1BB3215010800022DA96 /* RTCRtpContributingSource.h */, >+ 415E1BB5215010810022DA96 /* RTCRtpContributingSource.idl */, > 414AD40021498D3100521676 /* RTCRtpDecodingParameters.h */, > 414AD40121498D3100521676 /* RTCRtpDecodingParameters.idl */, > 41FCB761214867000038ADC6 /* RTCRtpEncodingParameters.h */, >@@ -15227,6 +15233,8 @@ > 41D1A046213EDDEB0063FB6B /* RTCRtpSenderBackend.h */, > 414AD3FC2149842000521676 /* RTCRtpSendParameters.h */, > 414AD3FE2149842000521676 /* RTCRtpSendParameters.idl */, >+ 415E1BB62150152A0022DA96 /* RTCRtpSynchronizationSource.h */, >+ 415E1BB7215015300022DA96 /* RTCRtpSynchronizationSource.idl */, > 5E5E2B101CFC3E4B000C0D85 /* RTCRtpTransceiver.cpp */, > 5E5E2B111CFC3E4B000C0D85 /* RTCRtpTransceiver.h */, > 5E5E2B121CFC3E4B000C0D85 /* RTCRtpTransceiver.idl */, >diff --git a/LayoutTests/imported/w3c/ChangeLog b/LayoutTests/imported/w3c/ChangeLog >index dc347c60cf2e8df858a519b518501c59fe39ad76..6f830817faa2c5cdd66912df7442eae6b47f955e 100644 >--- a/LayoutTests/imported/w3c/ChangeLog >+++ b/LayoutTests/imported/w3c/ChangeLog >@@ -1,3 +1,14 @@ >+2018-09-18 Youenn Fablet <youenn@apple.com> >+ >+ Implement RTCRtpReceiver getContributingSources/getSynchronizationSources >+ https://bugs.webkit.org/show_bug.cgi?id=189671 >+ >+ Reviewed by Eric Carlson. >+ >+ * web-platform-tests/webrtc/RTCRtpReceiver-getContributingSources.https-expected.txt: >+ * web-platform-tests/webrtc/RTCRtpReceiver-getSynchronizationSources.https-expected.txt: >+ * web-platform-tests/webrtc/interfaces-expected.txt: Removed, as no longer needed. >+ > 2018-09-15 Rob Buis <rbuis@igalia.com> > > XMLHttpRequest::createResponseBlob() should create a Blob with type for empty response >diff --git a/LayoutTests/imported/w3c/web-platform-tests/webrtc/RTCRtpReceiver-getContributingSources.https-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/webrtc/RTCRtpReceiver-getContributingSources.https-expected.txt >index 2470844257723f3a5ca870297837bf9c9570a071..3780f941767cc68763e55431b26474155b71a990 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/webrtc/RTCRtpReceiver-getContributingSources.https-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/webrtc/RTCRtpReceiver-getContributingSources.https-expected.txt >@@ -1,3 +1,3 @@ > >-FAIL getContributingSources() should return list of CSRC after connection is established promise_test: Unhandled rejection with value: object "TypeError: receiver.getContributingSources is not a function. (In 'receiver.getContributingSources()', 'receiver.getContributingSources' is undefined)" >+FAIL getContributingSources() should return list of CSRC after connection is established assert_greater_than: Expect CSRCs to be available after RTP connection is established expected a number greater than 0 but got 0 > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/webrtc/RTCRtpReceiver-getSynchronizationSources.https-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/webrtc/RTCRtpReceiver-getSynchronizationSources.https-expected.txt >index 6552916171499c98eaf4f85f3f884472266ea474..d499f8b997419278f8250e080f7a1ee81a99a77a 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/webrtc/RTCRtpReceiver-getSynchronizationSources.https-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/webrtc/RTCRtpReceiver-getSynchronizationSources.https-expected.txt >@@ -1,3 +1,3 @@ > >-FAIL getContributingSources() should return list of CSRC after connection is established promise_test: Unhandled rejection with value: object "TypeError: receiver.getSynchronizationSources is not a function. (In 'receiver.getSynchronizationSources()', 'receiver.getSynchronizationSources' is undefined)" >+FAIL getContributingSources() should return list of CSRC after connection is established assert_greater_than: Expect SSRCs to be available after RTP connection is established expected a number greater than 0 but got 0 > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/webrtc/interfaces-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/webrtc/interfaces-expected.txt >deleted file mode 100644 >index 6cafb8ad0399371496ef5a45ecb81de576ad479a..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/webrtc/interfaces-expected.txt >+++ /dev/null >@@ -1,527 +0,0 @@ >-CONSOLE MESSAGE: line 251: callback not yet supported >-CONSOLE MESSAGE: line 251: callback not yet supported >-CONSOLE MESSAGE: line 251: callback not yet supported >-CONSOLE MESSAGE: line 251: callback not yet supported >- >-PASS Main test driver >-FAIL Test driver for asyncInitCertificate undefined is not a function (near '...RTCPeerConnection.generateCertificate...') >-FAIL Test driver for asyncInitTransports assert_unreached: Failed to run asyncInitTransports: ReferenceError: Can't find variable: RTCSctpTransport Reached unreachable code >-PASS Test driver for asyncInitMediaStreamTrack >-FAIL MediaStreamTrack interface: existence and properties of interface object undefined is not an object (evaluating 'this.array >- .members[this.base] >- .has_extended_attribute') >-PASS MediaStreamTrack interface object length >-PASS MediaStreamTrack interface object name >-FAIL MediaStreamTrack interface: existence and properties of interface prototype object undefined is not an object (evaluating 'this.array >- .members[inherit_interface] >- .has_extended_attribute') >-PASS MediaStreamTrack interface: existence and properties of interface prototype object's "constructor" property >-FAIL MediaStreamTrack interface: attribute isolated assert_true: The prototype object must have a property "isolated" expected true got false >-FAIL MediaStreamTrack interface: attribute onisolationchange assert_true: The prototype object must have a property "onisolationchange" expected true got false >-PASS MediaStreamTrack must be primary interface of idlTestObjects.mediaStreamTrack >-FAIL Stringification of idlTestObjects.mediaStreamTrack undefined is not an object (evaluating 'this.array.members[this.base].has_stringifier') >-FAIL MediaStreamTrack interface: idlTestObjects.mediaStreamTrack must inherit property "isolated" with the proper type assert_inherits: property "isolated" not found in prototype chain >-FAIL MediaStreamTrack interface: idlTestObjects.mediaStreamTrack must inherit property "onisolationchange" with the proper type assert_inherits: property "onisolationchange" not found in prototype chain >-PASS MediaStreamTrack must be primary interface of generateMediaStreamTrack('audio') >-FAIL Stringification of generateMediaStreamTrack('audio') undefined is not an object (evaluating 'this.array.members[this.base].has_stringifier') >-FAIL MediaStreamTrack interface: generateMediaStreamTrack('audio') must inherit property "isolated" with the proper type assert_inherits: property "isolated" not found in prototype chain >-FAIL MediaStreamTrack interface: generateMediaStreamTrack('audio') must inherit property "onisolationchange" with the proper type assert_inherits: property "onisolationchange" not found in prototype chain >-FAIL RTCPeerConnection interface: existence and properties of interface object undefined is not an object (evaluating 'this.array >- .members[this.base] >- .has_extended_attribute') >-PASS RTCPeerConnection interface object length >-PASS RTCPeerConnection interface object name >-FAIL RTCPeerConnection interface: existence and properties of interface prototype object undefined is not an object (evaluating 'this.array >- .members[inherit_interface] >- .has_extended_attribute') >-PASS RTCPeerConnection interface: existence and properties of interface prototype object's "constructor" property >-PASS RTCPeerConnection interface: operation createOffer(RTCOfferOptions) >-PASS RTCPeerConnection interface: operation createAnswer(RTCAnswerOptions) >-FAIL RTCPeerConnection interface: operation setLocalDescription(RTCSessionDescriptionInit) assert_equals: property has wrong .length expected 1 but got 0 >-PASS RTCPeerConnection interface: attribute localDescription >-PASS RTCPeerConnection interface: attribute currentLocalDescription >-PASS RTCPeerConnection interface: attribute pendingLocalDescription >-FAIL RTCPeerConnection interface: operation setRemoteDescription(RTCSessionDescriptionInit) assert_equals: property has wrong .length expected 1 but got 0 >-PASS RTCPeerConnection interface: attribute remoteDescription >-PASS RTCPeerConnection interface: attribute currentRemoteDescription >-PASS RTCPeerConnection interface: attribute pendingRemoteDescription >-PASS RTCPeerConnection interface: operation addIceCandidate([object Object],[object Object]) >-PASS RTCPeerConnection interface: attribute signalingState >-PASS RTCPeerConnection interface: attribute iceGatheringState >-PASS RTCPeerConnection interface: attribute iceConnectionState >-PASS RTCPeerConnection interface: attribute connectionState >-FAIL RTCPeerConnection interface: attribute canTrickleIceCandidates assert_true: The prototype object must have a property "canTrickleIceCandidates" expected true got false >-FAIL RTCPeerConnection interface: operation getDefaultIceServers() assert_own_property: interface object missing static operation expected property "getDefaultIceServers" missing >-PASS RTCPeerConnection interface: operation getConfiguration() >-PASS RTCPeerConnection interface: operation setConfiguration(RTCConfiguration) >-PASS RTCPeerConnection interface: operation close() >-PASS RTCPeerConnection interface: attribute onnegotiationneeded >-PASS RTCPeerConnection interface: attribute onicecandidate >-FAIL RTCPeerConnection interface: attribute onicecandidateerror assert_true: The prototype object must have a property "onicecandidateerror" expected true got false >-PASS RTCPeerConnection interface: attribute onsignalingstatechange >-PASS RTCPeerConnection interface: attribute oniceconnectionstatechange >-PASS RTCPeerConnection interface: attribute onicegatheringstatechange >-PASS RTCPeerConnection interface: attribute onconnectionstatechange >-FAIL RTCPeerConnection interface: attribute onfingerprintfailure assert_true: The prototype object must have a property "onfingerprintfailure" expected true got false >-PASS RTCPeerConnection interface: operation createOffer(RTCSessionDescriptionCallback, RTCPeerConnectionErrorCallback, RTCOfferOptions) >-FAIL RTCPeerConnection interface: operation setLocalDescription(RTCSessionDescriptionInit, VoidFunction, RTCPeerConnectionErrorCallback) assert_equals: property has wrong .length expected 1 but got 0 >-PASS RTCPeerConnection interface: operation createAnswer(RTCSessionDescriptionCallback, RTCPeerConnectionErrorCallback) >-FAIL RTCPeerConnection interface: operation setRemoteDescription(RTCSessionDescriptionInit, VoidFunction, RTCPeerConnectionErrorCallback) assert_equals: property has wrong .length expected 1 but got 0 >-PASS RTCPeerConnection interface: operation addIceCandidate([object Object],[object Object], VoidFunction, RTCPeerConnectionErrorCallback) >-FAIL RTCPeerConnection interface: operation generateCertificate(AlgorithmIdentifier) assert_own_property: interface object missing static operation expected property "generateCertificate" missing >-PASS RTCPeerConnection interface: operation getSenders() >-PASS RTCPeerConnection interface: operation getReceivers() >-PASS RTCPeerConnection interface: operation getTransceivers() >-PASS RTCPeerConnection interface: operation addTrack(MediaStreamTrack, MediaStream) >-PASS RTCPeerConnection interface: operation removeTrack(RTCRtpSender) >-PASS RTCPeerConnection interface: operation addTransceiver([object Object],[object Object], RTCRtpTransceiverInit) >-PASS RTCPeerConnection interface: attribute ontrack >-FAIL RTCPeerConnection interface: attribute sctp assert_true: The prototype object must have a property "sctp" expected true got false >-PASS RTCPeerConnection interface: operation createDataChannel(USVString, RTCDataChannelInit) >-PASS RTCPeerConnection interface: attribute ondatachannel >-PASS RTCPeerConnection interface: operation getStats(MediaStreamTrack) >-FAIL RTCPeerConnection interface: operation setIdentityProvider(DOMString, RTCIdentityProviderOptions) assert_own_property: interface prototype object missing non-static operation expected property "setIdentityProvider" missing >-FAIL RTCPeerConnection interface: operation getIdentityAssertion() assert_own_property: interface prototype object missing non-static operation expected property "getIdentityAssertion" missing >-FAIL RTCPeerConnection interface: attribute peerIdentity assert_true: The prototype object must have a property "peerIdentity" expected true got false >-FAIL RTCPeerConnection interface: attribute idpLoginUrl assert_true: The prototype object must have a property "idpLoginUrl" expected true got false >-FAIL RTCPeerConnection interface: attribute idpErrorInfo assert_true: The prototype object must have a property "idpErrorInfo" expected true got false >-PASS RTCPeerConnection must be primary interface of new RTCPeerConnection() >-FAIL Stringification of new RTCPeerConnection() undefined is not an object (evaluating 'this.array.members[this.base].has_stringifier') >-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "createOffer(RTCOfferOptions)" with the proper type >-PASS RTCPeerConnection interface: calling createOffer(RTCOfferOptions) on new RTCPeerConnection() with too few arguments must throw TypeError >-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "createAnswer(RTCAnswerOptions)" with the proper type >-PASS RTCPeerConnection interface: calling createAnswer(RTCAnswerOptions) on new RTCPeerConnection() with too few arguments must throw TypeError >-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "setLocalDescription(RTCSessionDescriptionInit)" with the proper type >-PASS RTCPeerConnection interface: calling setLocalDescription(RTCSessionDescriptionInit) on new RTCPeerConnection() with too few arguments must throw TypeError >-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "localDescription" with the proper type >-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "currentLocalDescription" with the proper type >-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "pendingLocalDescription" with the proper type >-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "setRemoteDescription(RTCSessionDescriptionInit)" with the proper type >-PASS RTCPeerConnection interface: calling setRemoteDescription(RTCSessionDescriptionInit) on new RTCPeerConnection() with too few arguments must throw TypeError >-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "remoteDescription" with the proper type >-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "currentRemoteDescription" with the proper type >-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "pendingRemoteDescription" with the proper type >-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "addIceCandidate([object Object],[object Object])" with the proper type >-PASS RTCPeerConnection interface: calling addIceCandidate([object Object],[object Object]) on new RTCPeerConnection() with too few arguments must throw TypeError >-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "signalingState" with the proper type >-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "iceGatheringState" with the proper type >-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "iceConnectionState" with the proper type >-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "connectionState" with the proper type >-FAIL RTCPeerConnection interface: new RTCPeerConnection() must inherit property "canTrickleIceCandidates" with the proper type assert_inherits: property "canTrickleIceCandidates" not found in prototype chain >-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "getDefaultIceServers()" with the proper type >-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "getConfiguration()" with the proper type >-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "setConfiguration(RTCConfiguration)" with the proper type >-PASS RTCPeerConnection interface: calling setConfiguration(RTCConfiguration) on new RTCPeerConnection() with too few arguments must throw TypeError >-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "close()" with the proper type >-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "onnegotiationneeded" with the proper type >-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "onicecandidate" with the proper type >-FAIL RTCPeerConnection interface: new RTCPeerConnection() must inherit property "onicecandidateerror" with the proper type assert_inherits: property "onicecandidateerror" not found in prototype chain >-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "onsignalingstatechange" with the proper type >-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "oniceconnectionstatechange" with the proper type >-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "onicegatheringstatechange" with the proper type >-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "onconnectionstatechange" with the proper type >-FAIL RTCPeerConnection interface: new RTCPeerConnection() must inherit property "onfingerprintfailure" with the proper type assert_inherits: property "onfingerprintfailure" not found in prototype chain >-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "createOffer(RTCSessionDescriptionCallback, RTCPeerConnectionErrorCallback, RTCOfferOptions)" with the proper type >-PASS RTCPeerConnection interface: calling createOffer(RTCSessionDescriptionCallback, RTCPeerConnectionErrorCallback, RTCOfferOptions) on new RTCPeerConnection() with too few arguments must throw TypeError >-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "setLocalDescription(RTCSessionDescriptionInit, VoidFunction, RTCPeerConnectionErrorCallback)" with the proper type >-PASS RTCPeerConnection interface: calling setLocalDescription(RTCSessionDescriptionInit, VoidFunction, RTCPeerConnectionErrorCallback) on new RTCPeerConnection() with too few arguments must throw TypeError >-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "createAnswer(RTCSessionDescriptionCallback, RTCPeerConnectionErrorCallback)" with the proper type >-PASS RTCPeerConnection interface: calling createAnswer(RTCSessionDescriptionCallback, RTCPeerConnectionErrorCallback) on new RTCPeerConnection() with too few arguments must throw TypeError >-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "setRemoteDescription(RTCSessionDescriptionInit, VoidFunction, RTCPeerConnectionErrorCallback)" with the proper type >-PASS RTCPeerConnection interface: calling setRemoteDescription(RTCSessionDescriptionInit, VoidFunction, RTCPeerConnectionErrorCallback) on new RTCPeerConnection() with too few arguments must throw TypeError >-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "addIceCandidate([object Object],[object Object], VoidFunction, RTCPeerConnectionErrorCallback)" with the proper type >-PASS RTCPeerConnection interface: calling addIceCandidate([object Object],[object Object], VoidFunction, RTCPeerConnectionErrorCallback) on new RTCPeerConnection() with too few arguments must throw TypeError >-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "generateCertificate(AlgorithmIdentifier)" with the proper type >-FAIL RTCPeerConnection interface: calling generateCertificate(AlgorithmIdentifier) on new RTCPeerConnection() with too few arguments must throw TypeError assert_own_property: interface object must have static operation as own property expected property "generateCertificate" missing >-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "getSenders()" with the proper type >-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "getReceivers()" with the proper type >-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "getTransceivers()" with the proper type >-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "addTrack(MediaStreamTrack, MediaStream)" with the proper type >-PASS RTCPeerConnection interface: calling addTrack(MediaStreamTrack, MediaStream) on new RTCPeerConnection() with too few arguments must throw TypeError >-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "removeTrack(RTCRtpSender)" with the proper type >-PASS RTCPeerConnection interface: calling removeTrack(RTCRtpSender) on new RTCPeerConnection() with too few arguments must throw TypeError >-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "addTransceiver([object Object],[object Object], RTCRtpTransceiverInit)" with the proper type >-PASS RTCPeerConnection interface: calling addTransceiver([object Object],[object Object], RTCRtpTransceiverInit) on new RTCPeerConnection() with too few arguments must throw TypeError >-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "ontrack" with the proper type >-FAIL RTCPeerConnection interface: new RTCPeerConnection() must inherit property "sctp" with the proper type assert_inherits: property "sctp" not found in prototype chain >-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "createDataChannel(USVString, RTCDataChannelInit)" with the proper type >-PASS RTCPeerConnection interface: calling createDataChannel(USVString, RTCDataChannelInit) on new RTCPeerConnection() with too few arguments must throw TypeError >-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "ondatachannel" with the proper type >-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "getStats(MediaStreamTrack)" with the proper type >-PASS RTCPeerConnection interface: calling getStats(MediaStreamTrack) on new RTCPeerConnection() with too few arguments must throw TypeError >-FAIL RTCPeerConnection interface: new RTCPeerConnection() must inherit property "setIdentityProvider(DOMString, RTCIdentityProviderOptions)" with the proper type assert_inherits: property "setIdentityProvider" not found in prototype chain >-FAIL RTCPeerConnection interface: calling setIdentityProvider(DOMString, RTCIdentityProviderOptions) on new RTCPeerConnection() with too few arguments must throw TypeError assert_inherits: property "setIdentityProvider" not found in prototype chain >-FAIL RTCPeerConnection interface: new RTCPeerConnection() must inherit property "getIdentityAssertion()" with the proper type assert_inherits: property "getIdentityAssertion" not found in prototype chain >-FAIL RTCPeerConnection interface: new RTCPeerConnection() must inherit property "peerIdentity" with the proper type assert_inherits: property "peerIdentity" not found in prototype chain >-FAIL RTCPeerConnection interface: new RTCPeerConnection() must inherit property "idpLoginUrl" with the proper type assert_inherits: property "idpLoginUrl" not found in prototype chain >-FAIL RTCPeerConnection interface: new RTCPeerConnection() must inherit property "idpErrorInfo" with the proper type assert_inherits: property "idpErrorInfo" not found in prototype chain >-PASS RTCSessionDescription interface: existence and properties of interface object >-PASS RTCSessionDescription interface object length >-PASS RTCSessionDescription interface object name >-PASS RTCSessionDescription interface: existence and properties of interface prototype object >-PASS RTCSessionDescription interface: existence and properties of interface prototype object's "constructor" property >-PASS RTCSessionDescription interface: attribute type >-PASS RTCSessionDescription interface: attribute sdp >-PASS RTCSessionDescription must be primary interface of new RTCSessionDescription({ type: 'offer' }) >-PASS Stringification of new RTCSessionDescription({ type: 'offer' }) >-PASS RTCSessionDescription interface: new RTCSessionDescription({ type: 'offer' }) must inherit property "type" with the proper type >-PASS RTCSessionDescription interface: new RTCSessionDescription({ type: 'offer' }) must inherit property "sdp" with the proper type >-PASS RTCIceCandidate interface: existence and properties of interface object >-FAIL RTCIceCandidate interface object length assert_equals: wrong value for RTCIceCandidate.length expected 0 but got 1 >-PASS RTCIceCandidate interface object name >-PASS RTCIceCandidate interface: existence and properties of interface prototype object >-PASS RTCIceCandidate interface: existence and properties of interface prototype object's "constructor" property >-PASS RTCIceCandidate interface: attribute candidate >-PASS RTCIceCandidate interface: attribute sdpMid >-PASS RTCIceCandidate interface: attribute sdpMLineIndex >-FAIL RTCIceCandidate interface: attribute foundation assert_true: The prototype object must have a property "foundation" expected true got false >-FAIL RTCIceCandidate interface: attribute component assert_true: The prototype object must have a property "component" expected true got false >-FAIL RTCIceCandidate interface: attribute priority assert_true: The prototype object must have a property "priority" expected true got false >-FAIL RTCIceCandidate interface: attribute ip assert_true: The prototype object must have a property "ip" expected true got false >-FAIL RTCIceCandidate interface: attribute protocol assert_true: The prototype object must have a property "protocol" expected true got false >-FAIL RTCIceCandidate interface: attribute port assert_true: The prototype object must have a property "port" expected true got false >-FAIL RTCIceCandidate interface: attribute type assert_true: The prototype object must have a property "type" expected true got false >-FAIL RTCIceCandidate interface: attribute tcpType assert_true: The prototype object must have a property "tcpType" expected true got false >-FAIL RTCIceCandidate interface: attribute relatedAddress assert_true: The prototype object must have a property "relatedAddress" expected true got false >-FAIL RTCIceCandidate interface: attribute relatedPort assert_true: The prototype object must have a property "relatedPort" expected true got false >-FAIL RTCIceCandidate interface: attribute ufrag assert_true: The prototype object must have a property "ufrag" expected true got false >-PASS RTCIceCandidate must be primary interface of new RTCIceCandidate({ sdpMid: 1 }) >-PASS Stringification of new RTCIceCandidate({ sdpMid: 1 }) >-PASS RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "candidate" with the proper type >-PASS RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "sdpMid" with the proper type >-PASS RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "sdpMLineIndex" with the proper type >-FAIL RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "foundation" with the proper type assert_inherits: property "foundation" not found in prototype chain >-FAIL RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "component" with the proper type assert_inherits: property "component" not found in prototype chain >-FAIL RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "priority" with the proper type assert_inherits: property "priority" not found in prototype chain >-FAIL RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "ip" with the proper type assert_inherits: property "ip" not found in prototype chain >-FAIL RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "protocol" with the proper type assert_inherits: property "protocol" not found in prototype chain >-FAIL RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "port" with the proper type assert_inherits: property "port" not found in prototype chain >-FAIL RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "type" with the proper type assert_inherits: property "type" not found in prototype chain >-FAIL RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "tcpType" with the proper type assert_inherits: property "tcpType" not found in prototype chain >-FAIL RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "relatedAddress" with the proper type assert_inherits: property "relatedAddress" not found in prototype chain >-FAIL RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "relatedPort" with the proper type assert_inherits: property "relatedPort" not found in prototype chain >-FAIL RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "ufrag" with the proper type assert_inherits: property "ufrag" not found in prototype chain >-FAIL RTCPeerConnectionIceEvent interface: existence and properties of interface object assert_own_property: self does not have own property "RTCPeerConnectionIceEvent" expected property "RTCPeerConnectionIceEvent" missing >-FAIL RTCPeerConnectionIceEvent interface object length assert_own_property: self does not have own property "RTCPeerConnectionIceEvent" expected property "RTCPeerConnectionIceEvent" missing >-FAIL RTCPeerConnectionIceEvent interface object name assert_own_property: self does not have own property "RTCPeerConnectionIceEvent" expected property "RTCPeerConnectionIceEvent" missing >-FAIL RTCPeerConnectionIceEvent interface: existence and properties of interface prototype object assert_own_property: self does not have own property "RTCPeerConnectionIceEvent" expected property "RTCPeerConnectionIceEvent" missing >-FAIL RTCPeerConnectionIceEvent interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "RTCPeerConnectionIceEvent" expected property "RTCPeerConnectionIceEvent" missing >-FAIL RTCPeerConnectionIceEvent interface: attribute candidate assert_own_property: self does not have own property "RTCPeerConnectionIceEvent" expected property "RTCPeerConnectionIceEvent" missing >-FAIL RTCPeerConnectionIceEvent interface: attribute url assert_own_property: self does not have own property "RTCPeerConnectionIceEvent" expected property "RTCPeerConnectionIceEvent" missing >-FAIL RTCPeerConnectionIceEvent must be primary interface of new RTCPeerConnectionIceEvent('ice') assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: RTCPeerConnectionIceEvent" >-FAIL Stringification of new RTCPeerConnectionIceEvent('ice') assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: RTCPeerConnectionIceEvent" >-FAIL RTCPeerConnectionIceEvent interface: new RTCPeerConnectionIceEvent('ice') must inherit property "candidate" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: RTCPeerConnectionIceEvent" >-FAIL RTCPeerConnectionIceEvent interface: new RTCPeerConnectionIceEvent('ice') must inherit property "url" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: RTCPeerConnectionIceEvent" >-FAIL RTCPeerConnectionIceErrorEvent interface: existence and properties of interface object assert_own_property: self does not have own property "RTCPeerConnectionIceErrorEvent" expected property "RTCPeerConnectionIceErrorEvent" missing >-FAIL RTCPeerConnectionIceErrorEvent interface object length assert_own_property: self does not have own property "RTCPeerConnectionIceErrorEvent" expected property "RTCPeerConnectionIceErrorEvent" missing >-FAIL RTCPeerConnectionIceErrorEvent interface object name assert_own_property: self does not have own property "RTCPeerConnectionIceErrorEvent" expected property "RTCPeerConnectionIceErrorEvent" missing >-FAIL RTCPeerConnectionIceErrorEvent interface: existence and properties of interface prototype object assert_own_property: self does not have own property "RTCPeerConnectionIceErrorEvent" expected property "RTCPeerConnectionIceErrorEvent" missing >-FAIL RTCPeerConnectionIceErrorEvent interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "RTCPeerConnectionIceErrorEvent" expected property "RTCPeerConnectionIceErrorEvent" missing >-FAIL RTCPeerConnectionIceErrorEvent interface: attribute hostCandidate assert_own_property: self does not have own property "RTCPeerConnectionIceErrorEvent" expected property "RTCPeerConnectionIceErrorEvent" missing >-FAIL RTCPeerConnectionIceErrorEvent interface: attribute url assert_own_property: self does not have own property "RTCPeerConnectionIceErrorEvent" expected property "RTCPeerConnectionIceErrorEvent" missing >-FAIL RTCPeerConnectionIceErrorEvent interface: attribute errorCode assert_own_property: self does not have own property "RTCPeerConnectionIceErrorEvent" expected property "RTCPeerConnectionIceErrorEvent" missing >-FAIL RTCPeerConnectionIceErrorEvent interface: attribute errorText assert_own_property: self does not have own property "RTCPeerConnectionIceErrorEvent" expected property "RTCPeerConnectionIceErrorEvent" missing >-FAIL RTCPeerConnectionIceErrorEvent must be primary interface of new RTCPeerConnectionIceErrorEvent('ice-error', { errorCode: 701 }); assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: RTCPeerConnectionIceErrorEvent" >-FAIL Stringification of new RTCPeerConnectionIceErrorEvent('ice-error', { errorCode: 701 }); assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: RTCPeerConnectionIceErrorEvent" >-FAIL RTCPeerConnectionIceErrorEvent interface: new RTCPeerConnectionIceErrorEvent('ice-error', { errorCode: 701 }); must inherit property "hostCandidate" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: RTCPeerConnectionIceErrorEvent" >-FAIL RTCPeerConnectionIceErrorEvent interface: new RTCPeerConnectionIceErrorEvent('ice-error', { errorCode: 701 }); must inherit property "url" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: RTCPeerConnectionIceErrorEvent" >-FAIL RTCPeerConnectionIceErrorEvent interface: new RTCPeerConnectionIceErrorEvent('ice-error', { errorCode: 701 }); must inherit property "errorCode" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: RTCPeerConnectionIceErrorEvent" >-FAIL RTCPeerConnectionIceErrorEvent interface: new RTCPeerConnectionIceErrorEvent('ice-error', { errorCode: 701 }); must inherit property "errorText" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: RTCPeerConnectionIceErrorEvent" >-FAIL RTCCertificate interface: existence and properties of interface object assert_own_property: self does not have own property "RTCCertificate" expected property "RTCCertificate" missing >-FAIL RTCCertificate interface object length assert_own_property: self does not have own property "RTCCertificate" expected property "RTCCertificate" missing >-FAIL RTCCertificate interface object name assert_own_property: self does not have own property "RTCCertificate" expected property "RTCCertificate" missing >-FAIL RTCCertificate interface: existence and properties of interface prototype object assert_own_property: self does not have own property "RTCCertificate" expected property "RTCCertificate" missing >-FAIL RTCCertificate interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "RTCCertificate" expected property "RTCCertificate" missing >-FAIL RTCCertificate interface: attribute expires assert_own_property: self does not have own property "RTCCertificate" expected property "RTCCertificate" missing >-FAIL RTCCertificate interface: operation getFingerprints() assert_own_property: self does not have own property "RTCCertificate" expected property "RTCCertificate" missing >-FAIL RTCCertificate interface: operation getAlgorithm() assert_own_property: self does not have own property "RTCCertificate" expected property "RTCCertificate" missing >-FAIL RTCCertificate must be primary interface of idlTestObjects.certificate assert_equals: wrong typeof object expected "object" but got "undefined" >-FAIL Stringification of idlTestObjects.certificate assert_equals: wrong typeof object expected "object" but got "undefined" >-FAIL RTCCertificate interface: idlTestObjects.certificate must inherit property "expires" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined" >-FAIL RTCCertificate interface: idlTestObjects.certificate must inherit property "getFingerprints()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined" >-FAIL RTCCertificate interface: idlTestObjects.certificate must inherit property "getAlgorithm()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined" >-PASS RTCRtpSender interface: existence and properties of interface object >-PASS RTCRtpSender interface object length >-PASS RTCRtpSender interface object name >-PASS RTCRtpSender interface: existence and properties of interface prototype object >-PASS RTCRtpSender interface: existence and properties of interface prototype object's "constructor" property >-PASS RTCRtpSender interface: attribute track >-FAIL RTCRtpSender interface: attribute transport assert_true: The prototype object must have a property "transport" expected true got false >-FAIL RTCRtpSender interface: attribute rtcpTransport assert_true: The prototype object must have a property "rtcpTransport" expected true got false >-FAIL RTCRtpSender interface: operation getCapabilities(DOMString) assert_own_property: interface object missing static operation expected property "getCapabilities" missing >-FAIL RTCRtpSender interface: operation setParameters(RTCRtpParameters) assert_own_property: interface prototype object missing non-static operation expected property "setParameters" missing >-PASS RTCRtpSender interface: operation getParameters() >-PASS RTCRtpSender interface: operation replaceTrack(MediaStreamTrack) >-FAIL RTCRtpSender interface: operation getStats() assert_own_property: interface prototype object missing non-static operation expected property "getStats" missing >-FAIL RTCRtpSender interface: attribute dtmf assert_true: The prototype object must have a property "dtmf" expected true got false >-PASS RTCRtpSender must be primary interface of new RTCPeerConnection().addTransceiver('audio').sender >-PASS Stringification of new RTCPeerConnection().addTransceiver('audio').sender >-PASS RTCRtpSender interface: new RTCPeerConnection().addTransceiver('audio').sender must inherit property "track" with the proper type >-FAIL RTCRtpSender interface: new RTCPeerConnection().addTransceiver('audio').sender must inherit property "transport" with the proper type assert_inherits: property "transport" not found in prototype chain >-FAIL RTCRtpSender interface: new RTCPeerConnection().addTransceiver('audio').sender must inherit property "rtcpTransport" with the proper type assert_inherits: property "rtcpTransport" not found in prototype chain >-PASS RTCRtpSender interface: new RTCPeerConnection().addTransceiver('audio').sender must inherit property "getCapabilities(DOMString)" with the proper type >-FAIL RTCRtpSender interface: calling getCapabilities(DOMString) on new RTCPeerConnection().addTransceiver('audio').sender with too few arguments must throw TypeError assert_own_property: interface object must have static operation as own property expected property "getCapabilities" missing >-FAIL RTCRtpSender interface: new RTCPeerConnection().addTransceiver('audio').sender must inherit property "setParameters(RTCRtpParameters)" with the proper type assert_inherits: property "setParameters" not found in prototype chain >-FAIL RTCRtpSender interface: calling setParameters(RTCRtpParameters) on new RTCPeerConnection().addTransceiver('audio').sender with too few arguments must throw TypeError assert_inherits: property "setParameters" not found in prototype chain >-PASS RTCRtpSender interface: new RTCPeerConnection().addTransceiver('audio').sender must inherit property "getParameters()" with the proper type >-PASS RTCRtpSender interface: new RTCPeerConnection().addTransceiver('audio').sender must inherit property "replaceTrack(MediaStreamTrack)" with the proper type >-PASS RTCRtpSender interface: calling replaceTrack(MediaStreamTrack) on new RTCPeerConnection().addTransceiver('audio').sender with too few arguments must throw TypeError >-FAIL RTCRtpSender interface: new RTCPeerConnection().addTransceiver('audio').sender must inherit property "getStats()" with the proper type assert_inherits: property "getStats" not found in prototype chain >-FAIL RTCRtpSender interface: new RTCPeerConnection().addTransceiver('audio').sender must inherit property "dtmf" with the proper type assert_inherits: property "dtmf" not found in prototype chain >-PASS RTCRtpReceiver interface: existence and properties of interface object >-PASS RTCRtpReceiver interface object length >-PASS RTCRtpReceiver interface object name >-PASS RTCRtpReceiver interface: existence and properties of interface prototype object >-PASS RTCRtpReceiver interface: existence and properties of interface prototype object's "constructor" property >-PASS RTCRtpReceiver interface: attribute track >-FAIL RTCRtpReceiver interface: attribute transport assert_true: The prototype object must have a property "transport" expected true got false >-FAIL RTCRtpReceiver interface: attribute rtcpTransport assert_true: The prototype object must have a property "rtcpTransport" expected true got false >-FAIL RTCRtpReceiver interface: operation getCapabilities(DOMString) assert_own_property: interface object missing static operation expected property "getCapabilities" missing >-PASS RTCRtpReceiver interface: operation getParameters() >-FAIL RTCRtpReceiver interface: operation getContributingSources() assert_own_property: interface prototype object missing non-static operation expected property "getContributingSources" missing >-FAIL RTCRtpReceiver interface: operation getSynchronizationSources() assert_own_property: interface prototype object missing non-static operation expected property "getSynchronizationSources" missing >-FAIL RTCRtpReceiver interface: operation getStats() assert_own_property: interface prototype object missing non-static operation expected property "getStats" missing >-PASS RTCRtpReceiver must be primary interface of new RTCPeerConnection().addTransceiver('audio').receiver >-PASS Stringification of new RTCPeerConnection().addTransceiver('audio').receiver >-PASS RTCRtpReceiver interface: new RTCPeerConnection().addTransceiver('audio').receiver must inherit property "track" with the proper type >-FAIL RTCRtpReceiver interface: new RTCPeerConnection().addTransceiver('audio').receiver must inherit property "transport" with the proper type assert_inherits: property "transport" not found in prototype chain >-FAIL RTCRtpReceiver interface: new RTCPeerConnection().addTransceiver('audio').receiver must inherit property "rtcpTransport" with the proper type assert_inherits: property "rtcpTransport" not found in prototype chain >-PASS RTCRtpReceiver interface: new RTCPeerConnection().addTransceiver('audio').receiver must inherit property "getCapabilities(DOMString)" with the proper type >-FAIL RTCRtpReceiver interface: calling getCapabilities(DOMString) on new RTCPeerConnection().addTransceiver('audio').receiver with too few arguments must throw TypeError assert_own_property: interface object must have static operation as own property expected property "getCapabilities" missing >-PASS RTCRtpReceiver interface: new RTCPeerConnection().addTransceiver('audio').receiver must inherit property "getParameters()" with the proper type >-FAIL RTCRtpReceiver interface: new RTCPeerConnection().addTransceiver('audio').receiver must inherit property "getContributingSources()" with the proper type assert_inherits: property "getContributingSources" not found in prototype chain >-FAIL RTCRtpReceiver interface: new RTCPeerConnection().addTransceiver('audio').receiver must inherit property "getSynchronizationSources()" with the proper type assert_inherits: property "getSynchronizationSources" not found in prototype chain >-FAIL RTCRtpReceiver interface: new RTCPeerConnection().addTransceiver('audio').receiver must inherit property "getStats()" with the proper type assert_inherits: property "getStats" not found in prototype chain >-FAIL RTCRtpContributingSource interface: existence and properties of interface object assert_own_property: self does not have own property "RTCRtpContributingSource" expected property "RTCRtpContributingSource" missing >-FAIL RTCRtpContributingSource interface object length assert_own_property: self does not have own property "RTCRtpContributingSource" expected property "RTCRtpContributingSource" missing >-FAIL RTCRtpContributingSource interface object name assert_own_property: self does not have own property "RTCRtpContributingSource" expected property "RTCRtpContributingSource" missing >-FAIL RTCRtpContributingSource interface: existence and properties of interface prototype object assert_own_property: self does not have own property "RTCRtpContributingSource" expected property "RTCRtpContributingSource" missing >-FAIL RTCRtpContributingSource interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "RTCRtpContributingSource" expected property "RTCRtpContributingSource" missing >-FAIL RTCRtpContributingSource interface: attribute timestamp assert_own_property: self does not have own property "RTCRtpContributingSource" expected property "RTCRtpContributingSource" missing >-FAIL RTCRtpContributingSource interface: attribute source assert_own_property: self does not have own property "RTCRtpContributingSource" expected property "RTCRtpContributingSource" missing >-FAIL RTCRtpContributingSource interface: attribute audioLevel assert_own_property: self does not have own property "RTCRtpContributingSource" expected property "RTCRtpContributingSource" missing >-FAIL RTCRtpSynchronizationSource interface: existence and properties of interface object assert_own_property: self does not have own property "RTCRtpSynchronizationSource" expected property "RTCRtpSynchronizationSource" missing >-FAIL RTCRtpSynchronizationSource interface object length assert_own_property: self does not have own property "RTCRtpSynchronizationSource" expected property "RTCRtpSynchronizationSource" missing >-FAIL RTCRtpSynchronizationSource interface object name assert_own_property: self does not have own property "RTCRtpSynchronizationSource" expected property "RTCRtpSynchronizationSource" missing >-FAIL RTCRtpSynchronizationSource interface: existence and properties of interface prototype object assert_own_property: self does not have own property "RTCRtpSynchronizationSource" expected property "RTCRtpSynchronizationSource" missing >-FAIL RTCRtpSynchronizationSource interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "RTCRtpSynchronizationSource" expected property "RTCRtpSynchronizationSource" missing >-FAIL RTCRtpSynchronizationSource interface: attribute timestamp assert_own_property: self does not have own property "RTCRtpSynchronizationSource" expected property "RTCRtpSynchronizationSource" missing >-FAIL RTCRtpSynchronizationSource interface: attribute source assert_own_property: self does not have own property "RTCRtpSynchronizationSource" expected property "RTCRtpSynchronizationSource" missing >-FAIL RTCRtpSynchronizationSource interface: attribute audioLevel assert_own_property: self does not have own property "RTCRtpSynchronizationSource" expected property "RTCRtpSynchronizationSource" missing >-FAIL RTCRtpSynchronizationSource interface: attribute voiceActivityFlag assert_own_property: self does not have own property "RTCRtpSynchronizationSource" expected property "RTCRtpSynchronizationSource" missing >-PASS RTCRtpTransceiver interface: existence and properties of interface object >-PASS RTCRtpTransceiver interface object length >-PASS RTCRtpTransceiver interface object name >-PASS RTCRtpTransceiver interface: existence and properties of interface prototype object >-PASS RTCRtpTransceiver interface: existence and properties of interface prototype object's "constructor" property >-PASS RTCRtpTransceiver interface: attribute mid >-PASS RTCRtpTransceiver interface: attribute sender >-PASS RTCRtpTransceiver interface: attribute receiver >-PASS RTCRtpTransceiver interface: attribute stopped >-PASS RTCRtpTransceiver interface: attribute direction >-FAIL RTCRtpTransceiver interface: attribute currentDirection assert_true: The prototype object must have a property "currentDirection" expected true got false >-PASS RTCRtpTransceiver interface: operation setDirection(RTCRtpTransceiverDirection) >-PASS RTCRtpTransceiver interface: operation stop() >-FAIL RTCRtpTransceiver interface: operation setCodecPreferences([object Object]) assert_own_property: interface prototype object missing non-static operation expected property "setCodecPreferences" missing >-PASS RTCRtpTransceiver must be primary interface of new RTCPeerConnection().addTransceiver('audio') >-PASS Stringification of new RTCPeerConnection().addTransceiver('audio') >-PASS RTCRtpTransceiver interface: new RTCPeerConnection().addTransceiver('audio') must inherit property "mid" with the proper type >-PASS RTCRtpTransceiver interface: new RTCPeerConnection().addTransceiver('audio') must inherit property "sender" with the proper type >-PASS RTCRtpTransceiver interface: new RTCPeerConnection().addTransceiver('audio') must inherit property "receiver" with the proper type >-PASS RTCRtpTransceiver interface: new RTCPeerConnection().addTransceiver('audio') must inherit property "stopped" with the proper type >-PASS RTCRtpTransceiver interface: new RTCPeerConnection().addTransceiver('audio') must inherit property "direction" with the proper type >-FAIL RTCRtpTransceiver interface: new RTCPeerConnection().addTransceiver('audio') must inherit property "currentDirection" with the proper type assert_inherits: property "currentDirection" not found in prototype chain >-PASS RTCRtpTransceiver interface: new RTCPeerConnection().addTransceiver('audio') must inherit property "setDirection(RTCRtpTransceiverDirection)" with the proper type >-PASS RTCRtpTransceiver interface: calling setDirection(RTCRtpTransceiverDirection) on new RTCPeerConnection().addTransceiver('audio') with too few arguments must throw TypeError >-PASS RTCRtpTransceiver interface: new RTCPeerConnection().addTransceiver('audio') must inherit property "stop()" with the proper type >-FAIL RTCRtpTransceiver interface: new RTCPeerConnection().addTransceiver('audio') must inherit property "setCodecPreferences([object Object])" with the proper type assert_inherits: property "setCodecPreferences" not found in prototype chain >-FAIL RTCRtpTransceiver interface: calling setCodecPreferences([object Object]) on new RTCPeerConnection().addTransceiver('audio') with too few arguments must throw TypeError assert_inherits: property "setCodecPreferences" not found in prototype chain >-FAIL RTCDtlsTransport interface: existence and properties of interface object assert_own_property: self does not have own property "RTCDtlsTransport" expected property "RTCDtlsTransport" missing >-FAIL RTCDtlsTransport interface object length assert_own_property: self does not have own property "RTCDtlsTransport" expected property "RTCDtlsTransport" missing >-FAIL RTCDtlsTransport interface object name assert_own_property: self does not have own property "RTCDtlsTransport" expected property "RTCDtlsTransport" missing >-FAIL RTCDtlsTransport interface: existence and properties of interface prototype object assert_own_property: self does not have own property "RTCDtlsTransport" expected property "RTCDtlsTransport" missing >-FAIL RTCDtlsTransport interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "RTCDtlsTransport" expected property "RTCDtlsTransport" missing >-FAIL RTCDtlsTransport interface: attribute transport assert_own_property: self does not have own property "RTCDtlsTransport" expected property "RTCDtlsTransport" missing >-FAIL RTCDtlsTransport interface: attribute state assert_own_property: self does not have own property "RTCDtlsTransport" expected property "RTCDtlsTransport" missing >-FAIL RTCDtlsTransport interface: operation getRemoteCertificates() assert_own_property: self does not have own property "RTCDtlsTransport" expected property "RTCDtlsTransport" missing >-FAIL RTCDtlsTransport interface: attribute onstatechange assert_own_property: self does not have own property "RTCDtlsTransport" expected property "RTCDtlsTransport" missing >-FAIL RTCDtlsTransport must be primary interface of idlTestObjects.dtlsTransport assert_equals: wrong typeof object expected "object" but got "undefined" >-FAIL Stringification of idlTestObjects.dtlsTransport assert_equals: wrong typeof object expected "object" but got "undefined" >-FAIL RTCDtlsTransport interface: idlTestObjects.dtlsTransport must inherit property "transport" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined" >-FAIL RTCDtlsTransport interface: idlTestObjects.dtlsTransport must inherit property "state" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined" >-FAIL RTCDtlsTransport interface: idlTestObjects.dtlsTransport must inherit property "getRemoteCertificates()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined" >-FAIL RTCDtlsTransport interface: idlTestObjects.dtlsTransport must inherit property "onstatechange" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined" >-PASS RTCIceTransport interface: existence and properties of interface object >-PASS RTCIceTransport interface object length >-PASS RTCIceTransport interface object name >-PASS RTCIceTransport interface: existence and properties of interface prototype object >-PASS RTCIceTransport interface: existence and properties of interface prototype object's "constructor" property >-FAIL RTCIceTransport interface: attribute role assert_true: The prototype object must have a property "role" expected true got false >-FAIL RTCIceTransport interface: attribute component assert_true: The prototype object must have a property "component" expected true got false >-PASS RTCIceTransport interface: attribute state >-PASS RTCIceTransport interface: attribute gatheringState >-FAIL RTCIceTransport interface: operation getLocalCandidates() assert_own_property: interface prototype object missing non-static operation expected property "getLocalCandidates" missing >-FAIL RTCIceTransport interface: operation getRemoteCandidates() assert_own_property: interface prototype object missing non-static operation expected property "getRemoteCandidates" missing >-FAIL RTCIceTransport interface: operation getSelectedCandidatePair() assert_own_property: interface prototype object missing non-static operation expected property "getSelectedCandidatePair" missing >-FAIL RTCIceTransport interface: operation getLocalParameters() assert_own_property: interface prototype object missing non-static operation expected property "getLocalParameters" missing >-FAIL RTCIceTransport interface: operation getRemoteParameters() assert_own_property: interface prototype object missing non-static operation expected property "getRemoteParameters" missing >-FAIL RTCIceTransport interface: attribute onstatechange assert_true: The prototype object must have a property "onstatechange" expected true got false >-FAIL RTCIceTransport interface: attribute ongatheringstatechange assert_true: The prototype object must have a property "ongatheringstatechange" expected true got false >-FAIL RTCIceTransport interface: attribute onselectedcandidatepairchange assert_true: The prototype object must have a property "onselectedcandidatepairchange" expected true got false >-FAIL RTCIceTransport must be primary interface of idlTestObjects.iceTransport assert_equals: wrong typeof object expected "object" but got "undefined" >-FAIL Stringification of idlTestObjects.iceTransport assert_equals: wrong typeof object expected "object" but got "undefined" >-FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "role" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined" >-FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "component" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined" >-FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "state" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined" >-FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "gatheringState" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined" >-FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "getLocalCandidates()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined" >-FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "getRemoteCandidates()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined" >-FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "getSelectedCandidatePair()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined" >-FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "getLocalParameters()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined" >-FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "getRemoteParameters()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined" >-FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "onstatechange" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined" >-FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "ongatheringstatechange" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined" >-FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "onselectedcandidatepairchange" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined" >-FAIL RTCTrackEvent interface: existence and properties of interface object undefined is not an object (evaluating 'this.array >- .members[this.base] >- .has_extended_attribute') >-PASS RTCTrackEvent interface object length >-PASS RTCTrackEvent interface object name >-FAIL RTCTrackEvent interface: existence and properties of interface prototype object undefined is not an object (evaluating 'this.array >- .members[inherit_interface] >- .has_extended_attribute') >-PASS RTCTrackEvent interface: existence and properties of interface prototype object's "constructor" property >-PASS RTCTrackEvent interface: attribute receiver >-PASS RTCTrackEvent interface: attribute track >-PASS RTCTrackEvent interface: attribute streams >-PASS RTCTrackEvent interface: attribute transceiver >-PASS RTCTrackEvent must be primary interface of initTrackEvent() >-FAIL Stringification of initTrackEvent() undefined is not an object (evaluating 'this.array.members[this.base].has_stringifier') >-PASS RTCTrackEvent interface: initTrackEvent() must inherit property "receiver" with the proper type >-PASS RTCTrackEvent interface: initTrackEvent() must inherit property "track" with the proper type >-PASS RTCTrackEvent interface: initTrackEvent() must inherit property "streams" with the proper type >-PASS RTCTrackEvent interface: initTrackEvent() must inherit property "transceiver" with the proper type >-FAIL RTCSctpTransport interface: existence and properties of interface object assert_own_property: self does not have own property "RTCSctpTransport" expected property "RTCSctpTransport" missing >-FAIL RTCSctpTransport interface object length assert_own_property: self does not have own property "RTCSctpTransport" expected property "RTCSctpTransport" missing >-FAIL RTCSctpTransport interface object name assert_own_property: self does not have own property "RTCSctpTransport" expected property "RTCSctpTransport" missing >-FAIL RTCSctpTransport interface: existence and properties of interface prototype object assert_own_property: self does not have own property "RTCSctpTransport" expected property "RTCSctpTransport" missing >-FAIL RTCSctpTransport interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "RTCSctpTransport" expected property "RTCSctpTransport" missing >-FAIL RTCSctpTransport interface: attribute transport assert_own_property: self does not have own property "RTCSctpTransport" expected property "RTCSctpTransport" missing >-FAIL RTCSctpTransport interface: attribute maxMessageSize assert_own_property: self does not have own property "RTCSctpTransport" expected property "RTCSctpTransport" missing >-FAIL RTCSctpTransport must be primary interface of idlTestObjects.sctpTransport assert_equals: wrong typeof object expected "object" but got "undefined" >-FAIL Stringification of idlTestObjects.sctpTransport assert_equals: wrong typeof object expected "object" but got "undefined" >-FAIL RTCSctpTransport interface: idlTestObjects.sctpTransport must inherit property "transport" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined" >-FAIL RTCSctpTransport interface: idlTestObjects.sctpTransport must inherit property "maxMessageSize" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined" >-FAIL RTCDataChannel interface: existence and properties of interface object undefined is not an object (evaluating 'this.array >- .members[this.base] >- .has_extended_attribute') >-PASS RTCDataChannel interface object length >-PASS RTCDataChannel interface object name >-FAIL RTCDataChannel interface: existence and properties of interface prototype object undefined is not an object (evaluating 'this.array >- .members[inherit_interface] >- .has_extended_attribute') >-PASS RTCDataChannel interface: existence and properties of interface prototype object's "constructor" property >-PASS RTCDataChannel interface: attribute label >-PASS RTCDataChannel interface: attribute ordered >-PASS RTCDataChannel interface: attribute maxPacketLifeTime >-PASS RTCDataChannel interface: attribute maxRetransmits >-PASS RTCDataChannel interface: attribute protocol >-PASS RTCDataChannel interface: attribute negotiated >-PASS RTCDataChannel interface: attribute id >-FAIL RTCDataChannel interface: attribute priority assert_true: The prototype object must have a property "priority" expected true got false >-PASS RTCDataChannel interface: attribute readyState >-PASS RTCDataChannel interface: attribute bufferedAmount >-PASS RTCDataChannel interface: attribute bufferedAmountLowThreshold >-PASS RTCDataChannel interface: attribute onopen >-PASS RTCDataChannel interface: attribute onbufferedamountlow >-PASS RTCDataChannel interface: attribute onerror >-PASS RTCDataChannel interface: attribute onclose >-PASS RTCDataChannel interface: operation close() >-PASS RTCDataChannel interface: attribute onmessage >-PASS RTCDataChannel interface: attribute binaryType >-PASS RTCDataChannel interface: operation send(USVString) >-PASS RTCDataChannel interface: operation send(Blob) >-PASS RTCDataChannel interface: operation send(ArrayBuffer) >-PASS RTCDataChannel interface: operation send(ArrayBufferView) >-PASS RTCDataChannel must be primary interface of new RTCPeerConnection().createDataChannel('') >-FAIL Stringification of new RTCPeerConnection().createDataChannel('') undefined is not an object (evaluating 'this.array.members[this.base].has_stringifier') >-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "label" with the proper type >-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "ordered" with the proper type >-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "maxPacketLifeTime" with the proper type >-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "maxRetransmits" with the proper type >-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "protocol" with the proper type >-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "negotiated" with the proper type >-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "id" with the proper type >-FAIL RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "priority" with the proper type assert_inherits: property "priority" not found in prototype chain >-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "readyState" with the proper type >-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "bufferedAmount" with the proper type >-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "bufferedAmountLowThreshold" with the proper type >-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "onopen" with the proper type >-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "onbufferedamountlow" with the proper type >-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "onerror" with the proper type >-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "onclose" with the proper type >-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "close()" with the proper type >-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "onmessage" with the proper type >-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "binaryType" with the proper type >-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "send(USVString)" with the proper type >-PASS RTCDataChannel interface: calling send(USVString) on new RTCPeerConnection().createDataChannel('') with too few arguments must throw TypeError >-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "send(Blob)" with the proper type >-PASS RTCDataChannel interface: calling send(Blob) on new RTCPeerConnection().createDataChannel('') with too few arguments must throw TypeError >-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "send(ArrayBuffer)" with the proper type >-PASS RTCDataChannel interface: calling send(ArrayBuffer) on new RTCPeerConnection().createDataChannel('') with too few arguments must throw TypeError >-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "send(ArrayBufferView)" with the proper type >-PASS RTCDataChannel interface: calling send(ArrayBufferView) on new RTCPeerConnection().createDataChannel('') with too few arguments must throw TypeError >-FAIL RTCDataChannelEvent interface: existence and properties of interface object undefined is not an object (evaluating 'this.array >- .members[this.base] >- .has_extended_attribute') >-PASS RTCDataChannelEvent interface object length >-PASS RTCDataChannelEvent interface object name >-FAIL RTCDataChannelEvent interface: existence and properties of interface prototype object undefined is not an object (evaluating 'this.array >- .members[inherit_interface] >- .has_extended_attribute') >-PASS RTCDataChannelEvent interface: existence and properties of interface prototype object's "constructor" property >-PASS RTCDataChannelEvent interface: attribute channel >-PASS RTCDataChannelEvent must be primary interface of new RTCDataChannelEvent('channel', >- { channel: new RTCPeerConnection().createDataChannel('') }) >-FAIL Stringification of new RTCDataChannelEvent('channel', >- { channel: new RTCPeerConnection().createDataChannel('') }) undefined is not an object (evaluating 'this.array.members[this.base].has_stringifier') >-PASS RTCDataChannelEvent interface: new RTCDataChannelEvent('channel', >- { channel: new RTCPeerConnection().createDataChannel('') }) must inherit property "channel" with the proper type >-FAIL RTCDTMFSender interface: existence and properties of interface object assert_own_property: self does not have own property "RTCDTMFSender" expected property "RTCDTMFSender" missing >-FAIL RTCDTMFSender interface object length assert_own_property: self does not have own property "RTCDTMFSender" expected property "RTCDTMFSender" missing >-FAIL RTCDTMFSender interface object name assert_own_property: self does not have own property "RTCDTMFSender" expected property "RTCDTMFSender" missing >-FAIL RTCDTMFSender interface: existence and properties of interface prototype object assert_own_property: self does not have own property "RTCDTMFSender" expected property "RTCDTMFSender" missing >-FAIL RTCDTMFSender interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "RTCDTMFSender" expected property "RTCDTMFSender" missing >-FAIL RTCDTMFSender interface: operation insertDTMF(DOMString, unsigned long, unsigned long) assert_own_property: self does not have own property "RTCDTMFSender" expected property "RTCDTMFSender" missing >-FAIL RTCDTMFSender interface: attribute ontonechange assert_own_property: self does not have own property "RTCDTMFSender" expected property "RTCDTMFSender" missing >-FAIL RTCDTMFSender interface: attribute toneBuffer assert_own_property: self does not have own property "RTCDTMFSender" expected property "RTCDTMFSender" missing >-FAIL RTCDTMFToneChangeEvent interface: existence and properties of interface object assert_own_property: self does not have own property "RTCDTMFToneChangeEvent" expected property "RTCDTMFToneChangeEvent" missing >-FAIL RTCDTMFToneChangeEvent interface object length assert_own_property: self does not have own property "RTCDTMFToneChangeEvent" expected property "RTCDTMFToneChangeEvent" missing >-FAIL RTCDTMFToneChangeEvent interface object name assert_own_property: self does not have own property "RTCDTMFToneChangeEvent" expected property "RTCDTMFToneChangeEvent" missing >-FAIL RTCDTMFToneChangeEvent interface: existence and properties of interface prototype object assert_own_property: self does not have own property "RTCDTMFToneChangeEvent" expected property "RTCDTMFToneChangeEvent" missing >-FAIL RTCDTMFToneChangeEvent interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "RTCDTMFToneChangeEvent" expected property "RTCDTMFToneChangeEvent" missing >-FAIL RTCDTMFToneChangeEvent interface: attribute tone assert_own_property: self does not have own property "RTCDTMFToneChangeEvent" expected property "RTCDTMFToneChangeEvent" missing >-PASS RTCStatsReport interface: existence and properties of interface object >-PASS RTCStatsReport interface object length >-PASS RTCStatsReport interface object name >-PASS RTCStatsReport interface: existence and properties of interface prototype object >-PASS RTCStatsReport interface: existence and properties of interface prototype object's "constructor" property >-PASS RTCIdentityProviderGlobalScope interface: existence and properties of interface object >-PASS RTCIdentityProviderRegistrar interface: existence and properties of interface object >-FAIL RTCIdentityAssertion interface: existence and properties of interface object assert_own_property: self does not have own property "RTCIdentityAssertion" expected property "RTCIdentityAssertion" missing >-FAIL RTCIdentityAssertion interface object length assert_own_property: self does not have own property "RTCIdentityAssertion" expected property "RTCIdentityAssertion" missing >-FAIL RTCIdentityAssertion interface object name assert_own_property: self does not have own property "RTCIdentityAssertion" expected property "RTCIdentityAssertion" missing >-FAIL RTCIdentityAssertion interface: existence and properties of interface prototype object assert_own_property: self does not have own property "RTCIdentityAssertion" expected property "RTCIdentityAssertion" missing >-FAIL RTCIdentityAssertion interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "RTCIdentityAssertion" expected property "RTCIdentityAssertion" missing >-FAIL RTCIdentityAssertion interface: attribute idp assert_own_property: self does not have own property "RTCIdentityAssertion" expected property "RTCIdentityAssertion" missing >-FAIL RTCIdentityAssertion interface: attribute name assert_own_property: self does not have own property "RTCIdentityAssertion" expected property "RTCIdentityAssertion" missing >-FAIL RTCErrorEvent interface: existence and properties of interface object assert_own_property: self does not have own property "RTCErrorEvent" expected property "RTCErrorEvent" missing >-FAIL RTCErrorEvent interface object length assert_own_property: self does not have own property "RTCErrorEvent" expected property "RTCErrorEvent" missing >-FAIL RTCErrorEvent interface object name assert_own_property: self does not have own property "RTCErrorEvent" expected property "RTCErrorEvent" missing >-FAIL RTCErrorEvent interface: existence and properties of interface prototype object assert_own_property: self does not have own property "RTCErrorEvent" expected property "RTCErrorEvent" missing >-FAIL RTCErrorEvent interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "RTCErrorEvent" expected property "RTCErrorEvent" missing >-FAIL RTCErrorEvent interface: attribute error assert_own_property: self does not have own property "RTCErrorEvent" expected property "RTCErrorEvent" missing >-FAIL RTCErrorEvent must be primary interface of new RTCErrorEvent('error') assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: RTCErrorEvent" >-FAIL Stringification of new RTCErrorEvent('error') assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: RTCErrorEvent" >-FAIL RTCErrorEvent interface: new RTCErrorEvent('error') must inherit property "error" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: RTCErrorEvent" >-
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 189671
:
349919
| 350026