Title: [282199] trunk
Revision
282199
Author
[email protected]
Date
2021-09-09 00:37:01 -0700 (Thu, 09 Sep 2021)

Log Message

Add support for RTCError and RTCErrorEvent
https://bugs.webkit.org/show_bug.cgi?id=229987

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

* web-platform-tests/webrtc/RTCError-expected.txt:
* web-platform-tests/webrtc/idlharness.https.window-expected.txt:

Source/WebCore:

Add support for RTCError and RTCErrorEvent as per https://w3c.github.io/webrtc-pc/#rtcerror-interface
and https://w3c.github.io/webrtc-pc/#rtcerrorevent-interface.

Covered by updated tests.

* CMakeLists.txt:
* DerivedSources-input.xcfilelist:
* DerivedSources-output.xcfilelist:
* DerivedSources.make:
* Modules/mediastream/RTCError.cpp: Added.
(WebCore::RTCError::RTCError):
* Modules/mediastream/RTCError.h: Added.
* Modules/mediastream/RTCError.idl: Added.
* Modules/mediastream/RTCErrorDetailType.h: Added.
* Modules/mediastream/RTCErrorDetailType.idl: Added.
* Modules/mediastream/RTCErrorEvent.cpp: Added.
(WebCore::RTCErrorEvent::RTCErrorEvent):
* Modules/mediastream/RTCErrorEvent.h: Added.
* Modules/mediastream/RTCErrorEvent.idl: Added.
* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/WebCoreBuiltinNames.h:
* dom/DOMException.h:
* dom/EventNames.in:

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/imported/w3c/ChangeLog (282198 => 282199)


--- trunk/LayoutTests/imported/w3c/ChangeLog	2021-09-09 07:21:18 UTC (rev 282198)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2021-09-09 07:37:01 UTC (rev 282199)
@@ -1,5 +1,15 @@
 2021-09-09  Youenn Fablet  <[email protected]>
 
+        Add support for RTCError and RTCErrorEvent
+        https://bugs.webkit.org/show_bug.cgi?id=229987
+
+        Reviewed by Eric Carlson.
+
+        * web-platform-tests/webrtc/RTCError-expected.txt:
+        * web-platform-tests/webrtc/idlharness.https.window-expected.txt:
+
+2021-09-09  Youenn Fablet  <[email protected]>
+
         Add support for RTCDataChannel closing event
         https://bugs.webkit.org/show_bug.cgi?id=229988
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/RTCError-expected.txt (282198 => 282199)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/RTCError-expected.txt	2021-09-09 07:21:18 UTC (rev 282198)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/RTCError-expected.txt	2021-09-09 07:37:01 UTC (rev 282199)
@@ -1,37 +1,27 @@
 
