Log Message
URLParser should match old URL::parse with %2E in path https://bugs.webkit.org/show_bug.cgi?id=163929
Reviewed by Alexey Proskuryakov. LayoutTests/imported/w3c: * web-platform-tests/url/a-element-expected.txt: * web-platform-tests/url/a-element-xhtml-expected.txt: * web-platform-tests/url/url-constructor-expected.txt: Source/WebCore: Covered by updated API tests, which show that URLParser now matches URL::parse in these cases. Also covered by newly failing web platform tests, which were failing before URLParser was enabled. If https://github.com/whatwg/url/issues/87 is resolved we can change behavior to match. * platform/URLParser.cpp: (WebCore::URLParser::isSingleDotPathSegment): (WebCore::URLParser::isDoubleDotPathSegment): (WebCore::URLParser::consumeSingleDotPathSegment): (WebCore::URLParser::consumeDoubleDotPathSegment): (WebCore::URLParser::parse): (WebCore::URLParser::isPercentEncodedDot): Deleted. Tools: * TestWebKitAPI/Tests/WebCore/URLParser.cpp: (TestWebKitAPI::TEST_F): LayoutTests: * fast/url/path-expected.txt: * fast/url/standard-url-expected.txt:
Modified Paths
- trunk/LayoutTests/ChangeLog
- trunk/LayoutTests/fast/url/path-expected.txt
- trunk/LayoutTests/fast/url/standard-url-expected.txt
- trunk/LayoutTests/imported/w3c/ChangeLog
- trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-expected.txt
- trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-xhtml-expected.txt
- trunk/LayoutTests/imported/w3c/web-platform-tests/url/url-constructor-expected.txt
- trunk/Source/WebCore/ChangeLog
- trunk/Source/WebCore/platform/URLParser.cpp
- trunk/Tools/ChangeLog
- trunk/Tools/TestWebKitAPI/Tests/WebCore/URLParser.cpp
Diff
Modified: trunk/LayoutTests/ChangeLog (207804 => 207805)
--- trunk/LayoutTests/ChangeLog 2016-10-25 04:19:09 UTC (rev 207804)
+++ trunk/LayoutTests/ChangeLog 2016-10-25 04:40:23 UTC (rev 207805)
@@ -1,3 +1,13 @@
+2016-10-24 Alex Christensen <achristen...@webkit.org>
+
+ URLParser should match old URL::parse with %2E in path
+ https://bugs.webkit.org/show_bug.cgi?id=163929
+
+ Reviewed by Alexey Proskuryakov.
+
+ * fast/url/path-expected.txt:
+ * fast/url/standard-url-expected.txt:
+
2016-10-24 Zalan Bujtas <za...@apple.com>
Do not update selection rect on dirty lineboxes.
Modified: trunk/LayoutTests/fast/url/path-expected.txt (207804 => 207805)
--- trunk/LayoutTests/fast/url/path-expected.txt 2016-10-25 04:19:09 UTC (rev 207804)
+++ trunk/LayoutTests/fast/url/path-expected.txt 2016-10-25 04:40:23 UTC (rev 207805)
@@ -14,9 +14,9 @@
PASS canonicalize('http://example.com/foo/bar/../ton/../../a') is 'http://example.com/a'
PASS canonicalize('http://example.com/foo/../../..') is 'http://example.com/'
PASS canonicalize('http://example.com/foo/../../../ton') is 'http://example.com/ton'
-PASS canonicalize('http://example.com/foo/%2e') is 'http://example.com/foo/'
-PASS canonicalize('http://example.com/foo/%2e%2') is 'http://example.com/foo/.%2'
-PASS canonicalize('http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar') is 'http://example.com/..bar'
+FAIL canonicalize('http://example.com/foo/%2e') should be http://example.com/foo/. Was http://example.com/foo/%2e.
+FAIL canonicalize('http://example.com/foo/%2e%2') should be http://example.com/foo/.%2. Was http://example.com/foo/%2e%2.
+FAIL canonicalize('http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar') should be http://example.com/..bar. Was http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar.
PASS canonicalize('http://example.com////../..') is 'http://example.com//'
PASS canonicalize('http://example.com/foo/bar//../..') is 'http://example.com/foo/'
PASS canonicalize('http://example.com/foo/bar//..') is 'http://example.com/foo/bar/'
Modified: trunk/LayoutTests/fast/url/standard-url-expected.txt (207804 => 207805)
--- trunk/LayoutTests/fast/url/standard-url-expected.txt 2016-10-25 04:19:09 UTC (rev 207804)
+++ trunk/LayoutTests/fast/url/standard-url-expected.txt 2016-10-25 04:40:23 UTC (rev 207805)
@@ -9,7 +9,7 @@
PASS canonicalize('http://www.google.com') is 'http://www.google.com/'
PASS canonicalize('http:////////user:@google.com:99?foo') is 'http://u...@google.com:99/?foo'
PASS canonicalize('http://192.0x00A80001') is 'http://192.168.0.1/'
-PASS canonicalize('http://www/foo%2Ehtml') is 'http://www/foo.html'
+FAIL canonicalize('http://www/foo%2Ehtml') should be http://www/foo.html. Was http://www/foo%2Ehtml.
PASS canonicalize('http://user:pass@/') is 'http://user:pass@/'
PASS canonicalize('http://%25DOMAIN:foo...@foodomain.com/') is 'http://%25DOMAIN:foo...@foodomain.com/'
PASS canonicalize('http:\\\\www.google.com\\foo') is 'http://www.google.com/foo'
Modified: trunk/LayoutTests/imported/w3c/ChangeLog (207804 => 207805)
--- trunk/LayoutTests/imported/w3c/ChangeLog 2016-10-25 04:19:09 UTC (rev 207804)
+++ trunk/LayoutTests/imported/w3c/ChangeLog 2016-10-25 04:40:23 UTC (rev 207805)
@@ -1,3 +1,14 @@
+2016-10-24 Alex Christensen <achristen...@webkit.org>
+
+ URLParser should match old URL::parse with %2E in path
+ https://bugs.webkit.org/show_bug.cgi?id=163929
+
+ Reviewed by Alexey Proskuryakov.
+
+ * web-platform-tests/url/a-element-expected.txt:
+ * web-platform-tests/url/a-element-xhtml-expected.txt:
+ * web-platform-tests/url/url-constructor-expected.txt:
+
2016-10-24 Ryan Haddad <ryanhad...@apple.com>
Unreviewed, rolling out r207795.
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-expected.txt (207804 => 207805)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-expected.txt 2016-10-25 04:19:09 UTC (rev 207804)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-expected.txt 2016-10-25 04:40:23 UTC (rev 207805)
@@ -126,9 +126,9 @@
PASS Parsing: <http://example.com/foo/bar/../ton/../../a> against <about:blank>
PASS Parsing: <http://example.com/foo/../../..> against <about:blank>
PASS Parsing: <http://example.com/foo/../../../ton> against <about:blank>
-PASS Parsing: <http://example.com/foo/%2e> against <about:blank>
-PASS Parsing: <http://example.com/foo/%2e%2> against <about:blank>
-PASS Parsing: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank>
+FAIL Parsing: <http://example.com/foo/%2e> against <about:blank> assert_equals: href expected "http://example.com/foo/" but got "http://example.com/foo/%2e"
+FAIL Parsing: <http://example.com/foo/%2e%2> against <about:blank> assert_equals: href expected "http://example.com/foo/.%2" but got "http://example.com/foo/%2e%2"
+FAIL Parsing: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank> assert_equals: href expected "http://example.com/..bar" but got "http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar"
PASS Parsing: <http://example.com////../..> against <about:blank>
PASS Parsing: <http://example.com/foo/bar//../..> against <about:blank>
PASS Parsing: <http://example.com/foo/bar//..> against <about:blank>
@@ -157,8 +157,8 @@
PASS Parsing: <http://[www.google.com]/> against <about:blank>
PASS Parsing: <http://www.google.com> against <about:blank>
PASS Parsing: <http://192.0x00A80001> against <about:blank>
-PASS Parsing: <http://www/foo%2Ehtml> against <about:blank>
-PASS Parsing: <http://www/foo/%2E/html> against <about:blank>
+FAIL Parsing: <http://www/foo%2Ehtml> against <about:blank> assert_equals: href expected "http://www/foo.html" but got "http://www/foo%2Ehtml"
+FAIL Parsing: <http://www/foo/%2E/html> against <about:blank> assert_equals: href expected "http://www/foo/html" but got "http://www/foo/%2E/html"
PASS Parsing: <http://user:pass@/> against <about:blank>
PASS Parsing: <http://%25DOMAIN:foo...@foodomain.com/> against <about:blank>
PASS Parsing: <http:\\www.google.com\foo> against <about:blank>
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-xhtml-expected.txt (207804 => 207805)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-xhtml-expected.txt 2016-10-25 04:19:09 UTC (rev 207804)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-xhtml-expected.txt 2016-10-25 04:40:23 UTC (rev 207805)
@@ -126,9 +126,9 @@
PASS Parsing: <http://example.com/foo/bar/../ton/../../a> against <about:blank>
PASS Parsing: <http://example.com/foo/../../..> against <about:blank>
PASS Parsing: <http://example.com/foo/../../../ton> against <about:blank>
-PASS Parsing: <http://example.com/foo/%2e> against <about:blank>
-PASS Parsing: <http://example.com/foo/%2e%2> against <about:blank>
-PASS Parsing: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank>
+FAIL Parsing: <http://example.com/foo/%2e> against <about:blank> assert_equals: href expected "http://example.com/foo/" but got "http://example.com/foo/%2e"
+FAIL Parsing: <http://example.com/foo/%2e%2> against <about:blank> assert_equals: href expected "http://example.com/foo/.%2" but got "http://example.com/foo/%2e%2"
+FAIL Parsing: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank> assert_equals: href expected "http://example.com/..bar" but got "http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar"
PASS Parsing: <http://example.com////../..> against <about:blank>
PASS Parsing: <http://example.com/foo/bar//../..> against <about:blank>
PASS Parsing: <http://example.com/foo/bar//..> against <about:blank>
@@ -157,8 +157,8 @@
PASS Parsing: <http://[www.google.com]/> against <about:blank>
PASS Parsing: <http://www.google.com> against <about:blank>
PASS Parsing: <http://192.0x00A80001> against <about:blank>
-PASS Parsing: <http://www/foo%2Ehtml> against <about:blank>
-PASS Parsing: <http://www/foo/%2E/html> against <about:blank>
+FAIL Parsing: <http://www/foo%2Ehtml> against <about:blank> assert_equals: href expected "http://www/foo.html" but got "http://www/foo%2Ehtml"
+FAIL Parsing: <http://www/foo/%2E/html> against <about:blank> assert_equals: href expected "http://www/foo/html" but got "http://www/foo/%2E/html"
PASS Parsing: <http://user:pass@/> against <about:blank>
PASS Parsing: <http://%25DOMAIN:foo...@foodomain.com/> against <about:blank>
PASS Parsing: <http:\\www.google.com\foo> against <about:blank>
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/url/url-constructor-expected.txt (207804 => 207805)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/url/url-constructor-expected.txt 2016-10-25 04:19:09 UTC (rev 207804)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/url/url-constructor-expected.txt 2016-10-25 04:40:23 UTC (rev 207805)
@@ -130,9 +130,9 @@
PASS Parsing: <http://example.com/foo/bar/../ton/../../a> against <about:blank>
PASS Parsing: <http://example.com/foo/../../..> against <about:blank>
PASS Parsing: <http://example.com/foo/../../../ton> against <about:blank>
-PASS Parsing: <http://example.com/foo/%2e> against <about:blank>
-PASS Parsing: <http://example.com/foo/%2e%2> against <about:blank>
-PASS Parsing: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank>
+FAIL Parsing: <http://example.com/foo/%2e> against <about:blank> assert_equals: href expected "http://example.com/foo/" but got "http://example.com/foo/%2e"
+FAIL Parsing: <http://example.com/foo/%2e%2> against <about:blank> assert_equals: href expected "http://example.com/foo/.%2" but got "http://example.com/foo/%2e%2"
+FAIL Parsing: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank> assert_equals: href expected "http://example.com/..bar" but got "http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar"
PASS Parsing: <http://example.com////../..> against <about:blank>
PASS Parsing: <http://example.com/foo/bar//../..> against <about:blank>
PASS Parsing: <http://example.com/foo/bar//..> against <about:blank>
@@ -161,8 +161,8 @@
PASS Parsing: <http://[www.google.com]/> against <about:blank>
PASS Parsing: <http://www.google.com> against <about:blank>
PASS Parsing: <http://192.0x00A80001> against <about:blank>
-PASS Parsing: <http://www/foo%2Ehtml> against <about:blank>
-PASS Parsing: <http://www/foo/%2E/html> against <about:blank>
+FAIL Parsing: <http://www/foo%2Ehtml> against <about:blank> assert_equals: href expected "http://www/foo.html" but got "http://www/foo%2Ehtml"
+FAIL Parsing: <http://www/foo/%2E/html> against <about:blank> assert_equals: href expected "http://www/foo/html" but got "http://www/foo/%2E/html"
PASS Parsing: <http://user:pass@/> against <about:blank>
PASS Parsing: <http://%25DOMAIN:foo...@foodomain.com/> against <about:blank>
PASS Parsing: <http:\\www.google.com\foo> against <about:blank>
Modified: trunk/Source/WebCore/ChangeLog (207804 => 207805)
--- trunk/Source/WebCore/ChangeLog 2016-10-25 04:19:09 UTC (rev 207804)
+++ trunk/Source/WebCore/ChangeLog 2016-10-25 04:40:23 UTC (rev 207805)
@@ -1,3 +1,22 @@
+2016-10-24 Alex Christensen <achristen...@webkit.org>
+
+ URLParser should match old URL::parse with %2E in path
+ https://bugs.webkit.org/show_bug.cgi?id=163929
+
+ Reviewed by Alexey Proskuryakov.
+
+ Covered by updated API tests, which show that URLParser now matches URL::parse in these cases.
+ Also covered by newly failing web platform tests, which were failing before URLParser was enabled.
+ If https://github.com/whatwg/url/issues/87 is resolved we can change behavior to match.
+
+ * platform/URLParser.cpp:
+ (WebCore::URLParser::isSingleDotPathSegment):
+ (WebCore::URLParser::isDoubleDotPathSegment):
+ (WebCore::URLParser::consumeSingleDotPathSegment):
+ (WebCore::URLParser::consumeDoubleDotPathSegment):
+ (WebCore::URLParser::parse):
+ (WebCore::URLParser::isPercentEncodedDot): Deleted.
+
2016-10-24 Zalan Bujtas <za...@apple.com>
Do not update selection rect on dirty lineboxes.
Modified: trunk/Source/WebCore/platform/URLParser.cpp (207804 => 207805)
--- trunk/Source/WebCore/platform/URLParser.cpp 2016-10-25 04:19:09 UTC (rev 207804)
+++ trunk/Source/WebCore/platform/URLParser.cpp 2016-10-25 04:40:23 UTC (rev 207805)
@@ -891,27 +891,7 @@
ASSERT_NOT_REACHED();
}
-static const char* dotASCIICode = "2e";
-
template<typename CharacterType>
-ALWAYS_INLINE bool URLParser::isPercentEncodedDot(CodePointIterator<CharacterType> c)
-{
- if (c.atEnd())
- return false;
- if (*c != '%')
- return false;
- advance<CharacterType, ReportSyntaxViolation::No>(c);
- if (c.atEnd())
- return false;
- if (*c != dotASCIICode[0])
- return false;
- advance<CharacterType, ReportSyntaxViolation::No>(c);
- if (c.atEnd())
- return false;
- return toASCIILower(*c) == dotASCIICode[1];
-}
-
-template<typename CharacterType>
ALWAYS_INLINE bool URLParser::isSingleDotPathSegment(CodePointIterator<CharacterType> c)
{
if (c.atEnd())
@@ -920,18 +900,6 @@
advance<CharacterType, ReportSyntaxViolation::No>(c);
return c.atEnd() || isSlashQuestionOrHash(*c);
}
- if (*c != '%')
- return false;
- advance<CharacterType, ReportSyntaxViolation::No>(c);
- if (c.atEnd() || *c != dotASCIICode[0])
- return false;
- advance<CharacterType, ReportSyntaxViolation::No>(c);
- if (c.atEnd())
- return false;
- if (toASCIILower(*c) == dotASCIICode[1]) {
- advance<CharacterType, ReportSyntaxViolation::No>(c);
- return c.atEnd() || isSlashQuestionOrHash(*c);
- }
return false;
}
@@ -944,18 +912,6 @@
advance<CharacterType, ReportSyntaxViolation::No>(c);
return isSingleDotPathSegment(c);
}
- if (*c != '%')
- return false;
- advance<CharacterType, ReportSyntaxViolation::No>(c);
- if (c.atEnd() || *c != dotASCIICode[0])
- return false;
- advance<CharacterType, ReportSyntaxViolation::No>(c);
- if (c.atEnd())
- return false;
- if (toASCIILower(*c) == dotASCIICode[1]) {
- advance<CharacterType, ReportSyntaxViolation::No>(c);
- return isSingleDotPathSegment(c);
- }
return false;
}
@@ -963,27 +919,12 @@
void URLParser::consumeSingleDotPathSegment(CodePointIterator<CharacterType>& c)
{
ASSERT(isSingleDotPathSegment(c));
- if (*c == '.') {
- advance(c);
- if (!c.atEnd()) {
- if (*c == '/' || *c == '\\')
- advance(c);
- else
- ASSERT(*c == '?' || *c == '#');
- }
- } else {
- ASSERT(*c == '%');
- advance(c);
- ASSERT(*c == dotASCIICode[0]);
- advance(c);
- ASSERT(toASCIILower(*c) == dotASCIICode[1]);
- advance(c);
- if (!c.atEnd()) {
- if (*c == '/' || *c == '\\')
- advance(c);
- else
- ASSERT(*c == '?' || *c == '#');
- }
+ advance(c);
+ if (!c.atEnd()) {
+ if (*c == '/' || *c == '\\')
+ advance(c);
+ else
+ ASSERT(*c == '?' || *c == '#');
}
}
@@ -991,16 +932,7 @@
void URLParser::consumeDoubleDotPathSegment(CodePointIterator<CharacterType>& c)
{
ASSERT(isDoubleDotPathSegment(c));
- if (*c == '.')
- advance(c);
- else {
- ASSERT(*c == '%');
- advance(c);
- ASSERT(*c == dotASCIICode[0]);
- advance(c);
- ASSERT(toASCIILower(*c) == dotASCIICode[1]);
- advance(c);
- }
+ advance(c);
consumeSingleDotPathSegment(c);
}
@@ -1723,17 +1655,6 @@
state = State::Fragment;
break;
}
- if (UNLIKELY(isPercentEncodedDot(c))) {
- syntaxViolation(c);
- appendToASCIIBuffer('.');
- ASSERT(*c == '%');
- advance(c);
- ASSERT(*c == dotASCIICode[0]);
- advance(c);
- ASSERT(toASCIILower(*c) == dotASCIICode[1]);
- advance(c);
- break;
- }
utf8PercentEncode<isInDefaultEncodeSet>(c);
++c;
break;
Modified: trunk/Tools/ChangeLog (207804 => 207805)
--- trunk/Tools/ChangeLog 2016-10-25 04:19:09 UTC (rev 207804)
+++ trunk/Tools/ChangeLog 2016-10-25 04:40:23 UTC (rev 207805)
@@ -1,3 +1,13 @@
+2016-10-24 Alex Christensen <achristen...@webkit.org>
+
+ URLParser should match old URL::parse with %2E in path
+ https://bugs.webkit.org/show_bug.cgi?id=163929
+
+ Reviewed by Alexey Proskuryakov.
+
+ * TestWebKitAPI/Tests/WebCore/URLParser.cpp:
+ (TestWebKitAPI::TEST_F):
+
2016-10-24 Ryan Haddad <ryanhad...@apple.com>
Unreviewed, rolling out r207795.
Modified: trunk/Tools/TestWebKitAPI/Tests/WebCore/URLParser.cpp (207804 => 207805)
--- trunk/Tools/TestWebKitAPI/Tests/WebCore/URLParser.cpp 2016-10-25 04:19:09 UTC (rev 207804)
+++ trunk/Tools/TestWebKitAPI/Tests/WebCore/URLParser.cpp 2016-10-25 04:40:23 UTC (rev 207805)
@@ -596,42 +596,18 @@
checkURLDifferences("http://127.0.0.01/",
{"http", "", "", "127.0.0.1", 0, "/", "", "", "http://127.0.0.1/"},
{"http", "", "", "127.0.0.01", 0, "/", "", "", "http://127.0.0.01/"});
- checkURLDifferences("http://example.com/path1/.%2e",
- {"http", "", "", "example.com", 0, "/", "", "", "http://example.com/"},
- {"http", "", "", "example.com", 0, "/path1/.%2e", "", "", "http://example.com/path1/.%2e"});
- checkURLDifferences("http://example.com/path1/.%2E",
- {"http", "", "", "example.com", 0, "/", "", "", "http://example.com/"},
- {"http", "", "", "example.com", 0, "/path1/.%2E", "", "", "http://example.com/path1/.%2E"});
- checkURLDifferences("http://example.com/path1/.%2E/",
- {"http", "", "", "example.com", 0, "/", "", "", "http://example.com/"},
- {"http", "", "", "example.com", 0, "/path1/.%2E/", "", "", "http://example.com/path1/.%2E/"});
- checkURLDifferences("http://example.com/path1/%2e.",
- {"http", "", "", "example.com", 0, "/", "", "", "http://example.com/"},
- {"http", "", "", "example.com", 0, "/path1/%2e.", "", "", "http://example.com/path1/%2e."});
- checkURLDifferences("http://example.com/path1/%2E%2e",
- {"http", "", "", "example.com", 0, "/", "", "", "http://example.com/"},
- {"http", "", "", "example.com", 0, "/path1/%2E%2e", "", "", "http://example.com/path1/%2E%2e"});
- checkURLDifferences("http://example.com/path1/%2e",
- {"http", "", "", "example.com", 0, "/path1/", "", "", "http://example.com/path1/"},
- {"http", "", "", "example.com", 0, "/path1/%2e", "", "", "http://example.com/path1/%2e"});
- checkURLDifferences("http://example.com/path1/%2E",
- {"http", "", "", "example.com", 0, "/path1/", "", "", "http://example.com/path1/"},
- {"http", "", "", "example.com", 0, "/path1/%2E", "", "", "http://example.com/path1/%2E"});
- checkURLDifferences("http://example.com/path1/%2E/",
- {"http", "", "", "example.com", 0, "/path1/", "", "", "http://example.com/path1/"},
- {"http", "", "", "example.com", 0, "/path1/%2E/", "", "", "http://example.com/path1/%2E/"});
- checkURLDifferences("http://example.com/path1/path2/%2e?query",
- {"http", "", "", "example.com", 0, "/path1/path2/", "query", "", "http://example.com/path1/path2/?query"},
- {"http", "", "", "example.com", 0, "/path1/path2/%2e", "query", "", "http://example.com/path1/path2/%2e?query"});
- checkURLDifferences("http://example.com/path1/path2/%2e%2e?query",
- {"http", "", "", "example.com", 0, "/path1/", "query", "", "http://example.com/path1/?query"},
- {"http", "", "", "example.com", 0, "/path1/path2/%2e%2e", "query", "", "http://example.com/path1/path2/%2e%2e?query"});
- checkURLDifferences("http://example.com/path1/path2/%2e#fragment",
- {"http", "", "", "example.com", 0, "/path1/path2/", "", "fragment", "http://example.com/path1/path2/#fragment"},
- {"http", "", "", "example.com", 0, "/path1/path2/%2e", "", "fragment", "http://example.com/path1/path2/%2e#fragment"});
- checkURLDifferences("http://example.com/path1/path2/%2e%2e#fragment",
- {"http", "", "", "example.com", 0, "/path1/", "", "fragment", "http://example.com/path1/#fragment"},
- {"http", "", "", "example.com", 0, "/path1/path2/%2e%2e", "", "fragment", "http://example.com/path1/path2/%2e%2e#fragment"});
+ checkURL("http://example.com/path1/.%2e", {"http", "", "", "example.com", 0, "/path1/.%2e", "", "", "http://example.com/path1/.%2e"});
+ checkURL("http://example.com/path1/.%2E", {"http", "", "", "example.com", 0, "/path1/.%2E", "", "", "http://example.com/path1/.%2E"});
+ checkURL("http://example.com/path1/.%2E/", {"http", "", "", "example.com", 0, "/path1/.%2E/", "", "", "http://example.com/path1/.%2E/"});
+ checkURL("http://example.com/path1/%2e.", {"http", "", "", "example.com", 0, "/path1/%2e.", "", "", "http://example.com/path1/%2e."});
+ checkURL("http://example.com/path1/%2E%2e", {"http", "", "", "example.com", 0, "/path1/%2E%2e", "", "", "http://example.com/path1/%2E%2e"});
+ checkURL("http://example.com/path1/%2e", {"http", "", "", "example.com", 0, "/path1/%2e", "", "", "http://example.com/path1/%2e"});
+ checkURL("http://example.com/path1/%2E", {"http", "", "", "example.com", 0, "/path1/%2E", "", "", "http://example.com/path1/%2E"});
+ checkURL("http://example.com/path1/%2E/", {"http", "", "", "example.com", 0, "/path1/%2E/", "", "", "http://example.com/path1/%2E/"});
+ checkURL("http://example.com/path1/path2/%2e?query", {"http", "", "", "example.com", 0, "/path1/path2/%2e", "query", "", "http://example.com/path1/path2/%2e?query"});
+ checkURL("http://example.com/path1/path2/%2e%2e?query", {"http", "", "", "example.com", 0, "/path1/path2/%2e%2e", "query", "", "http://example.com/path1/path2/%2e%2e?query"});
+ checkURL("http://example.com/path1/path2/%2e#fragment", {"http", "", "", "example.com", 0, "/path1/path2/%2e", "", "fragment", "http://example.com/path1/path2/%2e#fragment"});
+ checkURL("http://example.com/path1/path2/%2e%2e#fragment", {"http", "", "", "example.com", 0, "/path1/path2/%2e%2e", "", "fragment", "http://example.com/path1/path2/%2e%2e#fragment"});
checkURLDifferences("file://[0:a:0:0:b:c:0:0]/path",
{"file", "", "", "[0:a::b:c:0:0]", 0, "/path", "", "", "file://[0:a::b:c:0:0]/path"},
{"file", "", "", "[0:a:0:0:b:c:0:0]", 0, "/path", "", "", "file://[0:a:0:0:b:c:0:0]/path"});
@@ -734,10 +710,9 @@
checkURLDifferences(utf16String(u"http://0Xc0.0250.01"),
{"http", "", "", "192.168.0.1", 0, "/", "", "", "http://192.168.0.1/"},
{"http", "", "", "0xc0.0250.01", 0, "/", "", "", "http://0xc0.0250.01/"});
- checkURLDifferences("http://host/path%2e.%2E",
- {"http", "", "", "host", 0, "/path...", "", "", "http://host/path..."},
- {"http", "", "", "host", 0, "/path%2e.%2E", "", "", "http://host/path%2e.%2E"});
+ checkURL("http://host/path%2e.%2E", {"http", "", "", "host", 0, "/path%2e.%2E", "", "", "http://host/path%2e.%2E"});
+
checkRelativeURLDifferences(utf16String(u"http://foo:💩@example.com/bar"), "http://other.com/",
{"http", "foo", utf16String(u"💩"), "example.com", 0, "/bar", "", "", "http://foo:%f0%9f%92...@example.com/bar"},
{"", "", "", "", 0, "", "", "", utf16String(u"http://foo:💩@example.com/bar")}, testTabsValueForSurrogatePairs);
_______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes