Use HTML parsing rules for textarea.maxLength
authorcdumez@apple.com <cdumez@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 29 Feb 2016 17:36:51 +0000 (17:36 +0000)
committercdumez@apple.com <cdumez@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 29 Feb 2016 17:36:51 +0000 (17:36 +0000)
https://bugs.webkit.org/show_bug.cgi?id=154805

Reviewed by Andreas Kling.

LayoutTests/imported/w3c:

Rebaseline now that more checks are passing.

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

Source/WebCore:

Use HTML parsing rules for textarea.maxLength:
- https://html.spec.whatwg.org/multipage/forms.html#dom-textarea-maxlength
- https://html.spec.whatwg.org/multipage/infrastructure.html#limited-to-only-non-negative-numbers

No new tests, already covered by existing test.

* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::maxLength):

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

LayoutTests/imported/w3c/ChangeLog
LayoutTests/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt
Source/WebCore/ChangeLog
Source/WebCore/html/HTMLTextAreaElement.cpp

index 5b98d47..d7fb4e5 100644 (file)
@@ -1,5 +1,16 @@
 2016-02-29  Chris Dumez  <cdumez@apple.com>
 
+        Use HTML parsing rules for textarea.maxLength
+        https://bugs.webkit.org/show_bug.cgi?id=154805
+
+        Reviewed by Andreas Kling.
+
+        Rebaseline now that more checks are passing.
+
+        * web-platform-tests/html/dom/reflection-forms-expected.txt:
+
+2016-02-29  Chris Dumez  <cdumez@apple.com>
+
         Align td.rowSpan / td.colSpan with the specification
         https://bugs.webkit.org/show_bug.cgi?id=154803
 
index b0e6c69..fc45a75 100644 (file)
@@ -15175,7 +15175,7 @@ PASS textarea.maxLength: setAttribute() to " \0\x01\x02\x03\x04\x05\x06\x07 \b\t
 PASS textarea.maxLength: setAttribute() to "\t7" followed by getAttribute() 
 PASS textarea.maxLength: setAttribute() to "\t7" followed by IDL get 
 PASS textarea.maxLength: setAttribute() to "\v7" followed by getAttribute() 
-FAIL textarea.maxLength: setAttribute() to "\v7" followed by IDL get assert_equals: expected -1 but got 7
+PASS textarea.maxLength: setAttribute() to "\v7" followed by IDL get 
 PASS textarea.maxLength: setAttribute() to "\f7" followed by getAttribute() 
 PASS textarea.maxLength: setAttribute() to "\f7" followed by IDL get 
 PASS textarea.maxLength: setAttribute() to " 7" followed by getAttribute() 
@@ -15189,39 +15189,39 @@ PASS textarea.maxLength: setAttribute() to "\n7" followed by IDL get
 PASS textarea.maxLength: setAttribute() to "\r7" followed by getAttribute() 
 PASS textarea.maxLength: setAttribute() to "\r7" followed by IDL get 
 PASS textarea.maxLength: setAttribute() to "
7" followed by getAttribute() 
-FAIL textarea.maxLength: setAttribute() to "
7" followed by IDL get assert_equals: expected -1 but got 7
+PASS textarea.maxLength: setAttribute() to "
7" followed by IDL get 
 PASS textarea.maxLength: setAttribute() to "
7" followed by getAttribute() 
 PASS textarea.maxLength: setAttribute() to "
7" followed by IDL get 
 PASS textarea.maxLength: setAttribute() to " 7" followed by getAttribute() 
-FAIL textarea.maxLength: setAttribute() to " 7" followed by IDL get assert_equals: expected -1 but got 7
+PASS textarea.maxLength: setAttribute() to " 7" followed by IDL get 
 PASS textarea.maxLength: setAttribute() to "᠎7" followed by getAttribute() 
 PASS textarea.maxLength: setAttribute() to "᠎7" followed by IDL get 
 PASS textarea.maxLength: setAttribute() to " 7" followed by getAttribute() 
-FAIL textarea.maxLength: setAttribute() to " 7" followed by IDL get assert_equals: expected -1 but got 7
+PASS textarea.maxLength: setAttribute() to " 7" followed by IDL get 
 PASS textarea.maxLength: setAttribute() to " 7" followed by getAttribute() 
-FAIL textarea.maxLength: setAttribute() to " 7" followed by IDL get assert_equals: expected -1 but got 7
+PASS textarea.maxLength: setAttribute() to " 7" followed by IDL get 
 PASS textarea.maxLength: setAttribute() to " 7" followed by getAttribute() 
-FAIL textarea.maxLength: setAttribute() to " 7" followed by IDL get assert_equals: expected -1 but got 7
+PASS textarea.maxLength: setAttribute() to " 7" followed by IDL get 
 PASS textarea.maxLength: setAttribute() to " 7" followed by getAttribute() 
