diff --git a/testing/web-platform/tests/url/resources/urltestdata.json b/testing/web-platform/tests/url/resources/urltestdata.json index b39c6e7578c3c..fa619fb8930fa 100644 --- a/testing/web-platform/tests/url/resources/urltestdata.json +++ b/testing/web-platform/tests/url/resources/urltestdata.json @@ -4537,16 +4537,6 @@ "search": "", "hash": "" }, - { - "input": "sc://\u0000/", - "base": "about:blank", - "failure": true - }, - { - "input": "sc:// /", - "base": "about:blank", - "failure": true - }, { "input": "sc://%/", "base": "about:blank", @@ -4581,21 +4571,6 @@ "base": "about:blank", "failure": true }, - { - "input": "sc://[/", - "base": "about:blank", - "failure": true - }, - { - "input": "sc://\\/", - "base": "about:blank", - "failure": true - }, - { - "input": "sc://]/", - "base": "about:blank", - "failure": true - }, { "input": "x", "base": "sc://ñ", @@ -4707,42 +4682,47 @@ }, "Forbidden host code points", { - "input": "http://ab", + "input": "sc://a b/", "base": "about:blank", "failure": true }, { - "input": "http://a^b", + "input": "sc://ab", "base": "about:blank", "failure": true }, { - "input": "non-special://ab", + "input": "sc://a\\b/", "base": "about:blank", "failure": true }, { - "input": "non-special://a^b", + "input": "sc://a]b/", "base": "about:blank", "failure": true }, { - "input": "foo://ho\u0000st/", + "input": "sc://a^b", "base": "about:blank", "failure": true }, { - "input": "foo://ho|st/", + "input": "sc://a|b/", "base": "about:blank", "failure": true }, @@ -4789,113 +4769,1019 @@ "search": "", "username": "" }, - "Encoded forbidden host codepoints in special URLs", + "Forbidden domain code-points", { - "input": "http://ho%00st/", + "input": "http://a\u0000b/", "base": "about:blank", "failure": true }, { - "input": "http://ho%09st/", + "input": "http://a\u0001b/", "base": "about:blank", - "failure": true + "hash": "", + "host": "a\u0001b", + "hostname": "a\u0001b", + "href":"http://a\u0001b/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" }, { - "input": "http://ho%0Ast/", + "input": "http://a\u0002b/", "base": "about:blank", - "failure": true + "hash": "", + "host": "a\u0002b", + "hostname": "a\u0002b", + "href":"http://a\u0002b/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" }, { - "input": "http://ho%0Dst/", + "input": "http://a\u0003b/", "base": "about:blank", - "failure": true + "hash": "", + "host": "a\u0003b", + "hostname": "a\u0003b", + "href":"http://a\u0003b/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" }, { - "input": "http://ho%20st/", + "input": "http://a\u0004b/", "base": "about:blank", - "failure": true + "hash": "", + "host": "a\u0004b", + "hostname": "a\u0004b", + "href":"http://a\u0004b/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" }, { - "input": "http://ho%23st/", + "input": "http://a\u0005b/", "base": "about:blank", - "failure": true + "hash": "", + "host": "a\u0005b", + "hostname": "a\u0005b", + "href":"http://a\u0005b/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" }, { - "input": "http://ho%2Fst/", + "input": "http://a\u0006b/", "base": "about:blank", - "failure": true + "hash": "", + "host": "a\u0006b", + "hostname": "a\u0006b", + "href":"http://a\u0006b/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" }, { - "input": "http://ho%3Ast/", + "input": "http://a\u0007b/", "base": "about:blank", - "failure": true + "hash": "", + "host": "a\u0007b", + "hostname": "a\u0007b", + "href":"http://a\u0007b/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" }, { - "input": "http://ho%3Cst/", + "input": "http://a\u0008b/", "base": "about:blank", - "failure": true + "hash": "", + "host": "a\u0008b", + "hostname": "a\u0008b", + "href":"http://a\u0008b/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" }, { - "input": "http://ho%3Est/", + "input": "http://a\u000Bb/", "base": "about:blank", - "failure": true + "hash": "", + "host": "a\u000Bb", + "hostname": "a\u000Bb", + "href":"http://a\u000Bb/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" }, { - "input": "http://ho%3Fst/", + "input": "http://a\u000Cb/", "base": "about:blank", - "failure": true + "hash": "", + "host": "a\u000Cb", + "hostname": "a\u000Cb", + "href":"http://a\u000Cb/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" }, { - "input": "http://ho%40st/", + "input": "http://a\u000Eb/", "base": "about:blank", - "failure": true + "hash": "", + "host": "a\u000Eb", + "hostname": "a\u000Eb", + "href":"http://a\u000Eb/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" }, { - "input": "http://ho%5Bst/", + "input": "http://a\u000Fb/", "base": "about:blank", - "failure": true + "hash": "", + "host": "a\u000Fb", + "hostname": "a\u000Fb", + "href":"http://a\u000Fb/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" }, { - "input": "http://ho%5Cst/", + "input": "http://a\u0010b/", "base": "about:blank", - "failure": true + "hash": "", + "host": "a\u0010b", + "hostname": "a\u0010b", + "href":"http://a\u0010b/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" }, { - "input": "http://ho%5Dst/", + "input": "http://a\u0011b/", "base": "about:blank", - "failure": true + "hash": "", + "host": "a\u0011b", + "hostname": "a\u0011b", + "href":"http://a\u0011b/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" }, { - "input": "http://ho%7Cst/", + "input": "http://a\u0012b/", "base": "about:blank", - "failure": true + "hash": "", + "host": "a\u0012b", + "hostname": "a\u0012b", + "href":"http://a\u0012b/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" + }, + { + "input": "http://a\u0013b/", + "base": "about:blank", + "hash": "", + "host": "a\u0013b", + "hostname": "a\u0013b", + "href":"http://a\u0013b/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" + }, + { + "input": "http://a\u0014b/", + "base": "about:blank", + "hash": "", + "host": "a\u0014b", + "hostname": "a\u0014b", + "href":"http://a\u0014b/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" + }, + { + "input": "http://a\u0015b/", + "base": "about:blank", + "hash": "", + "host": "a\u0015b", + "hostname": "a\u0015b", + "href":"http://a\u0015b/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" + }, + { + "input": "http://a\u0016b/", + "base": "about:blank", + "hash": "", + "host": "a\u0016b", + "hostname": "a\u0016b", + "href":"http://a\u0016b/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" + }, + { + "input": "http://a\u0017b/", + "base": "about:blank", + "hash": "", + "host": "a\u0017b", + "hostname": "a\u0017b", + "href":"http://a\u0017b/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" + }, + { + "input": "http://a\u0018b/", + "base": "about:blank", + "hash": "", + "host": "a\u0018b", + "hostname": "a\u0018b", + "href":"http://a\u0018b/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" + }, + { + "input": "http://a\u0019b/", + "base": "about:blank", + "hash": "", + "host": "a\u0019b", + "hostname": "a\u0019b", + "href":"http://a\u0019b/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" + }, + { + "input": "http://a\u001Ab/", + "base": "about:blank", + "hash": "", + "host": "a\u001Ab", + "hostname": "a\u001Ab", + "href":"http://a\u001Ab/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" + }, + { + "input": "http://a\u001Bb/", + "base": "about:blank", + "hash": "", + "host": "a\u001Bb", + "hostname": "a\u001Bb", + "href":"http://a\u001Bb/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" + }, + { + "input": "http://a\u001Cb/", + "base": "about:blank", + "hash": "", + "host": "a\u001Cb", + "hostname": "a\u001Cb", + "href":"http://a\u001Cb/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" + }, + { + "input": "http://a\u001Db/", + "base": "about:blank", + "hash": "", + "host": "a\u001Db", + "hostname": "a\u001Db", + "href":"http://a\u001Db/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" + }, + { + "input": "http://a\u001Eb/", + "base": "about:blank", + "hash": "", + "host": "a\u001Eb", + "hostname": "a\u001Eb", + "href":"http://a\u001Eb/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" + }, + { + "input": "http://a\u001Fb/", + "base": "about:blank", + "hash": "", + "host": "a\u001Fb", + "hostname": "a\u001Fb", + "href":"http://a\u001Fb/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" + }, + { + "input": "http://a b/", + "base": "about:blank", + "failure": true + }, + { + "input": "http://a%b/", + "base": "about:blank", + "failure": true + }, + { + "input": "http://ab", + "base": "about:blank", + "failure": true + }, + { + "input": "http://a[b/", + "base": "about:blank", + "failure": true + }, + { + "input": "http://a]b/", + "base": "about:blank", + "failure": true + }, + { + "input": "http://a^b", + "base": "about:blank", + "failure": true + }, + { + "input": "http://a|b/", + "base": "about:blank", + "failure": true + }, + { + "input": "http://a\u007Fb/", + "base": "about:blank", + "hash": "", + "host": "a\u007Fb", + "hostname": "a\u007Fb", + "href":"http://a\u007Fb/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" + }, + "Forbidden domain codepoints: tabs and newlines are removed during preprocessing", + { + "input": "http://ho\u0009st/", + "base": "about:blank", + "hash": "", + "host": "host", + "hostname": "host", + "href":"http://host/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" + }, + { + "input": "http://ho\u000Ast/", + "base": "about:blank", + "hash": "", + "host": "host", + "hostname": "host", + "href":"http://host/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" + }, + { + "input": "http://ho\u000Dst/", + "base": "about:blank", + "hash": "", + "host": "host", + "hostname": "host", + "href":"http://host/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" + }, + "Encoded forbidden domain codepoints in special URLs", + { + "input": "http://ho%00st/", + "base": "about:blank", + "failure": true + }, + { + "input": "http://ho%01st/", + "base": "about:blank", + "hash": "", + "host": "ho\u0001st", + "hostname": "ho\u0001st", + "href":"http://ho\u0001st/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" + }, + { + "input": "http://ho%02st/", + "base": "about:blank", + "hash": "", + "host": "ho\u0002st", + "hostname": "ho\u0002st", + "href":"http://ho\u0002st/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" + }, + { + "input": "http://ho%03st/", + "base": "about:blank", + "hash": "", + "host": "ho\u0003st", + "hostname": "ho\u0003st", + "href":"http://ho\u0003st/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" + }, + { + "input": "http://ho%04st/", + "base": "about:blank", + "hash": "", + "host": "ho\u0004st", + "hostname": "ho\u0004st", + "href":"http://ho\u0004st/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" + }, + { + "input": "http://ho%05st/", + "base": "about:blank", + "hash": "", + "host": "ho\u0005st", + "hostname": "ho\u0005st", + "href":"http://ho\u0005st/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" + }, + { + "input": "http://ho%06st/", + "base": "about:blank", + "hash": "", + "host": "ho\u0006st", + "hostname": "ho\u0006st", + "href":"http://ho\u0006st/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" + }, + { + "input": "http://ho%07st/", + "base": "about:blank", + "hash": "", + "host": "ho\u0007st", + "hostname": "ho\u0007st", + "href":"http://ho\u0007st/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" + }, + { + "input": "http://ho%08st/", + "base": "about:blank", + "hash": "", + "host": "ho\u0008st", + "hostname": "ho\u0008st", + "href":"http://ho\u0008st/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" + }, + { + "input": "http://ho%09st/", + "base": "about:blank", + "failure": true + }, + { + "input": "http://ho%0Ast/", + "base": "about:blank", + "failure": true + }, + { + "input": "http://ho%0Bst/", + "base": "about:blank", + "hash": "", + "host": "ho\u000Bst", + "hostname": "ho\u000Bst", + "href":"http://ho\u000Bst/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" + }, + { + "input": "http://ho%0Cst/", + "base": "about:blank", + "hash": "", + "host": "ho\u000Cst", + "hostname": "ho\u000Cst", + "href":"http://ho\u000Cst/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" + }, + { + "input": "http://ho%0Dst/", + "base": "about:blank", + "failure": true + }, + { + "input": "http://ho%0Est/", + "base": "about:blank", + "hash": "", + "host": "ho\u000Est", + "hostname": "ho\u000Est", + "href":"http://ho\u000Est/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" + }, + { + "input": "http://ho%0Fst/", + "base": "about:blank", + "hash": "", + "host": "ho\u000Fst", + "hostname": "ho\u000Fst", + "href":"http://ho\u000Fst/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" + }, + { + "input": "http://ho%10st/", + "base": "about:blank", + "hash": "", + "host": "ho\u0010st", + "hostname": "ho\u0010st", + "href":"http://ho\u0010st/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" + }, + { + "input": "http://ho%11st/", + "base": "about:blank", + "hash": "", + "host": "ho\u0011st", + "hostname": "ho\u0011st", + "href":"http://ho\u0011st/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" + }, + { + "input": "http://ho%12st/", + "base": "about:blank", + "hash": "", + "host": "ho\u0012st", + "hostname": "ho\u0012st", + "href":"http://ho\u0012st/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" + }, + { + "input": "http://ho%13st/", + "base": "about:blank", + "hash": "", + "host": "ho\u0013st", + "hostname": "ho\u0013st", + "href":"http://ho\u0013st/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" + }, + { + "input": "http://ho%14st/", + "base": "about:blank", + "hash": "", + "host": "ho\u0014st", + "hostname": "ho\u0014st", + "href":"http://ho\u0014st/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" + }, + { + "input": "http://ho%15st/", + "base": "about:blank", + "hash": "", + "host": "ho\u0015st", + "hostname": "ho\u0015st", + "href":"http://ho\u0015st/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" + }, + { + "input": "http://ho%16st/", + "base": "about:blank", + "hash": "", + "host": "ho\u0016st", + "hostname": "ho\u0016st", + "href":"http://ho\u0016st/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" + }, + { + "input": "http://ho%17st/", + "base": "about:blank", + "hash": "", + "host": "ho\u0017st", + "hostname": "ho\u0017st", + "href":"http://ho\u0017st/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" + }, + { + "input": "http://ho%18st/", + "base": "about:blank", + "hash": "", + "host": "ho\u0018st", + "hostname": "ho\u0018st", + "href":"http://ho\u0018st/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" + }, + { + "input": "http://ho%19st/", + "base": "about:blank", + "hash": "", + "host": "ho\u0019st", + "hostname": "ho\u0019st", + "href":"http://ho\u0019st/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" + }, + { + "input": "http://ho%1Ast/", + "base": "about:blank", + "hash": "", + "host": "ho\u001Ast", + "hostname": "ho\u001Ast", + "href":"http://ho\u001Ast/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" + }, + { + "input": "http://ho%1Bst/", + "base": "about:blank", + "hash": "", + "host": "ho\u001Bst", + "hostname": "ho\u001Bst", + "href":"http://ho\u001Bst/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" + }, + { + "input": "http://ho%1Cst/", + "base": "about:blank", + "hash": "", + "host": "ho\u001Cst", + "hostname": "ho\u001Cst", + "href":"http://ho\u001Cst/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" + }, + { + "input": "http://ho%1Dst/", + "base": "about:blank", + "hash": "", + "host": "ho\u001Dst", + "hostname": "ho\u001Dst", + "href":"http://ho\u001Dst/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" + }, + { + "input": "http://ho%1Est/", + "base": "about:blank", + "hash": "", + "host": "ho\u001Est", + "hostname": "ho\u001Est", + "href":"http://ho\u001Est/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" + }, + { + "input": "http://ho%1Fst/", + "base": "about:blank", + "hash": "", + "host": "ho\u001Fst", + "hostname": "ho\u001Fst", + "href":"http://ho\u001Fst/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" + }, + { + "input": "http://ho%20st/", + "base": "about:blank", + "failure": true + }, + { + "input": "http://ho%23st/", + "base": "about:blank", + "failure": true + }, + { + "input": "http://ho%25st/", + "base": "about:blank", + "failure": true + }, + { + "input": "http://ho%2Fst/", + "base": "about:blank", + "failure": true + }, + { + "input": "http://ho%3Ast/", + "base": "about:blank", + "failure": true + }, + { + "input": "http://ho%3Cst/", + "base": "about:blank", + "failure": true + }, + { + "input": "http://ho%3Est/", + "base": "about:blank", + "failure": true + }, + { + "input": "http://ho%3Fst/", + "base": "about:blank", + "failure": true + }, + { + "input": "http://ho%40st/", + "base": "about:blank", + "failure": true + }, + { + "input": "http://ho%5Bst/", + "base": "about:blank", + "failure": true + }, + { + "input": "http://ho%5Cst/", + "base": "about:blank", + "failure": true + }, + { + "input": "http://ho%5Dst/", + "base": "about:blank", + "failure": true + }, + { + "input": "http://ho%7Cst/", + "base": "about:blank", + "failure": true + }, + { + "input": "http://ho%7Fst/", + "base": "about:blank", + "hash": "", + "host": "ho\u007Fst", + "hostname": "ho\u007Fst", + "href":"http://ho\u007Fst/", + "password": "", + "pathname": "/", + "port":"", + "protocol": "http:", + "search": "", + "username": "" }, - "Allowed host code points", + "Allowed host/domain code points", { - "input": "http://\u001F!\"$&'()*+,-.;=_`{}~/", + "input": "http://\u0001\u0002\u0003\u0004\u0005\u0006\u0007\u0008\u000B\u000C\u000E\u000F\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F\u007F!\"$&'()*+,-.;=_`{}~/", "base": "about:blank", - "href": "http://\u001F!\"$&'()*+,-.;=_`{}~/", - "origin": "http://\u001F!\"$&'()*+,-.;=_`{}~", + "href": "http://\u0001\u0002\u0003\u0004\u0005\u0006\u0007\u0008\u000B\u000C\u000E\u000F\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F\u007F!\"$&'()*+,-.;=_`{}~/", + "origin": "http://\u0001\u0002\u0003\u0004\u0005\u0006\u0007\u0008\u000B\u000C\u000E\u000F\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F\u007F!\"$&'()*+,-.;=_`{}~", "protocol": "http:", "username": "", "password": "", - "host": "\u001F!\"$&'()*+,-.;=_`{}~", - "hostname": "\u001F!\"$&'()*+,-.;=_`{}~", + "host": "\u0001\u0002\u0003\u0004\u0005\u0006\u0007\u0008\u000B\u000C\u000E\u000F\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F\u007F!\"$&'()*+,-.;=_`{}~", + "hostname": "\u0001\u0002\u0003\u0004\u0005\u0006\u0007\u0008\u000B\u000C\u000E\u000F\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F\u007F!\"$&'()*+,-.;=_`{}~", "port": "", "pathname": "/", "search": "", "hash": "" }, { - "input": "sc://\u001F!\"$&'()*+,-.;=_`{}~/", + "input": "sc://\u0001\u0002\u0003\u0004\u0005\u0006\u0007\u0008\u000B\u000C\u000E\u000F\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F\u007F!\"$%&'()*+,-.;=_`{}~/", "base": "about:blank", - "href": "sc://%1F!\"$&'()*+,-.;=_`{}~/", + "href": "sc://%01%02%03%04%05%06%07%08%0B%0C%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%7F!\"$%&'()*+,-.;=_`{}~/", "origin": "null", "protocol": "sc:", "username": "", "password": "", - "host": "%1F!\"$&'()*+,-.;=_`{}~", - "hostname": "%1F!\"$&'()*+,-.;=_`{}~", + "host": "%01%02%03%04%05%06%07%08%0B%0C%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%7F!\"$%&'()*+,-.;=_`{}~", + "hostname": "%01%02%03%04%05%06%07%08%0B%0C%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%7F!\"$%&'()*+,-.;=_`{}~", "port": "", "pathname": "/", "search": "",