Fix null handling for several HTMLBodyElement attributes
authorcdumez@apple.com <cdumez@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 21 Jul 2016 21:11:06 +0000 (21:11 +0000)
committercdumez@apple.com <cdumez@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 21 Jul 2016 21:11:06 +0000 (21:11 +0000)
https://bugs.webkit.org/show_bug.cgi?id=160044

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

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

Source/WebCore:

Fix null handling for several HTMLBodyElement attributes to match the
specification:
- https://html.spec.whatwg.org/#HTMLBodyElement-partial

The attributes in question are: 'text', 'link', 'vlink', 'alink' and
'bgcolor'.

We are supposed to treat null as the empty string for these attributes.

Firefox and Chrome both agree with the specification.

No new tests, rebaselined existing tests.

* html/HTMLBodyElement.idl:

LayoutTests:

Update existing test to reflect the behavior change.

* fast/dom/element-attribute-js-null-expected.txt:
* fast/dom/element-attribute-js-null.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@203525 268f45cc-cd09-0410-ab3c-d52691b4dbfc

LayoutTests/ChangeLog
LayoutTests/fast/dom/element-attribute-js-null-expected.txt
LayoutTests/fast/dom/element-attribute-js-null.html
LayoutTests/imported/w3c/ChangeLog
LayoutTests/imported/w3c/web-platform-tests/html/dom/reflection-sections-expected.txt
Source/WebCore/ChangeLog
Source/WebCore/html/HTMLBodyElement.idl

index 051d589..121331b 100644 (file)
@@ -1,5 +1,17 @@
 2016-07-21  Chris Dumez  <cdumez@apple.com>
 
+        Fix null handling for several HTMLBodyElement attributes
+        https://bugs.webkit.org/show_bug.cgi?id=160044
+
+        Reviewed by Ryosuke Niwa.
+
+        Update existing test to reflect the behavior change.
+
+        * fast/dom/element-attribute-js-null-expected.txt:
+        * fast/dom/element-attribute-js-null.html:
+
+2016-07-21  Chris Dumez  <cdumez@apple.com>
+
         Fix null handling for HTMLIFrameElement.marginWidth / marginHeight
         https://bugs.webkit.org/show_bug.cgi?id=160037
 
index 749d872..e58d7d1 100644 (file)
@@ -45,12 +45,12 @@ TEST SUCCEEDED: The value was the string 'null'. [tested HTMLAreaElement.target]
 TEST SUCCEEDED: The value was the string 'null'. [tested HTMLBaseElement.target]
 
 
-TEST SUCCEEDED: The value was the string 'null'. [tested HTMLBodyElement.aLink]
+TEST SUCCEEDED: The value was the empty string. [tested HTMLBodyElement.aLink]
 TEST SUCCEEDED: The value was the string 'null'. [tested HTMLBodyElement.background]
-TEST SUCCEEDED: The value was the string 'null'. [tested HTMLBodyElement.bgColor]
-TEST SUCCEEDED: The value was the string 'null'. [tested HTMLBodyElement.link]
-TEST SUCCEEDED: The value was the string 'null'. [tested HTMLBodyElement.text]
-TEST SUCCEEDED: The value was the string 'null'. [tested HTMLBodyElement.vLink]
+TEST SUCCEEDED: The value was the empty string. [tested HTMLBodyElement.bgColor]
+TEST SUCCEEDED: The value was the empty string. [tested HTMLBodyElement.link]
+TEST SUCCEEDED: The value was the empty string. [tested HTMLBodyElement.text]
+TEST SUCCEEDED: The value was the empty string. [tested HTMLBodyElement.vLink]
 
 TEST SUCCEEDED: The value was the string 'null'. [tested HTMLBRElement.clear]
 
