diff --git a/Libraries/LibURL/Pattern/Canonicalization.cpp b/Libraries/LibURL/Pattern/Canonicalization.cpp index 1ae242287ae..d79c236b85c 100644 --- a/Libraries/LibURL/Pattern/Canonicalization.cpp +++ b/Libraries/LibURL/Pattern/Canonicalization.cpp @@ -202,6 +202,7 @@ PatternErrorOr canonicalize_an_opaque_pathname(String const& value) // 3. Set dummyURL’s path to the empty string. dummy_url.set_paths({ "" }); + dummy_url.set_has_an_opaque_path(true); // 4. Let parseResult be the result of running URL parsing given value with dummyURL as url and opaque path state as state override. auto parse_result = Parser::basic_parse(value, {}, &dummy_url, Parser::State::OpaquePath); diff --git a/Tests/LibWeb/Text/expected/wpt-import/urlpattern/urlpattern.any.txt b/Tests/LibWeb/Text/expected/wpt-import/urlpattern/urlpattern.any.txt index c87a61e7d58..827f42129f8 100644 --- a/Tests/LibWeb/Text/expected/wpt-import/urlpattern/urlpattern.any.txt +++ b/Tests/LibWeb/Text/expected/wpt-import/urlpattern/urlpattern.any.txt @@ -2,8 +2,8 @@ Harness status: OK Found 350 tests -170 Pass -180 Fail +172 Pass +178 Fail Pass Loading data... Fail Pattern: [{"pathname":"/foo/bar"}] Inputs: [{"pathname":"/foo/bar"}] Pass Pattern: [{"pathname":"/foo/bar"}] Inputs: [{"pathname":"/foo/ba"}] @@ -234,7 +234,7 @@ Pass Pattern: ["https://example.com/{bar}?foo"] Inputs: ["https://example.com/ba Pass Pattern: ["https://example.com/{bar}\\?foo"] Inputs: ["https://example.com/bar?foo"] Pass Pattern: ["https://example.com/"] Inputs: ["https://example.com:8080/"] Pass Pattern: ["data:foobar"] Inputs: ["data:foobar"] -Fail Pattern: ["data\\:foobar"] Inputs: ["data:foobar"] +Pass Pattern: ["data\\:foobar"] Inputs: ["data:foobar"] Pass Pattern: ["https://{sub.}?example.com/foo"] Inputs: ["https://example.com/foo"] Fail Pattern: ["https://{sub.}?example{.com/}foo"] Inputs: ["https://example.com/foo"] Pass Pattern: ["{https://}example.com/foo"] Inputs: ["https://example.com/foo"] @@ -260,7 +260,7 @@ Pass Pattern: ["https://foo@example.com"] Inputs: ["https://foo@example.com"] Pass Pattern: ["https://\\:bar@example.com"] Inputs: ["https://:bar@example.com"] Pass Pattern: ["https://:user::pass@example.com"] Inputs: ["https://foo:bar@example.com"] Pass Pattern: ["https\\:foo\\:bar@example.com"] Inputs: ["https:foo:bar@example.com"] -Fail Pattern: ["data\\:foo\\:bar@example.com"] Inputs: ["data:foo:bar@example.com"] +Pass Pattern: ["data\\:foo\\:bar@example.com"] Inputs: ["data:foo:bar@example.com"] Pass Pattern: ["https://foo{\\:}bar@example.com"] Inputs: ["https://foo:bar@example.com"] Pass Pattern: ["data{\\:}channel.html","https://example.com"] Inputs: ["https://example.com/data:channel.html"] Pass Pattern: ["http://[\\:\\:1]/"] Inputs: ["http://[::1]/"]