<!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>[196893] 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/196893">196893</a></dd>
<dt>Author</dt> <dd>cdumez@apple.com</dd>
<dt>Date</dt> <dd>2016-02-21 21:52:07 -0800 (Sun, 21 Feb 2016)</dd>
</dl>
<h3>Log Message</h3>
<pre>Make HTMLSelectElement.size behave as per the specification
https://bugs.webkit.org/show_bug.cgi?id=154504
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Rebaseline now that more checks are passing.
* web-platform-tests/html/dom/reflection-forms-expected.txt:
* web-platform-tests/html/dom/reflection-tabular-expected.txt:
Source/WebCore:
Make HTMLSelectElement.size behave as per the specification:
- https://html.spec.whatwg.org/#htmlselectelement
- https://html.spec.whatwg.org/#dom-select-size
- https://html.spec.whatwg.org/#reflecting-content-attributes-in-idl-attributes:idl-unsigned-long
In particular, it should be unsigned and be in the range [0; 2147483647].
Also update several unsigned long attributes in our HTML implementation to use
parseHTMLNonNegativeInteger() to parse unsigned integers as per the HTML
specification, instead of calling String::toUint().
No new tests, already covered by existing tests.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::parseAttribute):
(WebCore::HTMLInputElement::size):
(WebCore::HTMLInputElement::setSize):
* html/HTMLInputElement.h:
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::parseAttribute):
(WebCore::HTMLSelectElement::setSize):
(WebCore::HTMLSelectElement::namedItem): Deleted.
(WebCore::HTMLSelectElement::item): Deleted.
* html/HTMLSelectElement.h:
(WebCore::HTMLSelectElement::size):
* html/HTMLSelectElement.idl:
* html/HTMLTableColElement.cpp:
(WebCore::HTMLTableColElement::parseAttribute):
(WebCore::HTMLTableColElement::setSpan):
* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::parseAttribute):
(WebCore::HTMLTextAreaElement::setCols):
(WebCore::HTMLTextAreaElement::setRows):
* html/parser/HTMLParserIdioms.h:
(WebCore::limitToOnlyHTMLNonNegativeNumbersGreaterThanZero):
(WebCore::limitToOnlyHTMLNonNegative):
LayoutTests:
Update test that was covering the case of an HTMLSelectElement with an
invalid size attribute. The test was expecting the bad "size" attribute
value to get corrected so that the select element looks like a menu list.
This workaround was added back in 2007 to workaround a bug on
www.chainreaction.com (rdar://problem/4697438). This patch drops the
workaround in HTMLSelectElement::parseAttribute() because:
1. This is not standard behavior as per the HTML specification
2. This behavior does not match Firefox either
3. The workaround is no longer needed for www.chainreaction.com.
* fast/forms/select-size-expected.html: Added.
* fast/forms/select-size.html:
* platform/efl/fast/forms/select-size-expected.txt: Removed.
* platform/gtk/fast/forms/select-size-expected.txt: Removed.
* platform/ios-simulator/fast/forms/select-size-expected.txt: Removed.
* platform/mac/fast/forms/select-size-expected.png: Removed.
* platform/mac/fast/forms/select-size-expected.txt: Removed.
* platform/win/fast/forms/select-size-expected.txt: Removed.</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsfastformsselectsizehtml">trunk/LayoutTests/fast/forms/select-size.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cChangeLog">trunk/LayoutTests/imported/w3c/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmldomreflectionformsexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt</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="#trunkSourceWebCorehtmlHTMLInputElementcpp">trunk/Source/WebCore/html/HTMLInputElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLInputElementh">trunk/Source/WebCore/html/HTMLInputElement.h</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLSelectElementcpp">trunk/Source/WebCore/html/HTMLSelectElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLSelectElementh">trunk/Source/WebCore/html/HTMLSelectElement.h</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLSelectElementidl">trunk/Source/WebCore/html/HTMLSelectElement.idl</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLTableColElementcpp">trunk/Source/WebCore/html/HTMLTableColElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLTextAreaElementcpp">trunk/Source/WebCore/html/HTMLTextAreaElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlparserHTMLParserIdiomsh">trunk/Source/WebCore/html/parser/HTMLParserIdioms.h</a></li>
</ul>
<h3>Added Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsfastformsselectsizeexpectedhtml">trunk/LayoutTests/fast/forms/select-size-expected.html</a></li>
</ul>
<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsplatformeflfastformsselectsizeexpectedtxt">trunk/LayoutTests/platform/efl/fast/forms/select-size-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformgtkfastformsselectsizeexpectedtxt">trunk/LayoutTests/platform/gtk/fast/forms/select-size-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatorfastformsselectsizeexpectedtxt">trunk/LayoutTests/platform/ios-simulator/fast/forms/select-size-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacfastformsselectsizeexpectedpng">trunk/LayoutTests/platform/mac/fast/forms/select-size-expected.png</a></li>
<li><a href="#trunkLayoutTestsplatformmacfastformsselectsizeexpectedtxt">trunk/LayoutTests/platform/mac/fast/forms/select-size-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformwinfastformsselectsizeexpectedtxt">trunk/LayoutTests/platform/win/fast/forms/select-size-expected.txt</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (196892 => 196893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2016-02-22 05:26:17 UTC (rev 196892)
+++ trunk/LayoutTests/ChangeLog        2016-02-22 05:52:07 UTC (rev 196893)
</span><span class="lines">@@ -1,3 +1,29 @@
</span><ins>+2016-02-21 Chris Dumez <cdumez@apple.com>
+
+ Make HTMLSelectElement.size behave as per the specification
+ https://bugs.webkit.org/show_bug.cgi?id=154504
+
+ Reviewed by Darin Adler.
+
+ Update test that was covering the case of an HTMLSelectElement with an
+ invalid size attribute. The test was expecting the bad "size" attribute
+ value to get corrected so that the select element looks like a menu list.
+ This workaround was added back in 2007 to workaround a bug on
+ www.chainreaction.com (rdar://problem/4697438). This patch drops the
+ workaround in HTMLSelectElement::parseAttribute() because:
+ 1. This is not standard behavior as per the HTML specification
+ 2. This behavior does not match Firefox either
+ 3. The workaround is no longer needed for www.chainreaction.com.
+
+ * fast/forms/select-size-expected.html: Added.
+ * fast/forms/select-size.html:
+ * platform/efl/fast/forms/select-size-expected.txt: Removed.
+ * platform/gtk/fast/forms/select-size-expected.txt: Removed.
+ * platform/ios-simulator/fast/forms/select-size-expected.txt: Removed.
+ * platform/mac/fast/forms/select-size-expected.png: Removed.
+ * platform/mac/fast/forms/select-size-expected.txt: Removed.
+ * platform/win/fast/forms/select-size-expected.txt: Removed.
+
</ins><span class="cx"> 2016-02-21 Daniel Bates <dabates@apple.com>
</span><span class="cx">
</span><span class="cx"> CSP: Enable form-action directive by default
</span></span></pre></div>
<a id="trunkLayoutTestsfastformsselectsizeexpectedhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/forms/select-size-expected.html (0 => 196893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/forms/select-size-expected.html         (rev 0)
+++ trunk/LayoutTests/fast/forms/select-size-expected.html        2016-02-22 05:52:07 UTC (rev 196893)
</span><span class="lines">@@ -0,0 +1,14 @@
</span><ins>+<html>
+<head>
+<style>
+.listBox {
+ -webkit-appearance: listbox;
+ border-radius: initial;
+ border: 1px solid gray;
+}
+</style>
+</head>
+<body>
+This tests an HTMLSelectElement with a malformed size attribute<br>
+<select size="1" class="listbox"><option>test</select>
+</body>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastformsselectsizehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/forms/select-size.html (196892 => 196893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/forms/select-size.html        2016-02-22 05:26:17 UTC (rev 196892)
+++ trunk/LayoutTests/fast/forms/select-size.html        2016-02-22 05:52:07 UTC (rev 196893)
</span><span class="lines">@@ -1,3 +1,2 @@
</span><del>-This tests that a malformed size attribute will be parsed and corrected so that the right
-size attribute value is used to match the style rule that determines whether to use a menu list or a list box.<br>
-<select size= 1"><option>test</select>
</del><ins>+This tests an HTMLSelectElement with a malformed size attribute<br>
+<select style="border: 1px solid gray;" size= 1"><option>test</select>
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/ChangeLog (196892 => 196893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/ChangeLog        2016-02-22 05:26:17 UTC (rev 196892)
+++ trunk/LayoutTests/imported/w3c/ChangeLog        2016-02-22 05:52:07 UTC (rev 196893)
</span><span class="lines">@@ -1,5 +1,17 @@
</span><span class="cx"> 2016-02-21 Chris Dumez <cdumez@apple.com>
</span><span class="cx">
</span><ins>+ Make HTMLSelectElement.size behave as per the specification
+ https://bugs.webkit.org/show_bug.cgi?id=154504
+
+ Reviewed by Darin Adler.
+
+ Rebaseline now that more checks are passing.
+
+ * web-platform-tests/html/dom/reflection-forms-expected.txt:
+ * web-platform-tests/html/dom/reflection-tabular-expected.txt:
+
+2016-02-21 Chris Dumez <cdumez@apple.com>
+
</ins><span class="cx"> Add username / password attributes to HTMLAnchorElement / HTMLAreaElement
</span><span class="cx"> https://bugs.webkit.org/show_bug.cgi?id=154519
</span><span class="cx">
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmldomreflectionformsexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt (196892 => 196893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt        2016-02-22 05:26:17 UTC (rev 196892)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt        2016-02-22 05:52:07 UTC (rev 196893)
</span><span class="lines">@@ -6872,7 +6872,7 @@
</span><span class="cx"> PASS input.size: setAttribute() to "\t7" followed by getAttribute()
</span><span class="cx"> PASS input.size: setAttribute() to "\t7" followed by IDL get
</span><span class="cx"> PASS input.size: setAttribute() to "\v7" followed by getAttribute()
</span><del>-FAIL input.size: setAttribute() to "\v7" followed by IDL get assert_equals: expected 20 but got 7
</del><ins>+PASS input.size: setAttribute() to "\v7" followed by IDL get
</ins><span class="cx"> PASS input.size: setAttribute() to "\f7" followed by getAttribute()
</span><span class="cx"> PASS input.size: setAttribute() to "\f7" followed by IDL get
</span><span class="cx"> PASS input.size: setAttribute() to " 7" followed by getAttribute()
</span><span class="lines">@@ -6886,39 +6886,39 @@
</span><span class="cx"> PASS input.size: setAttribute() to "\r7" followed by getAttribute()
</span><span class="cx"> PASS input.size: setAttribute() to "\r7" followed by IDL get
</span><span class="cx"> PASS input.size: setAttribute() to "
7" followed by getAttribute()
</span><del>-FAIL input.size: setAttribute() to "
7" followed by IDL get assert_equals: expected 20 but got 7
</del><ins>+PASS input.size: setAttribute() to "
7" followed by IDL get
</ins><span class="cx"> PASS input.size: setAttribute() to "
7" followed by getAttribute()
</span><span class="cx"> PASS input.size: setAttribute() to "
7" followed by IDL get
</span><span class="cx"> PASS input.size: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL input.size: setAttribute() to " 7" followed by IDL get assert_equals: expected 20 but got 7
</del><ins>+PASS input.size: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS input.size: setAttribute() to "7" followed by getAttribute()
</span><span class="cx"> PASS input.size: setAttribute() to "7" followed by IDL get
</span><span class="cx"> PASS input.size: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL input.size: setAttribute() to " 7" followed by IDL get assert_equals: expected 20 but got 7
</del><ins>+PASS input.size: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS input.size: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL input.size: setAttribute() to " 7" followed by IDL get assert_equals: expected 20 but got 7
</del><ins>+PASS input.size: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS input.size: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL input.size: setAttribute() to " 7" followed by IDL get assert_equals: expected 20 but got 7
</del><ins>+PASS input.size: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS input.size: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL input.size: setAttribute() to " 7" followed by IDL get assert_equals: expected 20 but got 7
</del><ins>+PASS input.size: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS input.size: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL input.size: setAttribute() to " 7" followed by IDL get assert_equals: expected 20 but got 7
</del><ins>+PASS input.size: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS input.size: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL input.size: setAttribute() to " 7" followed by IDL get assert_equals: expected 20 but got 7
</del><ins>+PASS input.size: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS input.size: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL input.size: setAttribute() to " 7" followed by IDL get assert_equals: expected 20 but got 7
</del><ins>+PASS input.size: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS input.size: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL input.size: setAttribute() to " 7" followed by IDL get assert_equals: expected 20 but got 7
</del><ins>+PASS input.size: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS input.size: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL input.size: setAttribute() to " 7" followed by IDL get assert_equals: expected 20 but got 7
</del><ins>+PASS input.size: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS input.size: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL input.size: setAttribute() to " 7" followed by IDL get assert_equals: expected 20 but got 7
</del><ins>+PASS input.size: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS input.size: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL input.size: setAttribute() to " 7" followed by IDL get assert_equals: expected 20 but got 7
</del><ins>+PASS input.size: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS input.size: setAttribute() to " 7" followed by getAttribute()
</span><span class="cx"> PASS input.size: setAttribute() to " 7" followed by IDL get
</span><span class="cx"> PASS input.size: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL input.size: setAttribute() to " 7" followed by IDL get assert_equals: expected 20 but got 7
</del><ins>+PASS input.size: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS input.size: setAttribute() to " \0\x01\x02\x03\x04\x05\x06\x07 \b\t\n\v\f\r\x0e\x0f \x10\x11\x12\x13\x14\x15\x16\x17 \x18\x19\x1a\x1b\x1c\x1d\x1e\x1f foo " followed by getAttribute()
</span><span class="cx"> PASS input.size: setAttribute() to " \0\x01\x02\x03\x04\x05\x06\x07 \b\t\n\v\f\r\x0e\x0f \x10\x11\x12\x13\x14\x15\x16\x17 \x18\x19\x1a\x1b\x1c\x1d\x1e\x1f foo " followed by IDL get
</span><span class="cx"> PASS input.size: setAttribute() to undefined followed by getAttribute()
</span><span class="lines">@@ -10847,7 +10847,7 @@
</span><span class="cx"> PASS select.required: IDL set to object "test-valueOf" followed by IDL get
</span><span class="cx"> PASS select.size: typeof IDL attribute
</span><span class="cx"> PASS select.size: IDL get with DOM attribute unset
</span><del>-FAIL select.size: setAttribute() to -2147483649 followed by getAttribute() assert_equals: expected "-2147483649" but got "0"
</del><ins>+PASS select.size: setAttribute() to -2147483649 followed by getAttribute()
</ins><span class="cx"> PASS select.size: setAttribute() to -2147483649 followed by IDL get
</span><span class="cx"> PASS select.size: setAttribute() to -2147483648 followed by getAttribute()
</span><span class="cx"> PASS select.size: setAttribute() to -2147483648 followed by IDL get
</span><span class="lines">@@ -10863,95 +10863,95 @@
</span><span class="cx"> PASS select.size: setAttribute() to 257 followed by IDL get
</span><span class="cx"> PASS select.size: setAttribute() to 2147483647 followed by getAttribute()
</span><span class="cx"> PASS select.size: setAttribute() to 2147483647 followed by IDL get
</span><del>-FAIL select.size: setAttribute() to 2147483648 followed by getAttribute() assert_equals: expected "2147483648" but got "0"
</del><ins>+PASS select.size: setAttribute() to 2147483648 followed by getAttribute()
</ins><span class="cx"> PASS select.size: setAttribute() to 2147483648 followed by IDL get
</span><del>-FAIL select.size: setAttribute() to 4294967295 followed by getAttribute() assert_equals: expected "4294967295" but got "0"
</del><ins>+PASS select.size: setAttribute() to 4294967295 followed by getAttribute()
</ins><span class="cx"> PASS select.size: setAttribute() to 4294967295 followed by IDL get
</span><del>-FAIL select.size: setAttribute() to 4294967296 followed by getAttribute() assert_equals: expected "4294967296" but got "0"
</del><ins>+PASS select.size: setAttribute() to 4294967296 followed by getAttribute()
</ins><span class="cx"> PASS select.size: setAttribute() to 4294967296 followed by IDL get
</span><del>-FAIL select.size: setAttribute() to "" followed by getAttribute() assert_equals: expected "" but got "0"
</del><ins>+PASS select.size: setAttribute() to "" followed by getAttribute()
</ins><span class="cx"> PASS select.size: setAttribute() to "" followed by IDL get
</span><span class="cx"> PASS select.size: setAttribute() to "-1" followed by getAttribute()
</span><span class="cx"> PASS select.size: setAttribute() to "-1" followed by IDL get
</span><del>-FAIL select.size: setAttribute() to "-0" followed by getAttribute() assert_equals: expected "-0" but got "0"
</del><ins>+PASS select.size: setAttribute() to "-0" followed by getAttribute()
</ins><span class="cx"> PASS select.size: setAttribute() to "-0" followed by IDL get
</span><span class="cx"> PASS select.size: setAttribute() to "0" followed by getAttribute()
</span><span class="cx"> PASS select.size: setAttribute() to "0" followed by IDL get
</span><span class="cx"> PASS select.size: setAttribute() to "1" followed by getAttribute()
</span><span class="cx"> PASS select.size: setAttribute() to "1" followed by IDL get
</span><del>-FAIL select.size: setAttribute() to "\t7" followed by getAttribute() assert_equals: expected "\t7" but got "7"
</del><ins>+PASS select.size: setAttribute() to "\t7" followed by getAttribute()
</ins><span class="cx"> PASS select.size: setAttribute() to "\t7" followed by IDL get
</span><del>-FAIL select.size: setAttribute() to "\v7" followed by getAttribute() assert_equals: expected "\v7" but got "7"
-FAIL select.size: setAttribute() to "\v7" followed by IDL get assert_equals: expected 0 but got 7
-FAIL select.size: setAttribute() to "\f7" followed by getAttribute() assert_equals: expected "\f7" but got "7"
</del><ins>+PASS select.size: setAttribute() to "\v7" followed by getAttribute()
+PASS select.size: setAttribute() to "\v7" followed by IDL get
+PASS select.size: setAttribute() to "\f7" followed by getAttribute()
</ins><span class="cx"> PASS select.size: setAttribute() to "\f7" followed by IDL get
</span><del>-FAIL select.size: setAttribute() to " 7" followed by getAttribute() assert_equals: expected " 7" but got "7"
</del><ins>+PASS select.size: setAttribute() to " 7" followed by getAttribute()
</ins><span class="cx"> PASS select.size: setAttribute() to " 7" followed by IDL get
</span><del>-FAIL select.size: setAttribute() to " 7" followed by getAttribute() assert_equals: expected " 7" but got "0"
</del><ins>+PASS select.size: setAttribute() to " 7" followed by getAttribute()
</ins><span class="cx"> PASS select.size: setAttribute() to " 7" followed by IDL get
</span><del>-FAIL select.size: setAttribute() to "7" followed by getAttribute() assert_equals: expected "7" but got "0"
</del><ins>+PASS select.size: setAttribute() to "7" followed by getAttribute()
</ins><span class="cx"> PASS select.size: setAttribute() to "7" followed by IDL get
</span><del>-FAIL select.size: setAttribute() to "\n7" followed by getAttribute() assert_equals: expected "\n7" but got "7"
</del><ins>+PASS select.size: setAttribute() to "\n7" followed by getAttribute()
</ins><span class="cx"> PASS select.size: setAttribute() to "\n7" followed by IDL get
</span><del>-FAIL select.size: setAttribute() to "\r7" followed by getAttribute() assert_equals: expected "\r7" but got "7"
</del><ins>+PASS select.size: setAttribute() to "\r7" followed by getAttribute()
</ins><span class="cx"> PASS select.size: setAttribute() to "\r7" followed by IDL get
</span><del>-FAIL select.size: setAttribute() to "
7" followed by getAttribute() assert_equals: expected "
7" but got "7"
-FAIL select.size: setAttribute() to "
7" followed by IDL get assert_equals: expected 0 but got 7
-FAIL select.size: setAttribute() to "
7" followed by getAttribute() assert_equals: expected "
7" but got "0"
</del><ins>+PASS select.size: setAttribute() to "
7" followed by getAttribute()
+PASS select.size: setAttribute() to "
7" followed by IDL get
+PASS select.size: setAttribute() to "
7" followed by getAttribute()
</ins><span class="cx"> PASS select.size: setAttribute() to "
7" followed by IDL get
</span><del>-FAIL select.size: setAttribute() to " 7" followed by getAttribute() assert_equals: expected " 7" but got "7"
-FAIL select.size: setAttribute() to " 7" followed by IDL get assert_equals: expected 0 but got 7
-FAIL select.size: setAttribute() to "7" followed by getAttribute() assert_equals: expected "7" but got "0"
</del><ins>+PASS select.size: setAttribute() to " 7" followed by getAttribute()
+PASS select.size: setAttribute() to " 7" followed by IDL get
+PASS select.size: setAttribute() to "7" followed by getAttribute()
</ins><span class="cx"> PASS select.size: setAttribute() to "7" followed by IDL get
</span><del>-FAIL select.size: setAttribute() to " 7" followed by getAttribute() assert_equals: expected " 7" but got "7"
-FAIL select.size: setAttribute() to " 7" followed by IDL get assert_equals: expected 0 but got 7
-FAIL select.size: setAttribute() to " 7" followed by getAttribute() assert_equals: expected " 7" but got "7"
-FAIL select.size: setAttribute() to " 7" followed by IDL get assert_equals: expected 0 but got 7
-FAIL select.size: setAttribute() to " 7" followed by getAttribute() assert_equals: expected " 7" but got "7"
-FAIL select.size: setAttribute() to " 7" followed by IDL get assert_equals: expected 0 but got 7
-FAIL select.size: setAttribute() to " 7" followed by getAttribute() assert_equals: expected " 7" but got "7"
-FAIL select.size: setAttribute() to " 7" followed by IDL get assert_equals: expected 0 but got 7
-FAIL select.size: setAttribute() to " 7" followed by getAttribute() assert_equals: expected " 7" but got "7"
-FAIL select.size: setAttribute() to " 7" followed by IDL get assert_equals: expected 0 but got 7
-FAIL select.size: setAttribute() to " 7" followed by getAttribute() assert_equals: expected " 7" but got "7"
-FAIL select.size: setAttribute() to " 7" followed by IDL get assert_equals: expected 0 but got 7
-FAIL select.size: setAttribute() to " 7" followed by getAttribute() assert_equals: expected " 7" but got "7"
-FAIL select.size: setAttribute() to " 7" followed by IDL get assert_equals: expected 0 but got 7
-FAIL select.size: setAttribute() to " 7" followed by getAttribute() assert_equals: expected " 7" but got "7"
-FAIL select.size: setAttribute() to " 7" followed by IDL get assert_equals: expected 0 but got 7
-FAIL select.size: setAttribute() to " 7" followed by getAttribute() assert_equals: expected " 7" but got "7"
-FAIL select.size: setAttribute() to " 7" followed by IDL get assert_equals: expected 0 but got 7
-FAIL select.size: setAttribute() to " 7" followed by getAttribute() assert_equals: expected " 7" but got "7"
-FAIL select.size: setAttribute() to " 7" followed by IDL get assert_equals: expected 0 but got 7
-FAIL select.size: setAttribute() to " 7" followed by getAttribute() assert_equals: expected " 7" but got "7"
-FAIL select.size: setAttribute() to " 7" followed by IDL get assert_equals: expected 0 but got 7
-FAIL select.size: setAttribute() to " 7" followed by getAttribute() assert_equals: expected " 7" but got "0"
</del><ins>+PASS select.size: setAttribute() to " 7" followed by getAttribute()
+PASS select.size: setAttribute() to " 7" followed by IDL get
+PASS select.size: setAttribute() to " 7" followed by getAttribute()
+PASS select.size: setAttribute() to " 7" followed by IDL get
+PASS select.size: setAttribute() to " 7" followed by getAttribute()
+PASS select.size: setAttribute() to " 7" followed by IDL get
+PASS select.size: setAttribute() to " 7" followed by getAttribute()
+PASS select.size: setAttribute() to " 7" followed by IDL get
+PASS select.size: setAttribute() to " 7" followed by getAttribute()
+PASS select.size: setAttribute() to " 7" followed by IDL get
+PASS select.size: setAttribute() to " 7" followed by getAttribute()
+PASS select.size: setAttribute() to " 7" followed by IDL get
+PASS select.size: setAttribute() to " 7" followed by getAttribute()
+PASS select.size: setAttribute() to " 7" followed by IDL get
+PASS select.size: setAttribute() to " 7" followed by getAttribute()
+PASS select.size: setAttribute() to " 7" followed by IDL get
+PASS select.size: setAttribute() to " 7" followed by getAttribute()
+PASS select.size: setAttribute() to " 7" followed by IDL get
+PASS select.size: setAttribute() to " 7" followed by getAttribute()
+PASS select.size: setAttribute() to " 7" followed by IDL get
+PASS select.size: setAttribute() to " 7" followed by getAttribute()
+PASS select.size: setAttribute() to " 7" followed by IDL get
+PASS select.size: setAttribute() to " 7" followed by getAttribute()
</ins><span class="cx"> PASS select.size: setAttribute() to " 7" followed by IDL get
</span><del>-FAIL select.size: setAttribute() to " 7" followed by getAttribute() assert_equals: expected " 7" but got "7"
-FAIL select.size: setAttribute() to " 7" followed by IDL get assert_equals: expected 0 but got 7
-FAIL select.size: setAttribute() to " \0\x01\x02\x03\x04\x05\x06\x07 \b\t\n\v\f\r\x0e\x0f \x10\x11\x12\x13\x14\x15\x16\x17 \x18\x19\x1a\x1b\x1c\x1d\x1e\x1f foo " followed by getAttribute() assert_equals: expected " \0\x01\x02\x03\x04\x05\x06\x07 \b\t\n\v\f\r\x0e\x0f \x10\x11\x12\x13\x14\x15\x16\x17 \x18\x19\x1a\x1b\x1c\x1d\x1e\x1f foo " but got "0"
</del><ins>+PASS select.size: setAttribute() to " 7" followed by getAttribute()
+PASS select.size: setAttribute() to " 7" followed by IDL get
+PASS select.size: setAttribute() to " \0\x01\x02\x03\x04\x05\x06\x07 \b\t\n\v\f\r\x0e\x0f \x10\x11\x12\x13\x14\x15\x16\x17 \x18\x19\x1a\x1b\x1c\x1d\x1e\x1f foo " followed by getAttribute()
</ins><span class="cx"> PASS select.size: setAttribute() to " \0\x01\x02\x03\x04\x05\x06\x07 \b\t\n\v\f\r\x0e\x0f \x10\x11\x12\x13\x14\x15\x16\x17 \x18\x19\x1a\x1b\x1c\x1d\x1e\x1f foo " followed by IDL get
</span><del>-FAIL select.size: setAttribute() to undefined followed by getAttribute() assert_equals: expected "undefined" but got "0"
</del><ins>+PASS select.size: setAttribute() to undefined followed by getAttribute()
</ins><span class="cx"> PASS select.size: setAttribute() to undefined followed by IDL get
</span><del>-FAIL select.size: setAttribute() to 1.5 followed by getAttribute() assert_equals: expected "1.5" but got "1"
</del><ins>+PASS select.size: setAttribute() to 1.5 followed by getAttribute()
</ins><span class="cx"> PASS select.size: setAttribute() to 1.5 followed by IDL get
</span><del>-FAIL select.size: setAttribute() to true followed by getAttribute() assert_equals: expected "true" but got "0"
</del><ins>+PASS select.size: setAttribute() to true followed by getAttribute()
</ins><span class="cx"> PASS select.size: setAttribute() to true followed by IDL get
</span><del>-FAIL select.size: setAttribute() to false followed by getAttribute() assert_equals: expected "false" but got "0"
</del><ins>+PASS select.size: setAttribute() to false followed by getAttribute()
</ins><span class="cx"> PASS select.size: setAttribute() to false followed by IDL get
</span><del>-FAIL select.size: setAttribute() to object "[object Object]" followed by getAttribute() assert_equals: expected "[object Object]" but got "0"
</del><ins>+PASS select.size: setAttribute() to object "[object Object]" followed by getAttribute()
</ins><span class="cx"> PASS select.size: setAttribute() to object "[object Object]" followed by IDL get
</span><del>-FAIL select.size: setAttribute() to NaN followed by getAttribute() assert_equals: expected "NaN" but got "0"
</del><ins>+PASS select.size: setAttribute() to NaN followed by getAttribute()
</ins><span class="cx"> PASS select.size: setAttribute() to NaN followed by IDL get
</span><del>-FAIL select.size: setAttribute() to Infinity followed by getAttribute() assert_equals: expected "Infinity" but got "0"
</del><ins>+PASS select.size: setAttribute() to Infinity followed by getAttribute()
</ins><span class="cx"> PASS select.size: setAttribute() to Infinity followed by IDL get
</span><del>-FAIL select.size: setAttribute() to -Infinity followed by getAttribute() assert_equals: expected "-Infinity" but got "0"
</del><ins>+PASS select.size: setAttribute() to -Infinity followed by getAttribute()
</ins><span class="cx"> PASS select.size: setAttribute() to -Infinity followed by IDL get
</span><del>-FAIL select.size: setAttribute() to "\0" followed by getAttribute() assert_equals: expected "\0" but got "0"
</del><ins>+PASS select.size: setAttribute() to "\0" followed by getAttribute()
</ins><span class="cx"> PASS select.size: setAttribute() to "\0" followed by IDL get
</span><span class="cx"> PASS select.size: setAttribute() to object "2" followed by getAttribute()
</span><span class="cx"> PASS select.size: setAttribute() to object "2" followed by IDL get
</span><del>-FAIL select.size: setAttribute() to object "3" followed by getAttribute() assert_equals: expected "[object Object]" but got "0"
</del><ins>+PASS select.size: setAttribute() to object "3" followed by getAttribute()
</ins><span class="cx"> PASS select.size: setAttribute() to object "3" followed by IDL get
</span><span class="cx"> PASS select.size: IDL set to 0 should not throw
</span><span class="cx"> PASS select.size: IDL set to 0 followed by getAttribute()
</span><span class="lines">@@ -10969,10 +10969,10 @@
</span><span class="cx"> PASS select.size: IDL set to "-0" followed by getAttribute()
</span><span class="cx"> PASS select.size: IDL set to "-0" followed by IDL get
</span><span class="cx"> PASS select.size: IDL set to 2147483648 should not throw
</span><del>-FAIL select.size: IDL set to 2147483648 followed by getAttribute() assert_equals: expected "0" but got "-2147483648"
</del><ins>+PASS select.size: IDL set to 2147483648 followed by getAttribute()
</ins><span class="cx"> PASS select.size: IDL set to 2147483648 followed by IDL get
</span><span class="cx"> PASS select.size: IDL set to 4294967295 should not throw
</span><del>-FAIL select.size: IDL set to 4294967295 followed by getAttribute() assert_equals: expected "0" but got "-1"
</del><ins>+PASS select.size: IDL set to 4294967295 followed by getAttribute()
</ins><span class="cx"> PASS select.size: IDL set to 4294967295 followed by IDL get
</span><span class="cx"> FAIL select.itemScope: typeof IDL attribute assert_equals: expected "boolean" but got "undefined"
</span><span class="cx"> FAIL select.itemScope: IDL get with DOM attribute unset assert_equals: expected (boolean) false but got (undefined) undefined
</span><span class="lines">@@ -14544,7 +14544,7 @@
</span><span class="cx"> PASS textarea.cols: setAttribute() to "\t7" followed by getAttribute()
</span><span class="cx"> PASS textarea.cols: setAttribute() to "\t7" followed by IDL get
</span><span class="cx"> PASS textarea.cols: setAttribute() to "\v7" followed by getAttribute()
</span><del>-FAIL textarea.cols: setAttribute() to "\v7" followed by IDL get assert_equals: expected 20 but got 7
</del><ins>+PASS textarea.cols: setAttribute() to "\v7" followed by IDL get
</ins><span class="cx"> PASS textarea.cols: setAttribute() to "\f7" followed by getAttribute()
</span><span class="cx"> PASS textarea.cols: setAttribute() to "\f7" followed by IDL get
</span><span class="cx"> PASS textarea.cols: setAttribute() to " 7" followed by getAttribute()
</span><span class="lines">@@ -14558,39 +14558,39 @@
</span><span class="cx"> PASS textarea.cols: setAttribute() to "\r7" followed by getAttribute()
</span><span class="cx"> PASS textarea.cols: setAttribute() to "\r7" followed by IDL get
</span><span class="cx"> PASS textarea.cols: setAttribute() to "
7" followed by getAttribute()
</span><del>-FAIL textarea.cols: setAttribute() to "
7" followed by IDL get assert_equals: expected 20 but got 7
</del><ins>+PASS textarea.cols: setAttribute() to "
7" followed by IDL get
</ins><span class="cx"> PASS textarea.cols: setAttribute() to "
7" followed by getAttribute()
</span><span class="cx"> PASS textarea.cols: setAttribute() to "
7" followed by IDL get
</span><span class="cx"> PASS textarea.cols: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL textarea.cols: setAttribute() to " 7" followed by IDL get assert_equals: expected 20 but got 7
</del><ins>+PASS textarea.cols: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS textarea.cols: setAttribute() to "7" followed by getAttribute()
</span><span class="cx"> PASS textarea.cols: setAttribute() to "7" followed by IDL get
</span><span class="cx"> PASS textarea.cols: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL textarea.cols: setAttribute() to " 7" followed by IDL get assert_equals: expected 20 but got 7
</del><ins>+PASS textarea.cols: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS textarea.cols: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL textarea.cols: setAttribute() to " 7" followed by IDL get assert_equals: expected 20 but got 7
</del><ins>+PASS textarea.cols: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS textarea.cols: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL textarea.cols: setAttribute() to " 7" followed by IDL get assert_equals: expected 20 but got 7
</del><ins>+PASS textarea.cols: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS textarea.cols: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL textarea.cols: setAttribute() to " 7" followed by IDL get assert_equals: expected 20 but got 7
</del><ins>+PASS textarea.cols: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS textarea.cols: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL textarea.cols: setAttribute() to " 7" followed by IDL get assert_equals: expected 20 but got 7
</del><ins>+PASS textarea.cols: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS textarea.cols: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL textarea.cols: setAttribute() to " 7" followed by IDL get assert_equals: expected 20 but got 7
</del><ins>+PASS textarea.cols: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS textarea.cols: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL textarea.cols: setAttribute() to " 7" followed by IDL get assert_equals: expected 20 but got 7
</del><ins>+PASS textarea.cols: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS textarea.cols: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL textarea.cols: setAttribute() to " 7" followed by IDL get assert_equals: expected 20 but got 7
</del><ins>+PASS textarea.cols: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS textarea.cols: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL textarea.cols: setAttribute() to " 7" followed by IDL get assert_equals: expected 20 but got 7
</del><ins>+PASS textarea.cols: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS textarea.cols: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL textarea.cols: setAttribute() to " 7" followed by IDL get assert_equals: expected 20 but got 7
</del><ins>+PASS textarea.cols: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS textarea.cols: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL textarea.cols: setAttribute() to " 7" followed by IDL get assert_equals: expected 20 but got 7
</del><ins>+PASS textarea.cols: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS textarea.cols: setAttribute() to " 7" followed by getAttribute()
</span><span class="cx"> PASS textarea.cols: setAttribute() to " 7" followed by IDL get
</span><span class="cx"> PASS textarea.cols: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL textarea.cols: setAttribute() to " 7" followed by IDL get assert_equals: expected 20 but got 7
</del><ins>+PASS textarea.cols: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS textarea.cols: setAttribute() to " \0\x01\x02\x03\x04\x05\x06\x07 \b\t\n\v\f\r\x0e\x0f \x10\x11\x12\x13\x14\x15\x16\x17 \x18\x19\x1a\x1b\x1c\x1d\x1e\x1f foo " followed by getAttribute()
</span><span class="cx"> PASS textarea.cols: setAttribute() to " \0\x01\x02\x03\x04\x05\x06\x07 \b\t\n\v\f\r\x0e\x0f \x10\x11\x12\x13\x14\x15\x16\x17 \x18\x19\x1a\x1b\x1c\x1d\x1e\x1f foo " followed by IDL get
</span><span class="cx"> PASS textarea.cols: setAttribute() to undefined followed by getAttribute()
</span><span class="lines">@@ -15603,7 +15603,7 @@
</span><span class="cx"> PASS textarea.rows: setAttribute() to "\t7" followed by getAttribute()
</span><span class="cx"> PASS textarea.rows: setAttribute() to "\t7" followed by IDL get
</span><span class="cx"> PASS textarea.rows: setAttribute() to "\v7" followed by getAttribute()
</span><del>-FAIL textarea.rows: setAttribute() to "\v7" followed by IDL get assert_equals: expected 2 but got 7
</del><ins>+PASS textarea.rows: setAttribute() to "\v7" followed by IDL get
</ins><span class="cx"> PASS textarea.rows: setAttribute() to "\f7" followed by getAttribute()
</span><span class="cx"> PASS textarea.rows: setAttribute() to "\f7" followed by IDL get
</span><span class="cx"> PASS textarea.rows: setAttribute() to " 7" followed by getAttribute()
</span><span class="lines">@@ -15617,39 +15617,39 @@
</span><span class="cx"> PASS textarea.rows: setAttribute() to "\r7" followed by getAttribute()
</span><span class="cx"> PASS textarea.rows: setAttribute() to "\r7" followed by IDL get
</span><span class="cx"> PASS textarea.rows: setAttribute() to "
7" followed by getAttribute()
</span><del>-FAIL textarea.rows: setAttribute() to "
7" followed by IDL get assert_equals: expected 2 but got 7
</del><ins>+PASS textarea.rows: setAttribute() to "
7" followed by IDL get
</ins><span class="cx"> PASS textarea.rows: setAttribute() to "
7" followed by getAttribute()
</span><span class="cx"> PASS textarea.rows: setAttribute() to "
7" followed by IDL get
</span><span class="cx"> PASS textarea.rows: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL textarea.rows: setAttribute() to " 7" followed by IDL get assert_equals: expected 2 but got 7
</del><ins>+PASS textarea.rows: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS textarea.rows: setAttribute() to "7" followed by getAttribute()
</span><span class="cx"> PASS textarea.rows: setAttribute() to "7" followed by IDL get
</span><span class="cx"> PASS textarea.rows: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL textarea.rows: setAttribute() to " 7" followed by IDL get assert_equals: expected 2 but got 7
</del><ins>+PASS textarea.rows: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS textarea.rows: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL textarea.rows: setAttribute() to " 7" followed by IDL get assert_equals: expected 2 but got 7
</del><ins>+PASS textarea.rows: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS textarea.rows: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL textarea.rows: setAttribute() to " 7" followed by IDL get assert_equals: expected 2 but got 7
</del><ins>+PASS textarea.rows: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS textarea.rows: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL textarea.rows: setAttribute() to " 7" followed by IDL get assert_equals: expected 2 but got 7
</del><ins>+PASS textarea.rows: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS textarea.rows: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL textarea.rows: setAttribute() to " 7" followed by IDL get assert_equals: expected 2 but got 7
</del><ins>+PASS textarea.rows: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS textarea.rows: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL textarea.rows: setAttribute() to " 7" followed by IDL get assert_equals: expected 2 but got 7
</del><ins>+PASS textarea.rows: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS textarea.rows: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL textarea.rows: setAttribute() to " 7" followed by IDL get assert_equals: expected 2 but got 7
</del><ins>+PASS textarea.rows: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS textarea.rows: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL textarea.rows: setAttribute() to " 7" followed by IDL get assert_equals: expected 2 but got 7
</del><ins>+PASS textarea.rows: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS textarea.rows: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL textarea.rows: setAttribute() to " 7" followed by IDL get assert_equals: expected 2 but got 7
</del><ins>+PASS textarea.rows: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS textarea.rows: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL textarea.rows: setAttribute() to " 7" followed by IDL get assert_equals: expected 2 but got 7
</del><ins>+PASS textarea.rows: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS textarea.rows: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL textarea.rows: setAttribute() to " 7" followed by IDL get assert_equals: expected 2 but got 7
</del><ins>+PASS textarea.rows: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS textarea.rows: setAttribute() to " 7" followed by getAttribute()
</span><span class="cx"> PASS textarea.rows: setAttribute() to " 7" followed by IDL get
</span><span class="cx"> PASS textarea.rows: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL textarea.rows: setAttribute() to " 7" followed by IDL get assert_equals: expected 2 but got 7
</del><ins>+PASS textarea.rows: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS textarea.rows: setAttribute() to " \0\x01\x02\x03\x04\x05\x06\x07 \b\t\n\v\f\r\x0e\x0f \x10\x11\x12\x13\x14\x15\x16\x17 \x18\x19\x1a\x1b\x1c\x1d\x1e\x1f foo " followed by getAttribute()
</span><span class="cx"> PASS textarea.rows: setAttribute() to " \0\x01\x02\x03\x04\x05\x06\x07 \b\t\n\v\f\r\x0e\x0f \x10\x11\x12\x13\x14\x15\x16\x17 \x18\x19\x1a\x1b\x1c\x1d\x1e\x1f foo " followed by IDL get
</span><span class="cx"> PASS textarea.rows: setAttribute() to undefined followed by getAttribute()
</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 (196892 => 196893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/reflection-tabular-expected.txt        2016-02-22 05:26:17 UTC (rev 196892)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/reflection-tabular-expected.txt        2016-02-22 05:52:07 UTC (rev 196893)
</span><span class="lines">@@ -3004,7 +3004,7 @@
</span><span class="cx"> PASS colgroup.span: setAttribute() to "\t7" followed by getAttribute()
</span><span class="cx"> PASS colgroup.span: setAttribute() to "\t7" followed by IDL get
</span><span class="cx"> PASS colgroup.span: setAttribute() to "\v7" followed by getAttribute()
</span><del>-FAIL colgroup.span: setAttribute() to "\v7" followed by IDL get assert_equals: expected 1 but got 7
</del><ins>+PASS colgroup.span: setAttribute() to "\v7" followed by IDL get
</ins><span class="cx"> PASS colgroup.span: setAttribute() to "\f7" followed by getAttribute()
</span><span class="cx"> PASS colgroup.span: setAttribute() to "\f7" followed by IDL get
</span><span class="cx"> PASS colgroup.span: setAttribute() to " 7" followed by getAttribute()
</span><span class="lines">@@ -3018,39 +3018,39 @@
</span><span class="cx"> PASS colgroup.span: setAttribute() to "\r7" followed by getAttribute()
</span><span class="cx"> PASS colgroup.span: setAttribute() to "\r7" followed by IDL get
</span><span class="cx"> PASS colgroup.span: setAttribute() to "
7" followed by getAttribute()
</span><del>-FAIL colgroup.span: setAttribute() to "
7" followed by IDL get assert_equals: expected 1 but got 7
</del><ins>+PASS colgroup.span: setAttribute() to "
7" followed by IDL get
</ins><span class="cx"> PASS colgroup.span: setAttribute() to "
7" followed by getAttribute()
</span><span class="cx"> PASS colgroup.span: setAttribute() to "
7" followed by IDL get
</span><span class="cx"> PASS colgroup.span: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL colgroup.span: setAttribute() to " 7" followed by IDL get assert_equals: expected 1 but got 7
</del><ins>+PASS colgroup.span: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS colgroup.span: setAttribute() to "7" followed by getAttribute()
</span><span class="cx"> PASS colgroup.span: setAttribute() to "7" followed by IDL get
</span><span class="cx"> PASS colgroup.span: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL colgroup.span: setAttribute() to " 7" followed by IDL get assert_equals: expected 1 but got 7
</del><ins>+PASS colgroup.span: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS colgroup.span: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL colgroup.span: setAttribute() to " 7" followed by IDL get assert_equals: expected 1 but got 7
</del><ins>+PASS colgroup.span: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS colgroup.span: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL colgroup.span: setAttribute() to " 7" followed by IDL get assert_equals: expected 1 but got 7
</del><ins>+PASS colgroup.span: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS colgroup.span: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL colgroup.span: setAttribute() to " 7" followed by IDL get assert_equals: expected 1 but got 7
</del><ins>+PASS colgroup.span: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS colgroup.span: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL colgroup.span: setAttribute() to " 7" followed by IDL get assert_equals: expected 1 but got 7
</del><ins>+PASS colgroup.span: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS colgroup.span: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL colgroup.span: setAttribute() to " 7" followed by IDL get assert_equals: expected 1 but got 7
</del><ins>+PASS colgroup.span: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS colgroup.span: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL colgroup.span: setAttribute() to " 7" followed by IDL get assert_equals: expected 1 but got 7
</del><ins>+PASS colgroup.span: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS colgroup.span: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL colgroup.span: setAttribute() to " 7" followed by IDL get assert_equals: expected 1 but got 7
</del><ins>+PASS colgroup.span: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS colgroup.span: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL colgroup.span: setAttribute() to " 7" followed by IDL get assert_equals: expected 1 but got 7
</del><ins>+PASS colgroup.span: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS colgroup.span: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL colgroup.span: setAttribute() to " 7" followed by IDL get assert_equals: expected 1 but got 7
</del><ins>+PASS colgroup.span: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS colgroup.span: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL colgroup.span: setAttribute() to " 7" followed by IDL get assert_equals: expected 1 but got 7
</del><ins>+PASS colgroup.span: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS colgroup.span: setAttribute() to " 7" followed by getAttribute()
</span><span class="cx"> PASS colgroup.span: setAttribute() to " 7" followed by IDL get
</span><span class="cx"> PASS colgroup.span: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL colgroup.span: setAttribute() to " 7" followed by IDL get assert_equals: expected 1 but got 7
</del><ins>+PASS colgroup.span: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS colgroup.span: setAttribute() to " \0\x01\x02\x03\x04\x05\x06\x07 \b\t\n\v\f\r\x0e\x0f \x10\x11\x12\x13\x14\x15\x16\x17 \x18\x19\x1a\x1b\x1c\x1d\x1e\x1f foo " followed by getAttribute()
</span><span class="cx"> PASS colgroup.span: setAttribute() to " \0\x01\x02\x03\x04\x05\x06\x07 \b\t\n\v\f\r\x0e\x0f \x10\x11\x12\x13\x14\x15\x16\x17 \x18\x19\x1a\x1b\x1c\x1d\x1e\x1f foo " followed by IDL get
</span><span class="cx"> PASS colgroup.span: setAttribute() to undefined followed by getAttribute()
</span><span class="lines">@@ -4271,7 +4271,7 @@
</span><span class="cx"> PASS col.span: setAttribute() to "\t7" followed by getAttribute()
</span><span class="cx"> PASS col.span: setAttribute() to "\t7" followed by IDL get
</span><span class="cx"> PASS col.span: setAttribute() to "\v7" followed by getAttribute()
</span><del>-FAIL col.span: setAttribute() to "\v7" followed by IDL get assert_equals: expected 1 but got 7
</del><ins>+PASS col.span: setAttribute() to "\v7" followed by IDL get
</ins><span class="cx"> PASS col.span: setAttribute() to "\f7" followed by getAttribute()
</span><span class="cx"> PASS col.span: setAttribute() to "\f7" followed by IDL get
</span><span class="cx"> PASS col.span: setAttribute() to " 7" followed by getAttribute()
</span><span class="lines">@@ -4285,39 +4285,39 @@
</span><span class="cx"> PASS col.span: setAttribute() to "\r7" followed by getAttribute()
</span><span class="cx"> PASS col.span: setAttribute() to "\r7" followed by IDL get
</span><span class="cx"> PASS col.span: setAttribute() to "
7" followed by getAttribute()
</span><del>-FAIL col.span: setAttribute() to "
7" followed by IDL get assert_equals: expected 1 but got 7
</del><ins>+PASS col.span: setAttribute() to "
7" followed by IDL get
</ins><span class="cx"> PASS col.span: setAttribute() to "
7" followed by getAttribute()
</span><span class="cx"> PASS col.span: setAttribute() to "
7" followed by IDL get
</span><span class="cx"> PASS col.span: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL col.span: setAttribute() to " 7" followed by IDL get assert_equals: expected 1 but got 7
</del><ins>+PASS col.span: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS col.span: setAttribute() to "7" followed by getAttribute()
</span><span class="cx"> PASS col.span: setAttribute() to "7" followed by IDL get
</span><span class="cx"> PASS col.span: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL col.span: setAttribute() to " 7" followed by IDL get assert_equals: expected 1 but got 7
</del><ins>+PASS col.span: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS col.span: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL col.span: setAttribute() to " 7" followed by IDL get assert_equals: expected 1 but got 7
</del><ins>+PASS col.span: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS col.span: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL col.span: setAttribute() to " 7" followed by IDL get assert_equals: expected 1 but got 7
</del><ins>+PASS col.span: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS col.span: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL col.span: setAttribute() to " 7" followed by IDL get assert_equals: expected 1 but got 7
</del><ins>+PASS col.span: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS col.span: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL col.span: setAttribute() to " 7" followed by IDL get assert_equals: expected 1 but got 7
</del><ins>+PASS col.span: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS col.span: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL col.span: setAttribute() to " 7" followed by IDL get assert_equals: expected 1 but got 7
</del><ins>+PASS col.span: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS col.span: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL col.span: setAttribute() to " 7" followed by IDL get assert_equals: expected 1 but got 7
</del><ins>+PASS col.span: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS col.span: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL col.span: setAttribute() to " 7" followed by IDL get assert_equals: expected 1 but got 7
</del><ins>+PASS col.span: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS col.span: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL col.span: setAttribute() to " 7" followed by IDL get assert_equals: expected 1 but got 7
</del><ins>+PASS col.span: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS col.span: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL col.span: setAttribute() to " 7" followed by IDL get assert_equals: expected 1 but got 7
</del><ins>+PASS col.span: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS col.span: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL col.span: setAttribute() to " 7" followed by IDL get assert_equals: expected 1 but got 7
</del><ins>+PASS col.span: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS col.span: setAttribute() to " 7" followed by getAttribute()
</span><span class="cx"> PASS col.span: setAttribute() to " 7" followed by IDL get
</span><span class="cx"> PASS col.span: setAttribute() to " 7" followed by getAttribute()
</span><del>-FAIL col.span: setAttribute() to " 7" followed by IDL get assert_equals: expected 1 but got 7
</del><ins>+PASS col.span: setAttribute() to " 7" followed by IDL get
</ins><span class="cx"> PASS col.span: setAttribute() to " \0\x01\x02\x03\x04\x05\x06\x07 \b\t\n\v\f\r\x0e\x0f \x10\x11\x12\x13\x14\x15\x16\x17 \x18\x19\x1a\x1b\x1c\x1d\x1e\x1f foo " followed by getAttribute()
</span><span class="cx"> PASS col.span: setAttribute() to " \0\x01\x02\x03\x04\x05\x06\x07 \b\t\n\v\f\r\x0e\x0f \x10\x11\x12\x13\x14\x15\x16\x17 \x18\x19\x1a\x1b\x1c\x1d\x1e\x1f foo " followed by IDL get
</span><span class="cx"> PASS col.span: setAttribute() to undefined followed by getAttribute()
</span></span></pre></div>
<a id="trunkLayoutTestsplatformeflfastformsselectsizeexpectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/platform/efl/fast/forms/select-size-expected.txt (196892 => 196893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/efl/fast/forms/select-size-expected.txt        2016-02-22 05:26:17 UTC (rev 196892)
+++ trunk/LayoutTests/platform/efl/fast/forms/select-size-expected.txt        2016-02-22 05:52:07 UTC (rev 196893)
</span><span class="lines">@@ -1,14 +0,0 @@
</span><del>-layer at (0,0) size 800x600
- RenderView at (0,0) size 800x600
-layer at (0,0) size 800x600
- RenderBlock {HTML} at (0,0) size 800x600
- RenderBody {BODY} at (8,8) size 784x584
- RenderText {#text} at (0,0) size 783x35
- text run at (0,0) width 783: "This tests that a malformed size attribute will be parsed and corrected so that the right size attribute value is used to match the"
- text run at (0,18) width 406: "style rule that determines whether to use a menu list or a list box."
- RenderBR {BR} at (406,32) size 0x0
- RenderMenuList {SELECT} at (2,38) size 81x38 [bgcolor=#FFFFFF]
- RenderBlock (anonymous) at (15,10) size 25x18
- RenderText at (0,0) size 25x17
- text run at (0,0) width 25: "test"
- RenderText {#text} at (0,0) size 0x0
</del></span></pre></div>
<a id="trunkLayoutTestsplatformgtkfastformsselectsizeexpectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/platform/gtk/fast/forms/select-size-expected.txt (196892 => 196893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/gtk/fast/forms/select-size-expected.txt        2016-02-22 05:26:17 UTC (rev 196892)
+++ trunk/LayoutTests/platform/gtk/fast/forms/select-size-expected.txt        2016-02-22 05:52:07 UTC (rev 196893)
</span><span class="lines">@@ -1,14 +0,0 @@
</span><del>-layer at (0,0) size 800x600
- RenderView at (0,0) size 800x600
-layer at (0,0) size 800x600
- RenderBlock {HTML} at (0,0) size 800x600
- RenderBody {BODY} at (8,8) size 784x584
- RenderText {#text} at (0,0) size 783x34
- text run at (0,0) width 783: "This tests that a malformed size attribute will be parsed and corrected so that the right size attribute value is used to match the"
- text run at (0,17) width 406: "style rule that determines whether to use a menu list or a list box."
- RenderBR {BR} at (406,31) size 0x0
- RenderMenuList {SELECT} at (2,36) size 50x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
- RenderBlock (anonymous) at (1,1) size 48x25
- RenderText at (4,4) size 25x17
- text run at (4,4) width 25: "test"
- RenderText {#text} at (0,0) size 0x0
</del></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatorfastformsselectsizeexpectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/platform/ios-simulator/fast/forms/select-size-expected.txt (196892 => 196893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/fast/forms/select-size-expected.txt        2016-02-22 05:26:17 UTC (rev 196892)
+++ trunk/LayoutTests/platform/ios-simulator/fast/forms/select-size-expected.txt        2016-02-22 05:52:07 UTC (rev 196893)
</span><span class="lines">@@ -1,14 +0,0 @@
</span><del>-layer at (0,0) size 800x600
- RenderView at (0,0) size 800x600
-layer at (0,0) size 800x600
- RenderBlock {HTML} at (0,0) size 800x600
- RenderBody {BODY} at (8,8) size 784x584
- RenderText {#text} at (0,0) size 782x39
- text run at (0,0) width 782: "This tests that a malformed size attribute will be parsed and corrected so that the right size attribute value is used to match"
- text run at (0,20) width 441: "the style rule that determines whether to use a menu list or a list box."
- RenderBR {BR} at (440,35) size 1x0
- RenderMenuList {SELECT} at (2,42) size 50x20 [bgcolor=#FFFFFF02] [border: (1px solid #4C4C4C)]
- RenderBlock (anonymous) at (6,3) size 38x14
- RenderText at (0,0) size 18x14
- text run at (0,0) width 18: "test"
- RenderText {#text} at (0,0) size 0x0
</del></span></pre></div>
<a id="trunkLayoutTestsplatformmacfastformsselectsizeexpectedpng"></a>
<div class="binary"><h4>Deleted: trunk/LayoutTests/platform/mac/fast/forms/select-size-expected.png</h4>
<pre class="diff"><span>
<span class="cx">(Binary files differ)
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacfastformsselectsizeexpectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/platform/mac/fast/forms/select-size-expected.txt (196892 => 196893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/fast/forms/select-size-expected.txt        2016-02-22 05:26:17 UTC (rev 196892)
+++ trunk/LayoutTests/platform/mac/fast/forms/select-size-expected.txt        2016-02-22 05:52:07 UTC (rev 196893)
</span><span class="lines">@@ -1,14 +0,0 @@
</span><del>-layer at (0,0) size 800x600
- RenderView at (0,0) size 800x600
-layer at (0,0) size 800x600
- RenderBlock {HTML} at (0,0) size 800x600
- RenderBody {BODY} at (8,8) size 784x584
- RenderText {#text} at (0,0) size 782x36
- text run at (0,0) width 782: "This tests that a malformed size attribute will be parsed and corrected so that the right size attribute value is used to match"
- text run at (0,18) width 441: "the style rule that determines whether to use a menu list or a list box."
- RenderBR {BR} at (440,32) size 1x0
- RenderMenuList {SELECT} at (2,38) size 51x18 [bgcolor=#FFFFFF]
- RenderBlock (anonymous) at (0,0) size 51x18
- RenderText at (8,2) size 20x13
- text run at (8,2) width 20: "test"
- RenderText {#text} at (0,0) size 0x0
</del></span></pre></div>
<a id="trunkLayoutTestsplatformwinfastformsselectsizeexpectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/platform/win/fast/forms/select-size-expected.txt (196892 => 196893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/win/fast/forms/select-size-expected.txt        2016-02-22 05:26:17 UTC (rev 196892)
+++ trunk/LayoutTests/platform/win/fast/forms/select-size-expected.txt        2016-02-22 05:52:07 UTC (rev 196893)
</span><span class="lines">@@ -1,14 +0,0 @@
</span><del>-layer at (0,0) size 800x600
- RenderView at (0,0) size 800x600
-layer at (0,0) size 800x600
- RenderBlock {HTML} at (0,0) size 800x600
- RenderBody {BODY} at (8,8) size 784x584
- RenderText {#text} at (0,0) size 783x36
- text run at (0,0) width 783: "This tests that a malformed size attribute will be parsed and corrected so that the right size attribute value is used to match the"
- text run at (0,18) width 406: "style rule that determines whether to use a menu list or a list box."
- RenderBR {BR} at (406,32) size 0x0
- RenderMenuList {SELECT} at (2,38) size 47x19 [bgcolor=#FFFFFF]
- RenderBlock (anonymous) at (4,2) size 22x15
- RenderText at (0,0) size 22x15
- text run at (0,0) width 22: "test"
- RenderText {#text} at (0,0) size 0x0
</del></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (196892 => 196893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-02-22 05:26:17 UTC (rev 196892)
+++ trunk/Source/WebCore/ChangeLog        2016-02-22 05:52:07 UTC (rev 196893)
</span><span class="lines">@@ -1,3 +1,47 @@
</span><ins>+2016-02-21 Chris Dumez <cdumez@apple.com>
+
+ Make HTMLSelectElement.size behave as per the specification
+ https://bugs.webkit.org/show_bug.cgi?id=154504
+
+ Reviewed by Darin Adler.
+
+ Make HTMLSelectElement.size behave as per the specification:
+ - https://html.spec.whatwg.org/#htmlselectelement
+ - https://html.spec.whatwg.org/#dom-select-size
+ - https://html.spec.whatwg.org/#reflecting-content-attributes-in-idl-attributes:idl-unsigned-long
+
+ In particular, it should be unsigned and be in the range [0; 2147483647].
+
+ Also update several unsigned long attributes in our HTML implementation to use
+ parseHTMLNonNegativeInteger() to parse unsigned integers as per the HTML
+ specification, instead of calling String::toUint().
+
+ No new tests, already covered by existing tests.
+
+ * html/HTMLInputElement.cpp:
+ (WebCore::HTMLInputElement::parseAttribute):
+ (WebCore::HTMLInputElement::size):
+ (WebCore::HTMLInputElement::setSize):
+ * html/HTMLInputElement.h:
+ * html/HTMLSelectElement.cpp:
+ (WebCore::HTMLSelectElement::parseAttribute):
+ (WebCore::HTMLSelectElement::setSize):
+ (WebCore::HTMLSelectElement::namedItem): Deleted.
+ (WebCore::HTMLSelectElement::item): Deleted.
+ * html/HTMLSelectElement.h:
+ (WebCore::HTMLSelectElement::size):
+ * html/HTMLSelectElement.idl:
+ * html/HTMLTableColElement.cpp:
+ (WebCore::HTMLTableColElement::parseAttribute):
+ (WebCore::HTMLTableColElement::setSpan):
+ * html/HTMLTextAreaElement.cpp:
+ (WebCore::HTMLTextAreaElement::parseAttribute):
+ (WebCore::HTMLTextAreaElement::setCols):
+ (WebCore::HTMLTextAreaElement::setRows):
+ * html/parser/HTMLParserIdioms.h:
+ (WebCore::limitToOnlyHTMLNonNegativeNumbersGreaterThanZero):
+ (WebCore::limitToOnlyHTMLNonNegative):
+
</ins><span class="cx"> 2016-02-21 Daniel Bates <dabates@apple.com>
</span><span class="cx">
</span><span class="cx"> CSP: Enable form-action directive by default
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLInputElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLInputElement.cpp (196892 => 196893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLInputElement.cpp        2016-02-22 05:26:17 UTC (rev 196892)
+++ trunk/Source/WebCore/html/HTMLInputElement.cpp        2016-02-22 05:52:07 UTC (rev 196893)
</span><span class="lines">@@ -684,8 +684,8 @@
</span><span class="cx"> } else if (name == maxlengthAttr)
</span><span class="cx"> parseMaxLengthAttribute(value);
</span><span class="cx"> else if (name == sizeAttr) {
</span><del>- int oldSize = m_size;
- m_size = limitToOnlyNonNegativeNumbersGreaterThanZero(value.string().toUInt(), defaultSize);
</del><ins>+ unsigned oldSize = m_size;
+ m_size = limitToOnlyHTMLNonNegativeNumbersGreaterThanZero(value, defaultSize);
</ins><span class="cx"> if (m_size != oldSize && renderer())
</span><span class="cx"> renderer()->setNeedsLayoutAndPrefWidthsRecalc();
</span><span class="cx"> } else if (name == altAttr)
</span><span class="lines">@@ -896,7 +896,7 @@
</span><span class="cx"> renderer()->theme().stateChanged(*renderer(), ControlStates::CheckedState);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-int HTMLInputElement::size() const
</del><ins>+unsigned HTMLInputElement::size() const
</ins><span class="cx"> {
</span><span class="cx"> return m_size;
</span><span class="cx"> }
</span><span class="lines">@@ -1274,7 +1274,7 @@
</span><span class="cx">
</span><span class="cx"> void HTMLInputElement::setSize(unsigned size)
</span><span class="cx"> {
</span><del>- setUnsignedIntegralAttribute(sizeAttr, limitToOnlyNonNegativeNumbersGreaterThanZero(size, defaultSize));
</del><ins>+ setUnsignedIntegralAttribute(sizeAttr, limitToOnlyHTMLNonNegativeNumbersGreaterThanZero(size, defaultSize));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void HTMLInputElement::setSize(unsigned size, ExceptionCode& ec)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLInputElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLInputElement.h (196892 => 196893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLInputElement.h        2016-02-22 05:26:17 UTC (rev 196892)
+++ trunk/Source/WebCore/html/HTMLInputElement.h        2016-02-22 05:52:07 UTC (rev 196893)
</span><span class="lines">@@ -161,7 +161,7 @@
</span><span class="cx"> bool shouldAppearChecked() const;
</span><span class="cx"> virtual bool shouldAppearIndeterminate() const override final;
</span><span class="cx">
</span><del>- int size() const;
</del><ins>+ unsigned size() const;
</ins><span class="cx"> bool sizeShouldIncludeDecoration(int& preferredSize) const;
</span><span class="cx"> float decorationWidth() const;
</span><span class="cx">
</span><span class="lines">@@ -421,7 +421,7 @@
</span><span class="cx">
</span><span class="cx"> AtomicString m_name;
</span><span class="cx"> String m_valueIfDirty;
</span><del>- int m_size;
</del><ins>+ unsigned m_size;
</ins><span class="cx"> int m_maxLength;
</span><span class="cx"> short m_maxResults;
</span><span class="cx"> bool m_isChecked : 1;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLSelectElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLSelectElement.cpp (196892 => 196893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLSelectElement.cpp        2016-02-22 05:26:17 UTC (rev 196892)
+++ trunk/Source/WebCore/html/HTMLSelectElement.cpp        2016-02-22 05:52:07 UTC (rev 196893)
</span><span class="lines">@@ -44,6 +44,7 @@
</span><span class="cx"> #include "HTMLOptGroupElement.h"
</span><span class="cx"> #include "HTMLOptionElement.h"
</span><span class="cx"> #include "HTMLOptionsCollection.h"
</span><ins>+#include "HTMLParserIdioms.h"
</ins><span class="cx"> #include "KeyboardEvent.h"
</span><span class="cx"> #include "LocalizedStrings.h"
</span><span class="cx"> #include "MouseEvent.h"
</span><span class="lines">@@ -302,17 +303,8 @@
</span><span class="cx"> void HTMLSelectElement::parseAttribute(const QualifiedName& name, const AtomicString& value)
</span><span class="cx"> {
</span><span class="cx"> if (name == sizeAttr) {
</span><del>- int oldSize = m_size;
- // Set the attribute value to a number.
- // This is important since the style rules for this attribute can determine the appearance property.
- int size = value.toInt();
- AtomicString attrSize = AtomicString::number(size);
- if (attrSize != value) {
- // FIXME: This is horribly factored.
- if (Attribute* sizeAttribute = ensureUniqueElementData().findAttributeByName(sizeAttr))
- sizeAttribute->setValue(attrSize);
- }
- size = std::max(size, 0);
</del><ins>+ unsigned oldSize = m_size;
+ unsigned size = limitToOnlyHTMLNonNegative(value);
</ins><span class="cx">
</span><span class="cx"> // Ensure that we've determined selectedness of the items at least once prior to changing the size.
</span><span class="cx"> if (oldSize != size)
</span><span class="lines">@@ -428,9 +420,9 @@
</span><span class="cx"> setSelectedIndex(oldSelectedIndex);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void HTMLSelectElement::setSize(int size)
</del><ins>+void HTMLSelectElement::setSize(unsigned size)
</ins><span class="cx"> {
</span><del>- setIntegralAttribute(sizeAttr, size);
</del><ins>+ setUnsignedIntegralAttribute(sizeAttr, limitToOnlyHTMLNonNegative(size));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> HTMLOptionElement* HTMLSelectElement::namedItem(const AtomicString& name)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLSelectElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLSelectElement.h (196892 => 196893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLSelectElement.h        2016-02-22 05:26:17 UTC (rev 196892)
+++ trunk/Source/WebCore/html/HTMLSelectElement.h        2016-02-22 05:52:07 UTC (rev 196893)
</span><span class="lines">@@ -51,7 +51,7 @@
</span><span class="cx">
</span><span class="cx"> unsigned length() const;
</span><span class="cx">
</span><del>- int size() const { return m_size; }
</del><ins>+ unsigned size() const { return m_size; }
</ins><span class="cx"> bool multiple() const { return m_multiple; }
</span><span class="cx">
</span><span class="cx"> bool usesMenuList() const;
</span><span class="lines">@@ -83,7 +83,7 @@
</span><span class="cx">
</span><span class="cx"> void setMultiple(bool);
</span><span class="cx">
</span><del>- void setSize(int);
</del><ins>+ void setSize(unsigned);
</ins><span class="cx">
</span><span class="cx"> void setOption(unsigned index, HTMLOptionElement*, ExceptionCode&);
</span><span class="cx"> void setLength(unsigned, ExceptionCode&);
</span><span class="lines">@@ -204,7 +204,7 @@
</span><span class="cx"> Vector<bool> m_lastOnChangeSelection;
</span><span class="cx"> Vector<bool> m_cachedStateForActiveSelection;
</span><span class="cx"> TypeAhead m_typeAhead;
</span><del>- int m_size;
</del><ins>+ unsigned m_size;
</ins><span class="cx"> int m_lastOnChangeIndex;
</span><span class="cx"> int m_activeSelectionAnchorIndex;
</span><span class="cx"> int m_activeSelectionEndIndex;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLSelectElementidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLSelectElement.idl (196892 => 196893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLSelectElement.idl        2016-02-22 05:26:17 UTC (rev 196892)
+++ trunk/Source/WebCore/html/HTMLSelectElement.idl        2016-02-22 05:52:07 UTC (rev 196893)
</span><span class="lines">@@ -27,7 +27,12 @@
</span><span class="cx"> attribute boolean multiple;
</span><span class="cx"> [Reflect] attribute DOMString name;
</span><span class="cx"> [Reflect] attribute boolean required;
</span><ins>+
+#if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C || defined(LANGUAGE_GOBJECT) && LANGUAGE_GOBJECT
</ins><span class="cx"> attribute long size;
</span><ins>+#else
+ attribute unsigned long size;
+#endif
</ins><span class="cx">
</span><span class="cx"> readonly attribute DOMString type;
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLTableColElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLTableColElement.cpp (196892 => 196893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLTableColElement.cpp        2016-02-22 05:26:17 UTC (rev 196892)
+++ trunk/Source/WebCore/html/HTMLTableColElement.cpp        2016-02-22 05:52:07 UTC (rev 196893)
</span><span class="lines">@@ -65,7 +65,7 @@
</span><span class="cx"> void HTMLTableColElement::parseAttribute(const QualifiedName& name, const AtomicString& value)
</span><span class="cx"> {
</span><span class="cx"> if (name == spanAttr) {
</span><del>- m_span = limitToOnlyNonNegativeNumbersGreaterThanZero(value.string().toUInt());
</del><ins>+ m_span = limitToOnlyHTMLNonNegativeNumbersGreaterThanZero(value);
</ins><span class="cx"> if (is<RenderTableCol>(renderer()))
</span><span class="cx"> downcast<RenderTableCol>(*renderer()).updateFromElement();
</span><span class="cx"> } else if (name == widthAttr) {
</span><span class="lines">@@ -92,7 +92,7 @@
</span><span class="cx">
</span><span class="cx"> void HTMLTableColElement::setSpan(unsigned n)
</span><span class="cx"> {
</span><del>- setUnsignedIntegralAttribute(spanAttr, limitToOnlyNonNegativeNumbersGreaterThanZero(n));
</del><ins>+ setUnsignedIntegralAttribute(spanAttr, limitToOnlyHTMLNonNegativeNumbersGreaterThanZero(n));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> String HTMLTableColElement::width() const
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLTextAreaElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLTextAreaElement.cpp (196892 => 196893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLTextAreaElement.cpp        2016-02-22 05:26:17 UTC (rev 196892)
+++ trunk/Source/WebCore/html/HTMLTextAreaElement.cpp        2016-02-22 05:52:07 UTC (rev 196893)
</span><span class="lines">@@ -170,14 +170,14 @@
</span><span class="cx"> void HTMLTextAreaElement::parseAttribute(const QualifiedName& name, const AtomicString& value)
</span><span class="cx"> {
</span><span class="cx"> if (name == rowsAttr) {
</span><del>- unsigned rows = limitToOnlyNonNegativeNumbersGreaterThanZero(value.string().toUInt(), defaultRows);
</del><ins>+ unsigned rows = limitToOnlyHTMLNonNegativeNumbersGreaterThanZero(value, defaultRows);
</ins><span class="cx"> if (m_rows != rows) {
</span><span class="cx"> m_rows = rows;
</span><span class="cx"> if (renderer())
</span><span class="cx"> renderer()->setNeedsLayoutAndPrefWidthsRecalc();
</span><span class="cx"> }
</span><span class="cx"> } else if (name == colsAttr) {
</span><del>- unsigned cols = limitToOnlyNonNegativeNumbersGreaterThanZero(value.string().toUInt(), defaultCols);
</del><ins>+ unsigned cols = limitToOnlyHTMLNonNegativeNumbersGreaterThanZero(value, defaultCols);
</ins><span class="cx"> if (m_cols != cols) {
</span><span class="cx"> m_cols = cols;
</span><span class="cx"> if (renderer())
</span><span class="lines">@@ -491,12 +491,12 @@
</span><span class="cx">
</span><span class="cx"> void HTMLTextAreaElement::setCols(unsigned cols)
</span><span class="cx"> {
</span><del>- setUnsignedIntegralAttribute(colsAttr, limitToOnlyNonNegativeNumbersGreaterThanZero(cols, defaultCols));
</del><ins>+ setUnsignedIntegralAttribute(colsAttr, limitToOnlyHTMLNonNegativeNumbersGreaterThanZero(cols, defaultCols));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void HTMLTextAreaElement::setRows(unsigned rows)
</span><span class="cx"> {
</span><del>- setUnsignedIntegralAttribute(rowsAttr, limitToOnlyNonNegativeNumbersGreaterThanZero(rows, defaultRows));
</del><ins>+ setUnsignedIntegralAttribute(rowsAttr, limitToOnlyHTMLNonNegativeNumbersGreaterThanZero(rows, defaultRows));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool HTMLTextAreaElement::shouldUseInputMethod()
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlparserHTMLParserIdiomsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/parser/HTMLParserIdioms.h (196892 => 196893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/parser/HTMLParserIdioms.h        2016-02-22 05:26:17 UTC (rev 196892)
+++ trunk/Source/WebCore/html/parser/HTMLParserIdioms.h        2016-02-22 05:52:07 UTC (rev 196893)
</span><span class="lines">@@ -107,11 +107,31 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> // https://html.spec.whatwg.org/multipage/infrastructure.html#limited-to-only-non-negative-numbers-greater-than-zero
</span><del>-inline unsigned limitToOnlyNonNegativeNumbersGreaterThanZero(unsigned value, unsigned defaultValue = 1)
</del><ins>+inline unsigned limitToOnlyHTMLNonNegativeNumbersGreaterThanZero(unsigned value, unsigned defaultValue = 1)
</ins><span class="cx"> {
</span><span class="cx"> return (value > 0 && value <= 2147483647) ? value : defaultValue;
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+inline unsigned limitToOnlyHTMLNonNegativeNumbersGreaterThanZero(const String& stringValue, unsigned defaultValue = 1)
+{
+ unsigned value = defaultValue;
+ parseHTMLNonNegativeInteger(stringValue, value);
+ return limitToOnlyHTMLNonNegativeNumbersGreaterThanZero(value, defaultValue);
</ins><span class="cx"> }
</span><span class="cx">
</span><ins>+// https://html.spec.whatwg.org/#reflecting-content-attributes-in-idl-attributes:idl-unsigned-long
+inline unsigned limitToOnlyHTMLNonNegative(unsigned value, unsigned defaultValue = 0)
+{
+ return value <= 2147483647 ? value : defaultValue;
+}
+
+inline unsigned limitToOnlyHTMLNonNegative(const String& stringValue, unsigned defaultValue = 0)
+{
+ unsigned value = defaultValue;
+ parseHTMLNonNegativeInteger(stringValue, value);
+ return limitToOnlyHTMLNonNegative(value, defaultValue);
+}
+
+}
+
</ins><span class="cx"> #endif
</span></span></pre>
</div>
</div>
</body>
</html>