[wpt-sync] Sync PR 26863 - URLPattern: Resolve relative pathnames and canonicalize URL input.
Categories
(Testing :: web-platform-tests, task, P4)
Tracking
(firefox86 fixed)
Tracking | Status | |
---|---|---|
firefox86 | --- | fixed |
People
(Reporter: mozilla.org, Unassigned)
References
()
Details
(Whiteboard: [wptsync downstream])
Sync web-platform-tests PR 26863 into mozilla-central (this bug is closed when the sync is complete).
PR: https://github.com/web-platform-tests/wpt/pull/26863
Details from upstream follow.
b'Ben Kelly <wanderview@chromium.org>' wrote:
URLPattern: Resolve relative pathnames and canonicalize URL input.
This CL makes a number of improvements:
- It removes the http/https specific assumption that pathnames always
consist of at least a leading slash.- Resolve relative pathnames for both patterns and URL input. This is
only done if the baseURL is a standard URL with a pathname containing
slashes.- Canonicalizes URL input values.
- Validates pattern values are ASCII, but does not perform any encoding
or canonicalization yet.Bug: 1141510
Change-Id: I6db1afe77f6dd1d15ccb2e96a51412a31257efba
Reviewed-on: https://chromium-review.googlesource.com/2579989
WPT-Export-Revision: a46d03a6b63978167537a8f78d1e0bd62501c7ea
Assignee | ||
Comment 1•3 years ago
|
||
PR 26863 applied with additional changes from upstream: b2e07c28323bbe3791d693039a44637b29130c56, 6db65e7a68bdb745a37d0e2a012920551e5e86ef
Assignee | ||
Comment 2•3 years ago
|
||
Pushed to try (stability) https://treeherder.mozilla.org/#/jobs?repo=try&revision=5a0d6c2db4273718ce20ad8b8c94c3518d8d23c6
Assignee | ||
Comment 3•3 years ago
|
||
CI Results
Ran 14 Firefox configurations based on mozilla-central, and Firefox, Chrome, and Safari on GitHub CI
Total 4 tests and 123 subtests
Status Summary
Firefox
OK : 4
PASS : 4
FAIL : 488
Chrome
OK : 4
PASS : 32
FAIL : 460
Safari
OK : 3
PASS : 3
FAIL : 366
ERROR: 1
Links
Gecko CI (Treeherder)
GitHub PR Head
GitHub PR Base
Details
New Tests That Don't Pass
/urlpattern/urlpattern.https.any.html
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/ba"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/bar/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: "https://example.com/foo/bar": FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: "https://example.com/foo/bar/baz": FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"hostname":"example.com","pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"hostname":"example.com","pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/bar","baseURL":"https://example.com"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/bar/baz","baseURL":"https://example.com"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"hostname":"example.com","pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"protocol":"https","hostname":"example.com","pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"protocol":"https","hostname":"example.com","pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"protocol":"https","hostname":"example.com","pathname":"/foo/bar","search":"otherquery","hash":"otherhash"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: "https://example.com/foo/bar": FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: "https://example.com/foo/bar?otherquery#otherhash": FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: "https://example.com/foo/bar/baz": FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: "https://other.com/foo/bar": FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: "http://other.com/foo/bar": FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"pathname":"/foo/bar","baseURL":"https://example.com"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"pathname":"/foo/bar/baz","baseURL":"https://example.com"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"pathname":"/foo/bar","baseURL":"https://other.com"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"pathname":"/foo/bar","baseURL":"http://example.com"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar"} Input: {"pathname":"/foo/index.html"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar"} Input: {"pathname":"/foo/bar/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar(.)"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar(.)"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar(.)"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar(.)"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar?"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar?"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar?"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar?"} Input: {"pathname":"/foobar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar?"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar+"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar+"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar+"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar+"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar+"} Input: {"pathname":"/foobar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar*"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar*"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar*"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar*"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar*"} Input: {"pathname":"/foobar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)?"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)?"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)?"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)?"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)?"} Input: {"pathname":"/foobar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)?"} Input: {"pathname":"/fo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)+"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)+"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)+"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)+"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)+"} Input: {"pathname":"/foobar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)+"} Input: {"pathname":"/fo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foobar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/fo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}?"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}?"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}?"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}?"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}+"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}+"} Input: {"pathname":"/foo/bar/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}+"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}+"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}+"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/bar/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"protocol":"(café)"} Input: undefined: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"username":"(café)"} Input: undefined: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"password":"(café)"} Input: undefined: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"hostname":"(café)"} Input: undefined: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"(café)"} Input: undefined: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"search":"(café)"} Input: undefined: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"hash":"(café)"} Input: undefined: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"protocol":"(.)"} Input: {"protocol":"café"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"protocol":"(.)"} Input: {"protocol":"cafe"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"username":"caf%C3%A9"} Input: {"username":"café"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"username":"caf%c3%a9"} Input: {"username":"café"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"password":"caf%C3%A9"} Input: {"password":"café"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"password":"caf%c3%a9"} Input: {"password":"café"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"hostname":"xn--caf-dma.com"} Input: {"hostname":"café.com"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"hostname":"cafe%7C.com"} Input: {"hostname":"cafe|.com"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"hostname":"cafe%7c.com"} Input: {"hostname":"cafe|.com"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"hostname":"(.)"} Input: {"hostname":"cafe^.com"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"port":""} Input: {"protocol":"http","port":"80"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"port":"80"} Input: {"port":"80"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"port":"(.)"} Input: {"port":"invalid80"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/./bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/baz"} Input: {"pathname":"/foo/bar/../baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/caf%C3%A9"} Input: {"pathname":"/café"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/caf%c3%a9"} Input: {"pathname":"/café"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"foo/bar","baseURL":"https://example.com"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"foo/bar"} Input: "https://example.com/foo/bar": FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"foo/bar","baseURL":"https://example.com"} Input: "https://example.com/foo/bar": FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":":name.html","baseURL":"https://example.com"} Input: "https://example.com/foo.html": FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"search":"q=caf%C3%A9"} Input: {"search":"q=café"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"search":"q=caf%c3%a9"} Input: {"search":"q=café"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"hash":"caf%C3%A9"} Input: {"hash":"café"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"hash":"caf%c3%a9"} Input: {"hash":"café"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"protocol":"about","pathname":"(blank|sourcedoc)"} Input: "about:blank": FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"protocol":"data","pathname":":number([0-9]+)"} Input: "data:8675309": FAIL (Chrome: FAIL, Safari: FAIL)
/urlpattern/urlpattern.https.any.worker.html
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/ba"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/bar/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: "https://example.com/foo/bar": FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: "https://example.com/foo/bar/baz": FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"hostname":"example.com","pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"hostname":"example.com","pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/bar","baseURL":"https://example.com"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/bar/baz","baseURL":"https://example.com"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"hostname":"example.com","pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"protocol":"https","hostname":"example.com","pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"protocol":"https","hostname":"example.com","pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"protocol":"https","hostname":"example.com","pathname":"/foo/bar","search":"otherquery","hash":"otherhash"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: "https://example.com/foo/bar": FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: "https://example.com/foo/bar?otherquery#otherhash": FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: "https://example.com/foo/bar/baz": FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: "https://other.com/foo/bar": FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: "http://other.com/foo/bar": FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"pathname":"/foo/bar","baseURL":"https://example.com"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"pathname":"/foo/bar/baz","baseURL":"https://example.com"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"pathname":"/foo/bar","baseURL":"https://other.com"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"pathname":"/foo/bar","baseURL":"http://example.com"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar"} Input: {"pathname":"/foo/index.html"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar"} Input: {"pathname":"/foo/bar/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar(.)"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar(.)"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar(.)"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar(.)"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar?"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar?"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar?"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar?"} Input: {"pathname":"/foobar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar?"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar+"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar+"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar+"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar+"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar+"} Input: {"pathname":"/foobar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar*"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar*"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar*"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar*"} Input: {"pathname":"/foobar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)?"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)?"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)?"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)?"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)?"} Input: {"pathname":"/foobar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)?"} Input: {"pathname":"/fo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)+"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)+"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)+"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)+"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)+"} Input: {"pathname":"/foobar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)+"} Input: {"pathname":"/fo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foobar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/fo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}?"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}?"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}?"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}?"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}+"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}+"} Input: {"pathname":"/foo/bar/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}+"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}+"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}+"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/bar/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"protocol":"(café)"} Input: undefined: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"username":"(café)"} Input: undefined: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"password":"(café)"} Input: undefined: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"hostname":"(café)"} Input: undefined: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"(café)"} Input: undefined: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"search":"(café)"} Input: undefined: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"hash":"(café)"} Input: undefined: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"protocol":"(.)"} Input: {"protocol":"café"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"protocol":"(.)"} Input: {"protocol":"cafe"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"username":"caf%C3%A9"} Input: {"username":"café"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"username":"caf%c3%a9"} Input: {"username":"café"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"password":"caf%C3%A9"} Input: {"password":"café"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"password":"caf%c3%a9"} Input: {"password":"café"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"hostname":"xn--caf-dma.com"} Input: {"hostname":"café.com"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"hostname":"cafe%7C.com"} Input: {"hostname":"cafe|.com"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"hostname":"cafe%7c.com"} Input: {"hostname":"cafe|.com"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"hostname":"(.)"} Input: {"hostname":"cafe^.com"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"port":""} Input: {"protocol":"http","port":"80"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"port":"80"} Input: {"port":"80"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"port":"(.)"} Input: {"port":"invalid80"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/./bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/baz"} Input: {"pathname":"/foo/bar/../baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/caf%C3%A9"} Input: {"pathname":"/café"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/caf%c3%a9"} Input: {"pathname":"/café"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"foo/bar","baseURL":"https://example.com"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"foo/bar"} Input: "https://example.com/foo/bar": FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"foo/bar","baseURL":"https://example.com"} Input: "https://example.com/foo/bar": FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":":name.html","baseURL":"https://example.com"} Input: "https://example.com/foo.html": FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"search":"q=caf%C3%A9"} Input: {"search":"q=café"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"search":"q=caf%c3%a9"} Input: {"search":"q=café"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"hash":"caf%C3%A9"} Input: {"hash":"café"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"hash":"caf%c3%a9"} Input: {"hash":"café"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"protocol":"about","pathname":"(blank|sourcedoc)"} Input: "about:blank": FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"protocol":"data","pathname":":number([0-9]+)"} Input: "data:8675309": FAIL (Chrome: FAIL, Safari: FAIL)
/urlpattern/urlpattern.https.any.sharedworker.html
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/ba"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/bar/"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: "https://example.com/foo/bar": FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: "https://example.com/foo/bar/baz": FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"hostname":"example.com","pathname":"/foo/bar"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"hostname":"example.com","pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/bar","baseURL":"https://example.com"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/bar/baz","baseURL":"https://example.com"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"hostname":"example.com","pathname":"/foo/bar"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"protocol":"https","hostname":"example.com","pathname":"/foo/bar"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"protocol":"https","hostname":"example.com","pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"protocol":"https","hostname":"example.com","pathname":"/foo/bar","search":"otherquery","hash":"otherhash"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: "https://example.com/foo/bar": FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: "https://example.com/foo/bar?otherquery#otherhash": FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: "https://example.com/foo/bar/baz": FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: "https://other.com/foo/bar": FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: "http://other.com/foo/bar": FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"pathname":"/foo/bar","baseURL":"https://example.com"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"pathname":"/foo/bar/baz","baseURL":"https://example.com"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"pathname":"/foo/bar","baseURL":"https://other.com"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"pathname":"/foo/bar","baseURL":"http://example.com"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/:bar"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/:bar"} Input: {"pathname":"/foo/index.html"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/:bar"} Input: {"pathname":"/foo/bar/"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/:bar"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/:bar(.)"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/:bar(.)"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/:bar(.)"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/:bar(.)"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/:bar?"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/:bar?"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/:bar?"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/:bar?"} Input: {"pathname":"/foobar"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/:bar?"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/:bar+"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/:bar+"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/:bar+"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/:bar+"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/:bar+"} Input: {"pathname":"/foobar"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/:bar"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/:bar*"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/:bar*"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/:bar*"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/:bar*"} Input: {"pathname":"/foobar"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/(.)?"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/(.)?"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/(.)?"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/(.)?"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/(.)?"} Input: {"pathname":"/foobar"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/(.)?"} Input: {"pathname":"/fo"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/(.)+"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/(.)+"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/(.)+"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/(.)+"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/(.)+"} Input: {"pathname":"/foobar"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/(.)+"} Input: {"pathname":"/fo"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foobar"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/fo"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo{/bar}?"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo{/bar}?"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo{/bar}?"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo{/bar}?"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo{/bar}+"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo{/bar}+"} Input: {"pathname":"/foo/bar/bar"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo{/bar}+"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo{/bar}+"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo{/bar}+"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/bar/bar"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL)
Pattern: {"protocol":"(café)"} Input: undefined: FAIL (Chrome: PASS)
Pattern: {"username":"(café)"} Input: undefined: FAIL (Chrome: PASS)
Pattern: {"password":"(café)"} Input: undefined: FAIL (Chrome: PASS)
Pattern: {"hostname":"(café)"} Input: undefined: FAIL (Chrome: PASS)
Pattern: {"pathname":"(café)"} Input: undefined: FAIL (Chrome: PASS)
Pattern: {"search":"(café)"} Input: undefined: FAIL (Chrome: PASS)
Pattern: {"hash":"(café)"} Input: undefined: FAIL (Chrome: PASS)
Pattern: {"protocol":"(.)"} Input: {"protocol":"café"}: FAIL (Chrome: FAIL)
Pattern: {"protocol":"(.)"} Input: {"protocol":"cafe"}: FAIL (Chrome: FAIL)
Pattern: {"username":"caf%C3%A9"} Input: {"username":"café"}: FAIL (Chrome: FAIL)
Pattern: {"username":"caf%c3%a9"} Input: {"username":"café"}: FAIL (Chrome: FAIL)
Pattern: {"password":"caf%C3%A9"} Input: {"password":"café"}: FAIL (Chrome: FAIL)
Pattern: {"password":"caf%c3%a9"} Input: {"password":"café"}: FAIL (Chrome: FAIL)
Pattern: {"hostname":"xn--caf-dma.com"} Input: {"hostname":"café.com"}: FAIL (Chrome: FAIL)
Pattern: {"hostname":"cafe%7C.com"} Input: {"hostname":"cafe|.com"}: FAIL (Chrome: FAIL)
Pattern: {"hostname":"cafe%7c.com"} Input: {"hostname":"cafe|.com"}: FAIL (Chrome: FAIL)
Pattern: {"hostname":"(.)"} Input: {"hostname":"cafe^.com"}: FAIL (Chrome: FAIL)
Pattern: {"port":""} Input: {"protocol":"http","port":"80"}: FAIL (Chrome: FAIL)
Pattern: {"port":"80"} Input: {"port":"80"}: FAIL (Chrome: FAIL)
Pattern: {"port":"(.)"} Input: {"port":"invalid80"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/./bar"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/baz"} Input: {"pathname":"/foo/bar/../baz"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/caf%C3%A9"} Input: {"pathname":"/café"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/caf%c3%a9"} Input: {"pathname":"/café"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"foo/bar"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"foo/bar","baseURL":"https://example.com"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"foo/bar"} Input: "https://example.com/foo/bar": FAIL (Chrome: FAIL)
Pattern: {"pathname":"foo/bar","baseURL":"https://example.com"} Input: "https://example.com/foo/bar": FAIL (Chrome: FAIL)
Pattern: {"pathname":":name.html","baseURL":"https://example.com"} Input: "https://example.com/foo.html": FAIL (Chrome: FAIL)
Pattern: {"search":"q=caf%C3%A9"} Input: {"search":"q=café"}: FAIL (Chrome: FAIL)
Pattern: {"search":"q=caf%c3%a9"} Input: {"search":"q=café"}: FAIL (Chrome: FAIL)
Pattern: {"hash":"caf%C3%A9"} Input: {"hash":"café"}: FAIL (Chrome: FAIL)
Pattern: {"hash":"caf%c3%a9"} Input: {"hash":"café"}: FAIL (Chrome: FAIL)
Pattern: {"protocol":"about","pathname":"(blank|sourcedoc)"} Input: "about:blank": FAIL (Chrome: FAIL)
Pattern: {"protocol":"data","pathname":":number([0-9]+)"} Input: "data:8675309": FAIL (Chrome: FAIL)
/urlpattern/urlpattern.https.any.serviceworker.html
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/ba"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/bar/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: "https://example.com/foo/bar": FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: "https://example.com/foo/bar/baz": FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"hostname":"example.com","pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"hostname":"example.com","pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/bar","baseURL":"https://example.com"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/bar/baz","baseURL":"https://example.com"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"hostname":"example.com","pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"protocol":"https","hostname":"example.com","pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"protocol":"https","hostname":"example.com","pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"protocol":"https","hostname":"example.com","pathname":"/foo/bar","search":"otherquery","hash":"otherhash"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: "https://example.com/foo/bar": FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: "https://example.com/foo/bar?otherquery#otherhash": FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: "https://example.com/foo/bar/baz": FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: "https://other.com/foo/bar": FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: "http://other.com/foo/bar": FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"pathname":"/foo/bar","baseURL":"https://example.com"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"pathname":"/foo/bar/baz","baseURL":"https://example.com"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"pathname":"/foo/bar","baseURL":"https://other.com"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"pathname":"/foo/bar","baseURL":"http://example.com"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar"} Input: {"pathname":"/foo/index.html"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar"} Input: {"pathname":"/foo/bar/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar(.)"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar(.)"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar(.)"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar(.)"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar?"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar?"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar?"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar?"} Input: {"pathname":"/foobar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar?"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar+"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar+"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar+"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar+"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar+"} Input: {"pathname":"/foobar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar*"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar*"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar*"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar*"} Input: {"pathname":"/foobar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)?"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)?"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)?"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)?"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)?"} Input: {"pathname":"/foobar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)?"} Input: {"pathname":"/fo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)+"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)+"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)+"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)+"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)+"} Input: {"pathname":"/foobar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)+"} Input: {"pathname":"/fo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foobar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/fo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}?"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}?"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}?"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}?"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}+"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}+"} Input: {"pathname":"/foo/bar/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}+"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}+"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}+"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/bar/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"protocol":"(café)"} Input: undefined: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"username":"(café)"} Input: undefined: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"password":"(café)"} Input: undefined: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"hostname":"(café)"} Input: undefined: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"(café)"} Input: undefined: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"search":"(café)"} Input: undefined: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"hash":"(café)"} Input: undefined: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"protocol":"(.)"} Input: {"protocol":"café"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"protocol":"(.)"} Input: {"protocol":"cafe"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"username":"caf%C3%A9"} Input: {"username":"café"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"username":"caf%c3%a9"} Input: {"username":"café"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"password":"caf%C3%A9"} Input: {"password":"café"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"password":"caf%c3%a9"} Input: {"password":"café"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"hostname":"xn--caf-dma.com"} Input: {"hostname":"café.com"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"hostname":"cafe%7C.com"} Input: {"hostname":"cafe|.com"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"hostname":"cafe%7c.com"} Input: {"hostname":"cafe|.com"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"hostname":"(.)"} Input: {"hostname":"cafe^.com"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"port":""} Input: {"protocol":"http","port":"80"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"port":"80"} Input: {"port":"80"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"port":"(.*)"} Input: {"port":"invalid80"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/./bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/baz"} Input: {"pathname":"/foo/bar/../baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/caf%C3%A9"} Input: {"pathname":"/café"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/caf%c3%a9"} Input: {"pathname":"/café"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"foo/bar","baseURL":"https://example.com"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"foo/bar"} Input: "https://example.com/foo/bar": FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"foo/bar","baseURL":"https://example.com"} Input: "https://example.com/foo/bar": FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":":name.html","baseURL":"https://example.com"} Input: "https://example.com/foo.html": FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"search":"q=caf%C3%A9"} Input: {"search":"q=café"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"search":"q=caf%c3%a9"} Input: {"search":"q=café"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"hash":"caf%C3%A9"} Input: {"hash":"café"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"hash":"caf%c3%a9"} Input: {"hash":"café"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"protocol":"about","pathname":"(blank|sourcedoc)"} Input: "about:blank": FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"protocol":"data","pathname":":number([0-9]+)"} Input: "data:8675309": FAIL (Chrome: FAIL, Safari: FAIL)
Pushed by wptsync@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/e77566be5072 [wpt PR 26863] - URLPattern: Resolve relative pathnames and canonicalize URL input., a=testonly https://hg.mozilla.org/integration/autoland/rev/79c5d7640071 [wpt PR 26863] - Update wpt metadata, a=testonly
Comment 5•3 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/e77566be5072
https://hg.mozilla.org/mozilla-central/rev/79c5d7640071
Description
•