From 8dc8d574180469050e82bebb13fb094c4a05256b Mon Sep 17 00:00:00 2001 From: Sam Atkins Date: Mon, 11 Dec 2023 17:26:59 +0000 Subject: [PATCH] LibWeb: Make load_document()'s NavigationParams non-optional There's no mention in the spec of this being optional, all the places that call it always pass a NavigationParams directly, and we're VERIFYing that it's got a value too! --- .../Libraries/LibWeb/DOM/DocumentLoading.cpp | 22 +++++++++---------- .../Libraries/LibWeb/DOM/DocumentLoading.h | 2 +- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/Userland/Libraries/LibWeb/DOM/DocumentLoading.cpp b/Userland/Libraries/LibWeb/DOM/DocumentLoading.cpp index 529e11887f..853120a7d5 100644 --- a/Userland/Libraries/LibWeb/DOM/DocumentLoading.cpp +++ b/Userland/Libraries/LibWeb/DOM/DocumentLoading.cpp @@ -257,11 +257,9 @@ static bool is_supported_document_mime_type(StringView mime_type) } // https://html.spec.whatwg.org/multipage/browsing-the-web.html#loading-a-document -JS::GCPtr load_document(Optional navigation_params) +JS::GCPtr load_document(HTML::NavigationParams navigation_params) { - VERIFY(navigation_params.has_value()); - - auto extracted_mime_type = navigation_params->response->header_list()->extract_mime_type().release_value_but_fixme_should_propagate_errors(); + auto extracted_mime_type = navigation_params.response->header_list()->extract_mime_type().release_value_but_fixme_should_propagate_errors(); if (!extracted_mime_type.has_value()) return nullptr; @@ -269,14 +267,14 @@ JS::GCPtr load_document(Optional navigati if (!is_supported_document_mime_type(mime_type.essence())) return nullptr; - auto document = DOM::Document::create_and_initialize(DOM::Document::Type::HTML, "text/html"_string, *navigation_params).release_value_but_fixme_should_propagate_errors(); + auto document = DOM::Document::create_and_initialize(DOM::Document::Type::HTML, "text/html"_string, navigation_params).release_value_but_fixme_should_propagate_errors(); document->set_content_type(mime_type.essence()); auto& realm = document->realm(); - if (navigation_params->response->body()) { + if (navigation_params.response->body()) { Optional content_encoding = mime_type.parameters().get("charset"sv); - auto process_body = [document, url = navigation_params->response->url().value(), encoding = move(content_encoding)](ByteBuffer bytes) { + auto process_body = [document, url = navigation_params.response->url().value(), encoding = move(content_encoding)](ByteBuffer bytes) { if (parse_document(*document, bytes, move(encoding))) return; document->remove_all_children(true); @@ -290,11 +288,11 @@ JS::GCPtr load_document(Optional navigati dbgln("FIXME: Load html page with an error if read of body failed."); }; - navigation_params->response->body()->fully_read( - realm, - move(process_body), - move(process_body_error), - JS::NonnullGCPtr { realm.global_object() }) + navigation_params.response->body()->fully_read( + realm, + move(process_body), + move(process_body_error), + JS::NonnullGCPtr { realm.global_object() }) .release_value_but_fixme_should_propagate_errors(); } diff --git a/Userland/Libraries/LibWeb/DOM/DocumentLoading.h b/Userland/Libraries/LibWeb/DOM/DocumentLoading.h index 564ac7205f..cca7dd27cd 100644 --- a/Userland/Libraries/LibWeb/DOM/DocumentLoading.h +++ b/Userland/Libraries/LibWeb/DOM/DocumentLoading.h @@ -13,7 +13,7 @@ namespace Web { bool build_xml_document(DOM::Document& document, ByteBuffer const& data, Optional content_encoding); bool parse_document(DOM::Document& document, ByteBuffer const& data, Optional content_encoding); -JS::GCPtr load_document(Optional navigation_params); +JS::GCPtr load_document(HTML::NavigationParams navigation_params); JS::GCPtr create_document_for_inline_content(JS::GCPtr navigable, Optional navigation_id, StringView content_html); }