Title: [203463] trunk
Revision
203463
Author
cdu...@apple.com
Date
2016-07-20 12:21:51 -0700 (Wed, 20 Jul 2016)

Log Message

Fix null handling of HTMLMediaElement.mediaGroup
https://bugs.webkit.org/show_bug.cgi?id=159974

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

Rebaseline now that more checks are passing.

* web-platform-tests/html/dom/reflection-embedded-expected.txt:

Source/WebCore:

Fix null handling of HTMLMediaElement.mediaGroup to match the specification:
- https://www.w3.org/TR/html5/embedded-content-0.html#media-elements

null is supposed to be treated as the String "null". This patch aligns
our behavior with the specification. I tested Firefox and Chrome but both
do not have this attribute on HTMLMediaElement.

Also remove support for [TreatNullAs=LegacyNullString] from our bindings
generator as HTMLMediaElement.mediaGroup was the last user.

No new tests, rebaselined existing test.

* bindings/scripts/CodeGeneratorJS.pm:
(JSValueToNative):
* bindings/scripts/IDLAttributes.txt:
* html/HTMLMediaElement.idl:

Modified Paths

Diff

Modified: trunk/LayoutTests/imported/w3c/ChangeLog (203462 => 203463)


--- trunk/LayoutTests/imported/w3c/ChangeLog	2016-07-20 18:59:22 UTC (rev 203462)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2016-07-20 19:21:51 UTC (rev 203463)
@@ -1,3 +1,14 @@
+2016-07-20  Chris Dumez  <cdu...@apple.com>
+
+        Fix null handling of HTMLMediaElement.mediaGroup
+        https://bugs.webkit.org/show_bug.cgi?id=159974
+
+        Reviewed by Eric Carlson.
+
+        Rebaseline now that more checks are passing.
+
+        * web-platform-tests/html/dom/reflection-embedded-expected.txt:
+
 2016-07-19  Chris Dumez  <cdu...@apple.com>
 
         Fix null handling of several HTMLDocument attributes

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/reflection-embedded-expected.txt (203462 => 203463)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/reflection-embedded-expected.txt	2016-07-20 18:59:22 UTC (rev 203462)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/reflection-embedded-expected.txt	2016-07-20 19:21:51 UTC (rev 203463)
@@ -8596,8 +8596,8 @@
 PASS video.mediaGroup: IDL set to "\0" followed by getAttribute() 
 PASS video.mediaGroup: IDL set to "\0" followed by IDL get 
 PASS video.mediaGroup: IDL set to null should not throw 
-FAIL video.mediaGroup: IDL set to null followed by getAttribute() assert_equals: expected (string) "null" but got (object) null
-FAIL video.mediaGroup: IDL set to null followed by IDL get assert_equals: expected "null" but got ""
+PASS video.mediaGroup: IDL set to null followed by getAttribute() 
+PASS video.mediaGroup: IDL set to null followed by IDL get 
 PASS video.mediaGroup: IDL set to object "test-toString" should not throw 
 PASS video.mediaGroup: IDL set to object "test-toString" followed by getAttribute() 
 PASS video.mediaGroup: IDL set to object "test-toString" followed by IDL get 
@@ -10227,8 +10227,8 @@
 PASS audio.mediaGroup: IDL set to "\0" followed by getAttribute() 
 PASS audio.mediaGroup: IDL set to "\0" followed by IDL get 
 PASS audio.mediaGroup: IDL set to null should not throw 
-FAIL audio.mediaGroup: IDL set to null followed by getAttribute() assert_equals: expected (string) "null" but got (object) null
-FAIL audio.mediaGroup: IDL set to null followed by IDL get assert_equals: expected "null" but got ""
+PASS audio.mediaGroup: IDL set to null followed by getAttribute() 
+PASS audio.mediaGroup: IDL set to null followed by IDL get 
 PASS audio.mediaGroup: IDL set to object "test-toString" should not throw 
 PASS audio.mediaGroup: IDL set to object "test-toString" followed by getAttribute() 
 PASS audio.mediaGroup: IDL set to object "test-toString" followed by IDL get 

Modified: trunk/LayoutTests/platform/ios-simulator/imported/w3c/web-platform-tests/html/dom/reflection-embedded-expected.txt (203462 => 203463)


--- trunk/LayoutTests/platform/ios-simulator/imported/w3c/web-platform-tests/html/dom/reflection-embedded-expected.txt	2016-07-20 18:59:22 UTC (rev 203462)
+++ trunk/LayoutTests/platform/ios-simulator/imported/w3c/web-platform-tests/html/dom/reflection-embedded-expected.txt	2016-07-20 19:21:51 UTC (rev 203463)
@@ -8596,8 +8596,8 @@
 PASS video.mediaGroup: IDL set to "\0" followed by getAttribute() 
 PASS video.mediaGroup: IDL set to "\0" followed by IDL get 
 PASS video.mediaGroup: IDL set to null should not throw 
-FAIL video.mediaGroup: IDL set to null followed by getAttribute() assert_equals: expected (string) "null" but got (object) null
-FAIL video.mediaGroup: IDL set to null followed by IDL get assert_equals: expected "null" but got ""
+PASS video.mediaGroup: IDL set to null followed by getAttribute() 
+PASS video.mediaGroup: IDL set to null followed by IDL get 
 PASS video.mediaGroup: IDL set to object "test-toString" should not throw 
 PASS video.mediaGroup: IDL set to object "test-toString" followed by getAttribute() 
 PASS video.mediaGroup: IDL set to object "test-toString" followed by IDL get 