-FAIL textarea.maxLength: setAttribute() to " 7" followed by IDL get assert_equals: expected -1 but got 7
+PASS textarea.maxLength: setAttribute() to " 7" followed by IDL get 
 PASS textarea.maxLength: setAttribute() to " 7" followed by getAttribute() 
-FAIL textarea.maxLength: setAttribute() to " 7" followed by IDL get assert_equals: expected -1 but got 7
+PASS textarea.maxLength: setAttribute() to " 7" followed by IDL get 
 PASS textarea.maxLength: setAttribute() to " 7" followed by getAttribute() 
-FAIL textarea.maxLength: setAttribute() to " 7" followed by IDL get assert_equals: expected -1 but got 7
+PASS textarea.maxLength: setAttribute() to " 7" followed by IDL get 
 PASS textarea.maxLength: setAttribute() to " 7" followed by getAttribute() 
-FAIL textarea.maxLength: setAttribute() to " 7" followed by IDL get assert_equals: expected -1 but got 7
+PASS textarea.maxLength: setAttribute() to " 7" followed by IDL get 
 PASS textarea.maxLength: setAttribute() to " 7" followed by getAttribute() 
-FAIL textarea.maxLength: setAttribute() to " 7" followed by IDL get assert_equals: expected -1 but got 7
+PASS textarea.maxLength: setAttribute() to " 7" followed by IDL get 
 PASS textarea.maxLength: setAttribute() to " 7" followed by getAttribute() 
-FAIL textarea.maxLength: setAttribute() to " 7" followed by IDL get assert_equals: expected -1 but got 7
+PASS textarea.maxLength: setAttribute() to " 7" followed by IDL get 
 PASS textarea.maxLength: setAttribute() to " 7" followed by getAttribute() 
-FAIL textarea.maxLength: setAttribute() to " 7" followed by IDL get assert_equals: expected -1 but got 7
+PASS textarea.maxLength: setAttribute() to " 7" followed by IDL get 
 PASS textarea.maxLength: setAttribute() to " 7" followed by getAttribute() 
-FAIL textarea.maxLength: setAttribute() to " 7" followed by IDL get assert_equals: expected -1 but got 7
+PASS textarea.maxLength: setAttribute() to " 7" followed by IDL get 
 PASS textarea.maxLength: setAttribute() to " 7" followed by getAttribute() 
 PASS textarea.maxLength: setAttribute() to " 7" followed by IDL get 
 PASS textarea.maxLength: setAttribute() to " 7" followed by getAttribute() 
-FAIL textarea.maxLength: setAttribute() to " 7" followed by IDL get assert_equals: expected -1 but got 7
+PASS textarea.maxLength: setAttribute() to " 7" followed by IDL get 
 PASS textarea.maxLength: setAttribute() to undefined followed by getAttribute() 
 PASS textarea.maxLength: setAttribute() to undefined followed by IDL get 
 PASS textarea.maxLength: setAttribute() to 1.5 followed by getAttribute() 
index f01fe08..bd69987 100644 (file)
@@ -1,5 +1,21 @@
 2016-02-29  Chris Dumez  <cdumez@apple.com>
 
+        Use HTML parsing rules for textarea.maxLength
+        https://bugs.webkit.org/show_bug.cgi?id=154805
+
+        Reviewed by Andreas Kling.
+
+        Use HTML parsing rules for textarea.maxLength:
+        - https://html.spec.whatwg.org/multipage/forms.html#dom-textarea-maxlength
+        - https://html.spec.whatwg.org/multipage/infrastructure.html#limited-to-only-non-negative-numbers
+
+        No new tests, already covered by existing test.
+
+        * html/HTMLTextAreaElement.cpp:
+        (WebCore::HTMLTextAreaElement::maxLength):
+
+2016-02-29  Chris Dumez  <cdumez@apple.com>
+
         Align td.rowSpan / td.colSpan with the specification
         https://bugs.webkit.org/show_bug.cgi?id=154803
 
index ca0dfdb..24d6f29 100644 (file)
@@ -423,9 +423,10 @@ void HTMLTextAreaElement::setDefaultValue(const String& defaultValue)
 
 int HTMLTextAreaElement::maxLength() const
 {
-    bool ok;
-    int value = fastGetAttribute(maxlengthAttr).string().toInt(&ok);
-    return ok && value >= 0 ? value : -1;
+    unsigned result;
+    if (parseHTMLNonNegativeInteger(fastGetAttribute(maxlengthAttr), result))
+        return result;
+    return -1;
 }
 
 void HTMLTextAreaElement::setMaxLength(int newValue, ExceptionCode& ec)