-FAIL RTCError constructor with errorDetail and message Can't find variable: RTCError
-FAIL RTCError constructor's message argument is optional Can't find variable: RTCError
-FAIL RTCError constructor throws TypeError if arguments are missing assert_throws_js: function "() => {
-    new RTCError();
-  }" threw object "ReferenceError: Can't find variable: RTCError" ("ReferenceError") expected instance of function "function TypeError() {
-    [native code]
-}" ("TypeError")
-FAIL RTCError constructor throws TypeError if the errorDetail is invalid assert_throws_js: function "() => {
-    new RTCError({errorDetail:'invalid-error-detail'}, 'message');
-  }" threw object "ReferenceError: Can't find variable: RTCError" ("ReferenceError") expected instance of function "function TypeError() {
-    [native code]
-}" ("TypeError")
-FAIL RTCError.name is 'OperationError' Can't find variable: RTCError
-FAIL RTCError.code is 0 Can't find variable: RTCError
-FAIL RTCError.errorDetail is readonly. Can't find variable: RTCError
-FAIL RTCErrorInit.errorDetail is the only required attribute assert_throws_js: function "() => {
-    new RTCError({}, 'message');
-  }" threw object "ReferenceError: Can't find variable: RTCError" ("ReferenceError") expected instance of function "function TypeError() {
-    [native code]
-}" ("TypeError")
-FAIL RTCError.sdpLineNumber is null by default Can't find variable: RTCError
-FAIL RTCError.sdpLineNumber is settable by constructor Can't find variable: RTCError
-FAIL RTCError.sdpLineNumber is readonly Can't find variable: RTCError
-FAIL RTCError.httpRequestStatusCode is null by default Can't find variable: RTCError
-FAIL RTCError.httpRequestStatusCode is settable by constructor Can't find variable: RTCError
-FAIL RTCError.httpRequestStatusCode is readonly Can't find variable: RTCError
-FAIL RTCError.sctpCauseCode is null by default Can't find variable: RTCError
-FAIL RTCError.sctpCauseCode is settable by constructor Can't find variable: RTCError
-FAIL RTCError.sctpCauseCode is readonly Can't find variable: RTCError
-FAIL RTCError.receivedAlert is null by default Can't find variable: RTCError
-FAIL RTCError.receivedAlert is settable by constructor Can't find variable: RTCError
-FAIL RTCError.receivedAlert is readonly Can't find variable: RTCError
-FAIL RTCError.sentAlert is null by default Can't find variable: RTCError
-FAIL RTCError.sentAlert is settable by constructor Can't find variable: RTCError
-FAIL RTCError.sentAlert is readonly Can't find variable: RTCError
+PASS RTCError constructor with errorDetail and message
+PASS RTCError constructor's message argument is optional
+PASS RTCError constructor throws TypeError if arguments are missing
+PASS RTCError constructor throws TypeError if the errorDetail is invalid
+PASS RTCError.name is 'OperationError'
+PASS RTCError.code is 0
+PASS RTCError.errorDetail is readonly.
+PASS RTCErrorInit.errorDetail is the only required attribute
+PASS RTCError.sdpLineNumber is null by default
+PASS RTCError.sdpLineNumber is settable by constructor
+PASS RTCError.sdpLineNumber is readonly
+FAIL RTCError.httpRequestStatusCode is null by default assert_equals: expected (object) null but got (undefined) undefined
+FAIL RTCError.httpRequestStatusCode is settable by constructor assert_equals: expected (number) 0 but got (undefined) undefined
+FAIL RTCError.httpRequestStatusCode is readonly assert_throws_js: function "() => {
+      error[attribute] = 42;
+    }" did not throw
+PASS RTCError.sctpCauseCode is null by default
+PASS RTCError.sctpCauseCode is settable by constructor
+PASS RTCError.sctpCauseCode is readonly
+PASS RTCError.receivedAlert is null by default
+PASS RTCError.receivedAlert is settable by constructor
+PASS RTCError.receivedAlert is readonly
+PASS RTCError.sentAlert is null by default
+PASS RTCError.sentAlert is settable by constructor
+PASS RTCError.sentAlert is readonly
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/idlharness.https.window-expected.txt (282198 => 282199)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/idlharness.https.window-expected.txt	2021-09-09 07:21:18 UTC (rev 282198)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/idlharness.https.window-expected.txt	2021-09-09 07:37:01 UTC (rev 282199)
@@ -480,25 +480,25 @@
 PASS RTCStatsReport interface: existence and properties of interface prototype object
 PASS RTCStatsReport interface: existence and properties of interface prototype object's "constructor" property
 PASS RTCStatsReport interface: existence and properties of interface prototype object's @@unscopables property
-FAIL RTCError interface: existence and properties of interface object assert_own_property: self does not have own property "RTCError" expected property "RTCError" missing
-FAIL RTCError interface object length assert_own_property: self does not have own property "RTCError" expected property "RTCError" missing
-FAIL RTCError interface object name assert_own_property: self does not have own property "RTCError" expected property "RTCError" missing
-FAIL RTCError interface: existence and properties of interface prototype object assert_own_property: self does not have own property "RTCError" expected property "RTCError" missing
-FAIL RTCError interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "RTCError" expected property "RTCError" missing
-FAIL RTCError interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "RTCError" expected property "RTCError" missing
-FAIL RTCError interface: attribute errorDetail assert_own_property: self does not have own property "RTCError" expected property "RTCError" missing
-FAIL RTCError interface: attribute sdpLineNumber assert_own_property: self does not have own property "RTCError" expected property "RTCError" missing
-FAIL RTCError interface: attribute sctpCauseCode assert_own_property: self does not have own property "RTCError" expected property "RTCError" missing
-FAIL RTCError interface: attribute receivedAlert assert_own_property: self does not have own property "RTCError" expected property "RTCError" missing
-FAIL RTCError interface: attribute sentAlert assert_own_property: self does not have own property "RTCError" expected property "RTCError" 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: existence and properties of interface prototype object's @@unscopables 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"
+PASS RTCError interface: existence and properties of interface object
+PASS RTCError interface object length
+PASS RTCError interface object name
+PASS RTCError interface: existence and properties of interface prototype object
+PASS RTCError interface: existence and properties of interface prototype object's "constructor" property
+PASS RTCError interface: existence and properties of interface prototype object's @@unscopables property
+PASS RTCError interface: attribute errorDetail
+PASS RTCError interface: attribute sdpLineNumber
+PASS RTCError interface: attribute sctpCauseCode
+PASS RTCError interface: attribute receivedAlert
+PASS RTCError interface: attribute sentAlert
+PASS RTCErrorEvent interface: existence and properties of interface object
+PASS RTCErrorEvent interface object length
+PASS RTCErrorEvent interface object name
+PASS RTCErrorEvent interface: existence and properties of interface prototype object
+PASS RTCErrorEvent interface: existence and properties of interface prototype object's "constructor" property
+PASS RTCErrorEvent interface: existence and properties of interface prototype object's @@unscopables property
+PASS RTCErrorEvent interface: attribute error
+FAIL RTCErrorEvent must be primary interface of new RTCErrorEvent('error') assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Not enough arguments"
+FAIL Stringification of new RTCErrorEvent('error') assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Not enough arguments"
+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 "TypeError: Not enough arguments"
 

