Changeset 207795 in webkit
- Timestamp:
- Oct 24, 2016 6:31:42 PM (7 years ago)
- Location:
- trunk
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r207788 r207795 1 2016-10-24 Alex Christensen <achristensen@webkit.org> 2 3 URLParser should match old URL::parse with %2E in path 4 https://bugs.webkit.org/show_bug.cgi?id=163929 5 6 Reviewed by Alexey Proskuryakov. 7 8 * fast/url/path-expected.txt: 9 * fast/url/standard-url-expected.txt: 10 * fetch/fetch-url-serialization-expected.txt: 11 1 12 2016-10-24 Brady Eidson <beidson@apple.com> 2 13 -
trunk/LayoutTests/fast/url/path-expected.txt
r207162 r207795 15 15 PASS canonicalize('http://example.com/foo/../../..') is 'http://example.com/' 16 16 PASS canonicalize('http://example.com/foo/../../../ton') is 'http://example.com/ton' 17 PASS canonicalize('http://example.com/foo/%2e') is 'http://example.com/foo/' 18 PASS canonicalize('http://example.com/foo/%2e%2') is 'http://example.com/foo/.%2' 19 PASS canonicalize('http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar') is 'http://example.com/..bar' 17 FAIL canonicalize('http://example.com/foo/%2e') should be http://example.com/foo/. Was http://example.com/foo/%2e. 18 FAIL canonicalize('http://example.com/foo/%2e%2') should be http://example.com/foo/.%2. Was http://example.com/foo/%2e%2. 19 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. 20 20 PASS canonicalize('http://example.com////../..') is 'http://example.com//' 21 21 PASS canonicalize('http://example.com/foo/bar//../..') is 'http://example.com/foo/' -
trunk/LayoutTests/fast/url/standard-url-expected.txt
r207162 r207795 10 10 PASS canonicalize('http:////////user:@google.com:99?foo') is 'http://user@google.com:99/?foo' 11 11 PASS canonicalize('http://192.0x00A80001') is 'http://192.168.0.1/' 12 PASS canonicalize('http://www/foo%2Ehtml') is 'http://www/foo.html' 12 FAIL canonicalize('http://www/foo%2Ehtml') should be http://www/foo.html. Was http://www/foo%2Ehtml. 13 13 PASS canonicalize('http://user:pass@/') is 'http://user:pass@/' 14 14 PASS canonicalize('http://%25DOMAIN:foobar@foodomain.com/') is 'http://%25DOMAIN:foobar@foodomain.com/' -
trunk/LayoutTests/fetch/fetch-url-serialization-expected.txt
r207162 r207795 124 124 PASS Testing Request url 'http://example.com/foo/../../..' with base 'about:blank' 125 125 PASS Testing Request url 'http://example.com/foo/../../../ton' with base 'about:blank' 126 PASS Testing Request url 'http://example.com/foo/%2e' with base 'about:blank' 127 PASS Testing Request url 'http://example.com/foo/%2e%2' with base 'about:blank' 128 PASS Testing Request url 'http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar' with base 'about:blank' 126 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" 127 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" 128 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" 129 129 PASS Testing Request url 'http://example.com////../..' with base 'about:blank' 130 130 PASS Testing Request url 'http://example.com/foo/bar//../..' with base 'about:blank' … … 155 155 PASS Testing Request url 'http://www.google.com' with base 'about:blank' 156 156 PASS Testing Request url 'http://192.0x00A80001' with base 'about:blank' 157 PASS Testing Request url 'http://www/foo%2Ehtml' with base 'about:blank' 158 PASS Testing Request url 'http://www/foo/%2E/html' with base 'about:blank' 157 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" 158 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" 159 159 PASS Testing Request url 'http://user:pass@/' with base 'about:blank' 160 160 PASS Testing Request url 'http://%25DOMAIN:foobar@foodomain.com/' with base 'about:blank' -
trunk/LayoutTests/imported/w3c/ChangeLog
r207769 r207795 1 2016-10-24 Alex Christensen <achristensen@webkit.org> 2 3 URLParser should match old URL::parse with %2E in path 4 https://bugs.webkit.org/show_bug.cgi?id=163929 5 6 Reviewed by Alexey Proskuryakov. 7 8 * web-platform-tests/url/a-element-expected.txt: 9 * web-platform-tests/url/a-element-xhtml-expected.txt: 10 * web-platform-tests/url/url-constructor-expected.txt: 11 1 12 2016-10-21 Alex Christensen <achristensen@webkit.org> 2 13 -
trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-expected.txt
r207769 r207795 127 127 PASS Parsing: <http://example.com/foo/../../..> against <about:blank> 128 128 PASS Parsing: <http://example.com/foo/../../../ton> against <about:blank> 129 PASS Parsing: <http://example.com/foo/%2e> against <about:blank> 130 PASS Parsing: <http://example.com/foo/%2e%2> against <about:blank> 131 PASS Parsing: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank> 129 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" 130 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" 131 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" 132 132 PASS Parsing: <http://example.com////../..> against <about:blank> 133 133 PASS Parsing: <http://example.com/foo/bar//../..> against <about:blank> … … 158 158 PASS Parsing: <http://www.google.com> against <about:blank> 159 159 PASS Parsing: <http://192.0x00A80001> against <about:blank> 160 PASS Parsing: <http://www/foo%2Ehtml> against <about:blank> 161 PASS Parsing: <http://www/foo/%2E/html> against <about:blank> 160 FAIL Parsing: <http://www/foo%2Ehtml> against <about:blank> assert_equals: href expected "http://www/foo.html" but got "http://www/foo%2Ehtml" 161 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" 162 162 PASS Parsing: <http://user:pass@/> against <about:blank> 163 163 PASS Parsing: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank> -
trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-xhtml-expected.txt
r207769 r207795 127 127 PASS Parsing: <http://example.com/foo/../../..> against <about:blank> 128 128 PASS Parsing: <http://example.com/foo/../../../ton> against <about:blank> 129 PASS Parsing: <http://example.com/foo/%2e> against <about:blank> 130 PASS Parsing: <http://example.com/foo/%2e%2> against <about:blank> 131 PASS Parsing: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank> 129 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" 130 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" 131 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" 132 132 PASS Parsing: <http://example.com////../..> against <about:blank> 133 133 PASS Parsing: <http://example.com/foo/bar//../..> against <about:blank> … … 158 158 PASS Parsing: <http://www.google.com> against <about:blank> 159 159 PASS Parsing: <http://192.0x00A80001> against <about:blank> 160 PASS Parsing: <http://www/foo%2Ehtml> against <about:blank> 161 PASS Parsing: <http://www/foo/%2E/html> against <about:blank> 160 FAIL Parsing: <http://www/foo%2Ehtml> against <about:blank> assert_equals: href expected "http://www/foo.html" but got "http://www/foo%2Ehtml" 161 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" 162 162 PASS Parsing: <http://user:pass@/> against <about:blank> 163 163 PASS Parsing: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank> -
trunk/LayoutTests/imported/w3c/web-platform-tests/url/url-constructor-expected.txt
r207769 r207795 131 131 PASS Parsing: <http://example.com/foo/../../..> against <about:blank> 132 132 PASS Parsing: <http://example.com/foo/../../../ton> against <about:blank> 133 PASS Parsing: <http://example.com/foo/%2e> against <about:blank> 134 PASS Parsing: <http://example.com/foo/%2e%2> against <about:blank> 135 PASS Parsing: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank> 133 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" 134 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" 135 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" 136 136 PASS Parsing: <http://example.com////../..> against <about:blank> 137 137 PASS Parsing: <http://example.com/foo/bar//../..> against <about:blank> … … 162 162 PASS Parsing: <http://www.google.com> against <about:blank> 163 163 PASS Parsing: <http://192.0x00A80001> against <about:blank> 164 PASS Parsing: <http://www/foo%2Ehtml> against <about:blank> 165 PASS Parsing: <http://www/foo/%2E/html> against <about:blank> 164 FAIL Parsing: <http://www/foo%2Ehtml> against <about:blank> assert_equals: href expected "http://www/foo.html" but got "http://www/foo%2Ehtml" 165 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" 166 166 PASS Parsing: <http://user:pass@/> against <about:blank> 167 167 PASS Parsing: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank> -
trunk/Source/WebCore/ChangeLog
r207794 r207795 1 2016-10-24 Alex Christensen <achristensen@webkit.org> 2 3 URLParser should match old URL::parse with %2E in path 4 https://bugs.webkit.org/show_bug.cgi?id=163929 5 6 Reviewed by Alexey Proskuryakov. 7 8 Covered by updated API tests, which show that URLParser now matches URL::parse in these cases. 9 Also covered by newly failing web platform tests, which were failing before URLParser was enabled. 10 If https://github.com/whatwg/url/issues/87 is resolved we can change behavior to match. 11 12 * platform/URLParser.cpp: 13 (WebCore::URLParser::isSingleDotPathSegment): 14 (WebCore::URLParser::isDoubleDotPathSegment): 15 (WebCore::URLParser::consumeSingleDotPathSegment): 16 (WebCore::URLParser::consumeDoubleDotPathSegment): 17 (WebCore::URLParser::parse): 18 (WebCore::URLParser::isPercentEncodedDot): Deleted. 19 1 20 2016-10-24 Per Arne Vollan <pvollan@apple.com> 2 21 -
trunk/Source/WebCore/platform/URLParser.cpp
r207769 r207795 892 892 } 893 893 894 static const char* dotASCIICode = "2e";895 896 template<typename CharacterType>897 ALWAYS_INLINE bool URLParser::isPercentEncodedDot(CodePointIterator<CharacterType> c)898 {899 if (c.atEnd())900 return false;901 if (*c != '%')902 return false;903 advance<CharacterType, ReportSyntaxViolation::No>(c);904 if (c.atEnd())905 return false;906 if (*c != dotASCIICode[0])907 return false;908 advance<CharacterType, ReportSyntaxViolation::No>(c);909 if (c.atEnd())910 return false;911 return toASCIILower(*c) == dotASCIICode[1];912 }913 914 894 template<typename CharacterType> 915 895 ALWAYS_INLINE bool URLParser::isSingleDotPathSegment(CodePointIterator<CharacterType> c) … … 921 901 return c.atEnd() || isSlashQuestionOrHash(*c); 922 902 } 923 if (*c != '%')924 return false;925 advance<CharacterType, ReportSyntaxViolation::No>(c);926 if (c.atEnd() || *c != dotASCIICode[0])927 return false;928 advance<CharacterType, ReportSyntaxViolation::No>(c);929 if (c.atEnd())930 return false;931 if (toASCIILower(*c) == dotASCIICode[1]) {932 advance<CharacterType, ReportSyntaxViolation::No>(c);933 return c.atEnd() || isSlashQuestionOrHash(*c);934 }935 903 return false; 936 904 } … … 945 913 return isSingleDotPathSegment(c); 946 914 } 947 if (*c != '%')948 return false;949 advance<CharacterType, ReportSyntaxViolation::No>(c);950 if (c.atEnd() || *c != dotASCIICode[0])951 return false;952 advance<CharacterType, ReportSyntaxViolation::No>(c);953 if (c.atEnd())954 return false;955 if (toASCIILower(*c) == dotASCIICode[1]) {956 advance<CharacterType, ReportSyntaxViolation::No>(c);957 return isSingleDotPathSegment(c);958 }959 915 return false; 960 916 } … … 964 920 { 965 921 ASSERT(isSingleDotPathSegment(c)); 966 if (*c == '.') { 967 advance(c); 968 if (!c.atEnd()) { 969 if (*c == '/' || *c == '\\') 970 advance(c); 971 else 972 ASSERT(*c == '?' || *c == '#'); 973 } 974 } else { 975 ASSERT(*c == '%'); 976 advance(c); 977 ASSERT(*c == dotASCIICode[0]); 978 advance(c); 979 ASSERT(toASCIILower(*c) == dotASCIICode[1]); 980 advance(c); 981 if (!c.atEnd()) { 982 if (*c == '/' || *c == '\\') 983 advance(c); 984 else 985 ASSERT(*c == '?' || *c == '#'); 986 } 922 advance(c); 923 if (!c.atEnd()) { 924 if (*c == '/' || *c == '\\') 925 advance(c); 926 else 927 ASSERT(*c == '?' || *c == '#'); 987 928 } 988 929 } … … 992 933 { 993 934 ASSERT(isDoubleDotPathSegment(c)); 994 if (*c == '.') 995 advance(c); 996 else { 997 ASSERT(*c == '%'); 998 advance(c); 999 ASSERT(*c == dotASCIICode[0]); 1000 advance(c); 1001 ASSERT(toASCIILower(*c) == dotASCIICode[1]); 1002 advance(c); 1003 } 935 advance(c); 1004 936 consumeSingleDotPathSegment(c); 1005 937 } … … 1722 1654 m_url.m_queryEnd = m_url.m_pathEnd; 1723 1655 state = State::Fragment; 1724 break;1725 }1726 if (UNLIKELY(isPercentEncodedDot(c))) {1727 syntaxViolation(c);1728 appendToASCIIBuffer('.');1729 ASSERT(*c == '%');1730 advance(c);1731 ASSERT(*c == dotASCIICode[0]);1732 advance(c);1733 ASSERT(toASCIILower(*c) == dotASCIICode[1]);1734 advance(c);1735 1656 break; 1736 1657 } … … 2869 2790 bool URLParser::enabled() 2870 2791 { 2792 return true; 2793 /* 2871 2794 if (urlParserEnabled == URLParserEnabled::Undetermined) { 2872 2795 #if PLATFORM(MAC) … … 2879 2802 } 2880 2803 return urlParserEnabled == URLParserEnabled::Yes; 2804 */ 2881 2805 } 2882 2806 -
trunk/Tools/ChangeLog
r207769 r207795 1 2016-10-24 Alex Christensen <achristensen@webkit.org> 2 3 URLParser should match old URL::parse with %2E in path 4 https://bugs.webkit.org/show_bug.cgi?id=163929 5 6 Reviewed by Alexey Proskuryakov. 7 8 * TestWebKitAPI/Tests/WebCore/URLParser.cpp: 9 (TestWebKitAPI::TEST_F): 10 1 11 2016-10-21 Alex Christensen <achristensen@webkit.org> 2 12 -
trunk/Tools/TestWebKitAPI/Tests/WebCore/URLParser.cpp
r207769 r207795 597 597 {"http", "", "", "127.0.0.1", 0, "/", "", "", "http://127.0.0.1/"}, 598 598 {"http", "", "", "127.0.0.01", 0, "/", "", "", "http://127.0.0.01/"}); 599 checkURLDifferences("http://example.com/path1/.%2e", 600 {"http", "", "", "example.com", 0, "/", "", "", "http://example.com/"}, 601 {"http", "", "", "example.com", 0, "/path1/.%2e", "", "", "http://example.com/path1/.%2e"}); 602 checkURLDifferences("http://example.com/path1/.%2E", 603 {"http", "", "", "example.com", 0, "/", "", "", "http://example.com/"}, 604 {"http", "", "", "example.com", 0, "/path1/.%2E", "", "", "http://example.com/path1/.%2E"}); 605 checkURLDifferences("http://example.com/path1/.%2E/", 606 {"http", "", "", "example.com", 0, "/", "", "", "http://example.com/"}, 607 {"http", "", "", "example.com", 0, "/path1/.%2E/", "", "", "http://example.com/path1/.%2E/"}); 608 checkURLDifferences("http://example.com/path1/%2e.", 609 {"http", "", "", "example.com", 0, "/", "", "", "http://example.com/"}, 610 {"http", "", "", "example.com", 0, "/path1/%2e.", "", "", "http://example.com/path1/%2e."}); 611 checkURLDifferences("http://example.com/path1/%2E%2e", 612 {"http", "", "", "example.com", 0, "/", "", "", "http://example.com/"}, 613 {"http", "", "", "example.com", 0, "/path1/%2E%2e", "", "", "http://example.com/path1/%2E%2e"}); 614 checkURLDifferences("http://example.com/path1/%2e", 615 {"http", "", "", "example.com", 0, "/path1/", "", "", "http://example.com/path1/"}, 616 {"http", "", "", "example.com", 0, "/path1/%2e", "", "", "http://example.com/path1/%2e"}); 617 checkURLDifferences("http://example.com/path1/%2E", 618 {"http", "", "", "example.com", 0, "/path1/", "", "", "http://example.com/path1/"}, 619 {"http", "", "", "example.com", 0, "/path1/%2E", "", "", "http://example.com/path1/%2E"}); 620 checkURLDifferences("http://example.com/path1/%2E/", 621 {"http", "", "", "example.com", 0, "/path1/", "", "", "http://example.com/path1/"}, 622 {"http", "", "", "example.com", 0, "/path1/%2E/", "", "", "http://example.com/path1/%2E/"}); 623 checkURLDifferences("http://example.com/path1/path2/%2e?query", 624 {"http", "", "", "example.com", 0, "/path1/path2/", "query", "", "http://example.com/path1/path2/?query"}, 625 {"http", "", "", "example.com", 0, "/path1/path2/%2e", "query", "", "http://example.com/path1/path2/%2e?query"}); 626 checkURLDifferences("http://example.com/path1/path2/%2e%2e?query", 627 {"http", "", "", "example.com", 0, "/path1/", "query", "", "http://example.com/path1/?query"}, 628 {"http", "", "", "example.com", 0, "/path1/path2/%2e%2e", "query", "", "http://example.com/path1/path2/%2e%2e?query"}); 629 checkURLDifferences("http://example.com/path1/path2/%2e#fragment", 630 {"http", "", "", "example.com", 0, "/path1/path2/", "", "fragment", "http://example.com/path1/path2/#fragment"}, 631 {"http", "", "", "example.com", 0, "/path1/path2/%2e", "", "fragment", "http://example.com/path1/path2/%2e#fragment"}); 632 checkURLDifferences("http://example.com/path1/path2/%2e%2e#fragment", 633 {"http", "", "", "example.com", 0, "/path1/", "", "fragment", "http://example.com/path1/#fragment"}, 634 {"http", "", "", "example.com", 0, "/path1/path2/%2e%2e", "", "fragment", "http://example.com/path1/path2/%2e%2e#fragment"}); 599 checkURL("http://example.com/path1/.%2e", {"http", "", "", "example.com", 0, "/path1/.%2e", "", "", "http://example.com/path1/.%2e"}); 600 checkURL("http://example.com/path1/.%2E", {"http", "", "", "example.com", 0, "/path1/.%2E", "", "", "http://example.com/path1/.%2E"}); 601 checkURL("http://example.com/path1/.%2E/", {"http", "", "", "example.com", 0, "/path1/.%2E/", "", "", "http://example.com/path1/.%2E/"}); 602 checkURL("http://example.com/path1/%2e.", {"http", "", "", "example.com", 0, "/path1/%2e.", "", "", "http://example.com/path1/%2e."}); 603 checkURL("http://example.com/path1/%2E%2e", {"http", "", "", "example.com", 0, "/path1/%2E%2e", "", "", "http://example.com/path1/%2E%2e"}); 604 checkURL("http://example.com/path1/%2e", {"http", "", "", "example.com", 0, "/path1/%2e", "", "", "http://example.com/path1/%2e"}); 605 checkURL("http://example.com/path1/%2E", {"http", "", "", "example.com", 0, "/path1/%2E", "", "", "http://example.com/path1/%2E"}); 606 checkURL("http://example.com/path1/%2E/", {"http", "", "", "example.com", 0, "/path1/%2E/", "", "", "http://example.com/path1/%2E/"}); 607 checkURL("http://example.com/path1/path2/%2e?query", {"http", "", "", "example.com", 0, "/path1/path2/%2e", "query", "", "http://example.com/path1/path2/%2e?query"}); 608 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"}); 609 checkURL("http://example.com/path1/path2/%2e#fragment", {"http", "", "", "example.com", 0, "/path1/path2/%2e", "", "fragment", "http://example.com/path1/path2/%2e#fragment"}); 610 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"}); 635 611 checkURLDifferences("file://[0:a:0:0:b:c:0:0]/path", 636 612 {"file", "", "", "[0:a::b:c:0:0]", 0, "/path", "", "", "file://[0:a::b:c:0:0]/path"}, … … 735 711 {"http", "", "", "192.168.0.1", 0, "/", "", "", "http://192.168.0.1/"}, 736 712 {"http", "", "", "0xc0.0250.01", 0, "/", "", "", "http://0xc0.0250.01/"}); 737 checkURLDifferences("http://host/path%2e.%2E", 738 {"http", "", "", "host", 0, "/path...", "", "", "http://host/path..."}, 739 {"http", "", "", "host", 0, "/path%2e.%2E", "", "", "http://host/path%2e.%2E"}); 713 714 checkURL("http://host/path%2e.%2E", {"http", "", "", "host", 0, "/path%2e.%2E", "", "", "http://host/path%2e.%2E"}); 740 715 741 716 checkRelativeURLDifferences(utf16String(u"http://foo:💩@example.com/bar"), "http://other.com/",
Note: See TracChangeset
for help on using the changeset viewer.