From 802af5ad9da86a78a231a7ba251ac53256622025 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Mon, 27 May 2024 13:51:02 +0200 Subject: [PATCH] LibWeb: Allow Element.insertAdjacentHTML on the document element This fixes wpt/domparsing/insert_adjacent_html.html --- .../HTML/Element-insertAdjacentHTML-documentElement.txt | 1 + .../HTML/Element-insertAdjacentHTML-documentElement.html | 7 +++++++ Userland/Libraries/LibWeb/DOM/Element.cpp | 3 +-- 3 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 Tests/LibWeb/Text/expected/HTML/Element-insertAdjacentHTML-documentElement.txt create mode 100644 Tests/LibWeb/Text/input/HTML/Element-insertAdjacentHTML-documentElement.html diff --git a/Tests/LibWeb/Text/expected/HTML/Element-insertAdjacentHTML-documentElement.txt b/Tests/LibWeb/Text/expected/HTML/Element-insertAdjacentHTML-documentElement.txt new file mode 100644 index 00000000000..aaecaf93c4a --- /dev/null +++ b/Tests/LibWeb/Text/expected/HTML/Element-insertAdjacentHTML-documentElement.txt @@ -0,0 +1 @@ +PASS (didn't crash) diff --git a/Tests/LibWeb/Text/input/HTML/Element-insertAdjacentHTML-documentElement.html b/Tests/LibWeb/Text/input/HTML/Element-insertAdjacentHTML-documentElement.html new file mode 100644 index 00000000000..66de31038f9 --- /dev/null +++ b/Tests/LibWeb/Text/input/HTML/Element-insertAdjacentHTML-documentElement.html @@ -0,0 +1,7 @@ + + diff --git a/Userland/Libraries/LibWeb/DOM/Element.cpp b/Userland/Libraries/LibWeb/DOM/Element.cpp index ebb3793e93c..6174f6d57eb 100644 --- a/Userland/Libraries/LibWeb/DOM/Element.cpp +++ b/Userland/Libraries/LibWeb/DOM/Element.cpp @@ -1489,8 +1489,7 @@ WebIDL::ExceptionOr Element::insert_adjacent_html(String const& position, || (context->document().document_type() == Document::Type::HTML && static_cast(*context).local_name() == "html"sv && static_cast(*context).namespace_uri() == Namespace::HTML)) { - // FIXME: set context to the result of creating an element given this's node document, body, and the HTML namespace. - TODO(); + context = TRY(create_element(document(), HTML::TagNames::body, Namespace::HTML)); } // 4. Let fragment be the result of invoking the fragment parsing algorithm steps with context and string.