Modified: trunk/Source/WebCore/CMakeLists.txt (282198 => 282199)


--- trunk/Source/WebCore/CMakeLists.txt	2021-09-09 07:21:18 UTC (rev 282198)
+++ trunk/Source/WebCore/CMakeLists.txt	2021-09-09 07:37:01 UTC (rev 282199)
@@ -386,6 +386,9 @@
     Modules/mediastream/RTCDtxStatus.idl
     Modules/mediastream/RTCEncodedAudioFrame.idl
     Modules/mediastream/RTCEncodedVideoFrame.idl
+    Modules/mediastream/RTCError.idl
+    Modules/mediastream/RTCErrorDetailType.idl
+    Modules/mediastream/RTCErrorEvent.idl
     Modules/mediastream/RTCIceCandidate.idl
     Modules/mediastream/RTCIceCandidateInit.idl
     Modules/mediastream/RTCIceCandidateType.idl

Modified: trunk/Source/WebCore/ChangeLog (282198 => 282199)


--- trunk/Source/WebCore/ChangeLog	2021-09-09 07:21:18 UTC (rev 282198)
+++ trunk/Source/WebCore/ChangeLog	2021-09-09 07:37:01 UTC (rev 282199)
@@ -1,5 +1,37 @@
 2021-09-09  Youenn Fablet  <[email protected]>
 
+        Add support for RTCError and RTCErrorEvent
+        https://bugs.webkit.org/show_bug.cgi?id=229987
+
+        Reviewed by Eric Carlson.
+
+        Add support for RTCError and RTCErrorEvent as per https://w3c.github.io/webrtc-pc/#rtcerror-interface
+        and https://w3c.github.io/webrtc-pc/#rtcerrorevent-interface.
+
+        Covered by updated tests.
+
+        * CMakeLists.txt:
+        * DerivedSources-input.xcfilelist:
+        * DerivedSources-output.xcfilelist:
+        * DerivedSources.make:
+        * Modules/mediastream/RTCError.cpp: Added.
+        (WebCore::RTCError::RTCError):
+        * Modules/mediastream/RTCError.h: Added.
+        * Modules/mediastream/RTCError.idl: Added.
+        * Modules/mediastream/RTCErrorDetailType.h: Added.
+        * Modules/mediastream/RTCErrorDetailType.idl: Added.
+        * Modules/mediastream/RTCErrorEvent.cpp: Added.
+        (WebCore::RTCErrorEvent::RTCErrorEvent):
+        * Modules/mediastream/RTCErrorEvent.h: Added.
+        * Modules/mediastream/RTCErrorEvent.idl: Added.
+        * Sources.txt:
+        * WebCore.xcodeproj/project.pbxproj:
+        * bindings/js/WebCoreBuiltinNames.h:
+        * dom/DOMException.h:
+        * dom/EventNames.in:
+
+2021-09-09  Youenn Fablet  <[email protected]>
+
         Add support for RTCDataChannel closing event
         https://bugs.webkit.org/show_bug.cgi?id=229988
 

Modified: trunk/Source/WebCore/DerivedSources-input.xcfilelist (282198 => 282199)


