LibWeb: Temporarily disable site isolation for subframes
Some checks are pending
CI / Lagom (x86_64, Sanitizer_CI, true, ubuntu-24.04, Linux, Clang) (push) Waiting to run
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
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

We don't yet support out-of-process subframes. Explicitly disable even
attempting to isolate subframes. Otherwise, navigating a subframe to a
non-same-site URL would actually cause the top-level frame to navigate
with our current implementation.
This commit is contained in:
Timothy Flynn 2025-04-26 07:46:48 -04:00 committed by Tim Flynn
parent e52c09ad4c
commit 0e2036d6c2
Notes: github-actions[bot] 2025-04-26 14:17:05 +00:00

View file

@ -1402,12 +1402,14 @@ WebIDL::ExceptionOr<void> Navigable::navigate(NavigateParams params)
auto source_document = params.source_document;
auto exceptions_enabled = params.exceptions_enabled;
auto& active_document = *this->active_document();
auto& realm = active_document.realm();
auto& page_client = active_document.page().client();
// AD-HOC: If we are not able to continue in this process, request a new process from the UI.
if (!active_document.page().client().is_url_suitable_for_same_process_navigation(active_document.url(), params.url)) {
active_document.page().client().request_new_process_for_navigation(params.url);
if (is_top_level_traversable() && !page_client.is_url_suitable_for_same_process_navigation(active_document.url(), params.url)) {
page_client.request_new_process_for_navigation(params.url);
return {};
}