Closed Bug 1681348 Opened 3 years ago Closed 3 years ago

[wpt-sync] Sync PR 26803 - URLPattern: Implement exec().

Categories

(Testing :: web-platform-tests, task, P4)

task

Tracking

(firefox86 fixed)

RESOLVED FIXED
86 Branch
Tracking Status
firefox86 --- fixed

People

(Reporter: mozilla.org, Unassigned)

References

()

Details

(Whiteboard: [wptsync downstream])

Sync web-platform-tests PR 26803 into mozilla-central (this bug is closed when the sync is complete).

PR: https://github.com/web-platform-tests/wpt/pull/26803
Details from upstream follow.

b'Ben Kelly <wanderview@chromium.org>' wrote:

URLPattern: Implement exec().

This CL provides an initial implementation of the URLPattern.exec()
method. It mainly differs from test() in that it returns a full
URLPatternResult object instead of just a boolean. The result object
looks something like:

{
input: \<input string or object passed to exec()>,
protocol: \<component result>,
username: \<component result>,
password: \<component result>,
hostname: \<component result>,
port: \<component result>,
pathname: \<component result>,
search: \<component result>,
hash: \<component result>
}

Each URLPatternComponentResult looks like:

{
input: \<input component string>,
groups: {
\<group name or numeric number string>: \<matched group value>
}
}

To support extracting matched group values this CL enhances ScriptRegexp
to populate an optional vector of strings.

In addition, this CL enhances the WPT tests to process expected result
objects. In general it is only necessary to provide component results
for components that match non-empty inputs. The test runner will
automatically add expected results for empty components.

This CL also contains a fix in ApplyInit()'s handling of baseURL. The
intent was to treat non-specified components as the explicit empty
string. The code now does this. This also happens to handle the
unexpected behavior of KURL::GetPass() which always returns a null
string in place of an empty string.

Finally, this CL removes the toRegex() stub as well. That API is
unlikely to land in the current form, so lets just remove it until
it can be properly designed.

Bug: 1141510
Change-Id: Iedd0598a3d5e493c3e7ed0eb5dce4b09019abca3

Reviewed-on: https://chromium-review.googlesource.com/2575343
WPT-Export-Revision: 933e52c449cdf127cb9f3d88588a10bcc721e4d4

PR 26803 applied with additional changes from upstream: b2e07c28323bbe3791d693039a44637b29130c56

CI Results

Ran 14 Firefox configurations based on mozilla-central, and Firefox, Chrome, and Safari on GitHub CI

Total 4 tests and 88 subtests

Status Summary

Firefox

OK : 4
PASS : 4
FAIL : 348

Chrome

OK : 4
PASS : 4
FAIL : 348

Safari

OK : 3
PASS : 3
FAIL : 261
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)
/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)
/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)
/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)

Pushed by wptsync@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/09fb9ac91ade
[wpt PR 26803] - URLPattern: Implement exec()., a=testonly
https://hg.mozilla.org/integration/autoland/rev/7f9c522505aa
[wpt PR 26803] - Update wpt metadata, a=testonly
You need to log in before you can comment on or make changes to this bug.