[SCM] WebKit Debian packaging branch, webkit-1.2, updated. upstream/1.1.90-6072-g9a69373

eric at webkit.org eric at webkit.org
Thu Apr 8 00:24:32 UTC 2010


The following commit has been merged in the webkit-1.2 branch:
commit 6256a99544610e5f19e02b01fcf091e4cc630a30
Author: eric at webkit.org <eric at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Mon Dec 7 22:50:15 2009 +0000

    2009-12-07  Kent Tamura  <tkent at chromium.org>
    
            Reviewed by Darin Adler.
    
            Some changes to ValidityState-typeMismatch-url.html.
            https://bugs.webkit.org/show_bug.cgi?id=29913
    
            - Add more test cases
              Username, IPv6 address, mailto:, file:, tel:, fragment, and IDN.
            - Handle difference between KURL and KURLGoogle
    
            * fast/forms/ValidityState-typeMismatch-url-expected.txt:
            * fast/forms/script-tests/ValidityState-typeMismatch-url.js:
    2009-12-07  Kent Tamura  <tkent at chromium.org>
    
            Reviewed by Darin Adler.
    
            Fix a bug that KURL rejects a host name which has an IPv4 address
            inside an IPv6 form like [::127.0.0.1].
            https://bugs.webkit.org/show_bug.cgi?id=29913
    
            * platform/KURL.cpp:
            (WebCore::characterClassTable): Add IPv6Char to '.'.
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51799 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index c9734b9..e0e48df 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,17 @@
+2009-12-07  Kent Tamura  <tkent at chromium.org>
+
+        Reviewed by Darin Adler.
+
+        Some changes to ValidityState-typeMismatch-url.html.
+        https://bugs.webkit.org/show_bug.cgi?id=29913
+
+        - Add more test cases
+          Username, IPv6 address, mailto:, file:, tel:, fragment, and IDN.
+        - Handle difference between KURL and KURLGoogle
+
+        * fast/forms/ValidityState-typeMismatch-url-expected.txt:
+        * fast/forms/script-tests/ValidityState-typeMismatch-url.js:
+
 2009-12-07  Darin Fisher  <darin at chromium.org>
 
         Reviewed by Darin Adler.
diff --git a/LayoutTests/fast/forms/ValidityState-typeMismatch-url-expected.txt b/LayoutTests/fast/forms/ValidityState-typeMismatch-url-expected.txt
index e27c6c2..56fde01 100644
--- a/LayoutTests/fast/forms/ValidityState-typeMismatch-url-expected.txt
+++ b/LayoutTests/fast/forms/ValidityState-typeMismatch-url-expected.txt
@@ -4,28 +4,42 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 
 PASS http://www.google.com is a correct valid url.
+PASS http://foo:bar@www.google.com:80 is a correct valid url.
 PASS http://localhost is a correct valid url.
 PASS http://127.0.0.1 is a correct valid url.
+PASS http://[0000:0000:0000:0000:0000:0000:7f00:0001]/ is a correct valid url.
+PASS http://[0000:0000:0000:0000:0000:0000:127.0.0.1]/ is a correct valid url.
+PASS http://[::7f00:0001]/ is a correct valid url.
+PASS http://[1::2:3]/ is a correct valid url.
+PASS http://[0000:0::ffff:10.0.0.1]/ is a correct valid url.
 PASS http://a is a correct valid url.
 PASS http://www.google.com/search?rls=en&q=WebKit&ie=UTF-8&oe=UTF-8 is a correct valid url.
 PASS ftp://ftp.myhost.com is a correct valid url.
 PASS ssh://ssh.myhost.com is a correct valid url.
+PASS mailto:tkent at chromium.org is a correct valid url.
+PASS mailto:tkent at chromium.org?body=hello is a correct valid url.
+PASS file:///Users/tkent/.zshrc is a correct valid url.
+PASS file:///C:/human.sys is a correct valid url.
+PASS tel:+1-800-12345;ext=9999 is a correct valid url.
+PASS tel:03(1234)5678 is a correct valid url.
 PASS somescheme://ssh.myhost.com is a correct valid url.
 PASS http://a/\/''*<>/ is a correct valid url.
 PASS http://a/dfs/kds@sds is a correct valid url.
 PASS http://a.a:1/search?a&b is a correct valid url.
+PASS http://www.google.com/#top is a correct valid url.
+PASS http://テスト。jp/パス?名前=値 is a correct valid url.
 PASS www.google.com is a correct invalid url.
 PASS 127.0.0.1 is a correct invalid url.
 PASS .com is a correct invalid url.
-PASS http://www.g**gle.com is a correct invalid url.
 PASS http://www.google.com:aaaa is a correct invalid url.
-PASS http:// www.google.com is a correct invalid url.
-PASS http://www .google.com is a correct invalid url.
-PASS http://www.&#10;google.&#13;com is a correct invalid url.
 PASS :// is a correct invalid url.
 PASS /http://www.google.com is a correct invalid url.
 PASS ----ftp://a is a correct invalid url.
 PASS scheme//a is a correct invalid url.
+PASS http://[v8.:::]/ is a correct invalid url.
+PASS http:// www.google.com is a correct invalid url.
+PASS http://www .google.com is a correct invalid url.
+PASS http://www.&#10;google.&#13;com is a correct invalid url.
 PASS http://host+ is a correct invalid url.
 PASS http://myurl! is a correct invalid url.
 PASS successfullyParsed is true
diff --git a/LayoutTests/fast/forms/script-tests/ValidityState-typeMismatch-url.js b/LayoutTests/fast/forms/script-tests/ValidityState-typeMismatch-url.js
index 2efd2b6..040cd4f 100644
--- a/LayoutTests/fast/forms/script-tests/ValidityState-typeMismatch-url.js
+++ b/LayoutTests/fast/forms/script-tests/ValidityState-typeMismatch-url.js
@@ -11,36 +11,70 @@ function check(value, mismatchExpected) {
         testFailed(resultText);
 }
 