--- trunk/Source/WebCore/DerivedSources-input.xcfilelist	2021-09-09 07:21:18 UTC (rev 282198)
+++ trunk/Source/WebCore/DerivedSources-input.xcfilelist	2021-09-09 07:37:01 UTC (rev 282199)
@@ -224,6 +224,9 @@
 $(PROJECT_DIR)/Modules/mediastream/RTCDtxStatus.idl
 $(PROJECT_DIR)/Modules/mediastream/RTCEncodedAudioFrame.idl
 $(PROJECT_DIR)/Modules/mediastream/RTCEncodedVideoFrame.idl
+$(PROJECT_DIR)/Modules/mediastream/RTCError.idl
+$(PROJECT_DIR)/Modules/mediastream/RTCErrorDetailType.idl
+$(PROJECT_DIR)/Modules/mediastream/RTCErrorEvent.idl
 $(PROJECT_DIR)/Modules/mediastream/RTCIceCandidate.idl
 $(PROJECT_DIR)/Modules/mediastream/RTCIceCandidateInit.idl
 $(PROJECT_DIR)/Modules/mediastream/RTCIceCandidateType.idl

Modified: trunk/Source/WebCore/DerivedSources-output.xcfilelist (282198 => 282199)


--- trunk/Source/WebCore/DerivedSources-output.xcfilelist	2021-09-09 07:21:18 UTC (rev 282198)
+++ trunk/Source/WebCore/DerivedSources-output.xcfilelist	2021-09-09 07:37:01 UTC (rev 282199)
@@ -1669,6 +1669,12 @@
 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSRTCEncodedAudioFrame.h
 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSRTCEncodedVideoFrame.cpp
 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSRTCEncodedVideoFrame.h
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSRTCError.cpp
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSRTCError.h
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSRTCErrorDetailType.cpp
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSRTCErrorDetailType.h
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSRTCErrorEvent.cpp
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSRTCErrorEvent.h
 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSRTCIceCandidate.cpp
 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSRTCIceCandidate.h
 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSRTCIceCandidateInit.cpp

Modified: trunk/Source/WebCore/DerivedSources.make (282198 => 282199)


--- trunk/Source/WebCore/DerivedSources.make	2021-09-09 07:21:18 UTC (rev 282198)
+++ trunk/Source/WebCore/DerivedSources.make	2021-09-09 07:37:01 UTC (rev 282199)
@@ -250,6 +250,9 @@
     $(WebCore)/Modules/mediastream/RTCDtxStatus.idl \
     $(WebCore)/Modules/mediastream/RTCEncodedAudioFrame.idl \
     $(WebCore)/Modules/mediastream/RTCEncodedVideoFrame.idl \
+    $(WebCore)/Modules/mediastream/RTCError.idl \
+    $(WebCore)/Modules/mediastream/RTCErrorDetailType.idl \
+    $(WebCore)/Modules/mediastream/RTCErrorEvent.idl \
     $(WebCore)/Modules/mediastream/RTCIceCandidate.idl \
     $(WebCore)/Modules/mediastream/RTCIceCandidateInit.idl \
     $(WebCore)/Modules/mediastream/RTCIceCandidateType.idl \

Added: trunk/Source/WebCore/Modules/mediastream/RTCError.cpp (0 => 282199)


--- trunk/Source/WebCore/Modules/mediastream/RTCError.cpp	                        (rev 0)
+++ trunk/Source/WebCore/Modules/mediastream/RTCError.cpp	2021-09-09 07:37:01 UTC (rev 282199)
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2021 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.
+ */
+
+#include "config.h"
+#include "RTCError.h"
+
+#if ENABLE(WEB_RTC)
+
+namespace WebCore {
+
+RTCError::RTCError(const Init& initializer, String&& message)
+    : DOMException(0, "OperationError"_s, WTFMove(message))
+    , m_values(initializer)
+{
+}
+
+} // namespace WebCore
+
+#endif // ENABLE(WEB_RTC)

Added: trunk/Source/WebCore/Modules/mediastream/RTCError.h (0 => 282199)


