diff --git a/Userland/Libraries/LibWeb/HTML/Navigable.cpp b/Userland/Libraries/LibWeb/HTML/Navigable.cpp index b44dee852fb..a207e85d7fa 100644 --- a/Userland/Libraries/LibWeb/HTML/Navigable.cpp +++ b/Userland/Libraries/LibWeb/HTML/Navigable.cpp @@ -502,7 +502,13 @@ static WebIDL::ExceptionOr create_navigation_params_from_a_src Optional history_policy_container = entry->document_state->history_policy_container().visit( [](PolicyContainer const& c) -> Optional { return c; }, [](DocumentState::Client) -> Optional { return {}; }); - auto policy_container = determine_navigation_params_policy_container(*response->url(), history_policy_container, {}, navigable->container_document()->policy_container(), {}); + PolicyContainer policy_container; + if (navigable->container()) { + // NOTE: Specification assumes that only navigables corresponding to iframes can be navigated to about:srcdoc. + // We also use srcdoc to implement load_html() for top level navigables so we need to null check container + // because it might be null. + policy_container = determine_navigation_params_policy_container(*response->url(), history_policy_container, {}, navigable->container_document()->policy_container(), {}); + } // 7. Return a new navigation params, with // id: navigationId