mirror of
https://github.com/fergalmoran/ladybird.git
synced 2025-12-25 02:40:49 +00:00
LibWeb: Fix crash when setting innerHTML inside iframe srcdoc document
In particular, there was an assertion failure due to the temporary parser document's "about base URL" being empty when trying to "parse a URL" during parsing. We fix this by copying the context element's document's about base URL to the temporary parsing document while parsing a fragment. This fixes a crash when loading search results on https://amazon.com/
This commit is contained in:
committed by
Andreas Kling
parent
782926601d
commit
b64df59cc6
@@ -4273,6 +4273,10 @@ Vector<JS::Handle<DOM::Node>> HTMLParser::parse_html_fragment(DOM::Element& cont
|
||||
auto temp_document = DOM::Document::create_for_fragment_parsing(context_element.realm());
|
||||
temp_document->set_document_type(DOM::Document::Type::HTML);
|
||||
|
||||
// AD-HOC: We set the about base URL of the document to the same as the context element's document.
|
||||
// This is required for Document::parse_url() to work inside iframe srcdoc documents.
|
||||
temp_document->set_about_base_url(context_element.document().about_base_url());
|
||||
|
||||
// 2. If the node document of the context element is in quirks mode, then let the Document be in quirks mode.
|
||||
// Otherwise, the node document of the context element is in limited-quirks mode, then let the Document be in limited-quirks mode.
|
||||
// Otherwise, leave the Document in no-quirks mode.
|
||||
|
||||
Reference in New Issue
Block a user