Log Message
Partially revert 207805 after resolution in URL spec issue 87 https://bugs.webkit.org/show_bug.cgi?id=164142
Reviewed by Andy Estes. 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 layout tests and API tests. * platform/URLParser.cpp: (WebCore::URLParser::isSingleDotPathSegment): (WebCore::URLParser::isDoubleDotPathSegment): (WebCore::URLParser::consumeSingleDotPathSegment): (WebCore::URLParser::consumeDoubleDotPathSegment): Treat %2e%2e as .. and %2e as . but only if it is entirety of the path segment. There are tests for URLs like http://host/abc%2edef which have not changed because the %2e is not the entirety of the path segment. Tools: * TestWebKitAPI/Tests/WebCore/URLParser.cpp: (TestWebKitAPI::TEST_F): LayoutTests: * fast/url/path-expected.txt: * fetch/fetch-url-serialization-expected.txt:
Modified Paths
- trunk/LayoutTests/ChangeLog
- trunk/LayoutTests/fast/url/path-expected.txt
- trunk/LayoutTests/fetch/fetch-url-serialization-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 (208086 => 208087)
--- trunk/LayoutTests/ChangeLog 2016-10-29 00:17:01 UTC (rev 208086)
+++ trunk/LayoutTests/ChangeLog 2016-10-29 00:20:38 UTC (rev 208087)
@@ -1,3 +1,13 @@
+2016-10-28 Alex Christensen <achristen...@webkit.org>
+
+ Partially revert 207805 after resolution in URL spec issue 87
+ https://bugs.webkit.org/show_bug.cgi?id=164142
+
+ Reviewed by Andy Estes.
+
+ * fast/url/path-expected.txt:
+ * fetch/fetch-url-serialization-expected.txt:
+
2016-10-28 Chris Dumez <cdu...@apple.com>
DOMStringMap reports properties as non-enumerable
Modified: trunk/LayoutTests/fast/url/path-expected.txt (208086 => 208087)
--- trunk/LayoutTests/fast/url/path-expected.txt 2016-10-29 00:17:01 UTC (rev 208086)
+++ trunk/LayoutTests/fast/url/path-expected.txt 2016-10-29 00:20:38 UTC (rev 208087)
@@ -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'
-FAIL canonicalize('http://example.com/foo/%2e') should be http://example.com/foo/. Was http://example.com/foo/%2e.
+PASS canonicalize('http://example.com/foo/%2e') is 'http://example.com/foo/'
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.
+FAIL canonicalize('http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar') should be http://example.com/..bar. Was http://example.com/%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/fetch/fetch-url-serialization-expected.txt (208086 => 208087)
--- trunk/LayoutTests/fetch/fetch-url-serialization-expected.txt 2016-10-29 00:17:01 UTC (rev 208086)
+++ trunk/LayoutTests/fetch/fetch-url-serialization-expected.txt 2016-10-29 00:20:38 UTC (rev 208087)
@@ -123,9 +123,9 @@
PASS Testing Request url 'http://example.com/foo/bar/../ton/../../a' with base 'about:blank'
PASS Testing Request url 'http://example.com/foo/../../..' with base 'about:blank'
PASS Testing Request url 'http://example.com/foo/../../../ton' with base 'about:blank'
-FAIL Testing Request url 'http://example.com/foo/%2e' with base 'about:blank' assert_equals: expected "http://example.com/foo/" but got "http://example.com/foo/%2e"
+PASS Testing Request url 'http://example.com/foo/%2e' with base 'about:blank'
FAIL Testing Request url 'http://example.com/foo/%2e%2' with base 'about:blank' assert_equals: expected "http://example.com/foo/.%2" but got "http://example.com/foo/%2e%2"
-FAIL Testing Request url 'http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar' with base 'about:blank' assert_equals: expected "http://example.com/..bar" but got "http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar"
+FAIL Testing Request url 'http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar' with base 'about:blank' assert_equals: expected "http://example.com/..bar" but got "http://example.com/%2e.bar"
PASS Testing Request url 'http://example.com////../..' with base 'about:blank'
PASS Testing Request url 'http://example.com/foo/bar//../..' with base 'about:blank'
PASS Testing Request url 'http://example.com/foo/bar//..' with base 'about:blank'
@@ -155,7 +155,7 @@
PASS Testing Request url 'http://www.google.com' with base 'about:blank'
PASS Testing Request url 'http://192.0x00A80001' with base 'about:blank'
FAIL Testing Request url 'http://www/foo%2Ehtml' with base 'about:blank' assert_equals: expected "http://www/foo.html" but got "http://www/foo%2Ehtml"
-FAIL Testing Request url 'http://www/foo/%2E/html' with base 'about:blank' assert_equals: expected "http://www/foo/html" but got "http://www/foo/%2E/html"
+PASS Testing Request url 'http://www/foo/%2E/html' with base 'about:blank'
PASS Testing Request url 'http://user:pass@/' with base 'about:blank'
PASS Testing Request url 'http://%25DOMAIN:foo...@foodomain.com/' with base 'about:blank'
PASS Testing Request url 'http:\\www.google.com\foo' with base 'about:blank'
Modified: trunk/LayoutTests/imported/w3c/ChangeLog (208086 => 208087)
--- trunk/LayoutTests/imported/w3c/ChangeLog 2016-10-29 00:17:01 UTC (rev 208086)
+++ trunk/LayoutTests/imported/w3c/ChangeLog 2016-10-29 00:20:38 UTC (rev 208087)
@@ -1,3 +1,14 @@
+2016-10-28 Alex Christensen <achristen...@webkit.org>
+
+ Partially revert 207805 after resolution in URL spec issue 87
+ https://bugs.webkit.org/show_bug.cgi?id=164142
+
+ Reviewed by Andy Estes.
+
+ * 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-28 Youenn Fablet <you...@apple.com>
Expose RTCPeerConnection unprefixed
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-expected.txt (208086 => 208087)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-expected.txt 2016-10-29 00:17:01 UTC (rev 208086)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-expected.txt 2016-10-29 00:20:38 UTC (rev 208087)
@@ -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>
-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"
+PASS Parsing: <http://example.com/foo/%2e> against <about:blank>
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"
+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/%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>
@@ -158,7 +158,7 @@
PASS Parsing: <http://www.google.com> against <about:blank>
PASS Parsing: <http://192.0x00A80001> 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://www/foo/%2E/html> against <about:blank>
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 (208086 => 208087)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-xhtml-expected.txt 2016-10-29 00:17:01 UTC (rev 208086)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-xhtml-expected.txt 2016-10-29 00:20:38 UTC (rev 208087)
@@ -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>
-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"
+PASS Parsing: <http://example.com/foo/%2e> against <about:blank>
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"
+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/%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>
@@ -158,7 +158,7 @@
PASS Parsing: <http://www.google.com> against <about:blank>
PASS Parsing: <http://192.0x00A80001> 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://www/foo/%2E/html> against <about:blank>
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 (208086 => 208087)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/url/url-constructor-expected.txt 2016-10-29 00:17:01 UTC (rev 208086)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/url/url-constructor-expected.txt 2016-10-29 00:20:38 UTC (rev 208087)
@@ -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>
-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"
+PASS Parsing: <http://example.com/foo/%2e> against <about:blank>
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"
+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/%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>
@@ -162,7 +162,7 @@
PASS Parsing: <http://www.google.com> against <about:blank>
PASS Parsing: <http://192.0x00A80001> 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://www/foo/%2E/html> against <about:blank>
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 (208086 => 208087)
--- trunk/Source/WebCore/ChangeLog 2016-10-29 00:17:01 UTC (rev 208086)
+++ trunk/Source/WebCore/ChangeLog 2016-10-29 00:20:38 UTC (rev 208087)
@@ -1,5 +1,23 @@
2016-10-28 Alex Christensen <achristen...@webkit.org>
+ Partially revert 207805 after resolution in URL spec issue 87
+ https://bugs.webkit.org/show_bug.cgi?id=164142
+
+ Reviewed by Andy Estes.
+
+ Covered by updated layout tests and API tests.
+
+ * platform/URLParser.cpp:
+ (WebCore::URLParser::isSingleDotPathSegment):
+ (WebCore::URLParser::isDoubleDotPathSegment):
+ (WebCore::URLParser::consumeSingleDotPathSegment):
+ (WebCore::URLParser::consumeDoubleDotPathSegment):
+ Treat %2e%2e as .. and %2e as . but only if it is entirety of the path segment.
+ There are tests for URLs like http://host/abc%2edef which have not changed because
+ the %2e is not the entirety of the path segment.
+
+2016-10-28 Alex Christensen <achristen...@webkit.org>
+
URLParser should not try to interpret host of URLs with unrecognized schemes as IPv4 address
https://bugs.webkit.org/show_bug.cgi?id=164154
Modified: trunk/Source/WebCore/platform/URLParser.cpp (208086 => 208087)
--- trunk/Source/WebCore/platform/URLParser.cpp 2016-10-29 00:17:01 UTC (rev 208086)
+++ trunk/Source/WebCore/platform/URLParser.cpp 2016-10-29 00:20:38 UTC (rev 208087)
@@ -891,6 +891,8 @@
ASSERT_NOT_REACHED();
}
+static const char dotASCIICode[2] = {'2', 'e'};
+
template<typename CharacterType>
ALWAYS_INLINE bool URLParser::isSingleDotPathSegment(CodePointIterator<CharacterType> c)
{
@@ -900,6 +902,18 @@
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;
}
@@ -912,6 +926,18 @@
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;
}
@@ -919,12 +945,27 @@
void URLParser::consumeSingleDotPathSegment(CodePointIterator<CharacterType>& c)
{
ASSERT(isSingleDotPathSegment(c));
- advance(c);
- if (!c.atEnd()) {
- if (*c == '/' || *c == '\\')
- advance(c);
- else
- ASSERT(*c == '?' || *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 == '#');
+ }
}
}
@@ -932,7 +973,16 @@
void URLParser::consumeDoubleDotPathSegment(CodePointIterator<CharacterType>& c)
{
ASSERT(isDoubleDotPathSegment(c));
- advance(c);
+ if (*c == '.')
+ advance(c);
+ else {
+ ASSERT(*c == '%');
+ advance(c);
+ ASSERT(*c == dotASCIICode[0]);
+ advance(c);
+ ASSERT(toASCIILower(*c) == dotASCIICode[1]);
+ advance(c);
+ }
consumeSingleDotPathSegment(c);
}
Modified: trunk/Tools/ChangeLog (208086 => 208087)
--- trunk/Tools/ChangeLog 2016-10-29 00:17:01 UTC (rev 208086)
+++ trunk/Tools/ChangeLog 2016-10-29 00:20:38 UTC (rev 208087)
@@ -1,5 +1,15 @@
2016-10-28 Alex Christensen <achristen...@webkit.org>
+ Partially revert 207805 after resolution in URL spec issue 87
+ https://bugs.webkit.org/show_bug.cgi?id=164142
+
+ Reviewed by Andy Estes.
+
+ * TestWebKitAPI/Tests/WebCore/URLParser.cpp:
+ (TestWebKitAPI::TEST_F):
+
+2016-10-28 Alex Christensen <achristen...@webkit.org>
+
URLParser should not try to interpret host of URLs with unrecognized schemes as IPv4 address
https://bugs.webkit.org/show_bug.cgi?id=164154
Modified: trunk/Tools/TestWebKitAPI/Tests/WebCore/URLParser.cpp (208086 => 208087)
--- trunk/Tools/TestWebKitAPI/Tests/WebCore/URLParser.cpp 2016-10-29 00:17:01 UTC (rev 208086)
+++ trunk/Tools/TestWebKitAPI/Tests/WebCore/URLParser.cpp 2016-10-29 00:20:38 UTC (rev 208087)
@@ -596,18 +596,43 @@
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/"});
- 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("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/path2/A%2e%2e#fragment", {"http", "", "", "example.com", 0, "/path1/path2/A%2e%2e", "", "fragment", "http://example.com/path1/path2/A%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"});
_______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes