diff --git a/Applications/Browser/ConsoleWidget.cpp b/Applications/Browser/ConsoleWidget.cpp index f6a843ddbb1..8de5adb6b4d 100644 --- a/Applications/Browser/ConsoleWidget.cpp +++ b/Applications/Browser/ConsoleWidget.cpp @@ -47,7 +47,7 @@ ConsoleWidget::ConsoleWidget() set_layout(); set_fill_with_background_color(true); - auto base_document = adopt(*new Web::DOM::Document); + auto base_document = Web::DOM::Document::create(); base_document->append_child(adopt(*new Web::DOM::DocumentType(base_document))); auto html_element = base_document->create_element("html"); base_document->append_child(html_element); diff --git a/Applications/IRCClient/IRCLogBuffer.cpp b/Applications/IRCClient/IRCLogBuffer.cpp index 92a952d61b8..b292e0a4ee5 100644 --- a/Applications/IRCClient/IRCLogBuffer.cpp +++ b/Applications/IRCClient/IRCLogBuffer.cpp @@ -40,7 +40,7 @@ NonnullRefPtr IRCLogBuffer::create() IRCLogBuffer::IRCLogBuffer() { - m_document = adopt(*new Web::DOM::Document); + m_document = Web::DOM::Document::create(); m_document->append_child(adopt(*new Web::DOM::DocumentType(document()))); auto html_element = m_document->create_element("html"); m_document->append_child(html_element); diff --git a/Libraries/LibWeb/DOM/Document.h b/Libraries/LibWeb/DOM/Document.h index b4fb5d073d0..b1792548670 100644 --- a/Libraries/LibWeb/DOM/Document.h +++ b/Libraries/LibWeb/DOM/Document.h @@ -57,7 +57,7 @@ class Document public: using WrapperType = Bindings::DocumentWrapper; - explicit Document(const URL& = {}); + static NonnullRefPtr create(const URL& url = {}) { return adopt(*new Document(url)); } virtual ~Document() override; void set_url(const URL& url) { m_url = url; } @@ -192,6 +192,8 @@ public: Window& window() { return *m_window; } private: + explicit Document(const URL&); + virtual RefPtr create_layout_node(const CSS::StyleProperties* parent_style) override; void tear_down_layout_tree(); diff --git a/Libraries/LibWeb/HTML/HTMLTemplateElement.cpp b/Libraries/LibWeb/HTML/HTMLTemplateElement.cpp index ee166924b1d..8a0209337b0 100644 --- a/Libraries/LibWeb/HTML/HTMLTemplateElement.cpp +++ b/Libraries/LibWeb/HTML/HTMLTemplateElement.cpp @@ -44,8 +44,8 @@ DOM::Document& HTMLTemplateElement::appropriate_template_contents_owner_document { if (!document.created_for_appropriate_template_contents()) { if (!document.associated_inert_template_document()) { - DOM::Document new_document; - new_document.set_created_for_appropriate_template_contents(true); + auto new_document = DOM::Document::create(); + new_document->set_created_for_appropriate_template_contents(true); // FIXME: If doc is an HTML document, mark new doc as an HTML document also. diff --git a/Libraries/LibWeb/HTML/Parser/HTMLDocumentParser.cpp b/Libraries/LibWeb/HTML/Parser/HTMLDocumentParser.cpp index 26a3598539a..6872bf1546f 100644 --- a/Libraries/LibWeb/HTML/Parser/HTMLDocumentParser.cpp +++ b/Libraries/LibWeb/HTML/Parser/HTMLDocumentParser.cpp @@ -118,7 +118,7 @@ RefPtr parse_html_document(const StringView& data, const URL& url HTMLDocumentParser::HTMLDocumentParser(const StringView& input, const String& encoding) : m_tokenizer(input, encoding) { - m_document = adopt(*new DOM::Document); + m_document = DOM::Document::create(); } HTMLDocumentParser::HTMLDocumentParser(const StringView& input, const String& encoding, DOM::Document& existing_document) diff --git a/Libraries/LibWeb/Loader/FrameLoader.cpp b/Libraries/LibWeb/Loader/FrameLoader.cpp index 9f2a338418c..2b6f9bfef5d 100644 --- a/Libraries/LibWeb/Loader/FrameLoader.cpp +++ b/Libraries/LibWeb/Loader/FrameLoader.cpp @@ -63,7 +63,7 @@ static RefPtr create_markdown_document(const ByteBuffer& data, co static RefPtr create_text_document(const ByteBuffer& data, const URL& url) { - auto document = adopt(*new DOM::Document(url)); + auto document = DOM::Document::create(url); auto html_element = document->create_element("html"); document->append_child(html_element); @@ -88,7 +88,7 @@ static RefPtr create_text_document(const ByteBuffer& data, const static RefPtr create_image_document(const ByteBuffer& data, const URL& url) { - auto document = adopt(*new DOM::Document(url)); + auto document = DOM::Document::create(url); auto image_decoder = Gfx::ImageDecoder::create(data.data(), data.size()); auto bitmap = image_decoder->bitmap(); diff --git a/Userland/test-web.cpp b/Userland/test-web.cpp index b8c46024f2b..cf06d58d6ab 100644 --- a/Userland/test-web.cpp +++ b/Userland/test-web.cpp @@ -686,7 +686,7 @@ int main(int argc, char** argv) main_widget.set_layout(); auto& view = main_widget.add(); - view.set_document(adopt(*new Web::DOM::Document)); + view.set_document(Web::DOM::Document::create()); if (show_window) { window->set_title("LibWeb Test Window");