Title: [213384] trunk
Revision
213384
Author
[email protected]
Date
2017-03-03 13:50:07 -0800 (Fri, 03 Mar 2017)

Log Message

[URLParser] Fix file: as a relative file URL
https://bugs.webkit.org/show_bug.cgi?id=169122

Reviewed by Tim Horton.

Source/WebCore:

This is clearly defined in https://url.spec.whatwg.org/#file-state with the EOF code point.
I got it wrong and didn't test it.  It's been added to the web platform tests since we last updated.

* platform/URLParser.cpp:
(WebCore::URLParser::parse):

Tools:

* TestWebKitAPI/Tests/WebCore/URLParser.cpp:
(TestWebKitAPI::TEST_F):

LayoutTests:

* TestExpectations:
We don't need to skip url-setters.html any more.  It used to assert before the new URLParser was enabled.
* fast/loader/url-parse-1-expected.txt:
* fast/url/file-expected.txt:
We used to add a strange and unnecessary :/// at the end of the URL.

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (213383 => 213384)


--- trunk/LayoutTests/ChangeLog	2017-03-03 21:38:39 UTC (rev 213383)
+++ trunk/LayoutTests/ChangeLog	2017-03-03 21:50:07 UTC (rev 213384)
@@ -1,3 +1,16 @@
+2017-03-03  Alex Christensen  <[email protected]>
+
+        [URLParser] Fix file: as a relative file URL
+        https://bugs.webkit.org/show_bug.cgi?id=169122
+
+        Reviewed by Tim Horton.
+
+        * TestExpectations:
+        We don't need to skip url-setters.html any more.  It used to assert before the new URLParser was enabled.
+        * fast/loader/url-parse-1-expected.txt:
+        * fast/url/file-expected.txt:
+        We used to add a strange and unnecessary :/// at the end of the URL.
+
 2017-03-03  Ryan Haddad  <[email protected]>
 
         Add Debug flag to TestExpectation for webrtc/audio-peer-connection-webaudio.html.

Modified: trunk/LayoutTests/TestExpectations (213383 => 213384)


--- trunk/LayoutTests/TestExpectations	2017-03-03 21:38:39 UTC (rev 213383)
+++ trunk/LayoutTests/TestExpectations	2017-03-03 21:50:07 UTC (rev 213384)
@@ -314,8 +314,6 @@
 webkit.org/b/168448 imported/w3c/web-platform-tests/resource-timing/rt-shared-resource-in-workers.html [ Pass Failure ]
 imported/w3c/web-platform-tests/resource-timing/test_resource_timing.html [ Pass Failure ]
 
-webkit.org/b/161176 [ Debug ] imported/w3c/web-platform-tests/url/url-setters.html [ Skip ]
-
 webkit.org/b/157068 imported/w3c/web-platform-tests/fetch/nosniff/importscripts.html [ Skip ]
 webkit.org/b/157145 imported/w3c/web-platform-tests/fetch/nosniff/stylesheet.html [ Failure Pass ]
 webkit.org/b/161312 imported/w3c/web-platform-tests/html/semantics/document-metadata/the-link-element/document-without-browsing-context.html [ Failure Pass ]

Modified: trunk/LayoutTests/fast/loader/url-parse-1-expected.txt (213383 => 213384)


--- trunk/LayoutTests/fast/loader/url-parse-1-expected.txt	2017-03-03 21:38:39 UTC (rev 213383)
+++ trunk/LayoutTests/fast/loader/url-parse-1-expected.txt	2017-03-03 21:50:07 UTC (rev 213384)
@@ -9,7 +9,7 @@
 //test	file://test/	test	/
 ///	file:///		/
 ///test	file:///test		/test
-file:	file:///BASE/:///		/
+file:	file:///BASE/		/BASE/
 file:test	file:///BASE/test		/BASE/test
 file:/	file:///		/
 file:/test	file:///test		/test

Modified: trunk/LayoutTests/fast/url/file-expected.txt (213383 => 213384)


--- trunk/LayoutTests/fast/url/file-expected.txt	2017-03-03 21:38:39 UTC (rev 213383)
+++ trunk/LayoutTests/fast/url/file-expected.txt	2017-03-03 21:50:07 UTC (rev 213384)
@@ -5,7 +5,7 @@
 
 FAIL canonicalize('file:c:\\foo\\bar.html') should be file:///C:/foo/bar.html. Was file:///c:/foo/bar.html.
 FAIL canonicalize('  File:c|////foo\\bar.html') should be file:///C:////foo/bar.html. Was file:///c:////foo/bar.html.
-FAIL canonicalize('file:') should be file:///. Was file:///tmp/mock/path:///.
+FAIL canonicalize('file:') should be file:///. Was file:///tmp/mock/path.
 FAIL canonicalize('file:UNChost/path') should be file://unchost/path. Was file:///tmp/mock/UNChost/path.
 FAIL canonicalize('c:\\foo\\bar') should be file:///C:/foo/bar. Was c:\foo\bar.
 PASS canonicalize('C|/foo/bar') is 'file:///C:/foo/bar'

Modified: trunk/Source/WebCore/ChangeLog (213383 => 213384)


--- trunk/Source/WebCore/ChangeLog	2017-03-03 21:38:39 UTC (rev 213383)
+++ trunk/Source/WebCore/ChangeLog	2017-03-03 21:50:07 UTC (rev 213384)
@@ -1,3 +1,16 @@
+2017-03-03  Alex Christensen  <[email protected]>
+
+        [URLParser] Fix file: as a relative file URL
+        https://bugs.webkit.org/show_bug.cgi?id=169122
+
+        Reviewed by Tim Horton.
+
+        This is clearly defined in https://url.spec.whatwg.org/#file-state with the EOF code point.
+        I got it wrong and didn't test it.  It's been added to the web platform tests since we last updated.
+
+        * platform/URLParser.cpp:
+        (WebCore::URLParser::parse):
+
 2017-03-03  Dave Hyatt  <[email protected]>
 
         Enable fieldsets to be flexboxes, grids and multicolumn.

Modified: trunk/Source/WebCore/platform/URLParser.cpp (213383 => 213384)


--- trunk/Source/WebCore/platform/URLParser.cpp	2017-03-03 21:38:39 UTC (rev 213383)
+++ trunk/Source/WebCore/platform/URLParser.cpp	2017-03-03 21:50:07 UTC (rev 213384)
@@ -1907,7 +1907,8 @@
         LOG_FINAL_STATE("File");
         if (base.isValid() && base.protocolIs("file")) {
             copyURLPartsUntil(base, URLPart::QueryEnd, c, isUTF8Encoding);
-            appendToASCIIBuffer(':');
+            m_url.m_fragmentEnd = m_url.m_queryEnd;
+            break;
         }
         syntaxViolation(c);
         appendToASCIIBuffer("///", 3);

Modified: trunk/Tools/ChangeLog (213383 => 213384)


--- trunk/Tools/ChangeLog	2017-03-03 21:38:39 UTC (rev 213383)
+++ trunk/Tools/ChangeLog	2017-03-03 21:50:07 UTC (rev 213384)
@@ -1,3 +1,13 @@
+2017-03-03  Alex Christensen  <[email protected]>
+
+        [URLParser] Fix file: as a relative file URL
+        https://bugs.webkit.org/show_bug.cgi?id=169122
+
+        Reviewed by Tim Horton.
+
+        * TestWebKitAPI/Tests/WebCore/URLParser.cpp:
+        (TestWebKitAPI::TEST_F):
+
 2017-03-02  Myles C. Maxfield  <[email protected]>
 
         Migrate font-stretch to use fixed-point values

Modified: trunk/Tools/TestWebKitAPI/Tests/WebCore/URLParser.cpp (213383 => 213384)


--- trunk/Tools/TestWebKitAPI/Tests/WebCore/URLParser.cpp	2017-03-03 21:38:39 UTC (rev 213383)
+++ trunk/Tools/TestWebKitAPI/Tests/WebCore/URLParser.cpp	2017-03-03 21:50:07 UTC (rev 213384)
@@ -579,6 +579,7 @@
     checkRelativeURL("notspecial://something#", "file:////var//containers//stuff/", {"notspecial", "", "", "something", 0, "", "", "", "notspecial://something#"}, TestTabs::No);
     checkRelativeURL("http://something?", "file:////var//containers//stuff/", {"http", "", "", "something", 0, "/", "", "", "http://something/?"}, TestTabs::No);
     checkRelativeURL("http://something#", "file:////var//containers//stuff/", {"http", "", "", "something", 0, "/", "", "", "http://something/#"}, TestTabs::No);
+    checkRelativeURL("file:", "file:///path?query#fragment", {"file", "", "", "", 0, "/path", "query", "", "file:///path?query"});
 
     // The checking of slashes in SpecialAuthoritySlashes needed to get this to pass contradicts what is in the spec,
     // but it is included in the web platform tests.
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to