LibWeb: Make Environment's top level origin nullable
Some checks are pending
CI / Lagom (arm64, Sanitizer_CI, false, macos-15, macOS, Clang) (push) Waiting to run
CI / Lagom (x86_64, Fuzzers_CI, false, ubuntu-24.04, Linux, Clang) (push) Waiting to run
CI / Lagom (x86_64, Sanitizer_CI, false, ubuntu-24.04, Linux, GNU) (push) Waiting to run
CI / Lagom (x86_64, Sanitizer_CI, true, ubuntu-24.04, Linux, Clang) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (arm64, macos-15, macOS, macOS-universal2) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (x86_64, ubuntu-24.04, Linux, Linux-x86_64) (push) Waiting to run
Run test262 and test-wasm / run_and_update_results (push) Waiting to run
Lint Code / lint (push) Waiting to run
Label PRs with merge conflicts / auto-labeler (push) Waiting to run
Push notes / build (push) Waiting to run

This matches the definition in the spec, and is also a step towards
removing the default constructor of URL::Origin.
This commit is contained in:
Shannon Booth 2025-05-25 16:47:37 +12:00 committed by Shannon Booth
commit 937994cfaa
Notes: github-actions[bot] 2025-05-27 02:49:41 +00:00
11 changed files with 20 additions and 16 deletions

View file

@ -428,7 +428,7 @@ Navigable::ChosenNavigable Navigable::choose_a_navigable(StringView name, Tokeni
// 4. If currentDocument's opener policy's value is "same-origin" or "same-origin-plus-COEP",
// and currentDocument's origin is not same origin with currentDocument's relevant settings object's top-level origin, then:
if ((current_document->opener_policy().value == OpenerPolicyValue::SameOrigin || current_document->opener_policy().value == OpenerPolicyValue::SameOriginPlusCOEP)
&& !current_document->origin().is_same_origin(relevant_settings_object(*current_document).top_level_origin)) {
&& !current_document->origin().is_same_origin(relevant_settings_object(*current_document).top_level_origin.value())) {
// 1. Set noopener to true.
no_opener = TokenizedFeature::NoOpener::Yes;
@ -936,7 +936,7 @@ static WebIDL::ExceptionOr<Navigable::NavigationParamsVariant> create_navigation
Optional<URL::URL> top_level_creation_url = current_url;
// 2. Let topLevelOrigin be null.
URL::Origin top_level_origin;
Optional<URL::Origin> top_level_origin;
// 3. If navigable is not a top-level traversable, then:
if (!navigable->is_top_level_traversable()) {