From df52040ce9ae7ab49b6f1d6d50dacccdce0d0d0a Mon Sep 17 00:00:00 2001 From: Luke Date: Fri, 7 May 2021 00:54:20 +0100 Subject: [PATCH] LibWeb: Implement replacing the current body when setting document.body Also adds an exception check to the append at the end. --- Userland/Libraries/LibWeb/DOM/Document.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Userland/Libraries/LibWeb/DOM/Document.cpp b/Userland/Libraries/LibWeb/DOM/Document.cpp index 0f652e69a3..2777eed422 100644 --- a/Userland/Libraries/LibWeb/DOM/Document.cpp +++ b/Userland/Libraries/LibWeb/DOM/Document.cpp @@ -222,7 +222,9 @@ ExceptionOr Document::set_body(HTML::HTMLElement& new_body) auto* existing_body = body(); if (existing_body) { - TODO(); + auto replace_result = existing_body->parent()->replace_child(new_body, *existing_body); + if (replace_result.is_exception()) + return NonnullRefPtr(replace_result.exception()); return {}; } @@ -230,7 +232,9 @@ ExceptionOr Document::set_body(HTML::HTMLElement& new_body) if (!document_element) return DOM::HierarchyRequestError::create("Missing document element"); - document_element->append_child(new_body); + auto append_result = document_element->append_child(new_body); + if (append_result.is_exception()) + return NonnullRefPtr(append_result.exception()); return {}; }