LibURL: Rename 'cannot have a base URL' to 'has an opaque path'

This follows a rename made in the URL specification.
This commit is contained in:
Shannon Booth 2025-03-07 19:08:44 +13:00 committed by Tim Flynn
parent 6b85748f53
commit 3f73cd30a2
Notes: github-actions[bot] 2025-04-06 12:28:23 +00:00
8 changed files with 40 additions and 38 deletions

View file

@ -646,7 +646,7 @@ constexpr bool is_double_dot_path_segment(StringView input)
void Parser::shorten_urls_path(URL& url)
{
// 1. Assert: url does not have an opaque path.
VERIFY(!url.cannot_be_a_base_url());
VERIFY(!url.has_an_opaque_path());
// 2. Let path be urls path.
auto& path = url.m_data->paths;
@ -892,7 +892,7 @@ Optional<URL> Parser::basic_parse(StringView raw_input, Optional<URL const&> bas
}
// 9. Otherwise, set urls path to the empty string and set state to opaque path state.
else {
url->m_data->cannot_be_a_base_url = true;
url->m_data->has_an_opaque_path = true;
url->append_slash();
state = State::OpaquePath;
}
@ -912,18 +912,18 @@ Optional<URL> Parser::basic_parse(StringView raw_input, Optional<URL const&> bas
// -> no scheme state, https://url.spec.whatwg.org/#no-scheme-state
case State::NoScheme:
// 1. If base is null, or base has an opaque path and c is not U+0023 (#), missing-scheme-non-relative-URL validation error, return failure.
if (!base_url.has_value() || (base_url->m_data->cannot_be_a_base_url && code_point != '#')) {
if (!base_url.has_value() || (base_url->has_an_opaque_path() && code_point != '#')) {
report_validation_error();
return {};
}
// 2. Otherwise, if base has an opaque path and c is U+0023 (#), set urls scheme to bases scheme, urls path to bases path, urls query
// to bases query,urls fragment to the empty string, and set state to fragment state.
else if (base_url->m_data->cannot_be_a_base_url && code_point == '#') {
else if (base_url->has_an_opaque_path() && code_point == '#') {
url->m_data->scheme = base_url->m_data->scheme;
url->m_data->paths = base_url->m_data->paths;
url->m_data->query = base_url->m_data->query;
url->m_data->fragment = String {};
url->m_data->cannot_be_a_base_url = true;
url->m_data->has_an_opaque_path = true;
state = State::Fragment;
}
// 3. Otherwise, if bases scheme is not "file", set state to relative state and decrease pointer by 1.