<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[203529] trunk</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/203529">203529</a></dd>
<dt>Author</dt> <dd>cdumez@apple.com</dd>
<dt>Date</dt> <dd>2016-07-21 14:25:10 -0700 (Thu, 21 Jul 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>Fix null handling for several HTMLTableElement attributes
https://bugs.webkit.org/show_bug.cgi?id=160041

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

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

Source/WebCore:

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

The attributes in question are 'bicolor', 'cellSpacing' and
'cellPadding'. 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/HTMLTableElement.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:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsfastdomelementattributejsnullexpectedtxt">trunk/LayoutTests/fast/dom/element-attribute-js-null-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastdomelementattributejsnullhtml">trunk/LayoutTests/fast/dom/element-attribute-js-null.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cChangeLog">trunk/LayoutTests/imported/w3c/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmldomreflectiontabularexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/reflection-tabular-expected.txt</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLTableElementidl">trunk/Source/WebCore/html/HTMLTableElement.idl</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (203528 => 203529)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2016-07-21 21:23:28 UTC (rev 203528)
+++ trunk/LayoutTests/ChangeLog        2016-07-21 21:25:10 UTC (rev 203529)
</span><span class="lines">@@ -1,5 +1,17 @@
</span><span class="cx"> 2016-07-21  Chris Dumez  &lt;cdumez@apple.com&gt;
</span><span class="cx"> 
</span><ins>+        Fix null handling for several HTMLTableElement attributes
+        https://bugs.webkit.org/show_bug.cgi?id=160041
+
+        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  &lt;cdumez@apple.com&gt;
+
</ins><span class="cx">         Fix null handling for HTMLObjectElement.border
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=160040
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomelementattributejsnullexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/element-attribute-js-null-expected.txt (203528 => 203529)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/element-attribute-js-null-expected.txt        2016-07-21 21:23:28 UTC (rev 203528)
+++ trunk/LayoutTests/fast/dom/element-attribute-js-null-expected.txt        2016-07-21 21:25:10 UTC (rev 203529)
</span><span class="lines">@@ -206,10 +206,10 @@
</span><span class="cx"> TEST SUCCEEDED: The value was the string 'null'. [tested HTMLTableColElement.width]
</span><span class="cx"> 
</span><span class="cx"> TEST SUCCEEDED: The value was the string 'null'. [tested HTMLTableElement.align]
</span><del>-TEST SUCCEEDED: The value was the string 'null'. [tested HTMLTableElement.bgColor]
</del><ins>+TEST SUCCEEDED: The value was the empty string. [tested HTMLTableElement.bgColor]
</ins><span class="cx"> TEST SUCCEEDED: The value was the string 'null'. [tested HTMLTableElement.border]
</span><del>-TEST SUCCEEDED: The value was the string 'null'. [tested HTMLTableElement.cellPadding]
-TEST SUCCEEDED: The value was the string 'null'. [tested HTMLTableElement.cellSpacing]
</del><ins>+TEST SUCCEEDED: The value was the empty string. [tested HTMLTableElement.cellPadding]
+TEST SUCCEEDED: The value was the empty string. [tested HTMLTableElement.cellSpacing]
</ins><span class="cx"> TEST SUCCEEDED: The value was the string 'null'. [tested HTMLTableElement.frame]
</span><span class="cx"> TEST SUCCEEDED: The value was the string 'null'. [tested HTMLTableElement.rules]
</span><span class="cx"> TEST SUCCEEDED: The value was the string 'null'. [tested HTMLTableElement.summary]
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomelementattributejsnullhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/element-attribute-js-null.html (203528 => 203529)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/element-attribute-js-null.html        2016-07-21 21:23:28 UTC (rev 203528)
+++ trunk/LayoutTests/fast/dom/element-attribute-js-null.html        2016-07-21 21:25:10 UTC (rev 203529)
</span><span class="lines">@@ -511,10 +511,10 @@
</span><span class="cx">                     elementToUse: document.createElement('table'),
</span><span class="cx">                     attributes: [
</span><span class="cx">                         {name: 'align', expectedNull: 'null'},
</span><del>-                        {name: 'bgColor', expectedNull: 'null'},
</del><ins>+                        {name: 'bgColor', expectedNull: ''},
</ins><span class="cx">                         {name: 'border', expectedNull: 'null'},
</span><del>-                        {name: 'cellPadding', expectedNull: 'null'},
-                        {name: 'cellSpacing', expectedNull: 'null'},
</del><ins>+                        {name: 'cellPadding', expectedNull: ''},
+                        {name: 'cellSpacing', expectedNull: ''},
</ins><span class="cx">                         {name: 'frame', expectedNull: 'null'},
</span><span class="cx">                         {name: 'rules', expectedNull: 'null'},
</span><span class="cx">                         {name: 'summary', expectedNull: 'null'},
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/ChangeLog (203528 => 203529)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/ChangeLog        2016-07-21 21:23:28 UTC (rev 203528)
+++ trunk/LayoutTests/imported/w3c/ChangeLog        2016-07-21 21:25:10 UTC (rev 203529)
</span><span class="lines">@@ -1,5 +1,16 @@
</span><span class="cx"> 2016-07-21  Chris Dumez  &lt;cdumez@apple.com&gt;
</span><span class="cx"> 
</span><ins>+        Fix null handling for several HTMLTableElement attributes
+        https://bugs.webkit.org/show_bug.cgi?id=160041
+
+        Reviewed by Ryosuke Niwa.
+
+        Rebaseline W3C test now that more checks are passing.
+
+        * web-platform-tests/html/dom/reflection-tabular-expected.txt:
+
+2016-07-21  Chris Dumez  &lt;cdumez@apple.com&gt;
+
</ins><span class="cx">         Fix null handling for HTMLObjectElement.border
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=160040
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmldomreflectiontabularexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/reflection-tabular-expected.txt (203528 => 203529)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/reflection-tabular-expected.txt        2016-07-21 21:23:28 UTC (rev 203528)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/reflection-tabular-expected.txt        2016-07-21 21:25:10 UTC (rev 203529)
</span><span class="lines">@@ -1204,8 +1204,8 @@
</span><span class="cx"> PASS table.bgColor: IDL set to &quot;\0&quot; followed by getAttribute() 
</span><span class="cx"> PASS table.bgColor: IDL set to &quot;\0&quot; followed by IDL get 
</span><span class="cx"> PASS table.bgColor: IDL set to null should not throw 
</span><del>-FAIL table.bgColor: IDL set to null followed by getAttribute() assert_equals: expected &quot;&quot; but got &quot;null&quot;
-FAIL table.bgColor: IDL set to null followed by IDL get assert_equals: expected &quot;&quot; but got &quot;null&quot;
</del><ins>+PASS table.bgColor: IDL set to null followed by getAttribute() 
+PASS table.bgColor: IDL set to null followed by IDL get 
</ins><span class="cx"> PASS table.bgColor: IDL set to object &quot;test-toString&quot; should not throw 
</span><span class="cx"> PASS table.bgColor: IDL set to object &quot;test-toString&quot; followed by getAttribute() 
</span><span class="cx"> PASS table.bgColor: IDL set to object &quot;test-toString&quot; followed by IDL get 
</span><span class="lines">@@ -1281,8 +1281,8 @@
</span><span class="cx"> PASS table.cellPadding: IDL set to &quot;\0&quot; followed by getAttribute() 
</span><span class="cx"> PASS table.cellPadding: IDL set to &quot;\0&quot; followed by IDL get 
</span><span class="cx"> PASS table.cellPadding: IDL set to null should not throw 
</span><del>-FAIL table.cellPadding: IDL set to null followed by getAttribute() assert_equals: expected &quot;&quot; but got &quot;null&quot;
-FAIL table.cellPadding: IDL set to null followed by IDL get assert_equals: expected &quot;&quot; but got &quot;null&quot;
</del><ins>+PASS table.cellPadding: IDL set to null followed by getAttribute() 
+PASS table.cellPadding: IDL set to null followed by IDL get 
</ins><span class="cx"> PASS table.cellPadding: IDL set to object &quot;test-toString&quot; should not throw 
</span><span class="cx"> PASS table.cellPadding: IDL set to object &quot;test-toString&quot; followed by getAttribute() 
</span><span class="cx"> PASS table.cellPadding: IDL set to object &quot;test-toString&quot; followed by IDL get 
</span><span class="lines">@@ -1358,8 +1358,8 @@
</span><span class="cx"> PASS table.cellSpacing: IDL set to &quot;\0&quot; followed by getAttribute() 
</span><span class="cx"> PASS table.cellSpacing: IDL set to &quot;\0&quot; followed by IDL get 
</span><span class="cx"> PASS table.cellSpacing: IDL set to null should not throw 
</span><del>-FAIL table.cellSpacing: IDL set to null followed by getAttribute() assert_equals: expected &quot;&quot; but got &quot;null&quot;
-FAIL table.cellSpacing: IDL set to null followed by IDL get assert_equals: expected &quot;&quot; but got &quot;null&quot;
</del><ins>+PASS table.cellSpacing: IDL set to null followed by getAttribute() 
+PASS table.cellSpacing: IDL set to null followed by IDL get 
</ins><span class="cx"> PASS table.cellSpacing: IDL set to object &quot;test-toString&quot; should not throw 
</span><span class="cx"> PASS table.cellSpacing: IDL set to object &quot;test-toString&quot; followed by getAttribute() 
</span><span class="cx"> PASS table.cellSpacing: IDL set to object &quot;test-toString&quot; followed by IDL get 
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (203528 => 203529)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-07-21 21:23:28 UTC (rev 203528)
+++ trunk/Source/WebCore/ChangeLog        2016-07-21 21:25:10 UTC (rev 203529)
</span><span class="lines">@@ -1,5 +1,26 @@
</span><span class="cx"> 2016-07-21  Chris Dumez  &lt;cdumez@apple.com&gt;
</span><span class="cx"> 
</span><ins>+        Fix null handling for several HTMLTableElement attributes
+        https://bugs.webkit.org/show_bug.cgi?id=160041
+
+        Reviewed by Ryosuke Niwa.
+
+        Fix null handling for several HTMLTableElement attributes to match the
+        specification:
+        - https://html.spec.whatwg.org/#HTMLTableElement-partial
+
+        The attributes in question are 'bicolor', 'cellSpacing' and
+        'cellPadding'. 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/HTMLTableElement.idl:
+
+2016-07-21  Chris Dumez  &lt;cdumez@apple.com&gt;
+
</ins><span class="cx">         Fix null handling for HTMLObjectElement.border
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=160040
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLTableElementidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLTableElement.idl (203528 => 203529)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLTableElement.idl        2016-07-21 21:23:28 UTC (rev 203528)
+++ trunk/Source/WebCore/html/HTMLTableElement.idl        2016-07-21 21:25:10 UTC (rev 203529)
</span><span class="lines">@@ -26,10 +26,10 @@
</span><span class="cx">     readonly attribute HTMLCollection rows;
</span><span class="cx">     readonly attribute HTMLCollection tBodies;
</span><span class="cx">     [Reflect] attribute DOMString align;
</span><del>-    [Reflect] attribute DOMString bgColor;
</del><ins>+    [Reflect, TreatNullAs=EmptyString] attribute DOMString bgColor;
</ins><span class="cx">     [Reflect] attribute DOMString border;
</span><del>-    [Reflect] attribute DOMString cellPadding;
-    [Reflect] attribute DOMString cellSpacing;
</del><ins>+    [Reflect, TreatNullAs=EmptyString] attribute DOMString cellPadding;
+    [Reflect, TreatNullAs=EmptyString] attribute DOMString cellSpacing;
</ins><span class="cx"> 
</span><span class="cx">     [Reflect] attribute DOMString frame;
</span><span class="cx"> 
</span></span></pre>
</div>
</div>

</body>
</html>