mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-08-01 05:39:11 +00:00
LibURL/Pattern: Implement 'compute protocol matches a special scheme'
This commit is contained in:
parent
6b1fa3ecd0
commit
e54504ad93
Notes:
github-actions[bot]
2025-04-06 12:26:59 +00:00
Author: https://github.com/shannonbooth
Commit: e54504ad93
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/3847
Reviewed-by: https://github.com/trflynn89
2 changed files with 17 additions and 8 deletions
|
@ -381,7 +381,16 @@ String ConstructorStringParser::make_a_component_string() const
|
||||||
// https://urlpattern.spec.whatwg.org/#compute-protocol-matches-a-special-scheme-flag
|
// https://urlpattern.spec.whatwg.org/#compute-protocol-matches-a-special-scheme-flag
|
||||||
PatternErrorOr<void> ConstructorStringParser::compute_protocol_matches_a_special_scheme_flag()
|
PatternErrorOr<void> ConstructorStringParser::compute_protocol_matches_a_special_scheme_flag()
|
||||||
{
|
{
|
||||||
// FIXME: Implement this.
|
// 1. Let protocol string be the result of running make a component string given parser.
|
||||||
|
auto protocol_string = make_a_component_string();
|
||||||
|
|
||||||
|
// 2. Let protocol component be the result of compiling a component given protocol string, canonicalize a protocol, and default options.
|
||||||
|
auto protocol_component = TRY(Component::compile(protocol_string.code_points(), canonicalize_a_protocol, Options::default_()));
|
||||||
|
|
||||||
|
// 3. If the result of running protocol component matches a special scheme given protocol component is true, then set parser’s protocol matches a special scheme flag to true.
|
||||||
|
if (protocol_component_matches_a_special_scheme(protocol_component))
|
||||||
|
m_protocol_matches_a_special_scheme = true;
|
||||||
|
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,8 +2,8 @@ Harness status: OK
|
||||||
|
|
||||||
Found 350 tests
|
Found 350 tests
|
||||||
|
|
||||||
155 Pass
|
160 Pass
|
||||||
195 Fail
|
190 Fail
|
||||||
Pass Loading data...
|
Pass Loading data...
|
||||||
Fail Pattern: [{"pathname":"/foo/bar"}] Inputs: [{"pathname":"/foo/bar"}]
|
Fail Pattern: [{"pathname":"/foo/bar"}] Inputs: [{"pathname":"/foo/bar"}]
|
||||||
Pass Pattern: [{"pathname":"/foo/bar"}] Inputs: [{"pathname":"/foo/ba"}]
|
Pass Pattern: [{"pathname":"/foo/bar"}] Inputs: [{"pathname":"/foo/ba"}]
|
||||||
|
@ -218,10 +218,10 @@ Fail Pattern: ["/foo?bar#baz","https://example.com:8080"] Inputs: [{"pathname":"
|
||||||
Pass Pattern: ["/foo"] Inputs: undefined
|
Pass Pattern: ["/foo"] Inputs: undefined
|
||||||
Pass Pattern: ["example.com/foo"] Inputs: undefined
|
Pass Pattern: ["example.com/foo"] Inputs: undefined
|
||||||
Pass Pattern: ["http{s}?://{*.}?example.com/:product/:endpoint"] Inputs: ["https://sub.example.com/foo/bar"]
|
Pass Pattern: ["http{s}?://{*.}?example.com/:product/:endpoint"] Inputs: ["https://sub.example.com/foo/bar"]
|
||||||
Fail Pattern: ["https://example.com?foo"] Inputs: ["https://example.com/?foo"]
|
Pass Pattern: ["https://example.com?foo"] Inputs: ["https://example.com/?foo"]
|
||||||
Fail Pattern: ["https://example.com#foo"] Inputs: ["https://example.com/#foo"]
|
Pass Pattern: ["https://example.com#foo"] Inputs: ["https://example.com/#foo"]
|
||||||
Fail Pattern: ["https://example.com:8080?foo"] Inputs: ["https://example.com:8080/?foo"]
|
Pass Pattern: ["https://example.com:8080?foo"] Inputs: ["https://example.com:8080/?foo"]
|
||||||
Fail Pattern: ["https://example.com:8080#foo"] Inputs: ["https://example.com:8080/#foo"]
|
Pass Pattern: ["https://example.com:8080#foo"] Inputs: ["https://example.com:8080/#foo"]
|
||||||
Pass Pattern: ["https://example.com/?foo"] Inputs: ["https://example.com/?foo"]
|
Pass Pattern: ["https://example.com/?foo"] Inputs: ["https://example.com/?foo"]
|
||||||
Pass Pattern: ["https://example.com/#foo"] Inputs: ["https://example.com/#foo"]
|
Pass Pattern: ["https://example.com/#foo"] Inputs: ["https://example.com/#foo"]
|
||||||
Fail Pattern: ["https://example.com/*?foo"] Inputs: ["https://example.com/?foo"]
|
Fail Pattern: ["https://example.com/*?foo"] Inputs: ["https://example.com/?foo"]
|
||||||
|
@ -259,7 +259,7 @@ Pass Pattern: ["https://foo\\:bar@example.com"] Inputs: ["https://foo:bar@exampl
|
||||||
Pass Pattern: ["https://foo@example.com"] Inputs: ["https://foo@example.com"]
|
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://\\:bar@example.com"] Inputs: ["https://:bar@example.com"]
|
||||||
Pass Pattern: ["https://:user::pass@example.com"] Inputs: ["https://foo:bar@example.com"]
|
Pass Pattern: ["https://:user::pass@example.com"] Inputs: ["https://foo:bar@example.com"]
|
||||||
Fail Pattern: ["https\\:foo\\:bar@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"]
|
Fail 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: ["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: ["data{\\:}channel.html","https://example.com"] Inputs: ["https://example.com/data:channel.html"]
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue