Unreviewed, rolling out r206165.
authorachristensen@apple.com <achristensen@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 23 Sep 2016 16:21:19 +0000 (16:21 +0000)
committerachristensen@apple.com <achristensen@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 23 Sep 2016 16:21:19 +0000 (16:21 +0000)
https://bugs.webkit.org/show_bug.cgi?id=162492

needs corresponding API change in bug 162475 (Requested by
alexchristensen on #webkit).

Reverted changeset:

"Non-special URLs should have an opaque origin"
https://bugs.webkit.org/show_bug.cgi?id=162254
http://trac.webkit.org/changeset/206165

Patch by Commit Queue <commit-queue@webkit.org> on 2016-09-23

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@206307 268f45cc-cd09-0410-ab3c-d52691b4dbfc

LayoutTests/ChangeLog
LayoutTests/http/tests/security/postMessage/invalid-origin-throws-exception-expected.txt
LayoutTests/http/tests/security/postMessage/invalid-origin-throws-exception.html
LayoutTests/imported/w3c/ChangeLog
LayoutTests/imported/w3c/web-platform-tests/url/a-element-expected.txt
LayoutTests/imported/w3c/web-platform-tests/url/a-element-xhtml-expected.txt
LayoutTests/imported/w3c/web-platform-tests/url/url-constructor-expected.txt
Source/WebCore/ChangeLog
Source/WebCore/page/SecurityOrigin.cpp

index fad1c90f842f0fac42e960c3b8e828e6bf557328..a09aee5ae16c56d1c61c9e14b969a1593eac63a4 100644 (file)
@@ -1,3 +1,17 @@
+2016-09-23  Commit Queue  <commit-queue@webkit.org>
+
+        Unreviewed, rolling out r206165.
+        https://bugs.webkit.org/show_bug.cgi?id=162492
+
+        needs corresponding API change in bug 162475 (Requested by
+        alexchristensen on #webkit).
+
+        Reverted changeset:
+
+        "Non-special URLs should have an opaque origin"
+        https://bugs.webkit.org/show_bug.cgi?id=162254
+        http://trac.webkit.org/changeset/206165
+
 2016-09-23  Jer Noble  <jer.noble@apple.com>
 
         REGRESSION (206001): Scrubbed video on Youtube stops playing
index f34b329518528e25e511ba5abc1e028bbb5d59cd..b66caaaa1b280fd2e4c646935f69f804897ecf81 100644 (file)
@@ -1,10 +1,12 @@
+CONSOLE MESSAGE: Unable to post message to asdf://. Recipient has origin http://localhost:8000.
+
 window.location.href = http://127.0.0.1:8000/security/postMessage/invalid-origin-throws-exception.html
 waiting...
 Encountered exception SyntaxError (DOM Exception 12): The string did not match the expected pattern. while posting message to ''.
 Encountered exception SyntaxError (DOM Exception 12): The string did not match the expected pattern. while posting message to 'asdf'.
 Encountered exception SyntaxError (DOM Exception 12): The string did not match the expected pattern. while posting message to '/tmp/foo'.
 Encountered exception SyntaxError (DOM Exception 12): The string did not match the expected pattern. while posting message to '//localhost'.
-Encountered exception SyntaxError (DOM Exception 12): The string did not match the expected pattern. while posting message to 'asdf:'.
+Posted message to 'asdf:' without any exceptions.
 Encountered exception SyntaxError (DOM Exception 12): The string did not match the expected pattern. while posting message to 'http:'.
 Received message: data="Received message: data="done" origin="http://127.0.0.1:8000"" origin="http://localhost:8000"
 
index be4e4c96ff225a69672ea1bb0de8f9fd6a7aef0e..b8094849154583b0f42f4f604e3cb3ba5b833cf8 100644 (file)
@@ -29,7 +29,7 @@ function test() {
     tryPostMessage("/tmp/foo");
     tryPostMessage("//localhost");
 
-    // URLs without an origin should fail with a syntax error.
+    // URLs without an origin should fail without generating any errors.
     tryPostMessage("asdf:");
     tryPostMessage("http:");
     
index 68810fde5474cf0d12775fa3aa8c03769b022886..92704652b685fa762c3a3b96124989054ce7774d 100644 (file)
@@ -1,3 +1,17 @@
+2016-09-23  Commit Queue  <commit-queue@webkit.org>
+
+        Unreviewed, rolling out r206165.
+        https://bugs.webkit.org/show_bug.cgi?id=162492
+
+        needs corresponding API change in bug 162475 (Requested by
+        alexchristensen on #webkit).
+
+        Reverted changeset:
+
+        "Non-special URLs should have an opaque origin"
+        https://bugs.webkit.org/show_bug.cgi?id=162254
+        http://trac.webkit.org/changeset/206165
+
 2016-09-22  Chris Dumez  <cdumez@apple.com>
 
         [ShadowDOM] Add support for Node.getRootNode(options)
index 01603be2bbd71769068c4663074ea957b008e4cd..e006a2faafaa4e06b02a3ebd208a76c4eac22442 100644 (file)
@@ -7,7 +7,7 @@ PASS Parsing: <http:foo.com> against <http://example.org/foo/bar>
 PASS Parsing: <           :foo.com   
 > against <http://example.org/foo/bar> 
 PASS Parsing: < foo.com  > against <http://example.org/foo/bar> 
-PASS Parsing: <a:       foo.com> against <http://example.org/foo/bar> 
+FAIL Parsing: <a:       foo.com> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "a://"
 PASS Parsing: <http://f:21/ b ? d # e > against <http://example.org/foo/bar> 
 PASS Parsing: <http://f:/c> against <http://example.org/foo/bar> 
 FAIL Parsing: <http://f:0/c> against <http://example.org/foo/bar> assert_equals: origin expected "http://f:0" but got "http://f"
@@ -48,12 +48,12 @@ PASS Parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar>
 PASS Parsing: <http://foo.com/\@> against <http://example.org/foo/bar> 
 PASS Parsing: <http:\\foo.com\> against <http://example.org/foo/bar> 
 PASS Parsing: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar> 
-PASS Parsing: <foo:/> against <http://example.org/foo/bar> 
-PASS Parsing: <foo:/bar.com/> against <http://example.org/foo/bar> 
-FAIL Parsing: <foo://///////> against <http://example.org/foo/bar> assert_equals: pathname expected "///////" but got "/////////"
-FAIL Parsing: <foo://///////bar.com/> against <http://example.org/foo/bar> assert_equals: pathname expected "///////bar.com/" but got "/////////bar.com/"
-FAIL Parsing: <foo:////://///> against <http://example.org/foo/bar> assert_equals: pathname expected "//://///" but got "////://///"
-PASS Parsing: <c:/foo> against <http://example.org/foo/bar> 
+FAIL Parsing: <foo:/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://"
+FAIL Parsing: <foo:/bar.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://"
+FAIL Parsing: <foo://///////> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://"
+FAIL Parsing: <foo://///////bar.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://"
+FAIL Parsing: <foo:////://///> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://"
+FAIL Parsing: <c:/foo> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "c://"
 PASS Parsing: <//foo/bar> against <http://example.org/foo/bar> 
 PASS Parsing: <http://foo/path;a??e#f#g> against <http://example.org/foo/bar> 
 PASS Parsing: <http://foo/abcd?efgh?ijkl> against <http://example.org/foo/bar> 
@@ -69,33 +69,33 @@ PASS Parsing: <http://[2001::1]:80> against <http://example.org/foo/bar>
 FAIL Parsing: <http:/example.com/> against <http://example.org/foo/bar> assert_equals: href expected "http://example.org/example.com/" but got "http://example.com/"
 PASS Parsing: <ftp:/example.com/> against <http://example.org/foo/bar> 
 PASS Parsing: <https:/example.com/> against <http://example.org/foo/bar> 
-PASS Parsing: <madeupscheme:/example.com/> against <http://example.org/foo/bar> 
+FAIL Parsing: <madeupscheme:/example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "madeupscheme://"
 PASS Parsing: <file:/example.com/> against <http://example.org/foo/bar> 
-PASS Parsing: <ftps:/example.com/> against <http://example.org/foo/bar> 
+FAIL Parsing: <ftps:/example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "ftps://"
 PASS Parsing: <gopher:/example.com/> against <http://example.org/foo/bar> 
 PASS Parsing: <ws:/example.com/> against <http://example.org/foo/bar> 
 PASS Parsing: <wss:/example.com/> against <http://example.org/foo/bar> 
 PASS Parsing: <data:/example.com/> against <http://example.org/foo/bar> 
 PASS Parsing: <javascript:/example.com/> against <http://example.org/foo/bar> 
-PASS Parsing: <mailto:/example.com/> against <http://example.org/foo/bar> 
+FAIL Parsing: <mailto:/example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "mailto://"
 PASS Parsing: <http:example.com/> against <http://example.org/foo/bar> 
 PASS Parsing: <ftp:example.com/> against <http://example.org/foo/bar> 
 PASS Parsing: <https:example.com/> against <http://example.org/foo/bar> 
-PASS Parsing: <madeupscheme:example.com/> against <http://example.org/foo/bar> 
-PASS Parsing: <ftps:example.com/> against <http://example.org/foo/bar> 
+FAIL Parsing: <madeupscheme:example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "madeupscheme://"
+FAIL Parsing: <ftps:example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "ftps://"
 PASS Parsing: <gopher:example.com/> against <http://example.org/foo/bar> 
 PASS Parsing: <ws:example.com/> against <http://example.org/foo/bar> 
 PASS Parsing: <wss:example.com/> against <http://example.org/foo/bar> 
 PASS Parsing: <data:example.com/> against <http://example.org/foo/bar> 
 PASS Parsing: <javascript:example.com/> against <http://example.org/foo/bar> 
-PASS Parsing: <mailto:example.com/> against <http://example.org/foo/bar> 
+FAIL Parsing: <mailto:example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "mailto://"
 PASS Parsing: </a/b/c> against <http://example.org/foo/bar> 
 PASS Parsing: </a/ /c> against <http://example.org/foo/bar> 
 PASS Parsing: </a%2fc> against <http://example.org/foo/bar> 
 PASS Parsing: </a/%2f/c> against <http://example.org/foo/bar> 
 FAIL Parsing: <#β> against <http://example.org/foo/bar> assert_equals: href expected "http://example.org/foo/bar#β" but got "http://example.org/foo/bar#%CE%B2"
 PASS Parsing: <data:text/html,test#test> against <http://example.org/foo/bar> 
-PASS Parsing: <tel:1234567890> against <http://example.org/foo/bar> 
+FAIL Parsing: <tel:1234567890> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "tel://"
 FAIL Parsing: <file:c:\foo\bar.html> against <file:///tmp/mock/path> assert_equals: href expected "file:///c:/foo/bar.html" but got "file:///tmp/mock/c:/foo/bar.html"
 FAIL Parsing: <  File:c|////foo\bar.html> against <file:///tmp/mock/path> assert_equals: href expected "file:///c:////foo/bar.html" but got "file:///tmp/mock/c|////foo/bar.html"
 FAIL Parsing: <C|/foo/bar> against <file:///tmp/mock/path> assert_equals: href expected "file:///C:/foo/bar" but got "file:///tmp/mock/C|/foo/bar"
@@ -164,7 +164,7 @@ PASS Parsing: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank>
 PASS Parsing: <http:\\www.google.com\foo> against <about:blank> 
 PASS Parsing: <http://foo:80/> against <about:blank> 
 PASS Parsing: <http://foo:81/> against <about:blank> 
-PASS Parsing: <httpa://foo:80/> against <about:blank> 
+FAIL Parsing: <httpa://foo:80/> against <about:blank> assert_equals: origin expected "null" but got "httpa://foo:80"
 PASS Parsing: <http://foo:-80/> against <about:blank> 
 PASS Parsing: <https://foo:443/> against <about:blank> 
 PASS Parsing: <https://foo:80/> against <about:blank> 
@@ -183,26 +183,26 @@ PASS Parsing: <wss://foo:815/> against <about:blank>
 PASS Parsing: <http:/example.com/> against <about:blank> 
 PASS Parsing: <ftp:/example.com/> against <about:blank> 
 PASS Parsing: <https:/example.com/> against <about:blank> 
-PASS Parsing: <madeupscheme:/example.com/> against <about:blank> 
+FAIL Parsing: <madeupscheme:/example.com/> against <about:blank> assert_equals: origin expected "null" but got "madeupscheme://"
 PASS Parsing: <file:/example.com/> against <about:blank> 
-PASS Parsing: <ftps:/example.com/> against <about:blank> 
+FAIL Parsing: <ftps:/example.com/> against <about:blank> assert_equals: origin expected "null" but got "ftps://"
 PASS Parsing: <gopher:/example.com/> against <about:blank> 
 PASS Parsing: <ws:/example.com/> against <about:blank> 
 PASS Parsing: <wss:/example.com/> against <about:blank> 
 PASS Parsing: <data:/example.com/> against <about:blank> 
 PASS Parsing: <javascript:/example.com/> against <about:blank> 
-PASS Parsing: <mailto:/example.com/> against <about:blank> 
+FAIL Parsing: <mailto:/example.com/> against <about:blank> assert_equals: origin expected "null" but got "mailto://"
 PASS Parsing: <http:example.com/> against <about:blank> 
 PASS Parsing: <ftp:example.com/> against <about:blank> 
 PASS Parsing: <https:example.com/> against <about:blank> 
-PASS Parsing: <madeupscheme:example.com/> against <about:blank> 
-PASS Parsing: <ftps:example.com/> against <about:blank> 
+FAIL Parsing: <madeupscheme:example.com/> against <about:blank> assert_equals: origin expected "null" but got "madeupscheme://"
+FAIL Parsing: <ftps:example.com/> against <about:blank> assert_equals: origin expected "null" but got "ftps://"
 PASS Parsing: <gopher:example.com/> against <about:blank> 
 PASS Parsing: <ws:example.com/> against <about:blank> 
 PASS Parsing: <wss:example.com/> against <about:blank> 
 PASS Parsing: <data:example.com/> against <about:blank> 
 PASS Parsing: <javascript:example.com/> against <about:blank> 
-PASS Parsing: <mailto:example.com/> against <about:blank> 
+FAIL Parsing: <mailto:example.com/> against <about:blank> assert_equals: origin expected "null" but got "mailto://"
 PASS Parsing: <http:@www.example.com> against <about:blank> 
 PASS Parsing: <http:/@www.example.com> against <about:blank> 
 PASS Parsing: <http://@www.example.com> against <about:blank> 
@@ -273,11 +273,11 @@ PASS Parsing: <http://192.168.0.1 hello> against <http://other.com/>
 FAIL Parsing: <http://0Xc0.0250.01> against <http://other.com/> assert_equals: href expected "http://192.168.0.1/" but got "http://0xc0.0250.01/"
 PASS Parsing: <http://[google.com]> against <http://other.com/> 
 FAIL Parsing: <http://foo:💩@example.com/bar> against <http://other.com/> assert_equals: href expected "http://foo:%F0%9F%92%A9@example.com/bar" but got "http://foo:💩@example.com/bar"
-PASS Parsing: <#> against <test:test> 
-PASS Parsing: <#x> against <mailto:x@x.com> 
+FAIL Parsing: <#> against <test:test> assert_equals: origin expected "null" but got "test://"
+FAIL Parsing: <#x> against <mailto:x@x.com> assert_equals: origin expected "null" but got "mailto://"
 PASS Parsing: <#x> against <data:,> 
 PASS Parsing: <#x> against <about:blank> 
-PASS Parsing: <#> against <test:test?test> 
+FAIL Parsing: <#> against <test:test?test> assert_equals: origin expected "null" but got "test://"
 FAIL Parsing: <https://@test@test@example:800/> against <http://doesnotmatter/> assert_equals: href expected "https://%40test%40test@example:800/" but got "https://@test@test@example:800/"
 FAIL Parsing: <https://@@@example> against <http://doesnotmatter/> assert_equals: href expected "https://%40%40@example/" but got "https://@@@example"
 FAIL Parsing: <http://`{}:`{}@h/`{}?`{}> against <http://doesnotmatter/> assert_equals: href expected "http://%60%7B%7D:%60%7B%7D@h/%60%7B%7D?`{}" but got "http://`{}:`{}@h/`{}?`{}"
@@ -286,36 +286,36 @@ PASS Parsing: <> against <http://user:pass@example.org:21/smth>
 PASS Parsing: </some/path> against <http://user:pass@example.org:21/smth> 
 PASS Parsing: <i> against <sc:sd> 
 PASS Parsing: <i> against <sc:sd/sd> 
-PASS Parsing: <i> against <sc:/pa/pa> 
-PASS Parsing: <i> against <sc://ho/pa> 
-FAIL Parsing: <i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/i" but got "///pa/i"
+FAIL Parsing: <i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://"
+FAIL Parsing: <i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://ho"
+FAIL Parsing: <i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://"
 PASS Parsing: <../i> against <sc:sd> 
 PASS Parsing: <../i> against <sc:sd/sd> 
-PASS Parsing: <../i> against <sc:/pa/pa> 
-PASS Parsing: <../i> against <sc://ho/pa> 
-FAIL Parsing: <../i> against <sc:///pa/pa> assert_equals: pathname expected "/i" but got "///i"
+FAIL Parsing: <../i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://"
+FAIL Parsing: <../i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://ho"
+FAIL Parsing: <../i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://"
 PASS Parsing: </i> against <sc:sd> 
 PASS Parsing: </i> against <sc:sd/sd> 
-PASS Parsing: </i> against <sc:/pa/pa> 
-PASS Parsing: </i> against <sc://ho/pa> 
+FAIL Parsing: </i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://"
+FAIL Parsing: </i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://ho"
 FAIL Parsing: </i> against <sc:///pa/pa> assert_equals: href expected "sc:///i" but got "sc:/i"
 PASS Parsing: <?i> against <sc:sd> 
 PASS Parsing: <?i> against <sc:sd/sd> 
-PASS Parsing: <?i> against <sc:/pa/pa> 
-PASS Parsing: <?i> against <sc://ho/pa> 
-FAIL Parsing: <?i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/pa" but got "///pa/pa"
-PASS Parsing: <#i> against <sc:sd> 
-PASS Parsing: <#i> against <sc:sd/sd> 
-PASS Parsing: <#i> against <sc:/pa/pa> 
-PASS Parsing: <#i> against <sc://ho/pa> 
-FAIL Parsing: <#i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/pa" but got "///pa/pa"
+FAIL Parsing: <?i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://"
+FAIL Parsing: <?i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://ho"
+FAIL Parsing: <?i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://"
+FAIL Parsing: <#i> against <sc:sd> assert_equals: origin expected "null" but got "sc://"
+FAIL Parsing: <#i> against <sc:sd/sd> assert_equals: origin expected "null" but got "sc://"
+FAIL Parsing: <#i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://"
+FAIL Parsing: <#i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://ho"
+FAIL Parsing: <#i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://"
 PASS Parsing: <about:/../> against <about:blank> 
 PASS Parsing: <data:/../> against <about:blank> 
 PASS Parsing: <javascript:/../> against <about:blank> 
-PASS Parsing: <mailto:/../> against <about:blank> 
-PASS Parsing: <sc://ñ.test/> against <about:blank> 
+FAIL Parsing: <mailto:/../> against <about:blank> assert_equals: origin expected "null" but got "mailto://"
+FAIL Parsing: <sc://ñ.test/> against <about:blank> assert_equals: origin expected "null" but got "sc://xn--ida.test"
 FAIL Parsing: <sc:\../> against <about:blank> assert_equals: href expected "sc:\\../" but got "sc:/"
-PASS Parsing: <sc::a@example.net> against <about:blank> 
+FAIL Parsing: <sc::a@example.net> against <about:blank> assert_equals: origin expected "null" but got "sc://"
 PASS Parsing: <http://127.0.0.1:10100/relative_import.html> against <about:blank> 
 PASS Parsing: <http://facebook.com/?foo=%7B%22abc%22> against <about:blank> 
 PASS Parsing: <https://localhost:3000/jqueryui@1.2.3> against <about:blank> 
@@ -336,5 +336,5 @@ PASS Parsing: <?a=b&c=d> against <http://example.org/foo/bar>
 PASS Parsing: <??a=b&c=d> against <http://example.org/foo/bar> 
 PASS Parsing: <http:> against <http://example.org/foo/bar> 
 FAIL Parsing: <http:> against <https://example.org/foo/bar> assert_unreached: Expected URL to fail parsing Reached unreachable code
-PASS Parsing: <sc:> against <https://example.org/foo/bar> 
+FAIL Parsing: <sc:> against <https://example.org/foo/bar> assert_equals: origin expected "null" but got "sc://"
 
index 01603be2bbd71769068c4663074ea957b008e4cd..e006a2faafaa4e06b02a3ebd208a76c4eac22442 100644 (file)
@@ -7,7 +7,7 @@ PASS Parsing: <http:foo.com> against <http://example.org/foo/bar>
 PASS Parsing: <           :foo.com   
 > against <http://example.org/foo/bar> 
 PASS Parsing: < foo.com  > against <http://example.org/foo/bar> 
-PASS Parsing: <a:       foo.com> against <http://example.org/foo/bar> 
+FAIL Parsing: <a:       foo.com> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "a://"
 PASS Parsing: <http://f:21/ b ? d # e > against <http://example.org/foo/bar> 
 PASS Parsing: <http://f:/c> against <http://example.org/foo/bar> 
 FAIL Parsing: <http://f:0/c> against <http://example.org/foo/bar> assert_equals: origin expected "http://f:0" but got "http://f"
@@ -48,12 +48,12 @@ PASS Parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar>
 PASS Parsing: <http://foo.com/\@> against <http://example.org/foo/bar> 
 PASS Parsing: <http:\\foo.com\> against <http://example.org/foo/bar> 
 PASS Parsing: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar> 
-PASS Parsing: <foo:/> against <http://example.org/foo/bar> 
-PASS Parsing: <foo:/bar.com/> against <http://example.org/foo/bar> 
-FAIL Parsing: <foo://///////> against <http://example.org/foo/bar> assert_equals: pathname expected "///////" but got "/////////"
-FAIL Parsing: <foo://///////bar.com/> against <http://example.org/foo/bar> assert_equals: pathname expected "///////bar.com/" but got "/////////bar.com/"
-FAIL Parsing: <foo:////://///> against <http://example.org/foo/bar> assert_equals: pathname expected "//://///" but got "////://///"
-PASS Parsing: <c:/foo> against <http://example.org/foo/bar> 
+FAIL Parsing: <foo:/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://"
+FAIL Parsing: <foo:/bar.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://"
+FAIL Parsing: <foo://///////> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://"
+FAIL Parsing: <foo://///////bar.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://"
+FAIL Parsing: <foo:////://///> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://"
+FAIL Parsing: <c:/foo> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "c://"
 PASS Parsing: <//foo/bar> against <http://example.org/foo/bar> 
 PASS Parsing: <http://foo/path;a??e#f#g> against <http://example.org/foo/bar> 
 PASS Parsing: <http://foo/abcd?efgh?ijkl> against <http://example.org/foo/bar> 
@@ -69,33 +69,33 @@ PASS Parsing: <http://[2001::1]:80> against <http://example.org/foo/bar>
 FAIL Parsing: <http:/example.com/> against <http://example.org/foo/bar> assert_equals: href expected "http://example.org/example.com/" but got "http://example.com/"
 PASS Parsing: <ftp:/example.com/> against <http://example.org/foo/bar> 
 PASS Parsing: <https:/example.com/> against <http://example.org/foo/bar> 
-PASS Parsing: <madeupscheme:/example.com/> against <http://example.org/foo/bar> 
+FAIL Parsing: <madeupscheme:/example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "madeupscheme://"
 PASS Parsing: <file:/example.com/> against <http://example.org/foo/bar> 
-PASS Parsing: <ftps:/example.com/> against <http://example.org/foo/bar> 
+FAIL Parsing: <ftps:/example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "ftps://"
 PASS Parsing: <gopher:/example.com/> against <http://example.org/foo/bar> 
 PASS Parsing: <ws:/example.com/> against <http://example.org/foo/bar> 
 PASS Parsing: <wss:/example.com/> against <http://example.org/foo/bar> 
 PASS Parsing: <data:/example.com/> against <http://example.org/foo/bar> 
 PASS Parsing: <javascript:/example.com/> against <http://example.org/foo/bar> 
-PASS Parsing: <mailto:/example.com/> against <http://example.org/foo/bar> 
+FAIL Parsing: <mailto:/example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "mailto://"
 PASS Parsing: <http:example.com/> against <http://example.org/foo/bar> 
 PASS Parsing: <ftp:example.com/> against <http://example.org/foo/bar> 
 PASS Parsing: <https:example.com/> against <http://example.org/foo/bar> 
-PASS Parsing: <madeupscheme:example.com/> against <http://example.org/foo/bar> 
-PASS Parsing: <ftps:example.com/> against <http://example.org/foo/bar> 
+FAIL Parsing: <madeupscheme:example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "madeupscheme://"
+FAIL Parsing: <ftps:example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "ftps://"
 PASS Parsing: <gopher:example.com/> against <http://example.org/foo/bar> 
 PASS Parsing: <ws:example.com/> against <http://example.org/foo/bar> 
 PASS Parsing: <wss:example.com/> against <http://example.org/foo/bar> 
 PASS Parsing: <data:example.com/> against <http://example.org/foo/bar> 
 PASS Parsing: <javascript:example.com/> against <http://example.org/foo/bar> 
-PASS Parsing: <mailto:example.com/> against <http://example.org/foo/bar> 
+FAIL Parsing: <mailto:example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "mailto://"
 PASS Parsing: </a/b/c> against <http://example.org/foo/bar> 
 PASS Parsing: </a/ /c> against <http://example.org/foo/bar> 
 PASS Parsing: </a%2fc> against <http://example.org/foo/bar> 
 PASS Parsing: </a/%2f/c> against <http://example.org/foo/bar> 
 FAIL Parsing: <#β> against <http://example.org/foo/bar> assert_equals: href expected "http://example.org/foo/bar#β" but got "http://example.org/foo/bar#%CE%B2"
 PASS Parsing: <data:text/html,test#test> against <http://example.org/foo/bar> 
-PASS Parsing: <tel:1234567890> against <http://example.org/foo/bar> 
+FAIL Parsing: <tel:1234567890> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "tel://"
 FAIL Parsing: <file:c:\foo\bar.html> against <file:///tmp/mock/path> assert_equals: href expected "file:///c:/foo/bar.html" but got "file:///tmp/mock/c:/foo/bar.html"
 FAIL Parsing: <  File:c|////foo\bar.html> against <file:///tmp/mock/path> assert_equals: href expected "file:///c:////foo/bar.html" but got "file:///tmp/mock/c|////foo/bar.html"
 FAIL Parsing: <C|/foo/bar> against <file:///tmp/mock/path> assert_equals: href expected "file:///C:/foo/bar" but got "file:///tmp/mock/C|/foo/bar"
@@ -164,7 +164,7 @@ PASS Parsing: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank>
 PASS Parsing: <http:\\www.google.com\foo> against <about:blank> 
 PASS Parsing: <http://foo:80/> against <about:blank> 
 PASS Parsing: <http://foo:81/> against <about:blank> 
-PASS Parsing: <httpa://foo:80/> against <about:blank> 
+FAIL Parsing: <httpa://foo:80/> against <about:blank> assert_equals: origin expected "null" but got "httpa://foo:80"
 PASS Parsing: <http://foo:-80/> against <about:blank> 
 PASS Parsing: <https://foo:443/> against <about:blank> 
 PASS Parsing: <https://foo:80/> against <about:blank> 
@@ -183,26 +183,26 @@ PASS Parsing: <wss://foo:815/> against <about:blank>
 PASS Parsing: <http:/example.com/> against <about:blank> 
 PASS Parsing: <ftp:/example.com/> against <about:blank> 
 PASS Parsing: <https:/example.com/> against <about:blank> 
-PASS Parsing: <madeupscheme:/example.com/> against <about:blank> 
+FAIL Parsing: <madeupscheme:/example.com/> against <about:blank> assert_equals: origin expected "null" but got "madeupscheme://"
 PASS Parsing: <file:/example.com/> against <about:blank> 
-PASS Parsing: <ftps:/example.com/> against <about:blank> 
+FAIL Parsing: <ftps:/example.com/> against <about:blank> assert_equals: origin expected "null" but got "ftps://"
 PASS Parsing: <gopher:/example.com/> against <about:blank> 
 PASS Parsing: <ws:/example.com/> against <about:blank> 
 PASS Parsing: <wss:/example.com/> against <about:blank> 
 PASS Parsing: <data:/example.com/> against <about:blank> 
 PASS Parsing: <javascript:/example.com/> against <about:blank> 
-PASS Parsing: <mailto:/example.com/> against <about:blank> 
+FAIL Parsing: <mailto:/example.com/> against <about:blank> assert_equals: origin expected "null" but got "mailto://"
 PASS Parsing: <http:example.com/> against <about:blank> 
 PASS Parsing: <ftp:example.com/> against <about:blank> 
 PASS Parsing: <https:example.com/> against <about:blank> 
-PASS Parsing: <madeupscheme:example.com/> against <about:blank> 
-PASS Parsing: <ftps:example.com/> against <about:blank> 
+FAIL Parsing: <madeupscheme:example.com/> against <about:blank> assert_equals: origin expected "null" but got "madeupscheme://"
+FAIL Parsing: <ftps:example.com/> against <about:blank> assert_equals: origin expected "null" but got "ftps://"
 PASS Parsing: <gopher:example.com/> against <about:blank> 
 PASS Parsing: <ws:example.com/> against <about:blank> 
 PASS Parsing: <wss:example.com/> against <about:blank> 
 PASS Parsing: <data:example.com/> against <about:blank> 
 PASS Parsing: <javascript:example.com/> against <about:blank> 
-PASS Parsing: <mailto:example.com/> against <about:blank> 
+FAIL Parsing: <mailto:example.com/> against <about:blank> assert_equals: origin expected "null" but got "mailto://"
 PASS Parsing: <http:@www.example.com> against <about:blank> 
 PASS Parsing: <http:/@www.example.com> against <about:blank> 
 PASS Parsing: <http://@www.example.com> against <about:blank> 
@@ -273,11 +273,11 @@ PASS Parsing: <http://192.168.0.1 hello> against <http://other.com/>
 FAIL Parsing: <http://0Xc0.0250.01> against <http://other.com/> assert_equals: href expected "http://192.168.0.1/" but got "http://0xc0.0250.01/"
 PASS Parsing: <http://[google.com]> against <http://other.com/> 
 FAIL Parsing: <http://foo:💩@example.com/bar> against <http://other.com/> assert_equals: href expected "http://foo:%F0%9F%92%A9@example.com/bar" but got "http://foo:💩@example.com/bar"
-PASS Parsing: <#> against <test:test> 
-PASS Parsing: <#x> against <mailto:x@x.com> 
+FAIL Parsing: <#> against <test:test> assert_equals: origin expected "null" but got "test://"
+FAIL Parsing: <#x> against <mailto:x@x.com> assert_equals: origin expected "null" but got "mailto://"
 PASS Parsing: <#x> against <data:,> 
 PASS Parsing: <#x> against <about:blank> 
-PASS Parsing: <#> against <test:test?test> 
+FAIL Parsing: <#> against <test:test?test> assert_equals: origin expected "null" but got "test://"
 FAIL Parsing: <https://@test@test@example:800/> against <http://doesnotmatter/> assert_equals: href expected "https://%40test%40test@example:800/" but got "https://@test@test@example:800/"
 FAIL Parsing: <https://@@@example> against <http://doesnotmatter/> assert_equals: href expected "https://%40%40@example/" but got "https://@@@example"
 FAIL Parsing: <http://`{}:`{}@h/`{}?`{}> against <http://doesnotmatter/> assert_equals: href expected "http://%60%7B%7D:%60%7B%7D@h/%60%7B%7D?`{}" but got "http://`{}:`{}@h/`{}?`{}"
@@ -286,36 +286,36 @@ PASS Parsing: <> against <http://user:pass@example.org:21/smth>
 PASS Parsing: </some/path> against <http://user:pass@example.org:21/smth> 
 PASS Parsing: <i> against <sc:sd> 
 PASS Parsing: <i> against <sc:sd/sd> 
-PASS Parsing: <i> against <sc:/pa/pa> 
-PASS Parsing: <i> against <sc://ho/pa> 
-FAIL Parsing: <i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/i" but got "///pa/i"
+FAIL Parsing: <i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://"
+FAIL Parsing: <i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://ho"
+FAIL Parsing: <i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://"
 PASS Parsing: <../i> against <sc:sd> 
 PASS Parsing: <../i> against <sc:sd/sd> 
-PASS Parsing: <../i> against <sc:/pa/pa> 
-PASS Parsing: <../i> against <sc://ho/pa> 
-FAIL Parsing: <../i> against <sc:///pa/pa> assert_equals: pathname expected "/i" but got "///i"
+FAIL Parsing: <../i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://"
+FAIL Parsing: <../i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://ho"
+FAIL Parsing: <../i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://"
 PASS Parsing: </i> against <sc:sd> 
 PASS Parsing: </i> against <sc:sd/sd> 
-PASS Parsing: </i> against <sc:/pa/pa> 
-PASS Parsing: </i> against <sc://ho/pa> 
+FAIL Parsing: </i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://"
+FAIL Parsing: </i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://ho"
 FAIL Parsing: </i> against <sc:///pa/pa> assert_equals: href expected "sc:///i" but got "sc:/i"
 PASS Parsing: <?i> against <sc:sd> 
 PASS Parsing: <?i> against <sc:sd/sd> 
-PASS Parsing: <?i> against <sc:/pa/pa> 
-PASS Parsing: <?i> against <sc://ho/pa> 
-FAIL Parsing: <?i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/pa" but got "///pa/pa"
-PASS Parsing: <#i> against <sc:sd> 
-PASS Parsing: <#i> against <sc:sd/sd> 
-PASS Parsing: <#i> against <sc:/pa/pa> 
-PASS Parsing: <#i> against <sc://ho/pa> 
-FAIL Parsing: <#i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/pa" but got "///pa/pa"
+FAIL Parsing: <?i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://"
+FAIL Parsing: <?i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://ho"
+FAIL Parsing: <?i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://"
+FAIL Parsing: <#i> against <sc:sd> assert_equals: origin expected "null" but got "sc://"
+FAIL Parsing: <#i> against <sc:sd/sd> assert_equals: origin expected "null" but got "sc://"
+FAIL Parsing: <#i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://"
+FAIL Parsing: <#i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://ho"
+FAIL Parsing: <#i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://"
 PASS Parsing: <about:/../> against <about:blank> 
 PASS Parsing: <data:/../> against <about:blank> 
 PASS Parsing: <javascript:/../> against <about:blank> 
-PASS Parsing: <mailto:/../> against <about:blank> 
-PASS Parsing: <sc://ñ.test/> against <about:blank> 
+FAIL Parsing: <mailto:/../> against <about:blank> assert_equals: origin expected "null" but got "mailto://"
+FAIL Parsing: <sc://ñ.test/> against <about:blank> assert_equals: origin expected "null" but got "sc://xn--ida.test"
 FAIL Parsing: <sc:\../> against <about:blank> assert_equals: href expected "sc:\\../" but got "sc:/"
-PASS Parsing: <sc::a@example.net> against <about:blank> 
+FAIL Parsing: <sc::a@example.net> against <about:blank> assert_equals: origin expected "null" but got "sc://"
 PASS Parsing: <http://127.0.0.1:10100/relative_import.html> against <about:blank> 
 PASS Parsing: <http://facebook.com/?foo=%7B%22abc%22> against <about:blank> 
 PASS Parsing: <https://localhost:3000/jqueryui@1.2.3> against <about:blank> 
@@ -336,5 +336,5 @@ PASS Parsing: <?a=b&c=d> against <http://example.org/foo/bar>
 PASS Parsing: <??a=b&c=d> against <http://example.org/foo/bar> 
 PASS Parsing: <http:> against <http://example.org/foo/bar> 
 FAIL Parsing: <http:> against <https://example.org/foo/bar> assert_unreached: Expected URL to fail parsing Reached unreachable code
-PASS Parsing: <sc:> against <https://example.org/foo/bar> 
+FAIL Parsing: <sc:> against <https://example.org/foo/bar> assert_equals: origin expected "null" but got "sc://"
 
index 38c559a67bcb83459cda9fca6be52fcc9fcf3cd8..08dabc4f9939d17ee5ce7fdaf2f8dc4fc0d586cf 100644 (file)
@@ -11,7 +11,7 @@ PASS Parsing: <http:foo.com> against <http://example.org/foo/bar>
 PASS Parsing: <           :foo.com   
 > against <http://example.org/foo/bar> 
 PASS Parsing: < foo.com  > against <http://example.org/foo/bar> 
-PASS Parsing: <a:       foo.com> against <http://example.org/foo/bar> 
+FAIL Parsing: <a:       foo.com> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "a://"
 PASS Parsing: <http://f:21/ b ? d # e > against <http://example.org/foo/bar> 
 PASS Parsing: <http://f:/c> against <http://example.org/foo/bar> 
 FAIL Parsing: <http://f:0/c> against <http://example.org/foo/bar> assert_equals: origin expected "http://f:0" but got "http://f"
@@ -53,12 +53,12 @@ PASS Parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar>
 PASS Parsing: <http://foo.com/\@> against <http://example.org/foo/bar> 
 PASS Parsing: <http:\\foo.com\> against <http://example.org/foo/bar> 
 PASS Parsing: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar> 
-PASS Parsing: <foo:/> against <http://example.org/foo/bar> 
-PASS Parsing: <foo:/bar.com/> against <http://example.org/foo/bar> 
-FAIL Parsing: <foo://///////> against <http://example.org/foo/bar> assert_equals: pathname expected "///////" but got "/////////"
-FAIL Parsing: <foo://///////bar.com/> against <http://example.org/foo/bar> assert_equals: pathname expected "///////bar.com/" but got "/////////bar.com/"
-FAIL Parsing: <foo:////://///> against <http://example.org/foo/bar> assert_equals: pathname expected "//://///" but got "////://///"
-PASS Parsing: <c:/foo> against <http://example.org/foo/bar> 
+FAIL Parsing: <foo:/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://"
+FAIL Parsing: <foo:/bar.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://"
+FAIL Parsing: <foo://///////> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://"
+FAIL Parsing: <foo://///////bar.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://"
+FAIL Parsing: <foo:////://///> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://"
+FAIL Parsing: <c:/foo> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "c://"
 PASS Parsing: <//foo/bar> against <http://example.org/foo/bar> 
 PASS Parsing: <http://foo/path;a??e#f#g> against <http://example.org/foo/bar> 
 PASS Parsing: <http://foo/abcd?efgh?ijkl> against <http://example.org/foo/bar> 
@@ -74,33 +74,33 @@ PASS Parsing: <http://[2001::1]:80> against <http://example.org/foo/bar>
 FAIL Parsing: <http:/example.com/> against <http://example.org/foo/bar> assert_equals: href expected "http://example.org/example.com/" but got "http://example.com/"
 PASS Parsing: <ftp:/example.com/> against <http://example.org/foo/bar> 
 PASS Parsing: <https:/example.com/> against <http://example.org/foo/bar> 
-PASS Parsing: <madeupscheme:/example.com/> against <http://example.org/foo/bar> 
+FAIL Parsing: <madeupscheme:/example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "madeupscheme://"
 PASS Parsing: <file:/example.com/> against <http://example.org/foo/bar> 
-PASS Parsing: <ftps:/example.com/> against <http://example.org/foo/bar> 
+FAIL Parsing: <ftps:/example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "ftps://"
 PASS Parsing: <gopher:/example.com/> against <http://example.org/foo/bar> 
 PASS Parsing: <ws:/example.com/> against <http://example.org/foo/bar> 
 PASS Parsing: <wss:/example.com/> against <http://example.org/foo/bar> 
 PASS Parsing: <data:/example.com/> against <http://example.org/foo/bar> 
 PASS Parsing: <javascript:/example.com/> against <http://example.org/foo/bar> 
-PASS Parsing: <mailto:/example.com/> against <http://example.org/foo/bar> 
+FAIL Parsing: <mailto:/example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "mailto://"
 PASS Parsing: <http:example.com/> against <http://example.org/foo/bar> 
 PASS Parsing: <ftp:example.com/> against <http://example.org/foo/bar> 
 PASS Parsing: <https:example.com/> against <http://example.org/foo/bar> 
-PASS Parsing: <madeupscheme:example.com/> against <http://example.org/foo/bar> 
-PASS Parsing: <ftps:example.com/> against <http://example.org/foo/bar> 
+FAIL Parsing: <madeupscheme:example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "madeupscheme://"
+FAIL Parsing: <ftps:example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "ftps://"
 PASS Parsing: <gopher:example.com/> against <http://example.org/foo/bar> 
 PASS Parsing: <ws:example.com/> against <http://example.org/foo/bar> 
 PASS Parsing: <wss:example.com/> against <http://example.org/foo/bar> 
 PASS Parsing: <data:example.com/> against <http://example.org/foo/bar> 
 PASS Parsing: <javascript:example.com/> against <http://example.org/foo/bar> 
-PASS Parsing: <mailto:example.com/> against <http://example.org/foo/bar> 
+FAIL Parsing: <mailto:example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "mailto://"
 PASS Parsing: </a/b/c> against <http://example.org/foo/bar> 
 PASS Parsing: </a/ /c> against <http://example.org/foo/bar> 
 PASS Parsing: </a%2fc> against <http://example.org/foo/bar> 
 PASS Parsing: </a/%2f/c> against <http://example.org/foo/bar> 
 FAIL Parsing: <#β> against <http://example.org/foo/bar> assert_equals: href expected "http://example.org/foo/bar#β" but got "http://example.org/foo/bar#%CE%B2"
 PASS Parsing: <data:text/html,test#test> against <http://example.org/foo/bar> 
-PASS Parsing: <tel:1234567890> against <http://example.org/foo/bar> 
+FAIL Parsing: <tel:1234567890> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "tel://"
 FAIL Parsing: <file:c:\foo\bar.html> against <file:///tmp/mock/path> assert_equals: href expected "file:///c:/foo/bar.html" but got "file:///tmp/mock/c:/foo/bar.html"
 FAIL Parsing: <  File:c|////foo\bar.html> against <file:///tmp/mock/path> assert_equals: href expected "file:///c:////foo/bar.html" but got "file:///tmp/mock/c|////foo/bar.html"
 FAIL Parsing: <C|/foo/bar> against <file:///tmp/mock/path> assert_equals: href expected "file:///C:/foo/bar" but got "file:///tmp/mock/C|/foo/bar"
@@ -169,7 +169,7 @@ PASS Parsing: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank>
 PASS Parsing: <http:\\www.google.com\foo> against <about:blank> 
 PASS Parsing: <http://foo:80/> against <about:blank> 
 PASS Parsing: <http://foo:81/> against <about:blank> 
-PASS Parsing: <httpa://foo:80/> against <about:blank> 
+FAIL Parsing: <httpa://foo:80/> against <about:blank> assert_equals: origin expected "null" but got "httpa://foo:80"
 PASS Parsing: <http://foo:-80/> against <about:blank> 
 PASS Parsing: <https://foo:443/> against <about:blank> 
 PASS Parsing: <https://foo:80/> against <about:blank> 
@@ -188,26 +188,26 @@ PASS Parsing: <wss://foo:815/> against <about:blank>
 PASS Parsing: <http:/example.com/> against <about:blank> 
 PASS Parsing: <ftp:/example.com/> against <about:blank> 
 PASS Parsing: <https:/example.com/> against <about:blank> 
-PASS Parsing: <madeupscheme:/example.com/> against <about:blank> 
+FAIL Parsing: <madeupscheme:/example.com/> against <about:blank> assert_equals: origin expected "null" but got "madeupscheme://"
 PASS Parsing: <file:/example.com/> against <about:blank> 
-PASS Parsing: <ftps:/example.com/> against <about:blank> 
+FAIL Parsing: <ftps:/example.com/> against <about:blank> assert_equals: origin expected "null" but got "ftps://"
 PASS Parsing: <gopher:/example.com/> against <about:blank> 
 PASS Parsing: <ws:/example.com/> against <about:blank> 
 PASS Parsing: <wss:/example.com/> against <about:blank> 
 PASS Parsing: <data:/example.com/> against <about:blank> 
 PASS Parsing: <javascript:/example.com/> against <about:blank> 
-PASS Parsing: <mailto:/example.com/> against <about:blank> 
+FAIL Parsing: <mailto:/example.com/> against <about:blank> assert_equals: origin expected "null" but got "mailto://"
 PASS Parsing: <http:example.com/> against <about:blank> 
 PASS Parsing: <ftp:example.com/> against <about:blank> 
 PASS Parsing: <https:example.com/> against <about:blank> 
-PASS Parsing: <madeupscheme:example.com/> against <about:blank> 
-PASS Parsing: <ftps:example.com/> against <about:blank> 
+FAIL Parsing: <madeupscheme:example.com/> against <about:blank> assert_equals: origin expected "null" but got "madeupscheme://"
+FAIL Parsing: <ftps:example.com/> against <about:blank> assert_equals: origin expected "null" but got "ftps://"
 PASS Parsing: <gopher:example.com/> against <about:blank> 
 PASS Parsing: <ws:example.com/> against <about:blank> 
 PASS Parsing: <wss:example.com/> against <about:blank> 
 PASS Parsing: <data:example.com/> against <about:blank> 
 PASS Parsing: <javascript:example.com/> against <about:blank> 
-PASS Parsing: <mailto:example.com/> against <about:blank> 
+FAIL Parsing: <mailto:example.com/> against <about:blank> assert_equals: origin expected "null" but got "mailto://"
 PASS Parsing: <http:@www.example.com> against <about:blank> 
 PASS Parsing: <http:/@www.example.com> against <about:blank> 
 PASS Parsing: <http://@www.example.com> against <about:blank> 
@@ -290,11 +290,11 @@ PASS Parsing: <http://192.168.0.1 hello> against <http://other.com/>
 FAIL Parsing: <http://0Xc0.0250.01> against <http://other.com/> assert_equals: href expected "http://192.168.0.1/" but got "http://0xc0.0250.01/"
 PASS Parsing: <http://[google.com]> against <http://other.com/> 
 FAIL Parsing: <http://foo:💩@example.com/bar> against <http://other.com/> Type error
-PASS Parsing: <#> against <test:test> 
-PASS Parsing: <#x> against <mailto:x@x.com> 
+FAIL Parsing: <#> against <test:test> assert_equals: origin expected "null" but got "test://"
+FAIL Parsing: <#x> against <mailto:x@x.com> assert_equals: origin expected "null" but got "mailto://"
 PASS Parsing: <#x> against <data:,> 
 PASS Parsing: <#x> against <about:blank> 
-PASS Parsing: <#> against <test:test?test> 
+FAIL Parsing: <#> against <test:test?test> assert_equals: origin expected "null" but got "test://"
 FAIL Parsing: <https://@test@test@example:800/> against <http://doesnotmatter/> Type error
 FAIL Parsing: <https://@@@example> against <http://doesnotmatter/> Type error
 FAIL Parsing: <http://`{}:`{}@h/`{}?`{}> against <http://doesnotmatter/> Type error
@@ -303,36 +303,36 @@ PASS Parsing: <> against <http://user:pass@example.org:21/smth>
 PASS Parsing: </some/path> against <http://user:pass@example.org:21/smth> 
 PASS Parsing: <i> against <sc:sd> 
 PASS Parsing: <i> against <sc:sd/sd> 
-PASS Parsing: <i> against <sc:/pa/pa> 
-PASS Parsing: <i> against <sc://ho/pa> 
-FAIL Parsing: <i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/i" but got "///pa/i"
+FAIL Parsing: <i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://"
+FAIL Parsing: <i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://ho"
+FAIL Parsing: <i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://"
 PASS Parsing: <../i> against <sc:sd> 
 PASS Parsing: <../i> against <sc:sd/sd> 
-PASS Parsing: <../i> against <sc:/pa/pa> 
-PASS Parsing: <../i> against <sc://ho/pa> 
-FAIL Parsing: <../i> against <sc:///pa/pa> assert_equals: pathname expected "/i" but got "///i"
+FAIL Parsing: <../i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://"
+FAIL Parsing: <../i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://ho"
+FAIL Parsing: <../i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://"
 PASS Parsing: </i> against <sc:sd> 
 PASS Parsing: </i> against <sc:sd/sd> 
-PASS Parsing: </i> against <sc:/pa/pa> 
-PASS Parsing: </i> against <sc://ho/pa> 
+FAIL Parsing: </i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://"
+FAIL Parsing: </i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://ho"
 FAIL Parsing: </i> against <sc:///pa/pa> assert_equals: href expected "sc:///i" but got "sc:/i"
 PASS Parsing: <?i> against <sc:sd> 
 PASS Parsing: <?i> against <sc:sd/sd> 
-PASS Parsing: <?i> against <sc:/pa/pa> 
-PASS Parsing: <?i> against <sc://ho/pa> 
-FAIL Parsing: <?i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/pa" but got "///pa/pa"
-PASS Parsing: <#i> against <sc:sd> 
-PASS Parsing: <#i> against <sc:sd/sd> 
-PASS Parsing: <#i> against <sc:/pa/pa> 
-PASS Parsing: <#i> against <sc://ho/pa> 
-FAIL Parsing: <#i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/pa" but got "///pa/pa"
+FAIL Parsing: <?i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://"
+FAIL Parsing: <?i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://ho"
+FAIL Parsing: <?i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://"
+FAIL Parsing: <#i> against <sc:sd> assert_equals: origin expected "null" but got "sc://"
+FAIL Parsing: <#i> against <sc:sd/sd> assert_equals: origin expected "null" but got "sc://"
+FAIL Parsing: <#i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://"
+FAIL Parsing: <#i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://ho"
+FAIL Parsing: <#i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://"
 PASS Parsing: <about:/../> against <about:blank> 
 PASS Parsing: <data:/../> against <about:blank> 
 PASS Parsing: <javascript:/../> against <about:blank> 
-PASS Parsing: <mailto:/../> against <about:blank> 
-PASS Parsing: <sc://ñ.test/> against <about:blank> 
+FAIL Parsing: <mailto:/../> against <about:blank> assert_equals: origin expected "null" but got "mailto://"
+FAIL Parsing: <sc://ñ.test/> against <about:blank> assert_equals: origin expected "null" but got "sc://xn--ida.test"
 FAIL Parsing: <sc:\../> against <about:blank> assert_equals: href expected "sc:\\../" but got "sc:/"
-PASS Parsing: <sc::a@example.net> against <about:blank> 
+FAIL Parsing: <sc::a@example.net> against <about:blank> assert_equals: origin expected "null" but got "sc://"
 PASS Parsing: <http://127.0.0.1:10100/relative_import.html> against <about:blank> 
 PASS Parsing: <http://facebook.com/?foo=%7B%22abc%22> against <about:blank> 
 PASS Parsing: <https://localhost:3000/jqueryui@1.2.3> against <about:blank> 
@@ -354,5 +354,5 @@ PASS Parsing: <??a=b&c=d> against <http://example.org/foo/bar>
 PASS Parsing: <http:> against <http://example.org/foo/bar> 
 FAIL Parsing: <http:> against <https://example.org/foo/bar> assert_throws: function "function () {
           bURL(expected.input, expected.bas..." did not throw
-PASS Parsing: <sc:> against <https://example.org/foo/bar> 
+FAIL Parsing: <sc:> against <https://example.org/foo/bar> assert_equals: origin expected "null" but got "sc://"
 
index e13060c21a22d630477e375e50f4695b18488a7c..70c23530e52b156187808e152442319d0cdf4d80 100644 (file)
@@ -1,3 +1,17 @@
+2016-09-23  Commit Queue  <commit-queue@webkit.org>
+
+        Unreviewed, rolling out r206165.
+        https://bugs.webkit.org/show_bug.cgi?id=162492
+
+        needs corresponding API change in bug 162475 (Requested by
+        alexchristensen on #webkit).
+
+        Reverted changeset:
+
+        "Non-special URLs should have an opaque origin"
+        https://bugs.webkit.org/show_bug.cgi?id=162254
+        http://trac.webkit.org/changeset/206165
+
 2016-09-23  Carlos Garcia Campos  <cgarcia@igalia.com>
 
         Unreviewed. Fix the build after r206300.
index fd8b60ad612b8aa98b5979ee0d8cd70cb7c35ba6..b440f1d34dad638e995f41433bf109a5d166141f 100644 (file)
@@ -58,6 +58,7 @@ bool SecurityOrigin::shouldUseInnerURL(const URL& url)
     // FIXME: Blob URLs don't have inner URLs. Their form is "blob:<inner-origin>/<UUID>", so treating the part after "blob:" as a URL is incorrect.
     if (url.protocolIsBlob())
         return true;
+    UNUSED_PARAM(url);
     return false;
 }
 
@@ -98,12 +99,7 @@ static bool shouldTreatAsUniqueOrigin(const URL& url)
         return true;
 
     // This is the common case.
-    return !innerURL.protocolIsInHTTPFamily()
-        && !innerURL.protocolIs("file")
-        && !innerURL.protocolIs("ftp")
-        && !innerURL.protocolIs("gopher")
-        && !innerURL.protocolIs("ws")
-        && !innerURL.protocolIs("wss");
+    return false;
 }
 
 SecurityOrigin::SecurityOrigin(const URL& url)