--- trunk/Source/WebCore/Modules/mediastream/RTCError.h	                        (rev 0)
+++ trunk/Source/WebCore/Modules/mediastream/RTCError.h	2021-09-09 07:37:01 UTC (rev 282199)
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2021 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 "DOMException.h"
+#include "RTCErrorDetailType.h"
+#include <optional>
+#include <wtf/text/WTFString.h>
+
+namespace WebCore {
+
+class RTCError final : public DOMException {
+public:
+    struct Init {
+        RTCErrorDetailType errorDetail;
+        std::optional<int> sdpLineNumber;
+        std::optional<int> sctpCauseCode;
+        std::optional<unsigned> receivedAlert;
+        std::optional<unsigned> sentAlert;
+    };
+
+    static Ref<RTCError> create(const Init& init, String&& message) { return adoptRef(*new RTCError(init, WTFMove(message))); }
+
+    RTCErrorDetailType errorDetail() const { return m_values.errorDetail; }
+    std::optional<int> sdpLineNumber() const  { return m_values.sdpLineNumber; }
+    std::optional<int> sctpCauseCode() const  { return m_values.sctpCauseCode; }
+    std::optional<unsigned> receivedAlert() const  { return m_values.receivedAlert; }
+    std::optional<unsigned> sentAlert() const  { return m_values.sentAlert; }
+
+private:
+    RTCError(const Init&, String&&);
+
+    Init m_values;
+};
+
+} // namespace WebCore
+
+#endif // ENABLE(WEB_RTC)

Added: trunk/Source/WebCore/Modules/mediastream/RTCError.idl (0 => 282199)


--- trunk/Source/WebCore/Modules/mediastream/RTCError.idl	                        (rev 0)
+++ trunk/Source/WebCore/Modules/mediastream/RTCError.idl	2021-09-09 07:37:01 UTC (rev 282199)
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2021 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.
+ */
+
+[
+    Conditional=WEB_RTC,
+    EnabledBySetting=PeerConnection,
+    Exposed=Window,
+    JSGenerateToNativeObject,
+    SkipVTableValidation
+] interface RTCError : DOMException {
+    constructor(RTCErrorInit init, optional DOMString message = "");
+
+    readonly attribute RTCErrorDetailType errorDetail;
+    readonly attribute long? sdpLineNumber;
+    readonly attribute long? sctpCauseCode;
+    readonly attribute unsigned long? receivedAlert;
+    readonly attribute unsigned long? sentAlert;
+};
+
+dictionary RTCErrorInit {
+    required RTCErrorDetailType errorDetail;
+    long sdpLineNumber;
+    long sctpCauseCode;
+    unsigned long receivedAlert;
+    unsigned long sentAlert;
+};

Added: trunk/Source/WebCore/Modules/mediastream/RTCErrorDetailType.h (0 => 282199)


--- trunk/Source/WebCore/Modules/mediastream/RTCErrorDetailType.h	                        (rev 0)
+++ trunk/Source/WebCore/Modules/mediastream/RTCErrorDetailType.h	2021-09-09 07:37:01 UTC (rev 282199)
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2021 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
+
+namespace WebCore {
+
+enum class RTCErrorDetailType { DataChannelFailure, DtlsFailure, FingerprintFailure, SctpFailure, SdpSyntaxError };
+
+} // namespace WebCore

Added: trunk/Source/WebCore/Modules/mediastream/RTCErrorDetailType.idl (0 => 282199)


--- trunk/Source/WebCore/Modules/mediastream/RTCErrorDetailType.idl	                        (rev 0)
+++ trunk/Source/WebCore/Modules/mediastream/RTCErrorDetailType.idl	2021-09-09 07:37:01 UTC (rev 282199)
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2021 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.
+ */
+
+enum RTCErrorDetailType {
+  "data-channel-failure",
+  "dtls-failure",
+  "fingerprint-failure",
+  "sctp-failure",
+  "sdp-syntax-error"
+};

Added: trunk/Source/WebCore/Modules/mediastream/RTCErrorEvent.cpp (0 => 282199)


--- trunk/Source/WebCore/Modules/mediastream/RTCErrorEvent.cpp	                        (rev 0)
+++ trunk/Source/WebCore/Modules/mediastream/RTCErrorEvent.cpp	2021-09-09 07:37:01 UTC (rev 282199)
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2021 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.
+ */
+
+#include "config.h"
+#include "RTCErrorEvent.h"
+
+#if ENABLE(WEB_RTC)
+
+#include <wtf/IsoMallocInlines.h>
+
+namespace WebCore {
+
+WTF_MAKE_ISO_ALLOCATED_IMPL(RTCErrorEvent);
+
+RTCErrorEvent::RTCErrorEvent(const AtomString& type, Init&& initializer, IsTrusted isTrusted)
+    : Event(type, initializer, isTrusted)
+    , m_error(initializer.error.releaseNonNull())
+{
+}
+
+} // namespace WebCore
+
+#endif // ENABLE(WEB_RTC)

