OverConstrainedError is missing 'name' property
https://bugs.webkit.org/show_bug.cgi?id=204069

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

* web-platform-tests/mediacapture-streams/GUM-impossible-constraint.https-expected.txt:
* web-platform-tests/mediacapture-streams/GUM-invalid-facing-mode.https-expected.txt:
* web-platform-tests/mediacapture-streams/MediaStreamTrack-applyConstraints.https-expected.txt:

Source/WebCore:

No new tests, existing test and results updated.

* Modules/mediastream/OverconstrainedError.h:
(WebCore::OverconstrainedError::name const):
* Modules/mediastream/OverconstrainedError.idl:

LayoutTests:

* fast/mediastream/MediaDevices-getUserMedia.html:
* fast/mediastream/overconstrainederror-constraint.html:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@252632 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index a3bcb88..b8ed8de 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,13 @@
+2019-11-19  Eric Carlson  <eric.carlson@apple.com>
+
+        OverConstrainedError is missing 'name' property
+        https://bugs.webkit.org/show_bug.cgi?id=204069
+
+        Reviewed by Youenn Fablet.
+
+        * fast/mediastream/MediaDevices-getUserMedia.html:
+        * fast/mediastream/overconstrainederror-constraint.html:
+
 2019-11-19  Kate Cheney  <katherine_cheney@apple.com>
 
         [ Jazz ] http/tests/resourceLoadStatistics/cookie-deletion.html is timing out
diff --git a/LayoutTests/fast/mediastream/MediaDevices-getUserMedia-expected.txt b/LayoutTests/fast/mediastream/MediaDevices-getUserMedia-expected.txt
index 0ec3251..226578f 100644
--- a/LayoutTests/fast/mediastream/MediaDevices-getUserMedia-expected.txt
+++ b/LayoutTests/fast/mediastream/MediaDevices-getUserMedia-expected.txt
@@ -48,7 +48,7 @@
 
 PASS navigator.mediaDevices.getUserMedia({audio:false, video:videoConstraints}).then(invalidGotStream).catch(errorWithConstraints2) did not throw exception.
 PASS Error callback called.
-PASS errorArg.name is "Error"
+PASS errorArg.name is "OverconstrainedError"
 PASS successfullyParsed is true
 
 TEST COMPLETE
diff --git a/LayoutTests/fast/mediastream/MediaDevices-getUserMedia.html b/LayoutTests/fast/mediastream/MediaDevices-getUserMedia.html
index 3c934d5..aecb5c4 100644
--- a/LayoutTests/fast/mediastream/MediaDevices-getUserMedia.html
+++ b/LayoutTests/fast/mediastream/MediaDevices-getUserMedia.html
@@ -35,7 +35,7 @@
             function errorWithConstraints2(e) {
                 testPassed("Error callback called.");
                 errorArg = e;
-                shouldBeEqualToString("errorArg.name", "Error");
+                shouldBeEqualToString("errorArg.name", "OverconstrainedError");
 
                 finishJSTest();
             }
diff --git a/LayoutTests/fast/mediastream/overconstrainederror-constraint.html b/LayoutTests/fast/mediastream/overconstrainederror-constraint.html
index c176efc..e8396a0 100644
--- a/LayoutTests/fast/mediastream/overconstrainederror-constraint.html
+++ b/LayoutTests/fast/mediastream/overconstrainederror-constraint.html
@@ -20,6 +20,7 @@
         (e) => {
             assert_true(e instanceof OverconstrainedError);
             assert_equals(e.constraint, "", "constraint should be the empty string");
+            assert_equals(e.name, "OverconstrainedError", "OverconstrainedError name is correct");
         }
     );
 }, "Before grant");
@@ -31,6 +32,7 @@
         (e) => {
             assert_true(e instanceof OverconstrainedError);
             assert_equals(e.constraint, "deviceId", "constraint should be deviceId");
+            assert_equals(e.name, "OverconstrainedError", "OverconstrainedError name is correct");
         }
     );
 }, "After grant");
diff --git a/LayoutTests/imported/w3c/ChangeLog b/LayoutTests/imported/w3c/ChangeLog
index 66ea9ea..38f93e3 100644
--- a/LayoutTests/imported/w3c/ChangeLog
+++ b/LayoutTests/imported/w3c/ChangeLog
@@ -1,3 +1,14 @@
+2019-11-19  Eric Carlson  <eric.carlson@apple.com>
+
+        OverConstrainedError is missing 'name' property
+        https://bugs.webkit.org/show_bug.cgi?id=204069
+
+        Reviewed by Youenn Fablet.
+
+        * web-platform-tests/mediacapture-streams/GUM-impossible-constraint.https-expected.txt:
+        * web-platform-tests/mediacapture-streams/GUM-invalid-facing-mode.https-expected.txt:
+        * web-platform-tests/mediacapture-streams/MediaStreamTrack-applyConstraints.https-expected.txt:
+
 2019-11-19  Wenson Hsieh  <wenson_hsieh@apple.com>
 
         [Clipboard API] Add support for Clipboard.readText()
