Bug 1856140 - Update set of url-escaped chars used for username/password to match WPT test expectations. r=necko-reviewers,jesup

Depends on D189701

Differential Revision: https://phabricator.services.mozilla.com/D189702
This commit is contained in:
Jonathan Kew 2023-10-02 19:19:03 +00:00
parent 7d7b5f1a70
commit 0e6ed89f87
6 changed files with 9 additions and 75 deletions

View File

@ -992,9 +992,6 @@
[Parsing: <non-special://f:999999/c> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <foo://///////> against <http://example.org/foo/bar>]
expected: FAIL
@ -1016,9 +1013,6 @@
[Parsing: <gopher://foo:443/> against <about:blank>]
expected: FAIL
[Parsing: <http://www.@pple.com> against <about:blank>]
expected: FAIL
[Parsing: <sc://faß.ExAmPlE/> against <about:blank>]
expected: FAIL
@ -1256,15 +1250,9 @@
[Parsing: <foo:// !"$%&'()*+,-.;<=>@[\\\]^_`{|}~@host/> against <about:blank>]
expected: FAIL
[Parsing: <wss:// !"$%&'()*+,-.;<=>@[\]^_`{|}~@host/> against <about:blank>]
expected: FAIL
[Parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\\\]^_`{|}~@host/> against <about:blank>]
expected: FAIL
[Parsing: <wss://joe: !"$%&'()*+,-.:;<=>@[\]^_`{|}~@host/> against <about:blank>]
expected: FAIL
[Parsing: <foo://!"$%&'()*+,-.;=_`{}~/> against <about:blank>]
expected: FAIL

View File

@ -1021,9 +1021,6 @@
[Parsing: <non-special://f:999999/c> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <foo://///////> against <http://example.org/foo/bar>]
expected: FAIL
@ -1045,9 +1042,6 @@
[Parsing: <gopher://foo:443/> against <about:blank>]
expected: FAIL
[Parsing: <http://www.@pple.com> against <about:blank>]
expected: FAIL
[Parsing: <sc://faß.ExAmPlE/> against <about:blank>]
expected: FAIL
@ -1285,15 +1279,9 @@
[Parsing: <foo:// !"$%&'()*+,-.;<=>@[\\\]^_`{|}~@host/> against <about:blank>]
expected: FAIL
[Parsing: <wss:// !"$%&'()*+,-.;<=>@[\]^_`{|}~@host/> against <about:blank>]
expected: FAIL
[Parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\\\]^_`{|}~@host/> against <about:blank>]
expected: FAIL
[Parsing: <wss://joe: !"$%&'()*+,-.:;<=>@[\]^_`{|}~@host/> against <about:blank>]
expected: FAIL
[Parsing: <foo://!"$%&'()*+,-.;=_`{}~/> against <about:blank>]
expected: FAIL

View File

@ -1224,9 +1224,6 @@
[Parsing: <foo://> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <foo://///////> against <http://example.org/foo/bar>]
expected: FAIL
@ -1329,9 +1326,6 @@
[Parsing: <gopher://foo:443/> without base]
expected: FAIL
[Parsing: <http://www.@pple.com> without base]
expected: FAIL
[Parsing: <sc://faß.ExAmPlE/> without base]
expected: FAIL
@ -1500,15 +1494,9 @@
[Parsing: <foo:// !"$%&'()*+,-.;<=>@[\\\]^_`{|}~@host/> without base]
expected: FAIL
[Parsing: <wss:// !"$%&'()*+,-.;<=>@[\]^_`{|}~@host/> without base]
expected: FAIL
[Parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\\\]^_`{|}~@host/> without base]
expected: FAIL
[Parsing: <wss://joe: !"$%&'()*+,-.:;<=>@[\]^_`{|}~@host/> without base]
expected: FAIL
[Parsing: <foo://!"$%&'()*+,-.;=_`{}~/> without base]
expected: FAIL
@ -1947,9 +1935,6 @@
[Parsing: <foo://> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <foo://///////> against <http://example.org/foo/bar>]
expected: FAIL
@ -2052,9 +2037,6 @@
[Parsing: <gopher://foo:443/> without base]
expected: FAIL
[Parsing: <http://www.@pple.com> without base]
expected: FAIL
[Parsing: <sc://faß.ExAmPlE/> without base]
expected: FAIL
@ -2223,15 +2205,9 @@
[Parsing: <foo:// !"$%&'()*+,-.;<=>@[\\\]^_`{|}~@host/> without base]
expected: FAIL
[Parsing: <wss:// !"$%&'()*+,-.;<=>@[\]^_`{|}~@host/> without base]
expected: FAIL
[Parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\\\]^_`{|}~@host/> without base]
expected: FAIL
[Parsing: <wss://joe: !"$%&'()*+,-.:;<=>@[\]^_`{|}~@host/> without base]
expected: FAIL
[Parsing: <foo://!"$%&'()*+,-.;=_`{}~/> without base]
expected: FAIL

View File

@ -703,18 +703,6 @@
[<area>: Setting <nonsense:///test>.protocol = 'https']
expected: FAIL
[<a>: Setting <http://example.net>.username = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.]
expected: FAIL
[<area>: Setting <http://example.net>.username = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.]
expected: FAIL
[<a>: Setting <http://example.net>.password = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.]
expected: FAIL
[<area>: Setting <http://example.net>.password = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.]
expected: FAIL
[<a>: Setting <sc://x/>.host = '\x00' Non-special scheme]
expected: FAIL

View File

@ -435,12 +435,6 @@
[URL: Setting <ssh://example.net>.protocol = 'file']
expected: FAIL
[URL: Setting <http://example.net>.username = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.]
expected: FAIL
[URL: Setting <http://example.net>.password = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.]
expected: FAIL
[URL: Setting <sc://x/>.host = '\x00' Non-special scheme]
expected: FAIL
@ -684,12 +678,6 @@
[URL: Setting <ssh://example.net>.protocol = 'file']
expected: FAIL
[URL: Setting <http://example.net>.username = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.]
expected: FAIL
[URL: Setting <http://example.net>.password = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.]
expected: FAIL
[URL: Setting <sc://x/>.host = '\x00' Non-special scheme]
expected: FAIL

View File

@ -269,9 +269,15 @@ static constexpr std::array<uint32_t, 256> BuildEscapeChars() {
// Extra characters which aren't escaped in particular escape modes.
AddUnescapedChars(".", esc_Scheme, table);
// esc_Username has no additional unescaped characters.
AddUnescapedChars("|", esc_Password, table);
AddUnescapedChars(".", esc_Host, table);
// Note that behavior of esc_Username and esc_Password is the same, so these
// could be merged (in the URL spec, both reference the "userinfo encode set"
// https://url.spec.whatwg.org/#userinfo-percent-encode-set, so the same
// behavior is expected.)
// Leaving separate for now to minimize risk, as these are also IDL-exposed
// as separate constants.
AddUnescapedChars("'.", esc_Username, table);
AddUnescapedChars("'.", esc_Password, table);
AddUnescapedChars(".", esc_Host, table); // Same as esc_Scheme
AddUnescapedChars("'./:;=@[]|", esc_Directory, table);
AddUnescapedChars("'.:;=@[]|", esc_FileBaseName, table);
AddUnescapedChars("':;=@[]|", esc_FileExtension, table);