Added: trunk/Source/WebCore/Modules/mediastream/RTCErrorEvent.h (0 => 282199)


--- trunk/Source/WebCore/Modules/mediastream/RTCErrorEvent.h	                        (rev 0)
+++ trunk/Source/WebCore/Modules/mediastream/RTCErrorEvent.h	2021-09-09 07:37:01 UTC (rev 282199)
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2021 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 "Event.h"
+#include "RTCError.h"
+
+namespace WebCore {
+
+class RTCErrorEvent final : public Event {
+    WTF_MAKE_ISO_ALLOCATED(RTCErrorEvent);
+public:
+    struct Init : EventInit {
+        RefPtr<RTCError> error;
+    };
+    static Ref<RTCErrorEvent> create(const AtomString& type, Init&& init, IsTrusted isTrusted = IsTrusted::No) { return adoptRef(*new RTCErrorEvent(type, WTFMove(init), isTrusted)); }
+
+    RTCError& error() const { return m_error.get(); }
+
+private:
+    RTCErrorEvent(const AtomString& type, Init&&, IsTrusted);
+
+    Ref<RTCError> m_error;
+};
+
+} // namespace WebCore
+
+#endif // ENABLE(WEB_RTC)

Added: trunk/Source/WebCore/Modules/mediastream/RTCErrorEvent.idl (0 => 282199)


--- trunk/Source/WebCore/Modules/mediastream/RTCErrorEvent.idl	                        (rev 0)
+++ trunk/Source/WebCore/Modules/mediastream/RTCErrorEvent.idl	2021-09-09 07:37:01 UTC (rev 282199)
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2021 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.
+ */
+
+[
+    Conditional=WEB_RTC,
+    EnabledBySetting=PeerConnection,
+    Exposed=Window
+] interface RTCErrorEvent : Event {
+    constructor(DOMString type, RTCErrorEventInit eventInitDict);
+    [SameObject] readonly attribute RTCError error;
+};
+
+dictionary RTCErrorEventInit : EventInit {
+    required RTCError error;
+};

Modified: trunk/Source/WebCore/Sources.txt (282198 => 282199)


--- trunk/Source/WebCore/Sources.txt	2021-09-09 07:21:18 UTC (rev 282198)
+++ trunk/Source/WebCore/Sources.txt	2021-09-09 07:37:01 UTC (rev 282199)
@@ -165,6 +165,8 @@
 Modules/mediastream/RTCEncodedAudioFrame.cpp
 Modules/mediastream/RTCEncodedFrame.cpp
 Modules/mediastream/RTCEncodedVideoFrame.cpp
+Modules/mediastream/RTCError.cpp
+Modules/mediastream/RTCErrorEvent.cpp
 Modules/mediastream/RTCIceCandidate.cpp
 Modules/mediastream/RTCIceTransport.cpp
 Modules/mediastream/RTCPeerConnection.cpp
@@ -3320,6 +3322,9 @@
 JSRTCDtlsTransportState.cpp
 JSRTCEncodedAudioFrame.cpp
 JSRTCEncodedVideoFrame.cpp
+JSRTCError.cpp
+JSRTCErrorDetailType.cpp
+JSRTCErrorEvent.cpp
 JSRTCIceCandidate.cpp
 JSRTCIceCandidateInit.cpp
 JSRTCIceCandidateType.cpp

Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (282198 => 282199)


--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj	2021-09-09 07:21:18 UTC (rev 282198)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj	2021-09-09 07:37:01 UTC (rev 282199)
@@ -1166,6 +1166,7 @@
 		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 */; };
 		41A7D3531F438D16008988DE /* WorkerCacheStorageConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 41A7D3501F438D10008988DE /* WorkerCacheStorageConnection.h */; };
+		41AB979526E75A2E007C0FE6 /* RTCErrorDetailType.h in Headers */ = {isa = PBXBuildFile; fileRef = 41AB979226E75A2D007C0FE6 /* RTCErrorDetailType.h */; };
 		41ABE67B1D0580DB006D862D /* CrossOriginPreflightChecker.h in Headers */ = {isa = PBXBuildFile; fileRef = 41ABE67A1D0580D5006D862D /* CrossOriginPreflightChecker.h */; };
 		41AD753A1CEF6BD100A31486 /* FetchOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 41AD75391CEF6BCE00A31486 /* FetchOptions.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		41B28B151F8501D300FB52AC /* MediaEndpointConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 41B28B121F8501A300FB52AC /* MediaEndpointConfiguration.h */; };
