Diff
Modified: trunk/LayoutTests/ChangeLog (270100 => 270101)
--- trunk/LayoutTests/ChangeLog 2020-11-20 10:47:27 UTC (rev 270100)
+++ trunk/LayoutTests/ChangeLog 2020-11-20 11:05:32 UTC (rev 270101)
@@ -1,3 +1,13 @@
+2020-11-20 Youenn Fablet <[email protected]>
+
+ Add support for RTCPeerConnection.onicecandidateerror event
+ https://bugs.webkit.org/show_bug.cgi?id=169644
+
+ Reviewed by Alex Christensen.
+
+ * webrtc/rtcpeerconnection-error-messages-expected.txt:
+ * webrtc/stun-server-filtering.html:
+
2020-11-19 Zalan Bujtas <[email protected]>
[LFC][Integration] Enable inline-block
Modified: trunk/LayoutTests/imported/w3c/ChangeLog (270100 => 270101)
--- trunk/LayoutTests/imported/w3c/ChangeLog 2020-11-20 10:47:27 UTC (rev 270100)
+++ trunk/LayoutTests/imported/w3c/ChangeLog 2020-11-20 11:05:32 UTC (rev 270101)
@@ -1,3 +1,12 @@
+2020-11-20 Youenn Fablet <[email protected]>
+
+ Add support for RTCPeerConnection.onicecandidateerror event
+ https://bugs.webkit.org/show_bug.cgi?id=169644
+
+ Reviewed by Alex Christensen.
+
+ * web-platform-tests/webrtc/idlharness.https.window-expected.txt:
+
2020-11-16 Sergio Villar Senin <[email protected]>
[css-flex] Images as flex items should use the overridingLogicalHeight when defined to compute the logical width
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/idlharness.https.window-expected.txt (270100 => 270101)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/idlharness.https.window-expected.txt 2020-11-20 10:47:27 UTC (rev 270100)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/idlharness.https.window-expected.txt 2020-11-20 11:05:32 UTC (rev 270101)
@@ -44,7 +44,7 @@
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 onicecandidateerror
PASS RTCPeerConnection interface: attribute onsignalingstatechange
PASS RTCPeerConnection interface: attribute oniceconnectionstatechange
PASS RTCPeerConnection interface: attribute onicegatheringstatechange
@@ -96,7 +96,7 @@
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 "onicecandidateerror" with the proper type
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
@@ -195,24 +195,24 @@
PASS Stringification of new RTCPeerConnectionIceEvent('ice')
PASS RTCPeerConnectionIceEvent interface: new RTCPeerConnectionIceEvent('ice') must inherit property "candidate" with the proper type
PASS RTCPeerConnectionIceEvent interface: new RTCPeerConnectionIceEvent('ice') must inherit property "url" with the proper type
-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: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "RTCPeerConnectionIceErrorEvent" expected property "RTCPeerConnectionIceErrorEvent" missing
-FAIL RTCPeerConnectionIceErrorEvent interface: attribute address assert_own_property: self does not have own property "RTCPeerConnectionIceErrorEvent" expected property "RTCPeerConnectionIceErrorEvent" missing
-FAIL RTCPeerConnectionIceErrorEvent interface: attribute port 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', { port: 0, 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', { port: 0, 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', { port: 0, errorCode: 701 }); must inherit property "address" 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', { port: 0, errorCode: 701 }); must inherit property "port" 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', { port: 0, 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', { port: 0, 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', { port: 0, 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"
+PASS RTCPeerConnectionIceErrorEvent interface: existence and properties of interface object
+PASS RTCPeerConnectionIceErrorEvent interface object length
+PASS RTCPeerConnectionIceErrorEvent interface object name
+PASS RTCPeerConnectionIceErrorEvent interface: existence and properties of interface prototype object
+PASS RTCPeerConnectionIceErrorEvent interface: existence and properties of interface prototype object's "constructor" property
+PASS RTCPeerConnectionIceErrorEvent interface: existence and properties of interface prototype object's @@unscopables property
+PASS RTCPeerConnectionIceErrorEvent interface: attribute address
+PASS RTCPeerConnectionIceErrorEvent interface: attribute port
+PASS RTCPeerConnectionIceErrorEvent interface: attribute url
+PASS RTCPeerConnectionIceErrorEvent interface: attribute errorCode
+PASS RTCPeerConnectionIceErrorEvent interface: attribute errorText
+PASS RTCPeerConnectionIceErrorEvent must be primary interface of new RTCPeerConnectionIceErrorEvent('ice-error', { port: 0, errorCode: 701 });
+PASS Stringification of new RTCPeerConnectionIceErrorEvent('ice-error', { port: 0, errorCode: 701 });
+PASS RTCPeerConnectionIceErrorEvent interface: new RTCPeerConnectionIceErrorEvent('ice-error', { port: 0, errorCode: 701 }); must inherit property "address" with the proper type
+PASS RTCPeerConnectionIceErrorEvent interface: new RTCPeerConnectionIceErrorEvent('ice-error', { port: 0, errorCode: 701 }); must inherit property "port" with the proper type
+PASS RTCPeerConnectionIceErrorEvent interface: new RTCPeerConnectionIceErrorEvent('ice-error', { port: 0, errorCode: 701 }); must inherit property "url" with the proper type
+PASS RTCPeerConnectionIceErrorEvent interface: new RTCPeerConnectionIceErrorEvent('ice-error', { port: 0, errorCode: 701 }); must inherit property "errorCode" with the proper type
+PASS RTCPeerConnectionIceErrorEvent interface: new RTCPeerConnectionIceErrorEvent('ice-error', { port: 0, errorCode: 701 }); must inherit property "errorText" with the proper type
PASS RTCCertificate interface: existence and properties of interface object
PASS RTCCertificate interface object length
PASS RTCCertificate interface object name
Modified: trunk/LayoutTests/webrtc/rtcpeerconnection-error-messages-expected.txt (270100 => 270101)
--- trunk/LayoutTests/webrtc/rtcpeerconnection-error-messages-expected.txt 2020-11-20 10:47:27 UTC (rev 270100)
+++ trunk/LayoutTests/webrtc/rtcpeerconnection-error-messages-expected.txt 2020-11-20 11:05:32 UTC (rev 270101)
@@ -15,7 +15,7 @@
TypeError: Can only call RTCPeerConnection.close on instances of RTCPeerConnection
TypeError: The RTCPeerConnection.onnegotiationneeded getter can only be used on instances of RTCPeerConnection
TypeError: The RTCPeerConnection.onicecandidate getter can only be used on instances of RTCPeerConnection
-[object RTCPeerConnection] has no property named onicecandidateerror
+TypeError: The RTCPeerConnection.onicecandidateerror getter can only be used on instances of RTCPeerConnection
TypeError: The RTCPeerConnection.onsignalingstatechange getter can only be used on instances of RTCPeerConnection
TypeError: The RTCPeerConnection.oniceconnectionstatechange getter can only be used on instances of RTCPeerConnection
TypeError: The RTCPeerConnection.onicegatheringstatechange getter can only be used on instances of RTCPeerConnection
Modified: trunk/LayoutTests/webrtc/stun-server-filtering.html (270100 => 270101)
--- trunk/LayoutTests/webrtc/stun-server-filtering.html 2020-11-20 10:47:27 UTC (rev 270100)
+++ trunk/LayoutTests/webrtc/stun-server-filtering.html 2020-11-20 11:05:32 UTC (rev 270101)
@@ -2,19 +2,29 @@
<script src=''></script>
<script src=''></script>
<script>
-test((test) => {
+promise_test(async (test) => {
let pc = new RTCPeerConnection({iceServers:[{urls:['stun:foo.com', 'stun:blabla.local']}]});
+ let promise = new Promise(resolve => pc._onicecandidateerror_ = resolve);
let configuration = pc.getConfiguration();
assert_equals(configuration.iceServers[0].urls.length, 1);
assert_equals(configuration.iceServers[0].urls[0], 'stun:foo.com');
+
+ const event = await promise;
+ assert_equals(event.url, 'stun:blabla.local');
+ assert_equals(event.errorCode, 701);
}, "RTCPeerConnection and local STUN server");
-test((test) => {
+promise_test(async (test) => {
let pc = new RTCPeerConnection({iceServers:[{username: 'test', credential: 'test', urls:['turn:foo.com', 'turn:blabla.local']}]});
+ let promise = new Promise(resolve => pc._onicecandidateerror_ = resolve);
let configuration = pc.getConfiguration();
assert_equals(configuration.iceServers[0].urls.length, 1);
assert_equals(configuration.iceServers[0].urls[0], 'turn:foo.com');
+
+ const event = await promise;
+ assert_equals(event.url, 'turn:blabla.local');
+ assert_equals(event.errorCode, 701);
}, "RTCPeerConnection and local TURN server");
</script>
Modified: trunk/Source/WebCore/CMakeLists.txt (270100 => 270101)
--- trunk/Source/WebCore/CMakeLists.txt 2020-11-20 10:47:27 UTC (rev 270100)
+++ trunk/Source/WebCore/CMakeLists.txt 2020-11-20 11:05:32 UTC (rev 270101)
@@ -389,6 +389,7 @@
Modules/mediastream/RTCOfferAnswerOptions.idl
Modules/mediastream/RTCOfferOptions.idl
Modules/mediastream/RTCPeerConnection.idl
+ Modules/mediastream/RTCPeerConnectionIceErrorEvent.idl
Modules/mediastream/RTCPeerConnectionIceEvent.idl
Modules/mediastream/RTCPeerConnectionState.idl
Modules/mediastream/RTCPriorityType.idl
Modified: trunk/Source/WebCore/ChangeLog (270100 => 270101)
--- trunk/Source/WebCore/ChangeLog 2020-11-20 10:47:27 UTC (rev 270100)
+++ trunk/Source/WebCore/ChangeLog 2020-11-20 11:05:32 UTC (rev 270101)
@@ -1,3 +1,36 @@
+2020-11-20 Youenn Fablet <[email protected]>
+
+ Add support for RTCPeerConnection.onicecandidateerror event
+ https://bugs.webkit.org/show_bug.cgi?id=169644
+
+ Reviewed by Alex Christensen.
+
+ Expose RTCPeerConnection.onicecandidateerror and use it for wrong STUN/TURN server URLs.
+ For that matter, add RTCPeerConnectionIceErrorEvent as per spec with a slight change to the init directory to keep the same terminology between event and init dictionary.
+
+ Covered by updated webrtc/stun-server-filtering.html test.
+
+ * CMakeLists.txt:
+ * DerivedSources-input.xcfilelist:
+ * DerivedSources-output.xcfilelist:
+ * DerivedSources.make:
+ * Modules/mediastream/RTCPeerConnection.cpp:
+ (WebCore::RTCPeerConnection::iceServersFromConfiguration):
+ (WebCore::iceServersFromConfiguration): Deleted.
+ * Modules/mediastream/RTCPeerConnection.h:
+ * Modules/mediastream/RTCPeerConnection.idl:
+ * Modules/mediastream/RTCPeerConnectionIceErrorEvent.cpp: Added.
+ (WebCore::RTCPeerConnectionIceErrorEvent::create):
+ (WebCore::RTCPeerConnectionIceErrorEvent::RTCPeerConnectionIceErrorEvent):
+ (WebCore::RTCPeerConnectionIceErrorEvent::eventInterface const):
+ * Modules/mediastream/RTCPeerConnectionIceErrorEvent.h: Added.
+ * Modules/mediastream/RTCPeerConnectionIceErrorEvent.idl: Added.
+ * Sources.txt:
+ * WebCore.xcodeproj/project.pbxproj:
+ * bindings/js/WebCoreBuiltinNames.h:
+ * dom/EventNames.h:
+ * dom/EventNames.in:
+
2020-11-16 Sergio Villar Senin <[email protected]>
[css-flex] Images as flex items should use the overridingLogicalHeight when defined to compute the logical width
Modified: trunk/Source/WebCore/DerivedSources-input.xcfilelist (270100 => 270101)
--- trunk/Source/WebCore/DerivedSources-input.xcfilelist 2020-11-20 10:47:27 UTC (rev 270100)
+++ trunk/Source/WebCore/DerivedSources-input.xcfilelist 2020-11-20 11:05:32 UTC (rev 270101)
@@ -220,6 +220,7 @@
$(PROJECT_DIR)/Modules/mediastream/RTCOfferOptions.idl
$(PROJECT_DIR)/Modules/mediastream/RTCPeerConnection.idl
$(PROJECT_DIR)/Modules/mediastream/RTCPeerConnection.js
+$(PROJECT_DIR)/Modules/mediastream/RTCPeerConnectionIceErrorEvent.idl
$(PROJECT_DIR)/Modules/mediastream/RTCPeerConnectionIceEvent.idl
$(PROJECT_DIR)/Modules/mediastream/RTCPeerConnectionInternals.js
$(PROJECT_DIR)/Modules/mediastream/RTCPeerConnectionState.idl
Modified: trunk/Source/WebCore/DerivedSources-output.xcfilelist (270100 => 270101)
--- trunk/Source/WebCore/DerivedSources-output.xcfilelist 2020-11-20 10:47:27 UTC (rev 270100)
+++ trunk/Source/WebCore/DerivedSources-output.xcfilelist 2020-11-20 11:05:32 UTC (rev 270101)
@@ -1677,6 +1677,8 @@
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSRTCOfferOptions.h
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSRTCPeerConnection.cpp
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSRTCPeerConnection.h
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSRTCPeerConnectionIceErrorEvent.cpp
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSRTCPeerConnectionIceErrorEvent.h
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSRTCPeerConnectionIceEvent.cpp
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSRTCPeerConnectionIceEvent.h
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSRTCPeerConnectionState.cpp
Modified: trunk/Source/WebCore/DerivedSources.make (270100 => 270101)
--- trunk/Source/WebCore/DerivedSources.make 2020-11-20 10:47:27 UTC (rev 270100)
+++ trunk/Source/WebCore/DerivedSources.make 2020-11-20 11:05:32 UTC (rev 270101)
@@ -246,6 +246,7 @@
$(WebCore)/Modules/mediastream/RTCOfferOptions.idl \
$(WebCore)/Modules/mediastream/RTCPeerConnection.idl \
$(WebCore)/Modules/mediastream/RTCPeerConnectionIceEvent.idl \
+ $(WebCore)/Modules/mediastream/RTCPeerConnectionIceErrorEvent.idl \
$(WebCore)/Modules/mediastream/RTCPeerConnectionState.idl \
$(WebCore)/Modules/mediastream/RTCPriorityType.idl \
$(WebCore)/Modules/mediastream/RTCRtpCapabilities.idl \
Modified: trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp (270100 => 270101)
--- trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp 2020-11-20 10:47:27 UTC (rev 270100)
+++ trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp 2020-11-20 11:05:32 UTC (rev 270101)
@@ -54,6 +54,7 @@
#include "RTCIceCandidate.h"
#include "RTCIceCandidateInit.h"
#include "RTCOfferOptions.h"
+#include "RTCPeerConnectionIceErrorEvent.h"
#include "RTCPeerConnectionIceEvent.h"
#include "RTCSessionDescription.h"
#include "RTCSessionDescriptionInit.h"
@@ -329,7 +330,7 @@
}
// Implementation of https://w3c.github.io/webrtc-pc/#set-pc-configuration
-static inline ExceptionOr<Vector<MediaEndpointConfiguration::IceServerInfo>> iceServersFromConfiguration(RTCConfiguration& newConfiguration, const RTCConfiguration* existingConfiguration, bool isLocalDescriptionSet)
+ExceptionOr<Vector<MediaEndpointConfiguration::IceServerInfo>> RTCPeerConnection::iceServersFromConfiguration(RTCConfiguration& newConfiguration, const RTCConfiguration* existingConfiguration, bool isLocalDescriptionSet)
{
if (existingConfiguration && newConfiguration.bundlePolicy != existingConfiguration->bundlePolicy)
return Exception { InvalidModificationError, "BundlePolicy does not match existing policy" };
@@ -351,8 +352,13 @@
urls = WTFMove(vector);
});
- urls.removeAllMatching([](auto& url) {
- return URL { URL { }, url }.path().endsWithIgnoringASCIICase(".local");
+ urls.removeAllMatching([&](auto& urlString) {
+ URL url { URL { }, urlString };
+ if (url.path().endsWithIgnoringASCIICase(".local") || !portAllowed(url)) {
+ queueTaskToDispatchEvent(*this, TaskSource::MediaElement, RTCPeerConnectionIceErrorEvent::create(Event::CanBubble::No, Event::IsCancelable::No, { }, { }, WTFMove(urlString), 701, "URL is not allowed"_s));
+ return true;
+ }
+ return false;
});
auto serverURLs = WTF::map(urls, [](auto& url) -> URL {
Modified: trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.h (270100 => 270101)
--- trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.h 2020-11-20 10:47:27 UTC (rev 270100)
+++ trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.h 2020-11-20 11:05:32 UTC (rev 270101)
@@ -222,6 +222,8 @@
void chainOperation(Ref<DeferredPromise>&&, Function<void(Ref<DeferredPromise>&&)>&&);
friend class RTCRtpSender;
+ ExceptionOr<Vector<MediaEndpointConfiguration::IceServerInfo>> iceServersFromConfiguration(RTCConfiguration& newConfiguration, const RTCConfiguration* existingConfiguration, bool isLocalDescriptionSet);
+
bool m_isStopped { false };
RTCSignalingState m_signalingState { RTCSignalingState::Stable };
RTCIceGatheringState m_iceGatheringState { RTCIceGatheringState::New };
Modified: trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.idl (270100 => 270101)
--- trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.idl 2020-11-20 10:47:27 UTC (rev 270100)
+++ trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.idl 2020-11-20 11:05:32 UTC (rev 270101)
@@ -113,7 +113,7 @@
attribute EventHandler oniceconnectionstatechange;
attribute EventHandler onicegatheringstatechange;
attribute EventHandler onconnectionstatechange;
- // FIXME 169644: missing onfingerprintfailure and onicecandidateerror
+ attribute EventHandler onicecandidateerror;
// 4.11 Certificate management
[CallWith=GlobalObject] static Promise<RTCCertificate> generateCertificate(AlgorithmIdentifier keygenAlgorithm);
Added: trunk/Source/WebCore/Modules/mediastream/RTCPeerConnectionIceErrorEvent.cpp (0 => 270101)
--- trunk/Source/WebCore/Modules/mediastream/RTCPeerConnectionIceErrorEvent.cpp (rev 0)
+++ trunk/Source/WebCore/Modules/mediastream/RTCPeerConnectionIceErrorEvent.cpp 2020-11-20 11:05:32 UTC (rev 270101)
@@ -0,0 +1,68 @@
+/*
+ * Copyright (C) 2020 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. ``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
+ * 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.
+ */
+
+#include "config.h"
+#include "RTCPeerConnectionIceErrorEvent.h"
+
+#if ENABLE(WEB_RTC)
+
+#include "EventNames.h"
+#include <wtf/IsoMallocInlines.h>
+
+namespace WebCore {
+
+WTF_MAKE_ISO_ALLOCATED_IMPL(RTCPeerConnectionIceErrorEvent);
+
+Ref<RTCPeerConnectionIceErrorEvent> RTCPeerConnectionIceErrorEvent::create(CanBubble canBubble, IsCancelable isCancelable, String&& address, Optional<uint16_t> port, String&& url, uint16_t errorCode, String&& errorText)
+{
+ return adoptRef(*new RTCPeerConnectionIceErrorEvent(eventNames().icecandidateerrorEvent, canBubble, isCancelable, WTFMove(address), port, WTFMove(url), errorCode, WTFMove(errorText)));
+}
+
+Ref<RTCPeerConnectionIceErrorEvent> RTCPeerConnectionIceErrorEvent::create(const AtomString& type, Init&& init)
+{
+ return adoptRef(*new RTCPeerConnectionIceErrorEvent(type, init.bubbles ? CanBubble::Yes : CanBubble::No,
+ init.cancelable ? IsCancelable::Yes : IsCancelable::No, WTFMove(init.address), init.port, WTFMove(init.url), WTFMove(init.errorCode), WTFMove(init.errorText)));
+}
+
+RTCPeerConnectionIceErrorEvent::RTCPeerConnectionIceErrorEvent(const AtomString& type, CanBubble canBubble, IsCancelable cancelable, String&& address, Optional<uint16_t> port, String&& url, uint16_t errorCode, String&& errorText)
+ : Event(type, canBubble, cancelable)
+ , m_address(WTFMove(address))
+ , m_port(port)
+ , m_url(WTFMove(url))
+ , m_errorCode(errorCode)
+ , m_errorText(WTFMove(errorText))
+{
+}
+
+RTCPeerConnectionIceErrorEvent::~RTCPeerConnectionIceErrorEvent() = default;
+
+EventInterface RTCPeerConnectionIceErrorEvent::eventInterface() const
+{
+ return RTCPeerConnectionIceErrorEventInterfaceType;
+}
+
+} // namespace WebCore
+
+#endif // ENABLE(WEB_RTC)
Added: trunk/Source/WebCore/Modules/mediastream/RTCPeerConnectionIceErrorEvent.h (0 => 270101)
--- trunk/Source/WebCore/Modules/mediastream/RTCPeerConnectionIceErrorEvent.h (rev 0)
+++ trunk/Source/WebCore/Modules/mediastream/RTCPeerConnectionIceErrorEvent.h 2020-11-20 11:05:32 UTC (rev 270101)
@@ -0,0 +1,73 @@
+/*
+ * Copyright (C) 2020 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. ``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
+ * 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 "Event.h"
+#include <wtf/Optional.h>
+#include <wtf/text/AtomString.h>
+
+namespace WebCore {
+class RTCIceCandidate;
+
+class RTCPeerConnectionIceErrorEvent final : public Event {
+ WTF_MAKE_ISO_ALLOCATED(RTCPeerConnectionIceErrorEvent);
+public:
+ virtual ~RTCPeerConnectionIceErrorEvent();
+
+ struct Init : EventInit {
+ String address;
+ Optional<uint16_t> port;
+ String url;
+ uint16_t errorCode { 0 };
+ String errorText;
+ };
+
+ static Ref<RTCPeerConnectionIceErrorEvent> create(const AtomString& type, Init&&);
+ static Ref<RTCPeerConnectionIceErrorEvent> create(CanBubble, IsCancelable, String&& address, Optional<uint16_t> port, String&& url, uint16_t errorCode, String&& errorText);
+
+ const String& address() const { return m_address; }
+ Optional<uint16_t> port() const { return m_port; }
+ const String& url() const { return m_url; }
+ uint16_t errorCode() const { return m_errorCode; }
+ const String& errorText() const { return m_errorText; }
+
+ virtual EventInterface eventInterface() const;
+
+private:
+ RTCPeerConnectionIceErrorEvent(const AtomString& type, CanBubble, IsCancelable, String&& address, Optional<uint16_t> port, String&& url, uint16_t errorCode, String&& errorText);
+
+ String m_address;
+ Optional<uint16_t> m_port;
+ String m_url;
+ uint16_t m_errorCode { 0 };
+ String m_errorText;
+};
+
+} // namespace WebCore
+
+#endif // ENABLE(WEB_RTC)
Added: trunk/Source/WebCore/Modules/mediastream/RTCPeerConnectionIceErrorEvent.idl (0 => 270101)
--- trunk/Source/WebCore/Modules/mediastream/RTCPeerConnectionIceErrorEvent.idl (rev 0)
+++ trunk/Source/WebCore/Modules/mediastream/RTCPeerConnectionIceErrorEvent.idl 2020-11-20 11:05:32 UTC (rev 270101)
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2020 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. ``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
+ * 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.
+ */
+
+dictionary RTCPeerConnectionIceErrorEventInit : EventInit {
+ DOMString? address;
+ unsigned short? port;
+ DOMString url;
+ required unsigned short errorCode;
+ USVString errorText;
+};
+
+[
+ Conditional=WEB_RTC,
+ EnabledAtRuntime=PeerConnection,
+ Exposed=Window
+] interface RTCPeerConnectionIceErrorEvent : Event {
+ constructor(DOMString type, RTCPeerConnectionIceErrorEventInit eventInitDict);
+
+ readonly attribute DOMString? address;
+ readonly attribute unsigned short? port;
+ readonly attribute DOMString url;
+ readonly attribute unsigned short errorCode;
+ readonly attribute USVString errorText;
+};
Modified: trunk/Source/WebCore/Sources.txt (270100 => 270101)
--- trunk/Source/WebCore/Sources.txt 2020-11-20 10:47:27 UTC (rev 270100)
+++ trunk/Source/WebCore/Sources.txt 2020-11-20 11:05:32 UTC (rev 270101)
@@ -162,6 +162,7 @@
Modules/mediastream/RTCIceTransport.cpp
Modules/mediastream/RTCPeerConnection.cpp
Modules/mediastream/RTCPeerConnectionIceEvent.cpp
+Modules/mediastream/RTCPeerConnectionIceErrorEvent.cpp
Modules/mediastream/RTCRtpReceiver.cpp
Modules/mediastream/RTCRtpSFrameTransform.cpp
Modules/mediastream/RTCRtpSFrameTransformer.cpp
@@ -3311,6 +3312,7 @@
JSRTCOfferOptions.cpp
JSRTCPeerConnection.cpp
JSRTCPeerConnectionIceEvent.cpp
+JSRTCPeerConnectionIceErrorEvent.cpp
JSRTCPeerConnectionState.cpp
JSRTCPriorityType.cpp
JSRTCRtpCapabilities.cpp
Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (270100 => 270101)
--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2020-11-20 10:47:27 UTC (rev 270100)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2020-11-20 11:05:32 UTC (rev 270101)
@@ -1126,6 +1126,7 @@
419ACF921F97E7DA009F1A83 /* ServiceWorkerFetch.h in Headers */ = {isa = PBXBuildFile; fileRef = 419ACF8E1F97E7D5009F1A83 /* ServiceWorkerFetch.h */; settings = {ATTRIBUTES = (Private, ); }; };
419BC2DF1685329900D64D6D /* VisitedLinkState.h in Headers */ = {isa = PBXBuildFile; fileRef = 419BC2DD1685329900D64D6D /* VisitedLinkState.h */; };
419BE7591BC7F42B00E1C85B /* WebCoreBuiltinNames.h in Headers */ = {isa = PBXBuildFile; fileRef = 419BE7521BC7F3DB00E1C85B /* WebCoreBuiltinNames.h */; };
+ 419E6EC92566D278002B5010 /* RTCPeerConnectionIceErrorEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 419E6EC72566D214002B5010 /* RTCPeerConnectionIceErrorEvent.h */; };
41A0829C22935F3D008426E0 /* FeaturePolicy.h in Headers */ = {isa = PBXBuildFile; fileRef = 41A0829922932EF4008426E0 /* FeaturePolicy.h */; settings = {ATTRIBUTES = (Private, ); }; };
41A1B01C1E54239B007F3769 /* JSDOMGuardedObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 41A1B01A1E542396007F3769 /* JSDOMGuardedObject.h */; settings = {ATTRIBUTES = (Private, ); }; };
41A3D58F101C152D00316D07 /* DedicatedWorkerThread.h in Headers */ = {isa = PBXBuildFile; fileRef = 41A3D58D101C152D00316D07 /* DedicatedWorkerThread.h */; };
@@ -7771,6 +7772,9 @@
419BE7521BC7F3DB00E1C85B /* WebCoreBuiltinNames.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebCoreBuiltinNames.h; sourceTree = "<group>"; };
419D9305255E842700DA1984 /* CryptoUtilitiesCocoa.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CryptoUtilitiesCocoa.h; sourceTree = "<group>"; };
419D9307255E842800DA1984 /* CryptoUtilitiesCocoa.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = CryptoUtilitiesCocoa.cpp; sourceTree = "<group>"; };
+ 419E6EC42566D211002B5010 /* RTCPeerConnectionIceErrorEvent.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = RTCPeerConnectionIceErrorEvent.idl; sourceTree = "<group>"; };
+ 419E6EC62566D213002B5010 /* RTCPeerConnectionIceErrorEvent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = RTCPeerConnectionIceErrorEvent.cpp; sourceTree = "<group>"; };
+ 419E6EC72566D214002B5010 /* RTCPeerConnectionIceErrorEvent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RTCPeerConnectionIceErrorEvent.h; sourceTree = "<group>"; };
419FAFAD1ABABCD5005B3572 /* ReadableStreamBYOBReader.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ReadableStreamBYOBReader.idl; sourceTree = "<group>"; };
419FAFAD1ABABCD5005B828B /* ReadableStreamDefaultReader.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ReadableStreamDefaultReader.idl; sourceTree = "<group>"; };
41A023ED1A39DB7900F722CF /* ReadableStream.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ReadableStream.idl; sourceTree = "<group>"; };
@@ -17120,6 +17124,9 @@
07221B7717CEC32700848E51 /* RTCPeerConnection.cpp */,
07221B7817CEC32700848E51 /* RTCPeerConnection.h */,
07221B7917CEC32700848E51 /* RTCPeerConnection.idl */,
+ 419E6EC62566D213002B5010 /* RTCPeerConnectionIceErrorEvent.cpp */,
+ 419E6EC72566D214002B5010 /* RTCPeerConnectionIceErrorEvent.h */,
+ 419E6EC42566D211002B5010 /* RTCPeerConnectionIceErrorEvent.idl */,
07221B7417CEC32700848E51 /* RTCPeerConnectionIceEvent.cpp */,
07221B7517CEC32700848E51 /* RTCPeerConnectionIceEvent.h */,
07221B7617CEC32700848E51 /* RTCPeerConnectionIceEvent.idl */,
@@ -34227,6 +34234,7 @@
073794DE19EE2C5200E5A045 /* RTCOfferAnswerOptions.h in Headers */,
078E092517D14D1C00420AA1 /* RTCPeerConnection.h in Headers */,
078E094217D16E1C00420AA1 /* RTCPeerConnectionHandlerClient.h in Headers */,
+ 419E6EC92566D278002B5010 /* RTCPeerConnectionIceErrorEvent.h in Headers */,
078E092417D14D1C00420AA1 /* RTCPeerConnectionIceEvent.h in Headers */,
412DE4B8219285C00075F3A7 /* RTCRtpCapabilities.h in Headers */,
5E2C43631BCEE32B0001E2BC /* RTCRtpReceiver.h in Headers */,
Modified: trunk/Source/WebCore/bindings/js/WebCoreBuiltinNames.h (270100 => 270101)
--- trunk/Source/WebCore/bindings/js/WebCoreBuiltinNames.h 2020-11-20 10:47:27 UTC (rev 270100)
+++ trunk/Source/WebCore/bindings/js/WebCoreBuiltinNames.h 2020-11-20 11:05:32 UTC (rev 270101)
@@ -219,6 +219,7 @@
macro(RTCIceTransport) \
macro(RTCPeerConnection) \
macro(RTCPeerConnectionIceEvent) \
+ macro(RTCPeerConnectionIceErrorEvent) \
macro(RTCRtpReceiver) \
macro(RTCRtpSFrameTransform) \
macro(RTCRtpSender) \
Modified: trunk/Source/WebCore/dom/EventNames.h (270100 => 270101)
--- trunk/Source/WebCore/dom/EventNames.h 2020-11-20 10:47:27 UTC (rev 270100)
+++ trunk/Source/WebCore/dom/EventNames.h 2020-11-20 11:05:32 UTC (rev 270101)
@@ -144,6 +144,7 @@
macro(gotpointercapture) \
macro(hashchange) \
macro(icecandidate) \
+ macro(icecandidateerror) \
macro(iceconnectionstatechange) \
macro(icegatheringstatechange) \
macro(inactive) \
Modified: trunk/Source/WebCore/dom/EventNames.in (270100 => 270101)
--- trunk/Source/WebCore/dom/EventNames.in 2020-11-20 10:47:27 UTC (rev 270100)
+++ trunk/Source/WebCore/dom/EventNames.in 2020-11-20 11:05:32 UTC (rev 270101)
@@ -57,10 +57,10 @@
MerchantValidationEvent conditional=PAYMENT_REQUEST
PaymentMethodChangeEvent conditional=PAYMENT_REQUEST
PaymentRequestUpdateEvent conditional=PAYMENT_REQUEST
+RTCPeerConnectionIceErrorEvent conditional=WEB_RTC
RTCPeerConnectionIceEvent conditional=WEB_RTC
RTCDataChannelEvent conditional=WEB_RTC
RTCDTMFToneChangeEvent conditional=WEB_RTC
-RTCPeerConnectionIceEvent conditional=WEB_RTC
RTCTrackEvent conditional=WEB_RTC
SpeechRecognitionErrorEvent
SpeechRecognitionEvent