index 71c857b..6158db1 100644 (file)
                     type: 'HTMLBodyElement',
                     elementToUse: document.createElement('body'),
                     attributes: [
-                        {name: 'aLink', expectedNull: 'null'},
+                        {name: 'aLink', expectedNull: ''},
                         {name: 'background', expectedNull: 'null'},
-                        {name: 'bgColor', expectedNull: 'null'},
-                        {name: 'link', expectedNull: 'null'},
-                        {name: 'text', expectedNull: 'null'},
-                        {name: 'vLink', expectedNull: 'null'}
+                        {name: 'bgColor', expectedNull: ''},
+                        {name: 'link', expectedNull: ''},
+                        {name: 'text', expectedNull: ''},
+                        {name: 'vLink', expectedNull: ''}
                     ]
                 },
                 {
index c329a84..7d28094 100644 (file)
@@ -1,5 +1,16 @@
 2016-07-21  Chris Dumez  <cdumez@apple.com>
 
+        Fix null handling for several HTMLBodyElement attributes
+        https://bugs.webkit.org/show_bug.cgi?id=160044
+
+        Reviewed by Ryosuke Niwa.
+
+        Rebaseline W3C test now that more checks are passing.
+
+        * web-platform-tests/html/dom/reflection-sections-expected.txt:
+
+2016-07-21  Chris Dumez  <cdumez@apple.com>
+
         Fix null handling for HTMLIFrameElement.marginWidth / marginHeight
         https://bugs.webkit.org/show_bug.cgi?id=160037
 
index 90e0206..be1d4b9 100644 (file)
@@ -663,8 +663,8 @@ PASS body.text: IDL set to "\0" should not throw
 PASS body.text: IDL set to "\0" followed by getAttribute() 
 PASS body.text: IDL set to "\0" followed by IDL get 
 PASS body.text: IDL set to null should not throw 
-FAIL body.text: IDL set to null followed by getAttribute() assert_equals: expected "" but got "null"
-FAIL body.text: IDL set to null followed by IDL get assert_equals: expected "" but got "null"
+PASS body.text: IDL set to null followed by getAttribute() 
+PASS body.text: IDL set to null followed by IDL get 
 PASS body.text: IDL set to object "test-toString" should not throw 
 PASS body.text: IDL set to object "test-toString" followed by getAttribute() 
 PASS body.text: IDL set to object "test-toString" followed by IDL get 
@@ -740,8 +740,8 @@ PASS body.link: IDL set to "\0" should not throw
 PASS body.link: IDL set to "\0" followed by getAttribute() 
 PASS body.link: IDL set to "\0" followed by IDL get 
 PASS body.link: IDL set to null should not throw 
-FAIL body.link: IDL set to null followed by getAttribute() assert_equals: expected "" but got "null"
-FAIL body.link: IDL set to null followed by IDL get assert_equals: expected "" but got "null"
+PASS body.link: IDL set to null followed by getAttribute() 
+PASS body.link: IDL set to null followed by IDL get 
 PASS body.link: IDL set to object "test-toString" should not throw 
 PASS body.link: IDL set to object "test-toString" followed by getAttribute() 
 PASS body.link: IDL set to object "test-toString" followed by IDL get 
@@ -817,8 +817,8 @@ PASS body.vLink: IDL set to "\0" should not throw
 PASS body.vLink: IDL set to "\0" followed by getAttribute() 
 PASS body.vLink: IDL set to "\0" followed by IDL get 
 PASS body.vLink: IDL set to null should not throw 
-FAIL body.vLink: IDL set to null followed by getAttribute() assert_equals: expected "" but got "null"
-FAIL body.vLink: IDL set to null followed by IDL get assert_equals: expected "" but got "null"
+PASS body.vLink: IDL set to null followed by getAttribute() 
+PASS body.vLink: IDL set to null followed by IDL get 
 PASS body.vLink: IDL set to object "test-toString" should not throw 
 PASS body.vLink: IDL set to object "test-toString" followed by getAttribute() 
 PASS body.vLink: IDL set to object "test-toString" followed by IDL get 
@@ -894,8 +894,8 @@ PASS body.aLink: IDL set to "\0" should not throw
 PASS body.aLink: IDL set to "\0" followed by getAttribute() 
 PASS body.aLink: IDL set to "\0" followed by IDL get 
 PASS body.aLink: IDL set to null should not throw 
-FAIL body.aLink: IDL set to null followed by getAttribute() assert_equals: expected "" but got "null"
-FAIL body.aLink: IDL set to null followed by IDL get assert_equals: expected "" but got "null"
+PASS body.aLink: IDL set to null followed by getAttribute() 
+PASS body.aLink: IDL set to null followed by IDL get 
 PASS body.aLink: IDL set to object "test-toString" should not throw 
 PASS body.aLink: IDL set to object "test-toString" followed by getAttribute() 
 PASS body.aLink: IDL set to object "test-toString" followed by IDL get 
@@ -971,8 +971,8 @@ PASS body.bgColor: IDL set to "\0" should not throw
 PASS body.bgColor: IDL set to "\0" followed by getAttribute() 
 PASS body.bgColor: IDL set to "\0" followed by IDL get 
 PASS body.bgColor: IDL set to null should not throw 
-FAIL body.bgColor: IDL set to null followed by getAttribute() assert_equals: expected "" but got "null"
-FAIL body.bgColor: IDL set to null followed by IDL get assert_equals: expected "" but got "null"
+PASS body.bgColor: IDL set to null followed by getAttribute() 
+PASS body.bgColor: IDL set to null followed by IDL get 
 PASS body.bgColor: IDL set to object "test-toString" should not throw 
 PASS body.bgColor: IDL set to object "test-toString" followed by getAttribute() 
 PASS body.bgColor: IDL set to object "test-toString" followed by IDL get 
index 105c1f7..916a6e8 100644 (file)
@@ -1,5 +1,27 @@
 2016-07-21  Chris Dumez  <cdumez@apple.com>
 
+        Fix null handling for several HTMLBodyElement attributes
+        https://bugs.webkit.org/show_bug.cgi?id=160044
+
+        Reviewed by Ryosuke Niwa.
+
+        Fix null handling for several HTMLBodyElement attributes to match the
+        specification:
+        - https://html.spec.whatwg.org/#HTMLBodyElement-partial
+
+        The attributes in question are: 'text', 'link', 'vlink', 'alink' and
+        'bgcolor'.
+
+        We are supposed to treat null as the empty string for these attributes.
+
+        Firefox and Chrome both agree with the specification.
+
+        No new tests, rebaselined existing tests.
+
+        * html/HTMLBodyElement.idl:
+
+2016-07-21  Chris Dumez  <cdumez@apple.com>
+
         Fix null handling for HTMLIFrameElement.marginWidth / marginHeight
         https://bugs.webkit.org/show_bug.cgi?id=160037
 
index c43cefe..044c6ec 100644 (file)
  */
 
 interface HTMLBodyElement : HTMLElement {
-    [Reflect] attribute DOMString aLink;
+    [Reflect, TreatNullAs=EmptyString] attribute DOMString aLink;
     [Reflect] attribute DOMString background;
-    [Reflect] attribute DOMString bgColor;
-    [Reflect] attribute DOMString link;
-    [Reflect] attribute DOMString text;
-    [Reflect] attribute DOMString vLink;
+    [Reflect, TreatNullAs=EmptyString] attribute DOMString bgColor;
+    [Reflect, TreatNullAs=EmptyString] attribute DOMString link;
+    [Reflect, TreatNullAs=EmptyString] attribute DOMString text;
+    [Reflect, TreatNullAs=EmptyString] attribute DOMString vLink;
 
     [NotEnumerable, WindowEventHandler] attribute EventHandler onblur;
     [NotEnumerable, WindowEventHandler] attribute EventHandler onerror;