@@ -8037,6 +8038,8 @@
 		41A48AA81E84AF1D00D2AC2D /* RTCRtpParameters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RTCRtpParameters.h; sourceTree = "<group>"; };
 		41A7D34F1F438D10008988DE /* WorkerCacheStorageConnection.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WorkerCacheStorageConnection.cpp; sourceTree = "<group>"; };
 		41A7D3501F438D10008988DE /* WorkerCacheStorageConnection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WorkerCacheStorageConnection.h; sourceTree = "<group>"; };
+		41AB979226E75A2D007C0FE6 /* RTCErrorDetailType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RTCErrorDetailType.h; sourceTree = "<group>"; };
+		41AB979426E75A2D007C0FE6 /* RTCErrorDetailType.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = RTCErrorDetailType.idl; sourceTree = "<group>"; };
 		41ABE6791D0580D5006D862D /* CrossOriginPreflightChecker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CrossOriginPreflightChecker.cpp; sourceTree = "<group>"; };
 		41ABE67A1D0580D5006D862D /* CrossOriginPreflightChecker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CrossOriginPreflightChecker.h; sourceTree = "<group>"; };
 		41AD75391CEF6BCE00A31486 /* FetchOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FetchOptions.h; sourceTree = "<group>"; };
@@ -8057,6 +8060,12 @@
 		41B6AA4F26B995F800AADFA7 /* RTCRtpSFrameTransformErrorEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RTCRtpSFrameTransformErrorEvent.h; sourceTree = "<group>"; };
 		41B6AA5126B995F800AADFA7 /* RTCRtpSFrameTransformErrorEvent.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = RTCRtpSFrameTransformErrorEvent.idl; sourceTree = "<group>"; };
 		41B6AA5226B995F900AADFA7 /* RTCRtpSFrameTransformErrorEvent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RTCRtpSFrameTransformErrorEvent.cpp; sourceTree = "<group>"; };
+		41B7C04526E690BC00D36C07 /* RTCErrorEvent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = RTCErrorEvent.cpp; sourceTree = "<group>"; };
+		41B7C04726E690BD00D36C07 /* RTCErrorEvent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RTCErrorEvent.h; sourceTree = "<group>"; };
+		41B7C04826E690BE00D36C07 /* RTCErrorEvent.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = RTCErrorEvent.idl; sourceTree = "<group>"; };
+		41B7C04926E6916F00D36C07 /* RTCError.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = RTCError.idl; sourceTree = "<group>"; };
+		41B7C04A26E6917000D36C07 /* RTCError.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = RTCError.cpp; sourceTree = "<group>"; };
+		41B7C04B26E6917100D36C07 /* RTCError.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RTCError.h; sourceTree = "<group>"; };
 		41B8776023DE1042003638B8 /* RealtimeMediaSourceIdentifier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RealtimeMediaSourceIdentifier.h; sourceTree = "<group>"; };
 		41B9137623584D0E0025BFA3 /* MockAudioDestinationCocoa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MockAudioDestinationCocoa.h; sourceTree = "<group>"; };
 		41B9137823584D0F0025BFA3 /* MockAudioDestinationCocoa.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MockAudioDestinationCocoa.cpp; sourceTree = "<group>"; };
@@ -17265,6 +17274,14 @@
 				414189FF256418E700363417 /* RTCEncodedVideoFrame.cpp */,
 				414189FD2564176600363417 /* RTCEncodedVideoFrame.h */,
 				414189FA2564165100363417 /* RTCEncodedVideoFrame.idl */,
+				41B7C04A26E6917000D36C07 /* RTCError.cpp */,
+				41B7C04B26E6917100D36C07 /* RTCError.h */,
+				41B7C04926E6916F00D36C07 /* RTCError.idl */,
+				41AB979226E75A2D007C0FE6 /* RTCErrorDetailType.h */,
+				41AB979426E75A2D007C0FE6 /* RTCErrorDetailType.idl */,
+				41B7C04526E690BC00D36C07 /* RTCErrorEvent.cpp */,
+				41B7C04726E690BD00D36C07 /* RTCErrorEvent.h */,
+				41B7C04826E690BE00D36C07 /* RTCErrorEvent.idl */,
 				07221B7117CEC32700848E51 /* RTCIceCandidate.cpp */,
 				07221B7217CEC32700848E51 /* RTCIceCandidate.h */,
 				07221B7317CEC32700848E51 /* RTCIceCandidate.idl */,
