diff --git a/Tests/LibWeb/TestFetchURL.cpp b/Tests/LibWeb/TestFetchURL.cpp index 737f114f21a..3c373fb82b7 100644 --- a/Tests/LibWeb/TestFetchURL.cpp +++ b/Tests/LibWeb/TestFetchURL.cpp @@ -18,7 +18,7 @@ TEST_CASE(data_url) EXPECT_EQ(url.serialize(), "data:text/html,test"); auto data_url = TRY_OR_FAIL(Web::Fetch::Infrastructure::process_data_url(url)); - EXPECT_EQ(TRY_OR_FAIL(data_url.mime_type.serialized()), "text/html"); + EXPECT_EQ(data_url.mime_type.serialized(), "text/html"); EXPECT_EQ(StringView(data_url.body.bytes()), "test"sv); } @@ -31,7 +31,7 @@ TEST_CASE(data_url_default_mime_type) EXPECT_EQ(url.serialize(), "data:,test"); auto data_url = TRY_OR_FAIL(Web::Fetch::Infrastructure::process_data_url(url)); - EXPECT_EQ(TRY_OR_FAIL(data_url.mime_type.serialized()), "text/plain;charset=US-ASCII"); + EXPECT_EQ(data_url.mime_type.serialized(), "text/plain;charset=US-ASCII"); EXPECT_EQ(StringView(data_url.body.bytes()), "test"sv); } @@ -44,7 +44,7 @@ TEST_CASE(data_url_encoded) EXPECT_EQ(url.serialize(), "data:text/html,Hello%20friends%2C%0X%X0"); auto data_url = TRY_OR_FAIL(Web::Fetch::Infrastructure::process_data_url(url)); - EXPECT_EQ(TRY_OR_FAIL(data_url.mime_type.serialized()), "text/html"); + EXPECT_EQ(data_url.mime_type.serialized(), "text/html"); EXPECT_EQ(StringView(data_url.body.bytes()), "Hello friends,%0X%X0"sv); } @@ -57,7 +57,7 @@ TEST_CASE(data_url_base64_encoded) EXPECT_EQ(url.serialize(), "data:text/html;base64,dGVzdA=="); auto data_url = TRY_OR_FAIL(Web::Fetch::Infrastructure::process_data_url(url)); - EXPECT_EQ(TRY_OR_FAIL(data_url.mime_type.serialized()), "text/html"); + EXPECT_EQ(data_url.mime_type.serialized(), "text/html"); EXPECT_EQ(StringView(data_url.body.bytes()), "test"sv); } @@ -70,7 +70,7 @@ TEST_CASE(data_url_base64_encoded_default_mime_type) EXPECT_EQ(url.serialize(), "data:;base64,dGVzdA=="); auto data_url = TRY_OR_FAIL(Web::Fetch::Infrastructure::process_data_url(url)); - EXPECT_EQ(TRY_OR_FAIL(data_url.mime_type.serialized()), "text/plain;charset=US-ASCII"); + EXPECT_EQ(data_url.mime_type.serialized(), "text/plain;charset=US-ASCII"); EXPECT_EQ(StringView(data_url.body.bytes()), "test"sv); } @@ -83,7 +83,7 @@ TEST_CASE(data_url_base64_encoded_with_whitespace) EXPECT_EQ(url.serialize(), "data: text/html ; bAsE64 , dGVz dA=="); auto data_url = TRY_OR_FAIL(Web::Fetch::Infrastructure::process_data_url(url)); - EXPECT_EQ(TRY_OR_FAIL(data_url.mime_type.serialized()), "text/html"); + EXPECT_EQ(data_url.mime_type.serialized(), "text/html"); EXPECT_EQ(StringView(data_url.body.bytes()), "test"); } @@ -95,7 +95,7 @@ TEST_CASE(data_url_base64_encoded_with_inline_whitespace) EXPECT(url.host().has<Empty>()); auto data_url = TRY_OR_FAIL(Web::Fetch::Infrastructure::process_data_url(url)); - EXPECT_EQ(TRY_OR_FAIL(data_url.mime_type.serialized()), "text/javascript"); + EXPECT_EQ(data_url.mime_type.serialized(), "text/javascript"); EXPECT_EQ(StringView(data_url.body.bytes()), "d4 = 'four';"sv); } @@ -108,6 +108,6 @@ TEST_CASE(data_url_completed_with_fragment) EXPECT(url.host().has<Empty>()); auto data_url = TRY_OR_FAIL(Web::Fetch::Infrastructure::process_data_url(url)); - EXPECT_EQ(TRY_OR_FAIL(data_url.mime_type.serialized()), "text/plain"); + EXPECT_EQ(data_url.mime_type.serialized(), "text/plain"); EXPECT_EQ(StringView(data_url.body.bytes()), "test"sv); } diff --git a/Tests/LibWeb/TestMimeSniff.cpp b/Tests/LibWeb/TestMimeSniff.cpp index d81757b4386..7c6d01e30d9 100644 --- a/Tests/LibWeb/TestMimeSniff.cpp +++ b/Tests/LibWeb/TestMimeSniff.cpp @@ -15,7 +15,7 @@ TEST_CASE(determine_computed_mime_type_given_no_sniff_is_set) auto mime_type = Web::MimeSniff::MimeType::create("text"_string, "html"_string); auto computed_mime_type = MUST(Web::MimeSniff::Resource::sniff("\x00"sv.bytes(), Web::MimeSniff::SniffingConfiguration { .supplied_type = mime_type, .no_sniff = true })); - EXPECT_EQ("text/html"sv, MUST(computed_mime_type.serialized())); + EXPECT_EQ("text/html"sv, computed_mime_type.serialized()); // Cover the edge case in the context-specific sniffing algorithm. computed_mime_type = MUST(Web::MimeSniff::Resource::sniff("\x00"sv.bytes(), Web::MimeSniff::SniffingConfiguration { @@ -24,7 +24,7 @@ TEST_CASE(determine_computed_mime_type_given_no_sniff_is_set) .no_sniff = true, })); - EXPECT_EQ("text/html"sv, MUST(computed_mime_type.serialized())); + EXPECT_EQ("text/html"sv, computed_mime_type.serialized()); } TEST_CASE(determine_computed_mime_type_given_no_sniff_is_unset) @@ -32,7 +32,7 @@ TEST_CASE(determine_computed_mime_type_given_no_sniff_is_unset) auto supplied_type = Web::MimeSniff::MimeType::create("application"_string, "x-this-is-a-test"_string); auto computed_mime_type = MUST(Web::MimeSniff::Resource::sniff("\x00"sv.bytes(), Web::MimeSniff::SniffingConfiguration { .supplied_type = supplied_type })); - EXPECT_EQ("application/x-this-is-a-test"sv, MUST(computed_mime_type.serialized())); + EXPECT_EQ("application/x-this-is-a-test"sv, computed_mime_type.serialized()); } TEST_CASE(determine_computed_mime_type_given_xml_mime_type_as_supplied_type) @@ -41,7 +41,7 @@ TEST_CASE(determine_computed_mime_type_given_xml_mime_type_as_supplied_type) auto supplied_type = MUST(Web::MimeSniff::MimeType::parse(xml_mime_type)).release_value(); auto computed_mime_type = MUST(Web::MimeSniff::Resource::sniff("\x00"sv.bytes(), Web::MimeSniff::SniffingConfiguration { .supplied_type = supplied_type })); - EXPECT_EQ(xml_mime_type, MUST(computed_mime_type.serialized())); + EXPECT_EQ(xml_mime_type, computed_mime_type.serialized()); } static void set_image_type_mappings(HashMap<StringView, Vector<StringView>>& mime_type_to_headers_map) @@ -89,7 +89,7 @@ TEST_CASE(determine_computed_mime_type_given_supplied_type_that_is_an_apache_bug auto computed_mime_type = MUST(Web::MimeSniff::Resource::sniff("Hello world!"sv.bytes(), Web::MimeSniff::SniffingConfiguration { .scheme = "http"sv, .supplied_type = supplied_type })); - EXPECT_EQ("text/plain"sv, MUST(computed_mime_type.serialized())); + EXPECT_EQ("text/plain"sv, computed_mime_type.serialized()); } // Cover all code paths in "rules for distinguishing if a resource is text or binary". @@ -106,7 +106,7 @@ TEST_CASE(determine_computed_mime_type_given_supplied_type_that_is_an_apache_bug auto computed_mime_type = MUST(Web::MimeSniff::Resource::sniff(header.bytes(), Web::MimeSniff::SniffingConfiguration { .scheme = "http"sv, .supplied_type = supplied_type })); - EXPECT_EQ(mime_type, MUST(computed_mime_type.serialized())); + EXPECT_EQ(mime_type, computed_mime_type.serialized()); } } } @@ -116,12 +116,12 @@ TEST_CASE(determine_computed_mime_type_given_xml_or_html_supplied_type) // With HTML supplied type. auto config = Web::MimeSniff::SniffingConfiguration { .supplied_type = Web::MimeSniff::MimeType::create("text"_string, "html"_string) }; auto computed_mime_type = MUST(Web::MimeSniff::Resource::sniff(""sv.bytes(), config)); - EXPECT_EQ("text/html"sv, MUST(computed_mime_type.serialized())); + EXPECT_EQ("text/html"sv, computed_mime_type.serialized()); // With XML supplied type. config = Web::MimeSniff::SniffingConfiguration { .supplied_type = Web::MimeSniff::MimeType::create("text"_string, "xml"_string) }; computed_mime_type = MUST(Web::MimeSniff::Resource::sniff(""sv.bytes(), config)); - EXPECT_EQ("text/xml"sv, MUST(computed_mime_type.serialized())); + EXPECT_EQ("text/xml"sv, computed_mime_type.serialized()); } TEST_CASE(determine_computed_mime_type_in_both_none_and_browsing_sniffing_context) @@ -198,7 +198,7 @@ TEST_CASE(determine_computed_mime_type_in_image_sniffing_context) auto supplied_type = MUST(Web::MimeSniff::MimeType::parse(mime_type)).release_value(); auto computed_mime_type = MUST(Web::MimeSniff::Resource::sniff(""sv.bytes(), Web::MimeSniff::SniffingConfiguration { .sniffing_context = Web::MimeSniff::SniffingContext::Image, .supplied_type = supplied_type })); - EXPECT_EQ(mime_type, MUST(computed_mime_type.serialized())); + EXPECT_EQ(mime_type, computed_mime_type.serialized()); HashMap<StringView, Vector<StringView>> mime_type_to_headers_map; @@ -234,7 +234,7 @@ TEST_CASE(determine_computed_mime_type_in_audio_or_video_sniffing_context) .supplied_type = supplied_type, })); - EXPECT_EQ(mime_type, MUST(computed_mime_type.serialized())); + EXPECT_EQ(mime_type, computed_mime_type.serialized()); HashMap<StringView, Vector<StringView>> mime_type_to_headers_map; set_audio_or_video_type_mappings(mime_type_to_headers_map); @@ -290,7 +290,7 @@ TEST_CASE(determine_computed_mime_type_when_trying_to_match_mp4_signature) for (auto const& header : mime_type_to_headers.value) { auto computed_mime_type = MUST(Web::MimeSniff::Resource::sniff(header.bytes(), Web::MimeSniff::SniffingConfiguration { .sniffing_context = Web::MimeSniff::SniffingContext::AudioOrVideo })); - EXPECT_EQ(mime_type, MUST(computed_mime_type.serialized())); + EXPECT_EQ(mime_type, computed_mime_type.serialized()); } } } @@ -305,7 +305,7 @@ TEST_CASE(determine_computed_mime_type_in_a_font_context) .supplied_type = supplied_type, })); - EXPECT_EQ(mime_type, MUST(computed_mime_type.serialized())); + EXPECT_EQ(mime_type, computed_mime_type.serialized()); HashMap<StringView, Vector<StringView>> mime_type_to_headers_map; mime_type_to_headers_map.set("application/octet-stream"sv, { "\x00"sv }); @@ -343,7 +343,7 @@ TEST_CASE(determine_computed_mime_type_given_text_or_binary_context) .sniffing_context = Web::MimeSniff::SniffingContext::TextOrBinary, .supplied_type = supplied_type, })); - EXPECT_EQ("application/octet-stream"sv, MUST(computed_mime_type.serialized())); + EXPECT_EQ("application/octet-stream"sv, computed_mime_type.serialized()); } TEST_CASE(determine_minimised_mime_type) diff --git a/Userland/Libraries/LibWeb/Fetch/Body.cpp b/Userland/Libraries/LibWeb/Fetch/Body.cpp index 0c03bec4e62..fd11cfc1638 100644 --- a/Userland/Libraries/LibWeb/Fetch/Body.cpp +++ b/Userland/Libraries/LibWeb/Fetch/Body.cpp @@ -126,7 +126,7 @@ WebIDL::ExceptionOr<JS::Value> package_data(JS::Realm& realm, ByteBuffer bytes, case PackageDataType::Blob: { // Return a Blob whose contents are bytes and type attribute is mimeType. // NOTE: If extracting the mime type returns failure, other browsers set it to an empty string - not sure if that's spec'd. - auto mime_type_string = mime_type.has_value() ? MUST(mime_type->serialized()) : String {}; + auto mime_type_string = mime_type.has_value() ? mime_type->serialized() : String {}; return FileAPI::Blob::create(realm, move(bytes), move(mime_type_string)); } case PackageDataType::Uint8Array: { diff --git a/Userland/Libraries/LibWeb/Fetch/Fetching/Fetching.cpp b/Userland/Libraries/LibWeb/Fetch/Fetching/Fetching.cpp index 196e67be8b7..f72a01c2eca 100644 --- a/Userland/Libraries/LibWeb/Fetch/Fetching/Fetching.cpp +++ b/Userland/Libraries/LibWeb/Fetch/Fetching/Fetching.cpp @@ -901,7 +901,7 @@ WebIDL::ExceptionOr<JS::NonnullGCPtr<PendingResponse>> scheme_fetch(JS::Realm& r return PendingResponse::create(vm, request, Infrastructure::Response::network_error(vm, "Failed to process 'data:' URL"sv)); // 3. Let mimeType be dataURLStruct’s MIME type, serialized. - auto const& mime_type = MUST(data_url_struct.value().mime_type.serialized()); + auto const& mime_type = data_url_struct.value().mime_type.serialized(); // 4. Return a new response whose status message is `OK`, header list is « (`Content-Type`, mimeType) », and // body is dataURLStruct’s body as a body. diff --git a/Userland/Libraries/LibWeb/Fetch/Infrastructure/HTTP/Headers.cpp b/Userland/Libraries/LibWeb/Fetch/Infrastructure/HTTP/Headers.cpp index 77d372c995a..5c53011752d 100644 --- a/Userland/Libraries/LibWeb/Fetch/Infrastructure/HTTP/Headers.cpp +++ b/Userland/Libraries/LibWeb/Fetch/Infrastructure/HTTP/Headers.cpp @@ -389,7 +389,7 @@ Optional<MimeSniff::MimeType> HeaderList::extract_mime_type() const } // 5. Otherwise, if mimeType’s parameters["charset"] does not exist, and charset is non-null, set mimeType’s parameters["charset"] to charset. else if (!mime_type->parameters().contains("charset"sv) && charset.has_value()) { - MUST(mime_type->set_parameter("charset"_string, charset.release_value())); + mime_type->set_parameter("charset"_string, charset.release_value()); } } diff --git a/Userland/Libraries/LibWeb/Fetch/Infrastructure/URL.cpp b/Userland/Libraries/LibWeb/Fetch/Infrastructure/URL.cpp index 7ecc847a0b0..3c332aa7829 100644 --- a/Userland/Libraries/LibWeb/Fetch/Infrastructure/URL.cpp +++ b/Userland/Libraries/LibWeb/Fetch/Infrastructure/URL.cpp @@ -102,7 +102,7 @@ ErrorOr<DataURL> process_data_url(URL::URL const& data_url) // 14. If mimeTypeRecord is failure, then set mimeTypeRecord to text/plain;charset=US-ASCII. if (!mime_type_record.has_value()) { mime_type_record = MimeSniff::MimeType::create("text"_string, "plain"_string); - TRY(mime_type_record->set_parameter("charset"_string, "US-ASCII"_string)); + mime_type_record->set_parameter("charset"_string, "US-ASCII"_string); } // 15. Return a new data: URL struct whose MIME type is mimeTypeRecord and body is body. diff --git a/Userland/Libraries/LibWeb/FileAPI/Blob.cpp b/Userland/Libraries/LibWeb/FileAPI/Blob.cpp index e5b7a9c1368..4c852ceecd4 100644 --- a/Userland/Libraries/LibWeb/FileAPI/Blob.cpp +++ b/Userland/Libraries/LibWeb/FileAPI/Blob.cpp @@ -207,7 +207,7 @@ JS::NonnullGCPtr<Blob> Blob::create(JS::Realm& realm, Optional<Vector<BlobPart>> auto maybe_parsed_type = MUST(Web::MimeSniff::MimeType::parse(options->type)); if (maybe_parsed_type.has_value()) - type = MUST(maybe_parsed_type->serialized()); + type = maybe_parsed_type->serialized(); } } diff --git a/Userland/Libraries/LibWeb/FileAPI/File.cpp b/Userland/Libraries/LibWeb/FileAPI/File.cpp index 8f767b218ed..facaaa9b76d 100644 --- a/Userland/Libraries/LibWeb/FileAPI/File.cpp +++ b/Userland/Libraries/LibWeb/FileAPI/File.cpp @@ -65,7 +65,7 @@ WebIDL::ExceptionOr<JS::NonnullGCPtr<File>> File::create(JS::Realm& realm, Vecto auto maybe_parsed_type = MUST(Web::MimeSniff::MimeType::parse(options->type)); if (maybe_parsed_type.has_value()) - type = MUST(maybe_parsed_type->serialized()); + type = maybe_parsed_type->serialized(); // 3. If the lastModified member is provided, let d be set to the lastModified dictionary member. If it is not provided, set d to the current date and time represented as the number of milliseconds since the Unix Epoch (which is the equivalent of Date.now() [ECMA-262]). // Note: Since ECMA-262 Date objects convert to long long values representing the number of milliseconds since the Unix Epoch, the lastModified member could be a Date object [ECMA-262]. diff --git a/Userland/Libraries/LibWeb/HTML/Scripting/Fetching.cpp b/Userland/Libraries/LibWeb/HTML/Scripting/Fetching.cpp index c1200788618..05179839b95 100644 --- a/Userland/Libraries/LibWeb/HTML/Scripting/Fetching.cpp +++ b/Userland/Libraries/LibWeb/HTML/Scripting/Fetching.cpp @@ -424,7 +424,7 @@ WebIDL::ExceptionOr<void> fetch_classic_worker_script(URL::URL const& url, Envir auto mime_type_is_javascript = maybe_mime_type.has_value() && maybe_mime_type->is_javascript(); if (response->url().has_value() && Fetch::Infrastructure::is_http_or_https_scheme(response->url()->scheme()) && !mime_type_is_javascript) { - auto mime_type_serialized = maybe_mime_type.has_value() ? MUST(maybe_mime_type->serialized()) : "unknown"_string; + auto mime_type_serialized = maybe_mime_type.has_value() ? maybe_mime_type->serialized() : "unknown"_string; dbgln("Invalid non-javascript mime type \"{}\" for worker script at {}", mime_type_serialized, response->url().value()); // then run onComplete given null, and abort these steps. diff --git a/Userland/Libraries/LibWeb/Loader/ResourceLoader.cpp b/Userland/Libraries/LibWeb/Loader/ResourceLoader.cpp index 1a83e4e1f4b..39fbb742df8 100644 --- a/Userland/Libraries/LibWeb/Loader/ResourceLoader.cpp +++ b/Userland/Libraries/LibWeb/Loader/ResourceLoader.cpp @@ -294,11 +294,11 @@ void ResourceLoader::load(LoadRequest& request, SuccessCallback success_callback auto data_url = data_url_or_error.release_value(); dbgln_if(SPAM_DEBUG, "ResourceLoader loading a data URL with mime-type: '{}', payload='{}'", - MUST(data_url.mime_type.serialized()), + data_url.mime_type.serialized(), StringView(data_url.body.bytes())); HTTP::HeaderMap response_headers; - response_headers.set("Content-Type", MUST(data_url.mime_type.serialized()).to_byte_string()); + response_headers.set("Content-Type", data_url.mime_type.serialized().to_byte_string()); log_success(request); diff --git a/Userland/Libraries/LibWeb/MimeSniff/MimeType.cpp b/Userland/Libraries/LibWeb/MimeSniff/MimeType.cpp index 407f34e0a21..77341cabca2 100644 --- a/Userland/Libraries/LibWeb/MimeSniff/MimeType.cpp +++ b/Userland/Libraries/LibWeb/MimeSniff/MimeType.cpp @@ -199,52 +199,51 @@ String const& MimeType::essence() const } // https://mimesniff.spec.whatwg.org/#serialize-a-mime-type -ErrorOr<String> MimeType::serialized() const +String MimeType::serialized() const { // 1. Let serialization be the concatenation of mimeType’s type, U+002F (/), and mimeType’s subtype. StringBuilder serialization; - TRY(serialization.try_append(m_type)); - TRY(serialization.try_append('/')); - TRY(serialization.try_append(m_subtype)); + serialization.append(m_type); + serialization.append('/'); + serialization.append(m_subtype); // 2. For each name → value of mimeType’s parameters: for (auto [name, value] : m_parameters) { // 1. Append U+003B (;) to serialization. - TRY(serialization.try_append(';')); + serialization.append(';'); // 2. Append name to serialization. - TRY(serialization.try_append(name)); + serialization.append(name); // 3. Append U+003D (=) to serialization. - TRY(serialization.try_append('=')); + serialization.append('='); // 4. If value does not solely contain HTTP token code points or value is the empty string, then: if (!contains_only_http_token_code_points(value) || value.is_empty()) { // 1. Precede each occurrence of U+0022 (") or U+005C (\) in value with U+005C (\). - value = TRY(value.replace("\\"sv, "\\\\"sv, ReplaceMode::All)); - value = TRY(value.replace("\""sv, "\\\""sv, ReplaceMode::All)); + value = MUST(value.replace("\\"sv, "\\\\"sv, ReplaceMode::All)); + value = MUST(value.replace("\""sv, "\\\""sv, ReplaceMode::All)); // 2. Prepend U+0022 (") to value. // 3. Append U+0022 (") to value. - value = TRY(String::formatted("\"{}\"", value)); + value = MUST(String::formatted("\"{}\"", value)); } // 5. Append value to serialization. - TRY(serialization.try_append(value)); + serialization.append(value); } // 3. Return serialization. - return serialization.to_string(); + return serialization.to_string_without_validation(); } -ErrorOr<void> MimeType::set_parameter(String name, String value) +void MimeType::set_parameter(String name, String value) { // https://mimesniff.spec.whatwg.org/#parameters // A MIME type’s parameters is an ordered map whose keys are ASCII strings and values are strings limited to HTTP quoted-string token code points. VERIFY(contains_only_http_quoted_string_token_code_points(name)); VERIFY(contains_only_http_quoted_string_token_code_points(value)); - TRY(m_parameters.try_set(move(name), move(value))); - return {}; + m_parameters.set(move(name), move(value)); } // https://mimesniff.spec.whatwg.org/#image-mime-type diff --git a/Userland/Libraries/LibWeb/MimeSniff/MimeType.h b/Userland/Libraries/LibWeb/MimeSniff/MimeType.h index 94bda2bd1e7..0ad37e022d1 100644 --- a/Userland/Libraries/LibWeb/MimeSniff/MimeType.h +++ b/Userland/Libraries/LibWeb/MimeSniff/MimeType.h @@ -43,10 +43,10 @@ public: bool is_javascript() const; bool is_json() const; - ErrorOr<void> set_parameter(String name, String value); + void set_parameter(String name, String value); String const& essence() const; - ErrorOr<String> serialized() const; + [[nodiscard]] String serialized() const; private: MimeType(String type, String subtype); diff --git a/Userland/Libraries/LibWeb/MimeSniff/Resource.cpp b/Userland/Libraries/LibWeb/MimeSniff/Resource.cpp index 036c573a62e..08d8963ad8a 100644 --- a/Userland/Libraries/LibWeb/MimeSniff/Resource.cpp +++ b/Userland/Libraries/LibWeb/MimeSniff/Resource.cpp @@ -505,7 +505,7 @@ ErrorOr<void> Resource::supplied_mime_type_detection_algorithm(StringView scheme "text/plain;charset=UTF-8"sv }; - auto serialized_supplied_type = TRY(supplied_type->serialized()); + auto serialized_supplied_type = supplied_type->serialized(); for (auto apache_bug_mime_type : apache_bug_mime_types) { if (serialized_supplied_type == apache_bug_mime_type) { m_check_for_apache_bug_flag = true; diff --git a/Userland/Libraries/LibWeb/XHR/XMLHttpRequest.cpp b/Userland/Libraries/LibWeb/XHR/XMLHttpRequest.cpp index d82ae0b8fe5..ccb08dbead8 100644 --- a/Userland/Libraries/LibWeb/XHR/XMLHttpRequest.cpp +++ b/Userland/Libraries/LibWeb/XHR/XMLHttpRequest.cpp @@ -215,7 +215,7 @@ WebIDL::ExceptionOr<JS::Value> XMLHttpRequest::response() } // 6. Otherwise, if this’s response type is "blob", set this’s response object to a new Blob object representing this’s received bytes with type set to the result of get a final MIME type for this. else if (m_response_type == Bindings::XMLHttpRequestResponseType::Blob) { - auto mime_type_as_string = TRY_OR_THROW_OOM(vm, TRY_OR_THROW_OOM(vm, get_final_mime_type()).serialized()); + auto mime_type_as_string = TRY_OR_THROW_OOM(vm, get_final_mime_type()).serialized(); auto blob_part = FileAPI::Blob::create(realm(), m_received_bytes, move(mime_type_as_string)); auto blob = FileAPI::Blob::create(realm(), Vector<FileAPI::BlobPart> { JS::make_handle(*blob_part) }); m_response_object = JS::NonnullGCPtr<JS::Object> { blob }; @@ -287,20 +287,20 @@ void XMLHttpRequest::set_document_response() return; // 2. Let finalMIME be the result of get a final MIME type for xhr. - auto final_mine = MUST(get_final_mime_type()); + auto final_mime = MUST(get_final_mime_type()); // 3. If finalMIME is not an HTML MIME type or an XML MIME type, then return. - if (!final_mine.is_html() && !final_mine.is_xml()) + if (!final_mime.is_html() && !final_mime.is_xml()) return; // 4. If xhr’s response type is the empty string and finalMIME is an HTML MIME type, then return. - if (m_response_type == Bindings::XMLHttpRequestResponseType::Empty && final_mine.is_html()) + if (m_response_type == Bindings::XMLHttpRequestResponseType::Empty && final_mime.is_html()) return; // 5. If finalMIME is an HTML MIME type, then: Optional<String> charset; JS::GCPtr<DOM::Document> document; - if (final_mine.is_html()) { + if (final_mime.is_html()) { // 5.1. Let charset be the result of get a final encoding for xhr. if (auto final_encoding = MUST(get_final_encoding()); final_encoding.has_value()) charset = MUST(String::from_utf8(*final_encoding)); @@ -340,7 +340,7 @@ void XMLHttpRequest::set_document_response() document->set_encoding(move(charset)); // 9. Set document’s content type to finalMIME. - document->set_content_type(MUST(final_mine.serialized())); + document->set_content_type(final_mime.serialized()); // 10. Set document’s URL to xhr’s response’s URL. document->set_url(m_response->url().value_or({})); @@ -601,10 +601,10 @@ WebIDL::ExceptionOr<void> XMLHttpRequest::send(Optional<DocumentOrXMLHttpRequest auto charset_parameter_iterator = content_type_record->parameters().find("charset"sv); if (charset_parameter_iterator != content_type_record->parameters().end() && !Infra::is_ascii_case_insensitive_match(charset_parameter_iterator->value, "UTF-8"sv)) { // 1. Set contentTypeRecord’s parameters["charset"] to "UTF-8". - TRY_OR_THROW_OOM(vm, content_type_record->set_parameter("charset"_string, "UTF-8"_string)); + content_type_record->set_parameter("charset"_string, "UTF-8"_string); // 2. Let newContentTypeSerialized be the result of serializing contentTypeRecord. - auto new_content_type_serialized = TRY_OR_THROW_OOM(vm, content_type_record->serialized()); + auto new_content_type_serialized = content_type_record->serialized(); // 3. Set (`Content-Type`, newContentTypeSerialized) in this’s author request headers. auto header = Fetch::Infrastructure::Header::from_string_pair("Content-Type"sv, new_content_type_serialized);