+function expectValid(value) {
+    check(value, false);
+}
+
+function expectInvalid(value) {
+    check(value, true);
+}
+
 var i = document.createElement('input');
 i.type = 'url';
 
 // Valid values
-check('http://www.google.com', false);
-check('http://localhost', false);
-check('http://127.0.0.1', false);
-check('http://a', false);
-check('http://www.google.com/search?rls=en&q=WebKit&ie=UTF-8&oe=UTF-8', false);
-check('ftp://ftp.myhost.com', false);
-check('ssh://ssh.myhost.com', false);
-check('somescheme://ssh.myhost.com', false);
-check('http://a/\\\/\'\'*<>/', false);
-check('http://a/dfs/\kds@sds', false);
-check('http://a.a:1/search?a&b', false);
+expectValid('http://www.google.com');
+expectValid('http://foo:bar@www.google.com:80');
+expectValid('http://localhost');
+expectValid('http://127.0.0.1');
+expectValid('http://[0000:0000:0000:0000:0000:0000:7f00:0001]/');
+expectValid('http://[0000:0000:0000:0000:0000:0000:127.0.0.1]/');
+expectValid('http://[::7f00:0001]/');
+expectValid('http://[1::2:3]/');
+expectValid('http://[0000:0::ffff:10.0.0.1]/');
+expectValid('http://a');
+expectValid('http://www.google.com/search?rls=en&q=WebKit&ie=UTF-8&oe=UTF-8');
+expectValid('ftp://ftp.myhost.com');
+expectValid('ssh://ssh.myhost.com');
+expectValid('mailto:tkent at chromium.org');
+expectValid('mailto:tkent at chromium.org?body=hello');
+expectValid('file:///Users/tkent/.zshrc');
+expectValid('file:///C:/human.sys');
+expectValid('tel:+1-800-12345;ext=9999');
+expectValid('tel:03(1234)5678');
+expectValid('somescheme://ssh.myhost.com');
+expectValid('http://a/\\\/\'\'*<>/');
+expectValid('http://a/dfs/\kds@sds');
+expectValid('http://a.a:1/search?a&b');
+expectValid('http://www.google.com/#top');
+expectValid('http://\u30C6\u30B9\u30C8\u3002jp/\u30D1\u30B9?\u540D\u524D=\u5024');
 
 // Invalid values
-check('www.google.com', true);
-check('127.0.0.1', true);
-check('.com', true);
-check('http://www.g**gle.com', true);
-check('http://www.google.com:aaaa', true);
-check('http:// www.google.com', true);
-check('http://www .google.com', true);
-check('http://www.&#10;google.&#13;com', true);
-check('://', true);
-check('/http://www.google.com', true);
-check('----ftp://a', true);
-check('scheme//a', true);
-check('http://host+', true);
-check('http://myurl!', true);
+expectInvalid('www.google.com');
+expectInvalid('127.0.0.1');
+expectInvalid('.com');
+expectInvalid('http://www.google.com:aaaa');
+expectInvalid('://');
+expectInvalid('/http://www.google.com');
+expectInvalid('----ftp://a');
+expectInvalid('scheme//a');
+expectInvalid('http://[v8.:::]/');
+
+// KURL's host name restriction is stricter than RFC 3986. KURLGoogle is not.
+i.value = 'http://www.g**gle.com'
+var strictHost = i.validity.typeMismatch;
+if (strictHost) {
+    expectInvalid('http:// www.google.com');
+    expectInvalid('http://www .google.com');
+    expectInvalid('http://www.&#10;google.&#13;com');
+    expectInvalid('http://host+');
+    expectInvalid('http://myurl!');
+} else {
+    expectValid('http:// www.google.com');
+    expectValid('http://www .google.com');
+    expectValid('http://www.&#10;google.&#13;com');
+    expectValid('http://host+');
+    expectValid('http://myurl!');
+}
 
 var successfullyParsed = true;
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index b5cb2c9..b42b1c2 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,14 @@
+2009-12-07  Kent Tamura  <tkent at chromium.org>
+
+        Reviewed by Darin Adler.
+
+        Fix a bug that KURL rejects a host name which has an IPv4 address
+        inside an IPv6 form like [::127.0.0.1].
+        https://bugs.webkit.org/show_bug.cgi?id=29913
+
+        * platform/KURL.cpp:
+        (WebCore::characterClassTable): Add IPv6Char to '.'.
+
 2009-12-07  Brady Eidson  <beidson at apple.com>
 
         Reviewed by Sam Weinig.
diff --git a/WebCore/platform/KURL.cpp b/WebCore/platform/KURL.cpp
index 12e34bd..a8f7969 100644
--- a/WebCore/platform/KURL.cpp
+++ b/WebCore/platform/KURL.cpp
@@ -102,7 +102,7 @@ static const unsigned char characterClassTable[256] = {
     /* 42  * */ UserInfoChar,    /* 43  + */ SchemeChar | UserInfoChar,
     /* 44  , */ UserInfoChar,
     /* 45  - */ SchemeChar | UserInfoChar | HostnameChar,
-    /* 46  . */ SchemeChar | UserInfoChar | HostnameChar,
+    /* 46  . */ SchemeChar | UserInfoChar | HostnameChar | IPv6Char,
     /* 47  / */ PathSegmentEndChar,
     /* 48  0 */ SchemeChar | UserInfoChar | HostnameChar | IPv6Char, 
     /* 49  1 */ SchemeChar | UserInfoChar | HostnameChar | IPv6Char,    

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list