@@ -34522,6 +34539,7 @@
 				4188D56326C551B1004858C8 /* RTCDtlsTransportState.h in Headers */,
 				078E092017D14D1C00420AA1 /* RTCDTMFSender.h in Headers */,
 				078E092117D14D1C00420AA1 /* RTCDTMFToneChangeEvent.h in Headers */,
+				41AB979526E75A2E007C0FE6 /* RTCErrorDetailType.h in Headers */,
 				078E092317D14D1C00420AA1 /* RTCIceCandidate.h in Headers */,
 				078E094017D16E1C00420AA1 /* RTCIceCandidateDescriptor.h in Headers */,
 				313591061E7DDC7300F30630 /* RTCIceConnectionState.h in Headers */,

Modified: trunk/Source/WebCore/bindings/js/WebCoreBuiltinNames.h (282198 => 282199)


--- trunk/Source/WebCore/bindings/js/WebCoreBuiltinNames.h	2021-09-09 07:21:18 UTC (rev 282198)
+++ trunk/Source/WebCore/bindings/js/WebCoreBuiltinNames.h	2021-09-09 07:37:01 UTC (rev 282199)
@@ -171,10 +171,6 @@
     macro(PaymentResponse) \
     macro(PerformanceNavigationTiming) \
     macro(PictureInPictureWindow) \
-    macro(SQLError) \
-    macro(SQLResultSet) \
-    macro(SQLResultSetRowList) \
-    macro(SQLTransaction) \
     macro(PaintWorkletGlobalScope) \
     macro(PerformanceEntry) \
     macro(PerformanceEntryList) \
@@ -200,6 +196,8 @@
     macro(RTCDtlsTransport) \
     macro(RTCEncodedAudioFrame) \
     macro(RTCEncodedVideoFrame) \
+    macro(RTCError) \
+    macro(RTCErrorEvent) \
     macro(RTCIceCandidate) \
     macro(RTCIceTransport) \
     macro(RTCPeerConnection) \
@@ -228,6 +226,10 @@
     macro(Response) \
     macro(SFrameTransform) \
     macro(SFrameTransformErrorEvent) \
+    macro(SQLError) \
+    macro(SQLResultSet) \
+    macro(SQLResultSetRowList) \
+    macro(SQLTransaction) \
     macro(ScreenLuminance) \
     macro(ServiceWorker) \
     macro(ServiceWorkerContainer) \

Modified: trunk/Source/WebCore/dom/DOMException.h (282198 => 282199)


--- trunk/Source/WebCore/dom/DOMException.h	2021-09-09 07:21:18 UTC (rev 282198)
+++ trunk/Source/WebCore/dom/DOMException.h	2021-09-09 07:37:01 UTC (rev 282199)
@@ -60,9 +60,10 @@
     static ASCIILiteral name(ExceptionCode ec) { return description(ec).name; }
     static ASCIILiteral message(ExceptionCode ec) { return description(ec).message; }
 
-private:
+protected:
     DOMException(LegacyCode, const String& name, const String& message);
 
+private:
     LegacyCode m_legacyCode;
     String m_name;
     String m_message;

Modified: trunk/Source/WebCore/dom/EventNames.in (282198 => 282199)


--- trunk/Source/WebCore/dom/EventNames.in	2021-09-09 07:21:18 UTC (rev 282198)
+++ trunk/Source/WebCore/dom/EventNames.in	2021-09-09 07:37:01 UTC (rev 282199)
@@ -60,6 +60,7 @@
 MerchantValidationEvent conditional=PAYMENT_REQUEST
 PaymentMethodChangeEvent conditional=PAYMENT_REQUEST
 PaymentRequestUpdateEvent conditional=PAYMENT_REQUEST
+RTCErrorEvent conditional=WEB_RTC
 RTCPeerConnectionIceErrorEvent conditional=WEB_RTC
 RTCPeerConnectionIceEvent conditional=WEB_RTC
 RTCDataChannelEvent conditional=WEB_RTC
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to