diff --git a/LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/GUM-impossible-constraint.https-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/GUM-impossible-constraint.https-expected.txt
index b84249d..4a2a2ba 100644
--- a/LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/GUM-impossible-constraint.https-expected.txt
+++ b/LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/GUM-impossible-constraint.https-expected.txt
@@ -5,5 +5,5 @@
 This test checks that setting an impossible mandatory constraint (width >=1G) in getUserMedia works
 
 
-FAIL Tests that setting an impossible constraint in getUserMedia fails assert_equals: An impossible constraint triggers a OverconstrainedError expected "OverconstrainedError" but got "Error"
+FAIL Tests that setting an impossible constraint in getUserMedia fails assert_equals: The name of the not satisfied error is given in error.constraint expected "width" but got ""
 
diff --git a/LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/GUM-invalid-facing-mode.https-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/GUM-invalid-facing-mode.https-expected.txt
index fc4ce70..58e9f7a 100644
--- a/LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/GUM-invalid-facing-mode.https-expected.txt
+++ b/LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/GUM-invalid-facing-mode.https-expected.txt
@@ -3,5 +3,5 @@
 This test checks that trying to set an empty facingMode value in getUserMedia results in an OverconstrainedError.
 
 
-FAIL Tests that setting an invalid facingMode constraint in getUserMedia fails assert_equals: expected "OverconstrainedError" but got "Error"
+FAIL Tests that setting an invalid facingMode constraint in getUserMedia fails assert_equals: expected "facingMode" but got ""
 
diff --git a/LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/MediaStreamTrack-applyConstraints.https-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/MediaStreamTrack-applyConstraints.https-expected.txt
index 798e004..cd9cdfe 100644
--- a/LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/MediaStreamTrack-applyConstraints.https-expected.txt
+++ b/LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/MediaStreamTrack-applyConstraints.https-expected.txt
@@ -1,9 +1,9 @@
 When prompted, accept to share your video stream.
 
 
-FAIL applyConstraints rejects invalid groupID assert_equals: expected "OverconstrainedError" but got "Error"
+PASS applyConstraints rejects invalid groupID 
 PASS applyConstraints accepts invalid ideal groupID, does not change setting 
-FAIL applyConstraints rejects attempt to switch device using groupId assert_equals: expected "OverconstrainedError" but got "Error"
+PASS applyConstraints rejects attempt to switch device using groupId 
 FAIL applyConstraints rejects invalid resizeMode assert_unreached: applyConstraints() must fail with invalid resizeMode Reached unreachable code
 PASS applyConstraints accepts invalid ideal resizeMode, does not change setting 
 
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index 92b0968..20cb1a9 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,3 +1,16 @@
+2019-11-19  Eric Carlson  <eric.carlson@apple.com>
+
+        OverConstrainedError is missing 'name' property
+        https://bugs.webkit.org/show_bug.cgi?id=204069
+
+        Reviewed by Youenn Fablet.
+
+        No new tests, existing test and results updated.
+
+        * Modules/mediastream/OverconstrainedError.h:
+        (WebCore::OverconstrainedError::name const):
+        * Modules/mediastream/OverconstrainedError.idl:
+
 2019-11-19  Chris Dumez  <cdumez@apple.com>
 
         Unreviewed iOS build fix.
diff --git a/Source/WebCore/Modules/mediastream/OverconstrainedError.h b/Source/WebCore/Modules/mediastream/OverconstrainedError.h
index 126ccb6..3c4a366 100644
--- a/Source/WebCore/Modules/mediastream/OverconstrainedError.h
+++ b/Source/WebCore/Modules/mediastream/OverconstrainedError.h
@@ -44,6 +44,7 @@
 
     String constraint() const { return m_constraint; }
     String message() const { return m_message; }
+    String name() const { return "OverconstrainedError"_s; }
 
 protected:
     explicit OverconstrainedError(const String& constraint, const String& message)
diff --git a/Source/WebCore/Modules/mediastream/OverconstrainedError.idl b/Source/WebCore/Modules/mediastream/OverconstrainedError.idl
index 8c505c6..72fce6a 100644
--- a/Source/WebCore/Modules/mediastream/OverconstrainedError.idl
+++ b/Source/WebCore/Modules/mediastream/OverconstrainedError.idl
@@ -33,4 +33,5 @@
 ] exception OverconstrainedError {
     readonly attribute DOMString message;
     readonly attribute DOMString constraint;
+    readonly attribute DOMString name;
 };