From e852aff9e37ef43aa002e54c36cfbc10cb37e7d9 Mon Sep 17 00:00:00 2001 From: MacDue Date: Sun, 2 Oct 2022 17:55:31 +0100 Subject: [PATCH] LibWeb: Fix crash when loading a HTML string that contains an iframe The HTMLIFrameElement does not create the nested browsing context on insertion if the document does not have browsing context, which is not set unless it's the active document. Previously, in FrameLoader the document was not set as active until after parsing, which led to iframes without nested browsing contexts, and crashes. Fixes #14207 --- Userland/Libraries/LibWeb/Loader/FrameLoader.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Userland/Libraries/LibWeb/Loader/FrameLoader.cpp b/Userland/Libraries/LibWeb/Loader/FrameLoader.cpp index dd1f74a67e..efe839baf1 100644 --- a/Userland/Libraries/LibWeb/Loader/FrameLoader.cpp +++ b/Userland/Libraries/LibWeb/Loader/FrameLoader.cpp @@ -317,10 +317,10 @@ void FrameLoader::load_html(StringView html, const AK::URL& url) DOM::Document::Type::HTML, "text/html", move(navigation_params)); + browsing_context().set_active_document(document); auto parser = HTML::HTMLParser::create(document, html, "utf-8"); parser->run(url); - browsing_context().set_active_document(parser->document()); } static String s_error_page_url = "file:///res/html/error.html";