diff --git a/Libraries/LibWeb/HTML/Navigable.cpp b/Libraries/LibWeb/HTML/Navigable.cpp index 047cf37a293..ed98f6fda9b 100644 --- a/Libraries/LibWeb/HTML/Navigable.cpp +++ b/Libraries/LibWeb/HTML/Navigable.cpp @@ -1342,6 +1342,10 @@ WebIDL::ExceptionOr Navigable::populate_session_history_entry_document( WebIDL::ExceptionOr Navigable::navigate(NavigateParams params) { + // AD-HOC: Not in the spec but subsequent steps will fail if the navigable doesn't have an active window. + if (!active_window()) + return {}; + auto source_document = params.source_document; auto exceptions_enabled = params.exceptions_enabled; auto& active_document = *this->active_document(); diff --git a/Tests/LibWeb/Assets/blank.html b/Tests/LibWeb/Assets/blank.html new file mode 100644 index 00000000000..530d73115de --- /dev/null +++ b/Tests/LibWeb/Assets/blank.html @@ -0,0 +1 @@ +
blank page
diff --git a/Tests/LibWeb/Crash/HTML/navigate-navigable-without-active-window.html b/Tests/LibWeb/Crash/HTML/navigate-navigable-without-active-window.html new file mode 100644 index 00000000000..c36a9a7c15d --- /dev/null +++ b/Tests/LibWeb/Crash/HTML/navigate-navigable-without-active-window.html @@ -0,0 +1,21 @@ + + + +