@@ -10227,8 +10227,8 @@
 PASS audio.mediaGroup: IDL set to "\0" followed by getAttribute() 
 PASS audio.mediaGroup: IDL set to "\0" followed by IDL get 
 PASS audio.mediaGroup: IDL set to null should not throw 
-FAIL audio.mediaGroup: IDL set to null followed by getAttribute() assert_equals: expected (string) "null" but got (object) null
-FAIL audio.mediaGroup: IDL set to null followed by IDL get assert_equals: expected "null" but got ""
+PASS audio.mediaGroup: IDL set to null followed by getAttribute() 
+PASS audio.mediaGroup: IDL set to null followed by IDL get 
 PASS audio.mediaGroup: IDL set to object "test-toString" should not throw 
 PASS audio.mediaGroup: IDL set to object "test-toString" followed by getAttribute() 
 PASS audio.mediaGroup: IDL set to object "test-toString" followed by IDL get 

Modified: trunk/Source/WebCore/ChangeLog (203462 => 203463)


--- trunk/Source/WebCore/ChangeLog	2016-07-20 18:59:22 UTC (rev 203462)
+++ trunk/Source/WebCore/ChangeLog	2016-07-20 19:21:51 UTC (rev 203463)
@@ -1,5 +1,29 @@
 2016-07-20  Chris Dumez  <cdu...@apple.com>
 
+        Fix null handling of HTMLMediaElement.mediaGroup
+        https://bugs.webkit.org/show_bug.cgi?id=159974
+
+        Reviewed by Eric Carlson.
+
+        Fix null handling of HTMLMediaElement.mediaGroup to match the specification:
+        - https://www.w3.org/TR/html5/embedded-content-0.html#media-elements
+
+        null is supposed to be treated as the String "null". This patch aligns
+        our behavior with the specification. I tested Firefox and Chrome but both
+        do not have this attribute on HTMLMediaElement.
+
+        Also remove support for [TreatNullAs=LegacyNullString] from our bindings
+        generator as HTMLMediaElement.mediaGroup was the last user.
+
+        No new tests, rebaselined existing test.
+
+        * bindings/scripts/CodeGeneratorJS.pm:
+        (JSValueToNative):
+        * bindings/scripts/IDLAttributes.txt:
+        * html/HTMLMediaElement.idl:
+
+2016-07-20  Chris Dumez  <cdu...@apple.com>
+
         CSSStyleDeclaration.setProperty() should be able to unset "important" on a property
         https://bugs.webkit.org/show_bug.cgi?id=159959
 

Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm (203462 => 203463)


--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm	2016-07-20 18:59:22 UTC (rev 203462)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm	2016-07-20 19:21:51 UTC (rev 203463)
@@ -4450,10 +4450,8 @@
     if ($type eq "DOMString") {
         return ("AtomicString($value.toString(state)->toExistingAtomicString(state))", 1) if $signature->extendedAttributes->{"RequiresExistingAtomicString"};
 
-        if ($signature->extendedAttributes->{"TreatNullAs"}) {
-            return ("valueToStringTreatingNullAsEmptyString(state, $value)", 1) if $signature->extendedAttributes->{"TreatNullAs"} eq "EmptyString";
-            return ("valueToStringWithNullCheck(state, $value)", 1) if $signature->extendedAttributes->{"TreatNullAs"} eq "LegacyNullString";
-        }
+        my $treatNullAs = $signature->extendedAttributes->{"TreatNullAs"};
+        return ("valueToStringTreatingNullAsEmptyString(state, $value)", 1) if $treatNullAs && $treatNullAs eq "EmptyString";
         return ("valueToStringWithUndefinedOrNullCheck(state, $value)", 1) if $signature->isNullable;
         return ("$value.toString(state)->toAtomicString(state)", 1) if $signature->extendedAttributes->{"AtomicString"};
         return ("$value.toWTFString(state)", 1);

Modified: trunk/Source/WebCore/bindings/scripts/IDLAttributes.txt (203462 => 203463)


--- trunk/Source/WebCore/bindings/scripts/IDLAttributes.txt	2016-07-20 18:59:22 UTC (rev 203462)
+++ trunk/Source/WebCore/bindings/scripts/IDLAttributes.txt	2016-07-20 19:21:51 UTC (rev 203463)
@@ -122,7 +122,7 @@
 SkipVTableValidation
 StrictTypeChecking
 SuppressToJSObject
-TreatNullAs=EmptyString|LegacyNullString
+TreatNullAs=EmptyString
 TreatReturnedNaNDateAs=Null|NaN
 TypedArray=*
 URL

Modified: trunk/Source/WebCore/html/HTMLMediaElement.idl (203462 => 203463)


--- trunk/Source/WebCore/html/HTMLMediaElement.idl	2016-07-20 18:59:22 UTC (rev 203462)
+++ trunk/Source/WebCore/html/HTMLMediaElement.idl	2016-07-20 19:21:51 UTC (rev 203463)
@@ -116,8 +116,7 @@
     [Conditional=VIDEO_TRACK] readonly attribute VideoTrackList videoTracks;
 #endif
 
-    // FIXME: This should not use [TreatNullAs=LegacyNullString].
-    [Reflect, TreatNullAs=LegacyNullString] attribute DOMString mediaGroup;
+    [Reflect] attribute DOMString mediaGroup;
 
 #if !defined(LANGUAGE_OBJECTIVE_C) || !LANGUAGE_OBJECTIVE_C
     [CustomSetter] attribute MediaController controller;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to