From d47eed9e8b9d8b6fafd20388e7bd8fa171d0aaf5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 2 Apr 2022 23:36:28 +0000 Subject: [PATCH 1/2] Bump url from 2.2.0 to 2.2.2 Bumps [url](https://github.com/servo/rust-url) from 2.2.0 to 2.2.2. - [Release notes](https://github.com/servo/rust-url/releases) - [Commits](https://github.com/servo/rust-url/compare/v2.2.0...v2.2.2) --- updated-dependencies: - dependency-name: url dependency-type: indirect update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 465a2ad149c..87e127b0320 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6901,9 +6901,9 @@ dependencies = [ [[package]] name = "url" -version = "2.2.0" +version = "2.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5909f2b0817350449ed73e8bcd81c8c3c8d9a7a5d8acba4b27db277f1868976e" +checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c" dependencies = [ "form_urlencoded", "idna", From 7734a109c3b0b3707e646e5628a772b1fe76dd48 Mon Sep 17 00:00:00 2001 From: Josh Matthews Date: Sun, 3 Apr 2022 12:13:20 -0400 Subject: [PATCH 2/2] Update metadata. --- .../url/url-setters-a-area.window.js.ini | 684 +++++++++++++++++- tests/wpt/metadata/url/url-setters.any.js.ini | 61 +- 2 files changed, 742 insertions(+), 3 deletions(-) diff --git a/tests/wpt/metadata/url/url-setters-a-area.window.js.ini b/tests/wpt/metadata/url/url-setters-a-area.window.js.ini index 941a422c18f..3ccb1ff5cd0 100644 --- a/tests/wpt/metadata/url/url-setters-a-area.window.js.ini +++ b/tests/wpt/metadata/url/url-setters-a-area.window.js.ini @@ -1,2 +1,684 @@ [url-setters-a-area.window.html] - expected: CRASH + [: Setting .protocol = '' The empty string is not a valid scheme. Setter leaves the URL unchanged.] + expected: FAIL + + [: Setting .protocol = 'b'] + expected: FAIL + + [: Setting .protocol = 'defuse'] + expected: FAIL + + [: Setting .protocol = 'B' Upper-case ASCII is lower-cased] + expected: FAIL + + [: Setting .protocol = 'é' Non-ASCII is rejected] + expected: FAIL + + [: Setting .protocol = '0b' No leading digit] + expected: FAIL + + [: Setting .protocol = '+b' No leading punctuation] + expected: FAIL + + [: Setting .protocol = 'bC0+-.'] + expected: FAIL + + [: Setting .protocol = 'b,c' Only some punctuation is acceptable] + expected: FAIL + + [: Setting .protocol = 'bé' Non-ASCII is rejected] + expected: FAIL + + [: Setting .protocol = 'file' Can’t switch from URL containing username/password/port to file] + expected: FAIL + + [: Setting .protocol = 'file'] + expected: FAIL + + [: Setting .protocol = 'file'] + expected: FAIL + + [: Setting .protocol = 'http' Can’t switch from file URL with no host] + expected: FAIL + + [: Setting .protocol = 'https'] + expected: FAIL + + [: Setting .protocol = 'wss'] + expected: FAIL + + [: Setting .protocol = 'b' Can’t switch from special scheme to non-special] + expected: FAIL + + [: Setting .protocol = 's'] + expected: FAIL + + [: Setting .protocol = 's'] + expected: FAIL + + [: Setting .protocol = 'test'] + expected: FAIL + + [: Setting .protocol = 'http' Cannot-be-a-base URL doesn’t have a host, but URL in a special scheme must.] + expected: FAIL + + [: Setting .protocol = 'http' Can’t switch from non-special scheme to special] + expected: FAIL + + [: Setting .protocol = 'https'] + expected: FAIL + + [: Setting .protocol = 'file'] + expected: FAIL + + [: Setting .protocol = 'file'] + expected: FAIL + + [: Setting .protocol = 'https'] + expected: FAIL + + [: Setting .protocol = 'https:foo : bar' Stuff after the first ':' is ignored] + expected: FAIL + + [: Setting Test>.protocol = 'view-source+data:foo : bar' Stuff after the first ':' is ignored] + expected: FAIL + + [: Setting .protocol = 'https' Port is set to null if it is the default for new scheme.] + expected: FAIL + + [: Setting .username = 'me' No host means no username] + expected: FAIL + + [: Setting .username = 'me' No host means no username] + expected: FAIL + + [: Setting .username = 'me' Cannot-be-a-base means no username] + expected: FAIL + + [: Setting .username = 'wario'] + expected: FAIL + + [: Setting .username = 'me'] + expected: FAIL + + [: Setting .username = 'me'] + expected: FAIL + + [: Setting .username = ''] + expected: FAIL + + [: Setting .username = ''] + expected: FAIL + + [: Setting .username = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.] + expected: FAIL + + [: Setting .username = '%c3%89té' Bytes already percent-encoded are left as-is.] + expected: FAIL + + [: Setting .username = 'x'] + expected: FAIL + + [: Setting .username = 'wario'] + expected: FAIL + + [: Setting .username = 'test'] + expected: FAIL + + [: Setting .password = 'secret' No host means no password] + expected: FAIL + + [: Setting .password = 'secret' No host means no password] + expected: FAIL + + [: Setting .password = 'secret' Cannot-be-a-base means no password] + expected: FAIL + + [: Setting .password = 'secret'] + expected: FAIL + + [: Setting .password = 'secret'] + expected: FAIL + + [: Setting .password = ''] + expected: FAIL + + [: Setting .password = ''] + expected: FAIL + + [: Setting .password = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.] + expected: FAIL + + [: Setting .password = '%c3%89té' Bytes already percent-encoded are left as-is.] + expected: FAIL + + [: Setting .password = 'x'] + expected: FAIL + + [: Setting .password = 'bowser'] + expected: FAIL + + [: Setting .password = 'test'] + expected: FAIL + + [: Setting .host = '\x00' Non-special scheme] + expected: FAIL + + [: Setting .host = '\t'] + expected: FAIL + + [: Setting .host = '\n'] + expected: FAIL + + [: Setting .host = '\r'] + expected: FAIL + + [: Setting .host = ' '] + expected: FAIL + + [: Setting .host = '#'] + expected: FAIL + + [: Setting .host = '/'] + expected: FAIL + + [: Setting .host = '?'] + expected: FAIL + + [: Setting .host = '@'] + expected: FAIL + + [: Setting .host = 'ß'] + expected: FAIL + + [: Setting .host = 'ß' IDNA Nontransitional_Processing] + expected: FAIL + + [: Setting .host = 'example.com' Cannot-be-a-base means no host] + expected: FAIL + + [: Setting .host = 'example.net' Cannot-be-a-base means no host] + expected: FAIL + + [: Setting .host = 'example.com:8080'] + expected: FAIL + + [: Setting .host = 'example.com' Port number is unchanged if not specified in the new value] + expected: FAIL + + [: Setting .host = 'example.com:' Port number is unchanged if not specified] + expected: FAIL + + [: Setting .host = '' The empty host is not valid for special schemes] + expected: FAIL + + [: Setting .host = '' The empty host is OK for non-special schemes] + expected: FAIL + + [: Setting .host = 'example.net' Path-only URLs can gain a host] + expected: FAIL + + [: Setting .host = '0x7F000001:8080' IPv4 address syntax is normalized] + expected: FAIL + + [: Setting .host = '[::0:01\]:2' IPv6 address syntax is normalized] + expected: FAIL + + [: Setting .host = '[2001:db8::2\]:4002' IPv6 literal address with port, crbug.com/1012416] + expected: FAIL + + [: Setting .host = 'example.com:80' Default port number is removed] + expected: FAIL + + [: Setting .host = 'example.com:443' Default port number is removed] + expected: FAIL + + [: Setting .host = 'example.com:80' Default port number is only removed for the relevant scheme] + expected: FAIL + + [: Setting .host = 'example.com:80' Port number is removed if new port is scheme default and existing URL has a non-default port] + expected: FAIL + + [: Setting .host = 'example.com/stuff' Stuff after a / delimiter is ignored] + expected: FAIL + + [: Setting .host = 'example.com:8080/stuff' Stuff after a / delimiter is ignored] + expected: FAIL + + [: Setting .host = 'example.com?stuff' Stuff after a ? delimiter is ignored] + expected: FAIL + + [: Setting .host = 'example.com:8080?stuff' Stuff after a ? delimiter is ignored] + expected: FAIL + + [: Setting .host = 'example.com#stuff' Stuff after a # delimiter is ignored] + expected: FAIL + + [: Setting .host = 'example.com:8080#stuff' Stuff after a # delimiter is ignored] + expected: FAIL + + [: Setting .host = 'example.com\\stuff' Stuff after a \\ delimiter is ignored for special schemes] + expected: FAIL + + [: Setting .host = 'example.com:8080\\stuff' Stuff after a \\ delimiter is ignored for special schemes] + expected: FAIL + + [: Setting .host = 'example.com\\stuff' \\ is not a delimiter for non-special schemes, but still forbidden in hosts] + expected: FAIL + + [: Setting .host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error] + expected: FAIL + + [: Setting .host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error] + expected: FAIL + + [: Setting .host = 'example.com:8080+2' Anything other than ASCII digit stops the port parser in a setter but is not an error] + expected: FAIL + + [: Setting .host = 'example.com:65535' Port numbers are 16 bit integers] + expected: FAIL + + [: Setting .host = 'example.com:65536' Port numbers are 16 bit integers, overflowing is an error. Hostname is still set, though.] + expected: FAIL + + [: Setting .host = '[google.com\]' Broken IPv6] + expected: FAIL + + [: Setting .host = '[::1.2.3.4x\]'] + expected: FAIL + + [: Setting .host = '[::1.2.3.\]'] + expected: FAIL + + [: Setting .host = '[::1.2.\]'] + expected: FAIL + + [: Setting .host = '[::1.\]'] + expected: FAIL + + [: Setting .host = 'x:123'] + expected: FAIL + + [: Setting .host = 'loc%41lhost'] + expected: FAIL + + [: Setting .host = ''] + expected: FAIL + + [: Setting .host = ''] + expected: FAIL + + [: Setting .host = ''] + expected: FAIL + + [: Setting .host = '///bad.com' Leading / is not stripped] + expected: FAIL + + [: Setting .host = '///bad.com' Leading / is not stripped] + expected: FAIL + + [: Setting .hostname = '\x00' Non-special scheme] + expected: FAIL + + [: Setting .hostname = '\t'] + expected: FAIL + + [: Setting .hostname = '\n'] + expected: FAIL + + [: Setting .hostname = '\r'] + expected: FAIL + + [: Setting .hostname = ' '] + expected: FAIL + + [: Setting .hostname = '#'] + expected: FAIL + + [: Setting .hostname = '/'] + expected: FAIL + + [: Setting .hostname = '?'] + expected: FAIL + + [: Setting .hostname = '@'] + expected: FAIL + + [: Setting .hostname = 'example.com' Cannot-be-a-base means no host] + expected: FAIL + + [: Setting .hostname = 'example.net' Cannot-be-a-base means no host] + expected: FAIL + + [: Setting .hostname = 'example.com'] + expected: FAIL + + [: Setting .hostname = '' The empty host is not valid for special schemes] + expected: FAIL + + [: Setting .hostname = '' The empty host is OK for non-special schemes] + expected: FAIL + + [: Setting .hostname = 'example.net' Path-only URLs can gain a host] + expected: FAIL + + [: Setting .hostname = '0x7F000001' IPv4 address syntax is normalized] + expected: FAIL + + [: Setting .hostname = '[::0:01\]' IPv6 address syntax is normalized] + expected: FAIL + + [: Setting .hostname = 'example.com:8080' : delimiter invalidates entire value] + expected: FAIL + + [: Setting .hostname = 'example.com:8080' : delimiter invalidates entire value] + expected: FAIL + + [: Setting .hostname = 'example.com:' : delimiter invalidates entire value] + expected: FAIL + + [: Setting .hostname = 'example.com:' : delimiter invalidates entire value] + expected: FAIL + + [: Setting .hostname = 'example.com/stuff' Stuff after a / delimiter is ignored] + expected: FAIL + + [: Setting .hostname = 'example.com?stuff' Stuff after a ? delimiter is ignored] + expected: FAIL + + [: Setting .hostname = 'example.com#stuff' Stuff after a # delimiter is ignored] + expected: FAIL + + [: Setting .hostname = 'example.com\\stuff' Stuff after a \\ delimiter is ignored for special schemes] + expected: FAIL + + [: Setting .hostname = 'example.com\\stuff' \\ is not a delimiter for non-special schemes, but still forbidden in hosts] + expected: FAIL + + [: Setting .hostname = '[google.com\]' Broken IPv6] + expected: FAIL + + [: Setting .hostname = '[::1.2.3.4x\]'] + expected: FAIL + + [: Setting .hostname = '[::1.2.3.\]'] + expected: FAIL + + [: Setting .hostname = '[::1.2.\]'] + expected: FAIL + + [: Setting .hostname = '[::1.\]'] + expected: FAIL + + [: Setting .hostname = 'x:123'] + expected: FAIL + + [: Setting .hostname = 'loc%41lhost'] + expected: FAIL + + [: Setting .hostname = ''] + expected: FAIL + + [: Setting .hostname = ''] + expected: FAIL + + [: Setting .hostname = ''] + expected: FAIL + + [: Setting .hostname = 'h' Drop /. from path] + expected: FAIL + + [: Setting .hostname = ''] + expected: FAIL + + [: Setting .hostname = '///bad.com' Leading / is not stripped] + expected: FAIL + + [: Setting .hostname = '///bad.com' Leading / is not stripped] + expected: FAIL + + [: Setting .port = '8080'] + expected: FAIL + + [: Setting .port = '' Port number is removed if empty is the new value] + expected: FAIL + + [: Setting .port = '80' Default port number is removed] + expected: FAIL + + [: Setting .port = '443' Default port number is removed] + expected: FAIL + + [: Setting .port = '80' Default port number is only removed for the relevant scheme] + expected: FAIL + + [: Setting .port = '8080/stuff' Stuff after a / delimiter is ignored] + expected: FAIL + + [: Setting .port = '8080?stuff' Stuff after a ? delimiter is ignored] + expected: FAIL + + [: Setting .port = '8080#stuff' Stuff after a # delimiter is ignored] + expected: FAIL + + [: Setting .port = '8080\\stuff' Stuff after a \\ delimiter is ignored for special schemes] + expected: FAIL + + [: Setting .port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error] + expected: FAIL + + [: Setting .port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error] + expected: FAIL + + [: Setting .port = '8080+2' Anything other than ASCII digit stops the port parser in a setter but is not an error] + expected: FAIL + + [: Setting .port = '65535' Port numbers are 16 bit integers] + expected: FAIL + + [: Setting .port = '65536' Port numbers are 16 bit integers, overflowing is an error] + expected: FAIL + + [: Setting .port = '65536' Port numbers are 16 bit integers, overflowing is an error] + expected: FAIL + + [: Setting .port = '12'] + expected: FAIL + + [: Setting .port = '12'] + expected: FAIL + + [: Setting .port = '12'] + expected: FAIL + + [: Setting .port = '12'] + expected: FAIL + + [: Setting .port = '12'] + expected: FAIL + + [: Setting .port = '12'] + expected: FAIL + + [: Setting .pathname = '/foo' Cannot-be-a-base don’t have a path] + expected: FAIL + + [: Setting .pathname = '' Special URLs cannot have their paths erased] + expected: FAIL + + [: Setting .pathname = '' Non-special URLs can have their paths erased] + expected: FAIL + + [: Setting .pathname = '' Non-special URLs can have their paths erased] + expected: FAIL + + [: Setting .pathname = '' Non-special URLs with an empty host can have their paths erased] + expected: FAIL + + [: Setting .pathname = '' Non-special URLs with an empty host can have their paths erased] + expected: FAIL + + [: Setting .pathname = '' Path-only URLs cannot have their paths erased] + expected: FAIL + + [: Setting .pathname = 'test' Path-only URLs always have an initial slash] + expected: FAIL + + [: Setting .pathname = '/var/log/../run/bar.socket'] + expected: FAIL + + [: Setting .pathname = 'home'] + expected: FAIL + + [: Setting .pathname = '../home'] + expected: FAIL + + [: Setting .pathname = '\\a\\%2E\\b\\%2e.\\c' \\ is a segment delimiter for 'special' URLs] + expected: FAIL + + [: Setting .pathname = '\\a\\%2E\\b\\%2e.\\c' \\ is *not* a segment delimiter for non-'special' URLs] + expected: FAIL + + [: Setting .pathname = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~€Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed.] + expected: FAIL + + [: Setting .pathname = '%2e%2E%c3%89té' Bytes already percent-encoded are left as-is, including %2E outside dotted segments.] + expected: FAIL + + [: Setting .pathname = '?' ? needs to be encoded] + expected: FAIL + + [: Setting .pathname = '#' # needs to be encoded] + expected: FAIL + + [: Setting .pathname = '?' ? needs to be encoded, non-special scheme] + expected: FAIL + + [: Setting .pathname = '#' # needs to be encoded, non-special scheme] + expected: FAIL + + [: Setting .pathname = '/?é' ? doesn't mess up encoding] + expected: FAIL + + [: Setting .pathname = '/#é' # doesn't mess up encoding] + expected: FAIL + + [: Setting .pathname = '\\\\' File URLs and (back)slashes] + expected: FAIL + + [: Setting .pathname = '\\\\' File URLs and (back)slashes] + expected: FAIL + + [: Setting .pathname = '//\\/' File URLs and (back)slashes] + expected: FAIL + + [: Setting .pathname = '//\\/' File URLs and (back)slashes] + expected: FAIL + + [: Setting .pathname = '//monkey/..//' File URLs and (back)slashes] + expected: FAIL + + [: Setting .pathname = '//monkey/..//' File URLs and (back)slashes] + expected: FAIL + + [: Setting .pathname = '/.//p' Serialize /. in path] + expected: FAIL + + [: Setting .pathname = '/.//p' Serialize /. in path] + expected: FAIL + + [: Setting .pathname = '/..//p'] + expected: FAIL + + [: Setting .pathname = '/..//p'] + expected: FAIL + + [: Setting .pathname = '//p'] + expected: FAIL + + [: Setting .pathname = '//p'] + expected: FAIL + + [: Setting .pathname = 'p' Drop /. from path] + expected: FAIL + + [: Setting .search = 'lang=fr'] + expected: FAIL + + [: Setting .search = 'lang=fr'] + expected: FAIL + + [: Setting .search = '?lang=fr'] + expected: FAIL + + [: Setting .search = '??lang=fr'] + expected: FAIL + + [: Setting .search = '?'] + expected: FAIL + + [: Setting .search = ''] + expected: FAIL + + [: Setting .search = ''] + expected: FAIL + + [: Setting .search = ''] + expected: FAIL + + [: Setting .search = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~€Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed.] + expected: FAIL + + [: Setting .search = '%c3%89té' Bytes already percent-encoded are left as-is] + expected: FAIL + + [: Setting .hash = 'main'] + expected: FAIL + + [: Setting .hash = 'main'] + expected: FAIL + + [: Setting .hash = '##nav'] + expected: FAIL + + [: Setting .hash = '#main'] + expected: FAIL + + [: Setting .hash = '#'] + expected: FAIL + + [: Setting .hash = ''] + expected: FAIL + + [: Setting .hash = '#foo bar'] + expected: FAIL + + [: Setting .hash = '#foo"bar'] + expected: FAIL + + [: Setting .hash = '#foo: Setting .hash = '#foo>bar'] + expected: FAIL + + [: Setting .hash = '#foo`bar'] + expected: FAIL + + [: Setting .hash = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~€Éé' Simple percent-encoding; tabs and newlines are removed] + expected: FAIL + + [: Setting .hash = 'a\x00b' Percent-encode NULLs in fragment] + expected: FAIL + + [: Setting .hash = 'a\x00b' Percent-encode NULLs in fragment] + expected: FAIL + + [: Setting .hash = '%c3%89té' Bytes already percent-encoded are left as-is] + expected: FAIL + + [: Setting .hash = 'castle'] + expected: FAIL + + [: Setting .hash = 'castle'] + expected: FAIL diff --git a/tests/wpt/metadata/url/url-setters.any.js.ini b/tests/wpt/metadata/url/url-setters.any.js.ini index 6a0138a6222..aefd8f2a29d 100644 --- a/tests/wpt/metadata/url/url-setters.any.js.ini +++ b/tests/wpt/metadata/url/url-setters.any.js.ini @@ -1,5 +1,62 @@ [url-setters.any.html] - expected: CRASH + [URL: Setting .hostname = 'example.com:8080' : delimiter invalidates entire value] + expected: FAIL + + [URL: Setting .hostname = 'example.com:' : delimiter invalidates entire value] + expected: FAIL + + [URL: Setting .pathname = '' Non-special URLs can have their paths erased] + expected: FAIL + + [URL: Setting .pathname = '' Non-special URLs with an empty host can have their paths erased] + expected: FAIL + + [URL: Setting .pathname = '\\\\' File URLs and (back)slashes] + expected: FAIL + + [URL: Setting .pathname = '//\\/' File URLs and (back)slashes] + expected: FAIL + + [URL: Setting .pathname = '//monkey/..//' File URLs and (back)slashes] + expected: FAIL + + [URL: Setting .pathname = '/.//p' Serialize /. in path] + expected: FAIL + + [URL: Setting .pathname = '/..//p'] + expected: FAIL + + [URL: Setting .pathname = '//p'] + expected: FAIL + [url-setters.any.worker.html] - expected: CRASH + [URL: Setting .hostname = 'example.com:8080' : delimiter invalidates entire value] + expected: FAIL + + [URL: Setting .hostname = 'example.com:' : delimiter invalidates entire value] + expected: FAIL + + [URL: Setting .pathname = '' Non-special URLs can have their paths erased] + expected: FAIL + + [URL: Setting .pathname = '' Non-special URLs with an empty host can have their paths erased] + expected: FAIL + + [URL: Setting .pathname = '\\\\' File URLs and (back)slashes] + expected: FAIL + + [URL: Setting .pathname = '//\\/' File URLs and (back)slashes] + expected: FAIL + + [URL: Setting .pathname = '//monkey/..//' File URLs and (back)slashes] + expected: FAIL + + [URL: Setting .pathname = '/.//p' Serialize /. in path] + expected: FAIL + + [URL: Setting .pathname = '/..//p'] + expected: FAIL + + [URL: Setting .pathname = '//p'] + expected: FAIL