1
0
mirror of https://github.com/SerenityOS/serenity synced 2024-07-09 06:40:45 +00:00

LibWeb: Remove OOM propagation from Fetch::Infrastructure::HTTP

This commit is contained in:
Timothy Flynn 2024-04-26 15:06:48 -04:00 committed by Andreas Kling
parent 1ffda6a805
commit c9a461ee75
5 changed files with 12 additions and 12 deletions

View File

@ -16,14 +16,14 @@ TEST_CASE(collect_an_http_quoted_string)
auto test = "\"\""_string;
GenericLexer lexer { test };
auto result = MUST(Web::Fetch::Infrastructure::collect_an_http_quoted_string(lexer));
auto result = Web::Fetch::Infrastructure::collect_an_http_quoted_string(lexer);
EXPECT_EQ(result, "\"\""_string);
}
{
auto test = "\"abc\""_string;
GenericLexer lexer { test };
auto result = MUST(Web::Fetch::Infrastructure::collect_an_http_quoted_string(lexer));
auto result = Web::Fetch::Infrastructure::collect_an_http_quoted_string(lexer);
EXPECT_EQ(result, "\"abc\""_string);
}
{
@ -32,7 +32,7 @@ TEST_CASE(collect_an_http_quoted_string)
GenericLexer lexer { test };
lexer.ignore(4);
auto result = MUST(Web::Fetch::Infrastructure::collect_an_http_quoted_string(lexer));
auto result = Web::Fetch::Infrastructure::collect_an_http_quoted_string(lexer);
EXPECT_EQ(result, "\"abc\""_string);
}
{
@ -41,7 +41,7 @@ TEST_CASE(collect_an_http_quoted_string)
GenericLexer lexer { test };
lexer.ignore(4);
auto result = MUST(Web::Fetch::Infrastructure::collect_an_http_quoted_string(lexer));
auto result = Web::Fetch::Infrastructure::collect_an_http_quoted_string(lexer);
EXPECT_EQ(result, "\"abc\""_string);
}
{
@ -50,14 +50,14 @@ TEST_CASE(collect_an_http_quoted_string)
GenericLexer lexer { test };
lexer.ignore(4);
auto result = MUST(Web::Fetch::Infrastructure::collect_an_http_quoted_string(lexer));
auto result = Web::Fetch::Infrastructure::collect_an_http_quoted_string(lexer);
EXPECT_EQ(result, "\"abc\""_string);
}
{
auto test = "\"abc\" bar"_string;
GenericLexer lexer { test };
auto result = MUST(Web::Fetch::Infrastructure::collect_an_http_quoted_string(lexer));
auto result = Web::Fetch::Infrastructure::collect_an_http_quoted_string(lexer);
EXPECT_EQ(result, "\"abc\""_string);
}
}

View File

@ -12,7 +12,7 @@
namespace Web::Fetch::Infrastructure {
// https://fetch.spec.whatwg.org/#collect-an-http-quoted-string
ErrorOr<String> collect_an_http_quoted_string(GenericLexer& lexer, HttpQuotedStringExtractValue extract_value)
String collect_an_http_quoted_string(GenericLexer& lexer, HttpQuotedStringExtractValue extract_value)
{
// To collect an HTTP quoted string from a string input, given a position variable position and optionally an extract-value flag, run these steps:
// 1. Let positionStart be position.
@ -69,10 +69,10 @@ ErrorOr<String> collect_an_http_quoted_string(GenericLexer& lexer, HttpQuotedStr
// 6. If the extract-value flag is set, then return value.
if (extract_value == HttpQuotedStringExtractValue::Yes)
return value.to_string();
return MUST(value.to_string());
// 7. Return the code points from positionStart to position, inclusive, within input.
return String::from_utf8(lexer.input().substring_view(position_start, lexer.tell() - position_start));
return MUST(String::from_utf8(lexer.input().substring_view(position_start, lexer.tell() - position_start)));
}
}

View File

@ -37,6 +37,6 @@ enum class HttpQuotedStringExtractValue {
Yes,
};
ErrorOr<String> collect_an_http_quoted_string(GenericLexer& lexer, HttpQuotedStringExtractValue extract_value = HttpQuotedStringExtractValue::No);
[[nodiscard]] String collect_an_http_quoted_string(GenericLexer& lexer, HttpQuotedStringExtractValue extract_value = HttpQuotedStringExtractValue::No);
}

View File

@ -150,7 +150,7 @@ Optional<Vector<String>> get_decode_and_split_header_value(ReadonlyBytes value)
// 1. If the code point at position within input is U+0022 ("), then:
if (lexer.peek() == '"') {
// 1. Append the result of collecting an HTTP quoted string from input, given position, to temporaryValue.
temporary_value_builder.append(MUST(collect_an_http_quoted_string(lexer)));
temporary_value_builder.append(collect_an_http_quoted_string(lexer));
// 2. If position is not past the end of input, then continue.
if (!lexer.is_eof())

View File

@ -152,7 +152,7 @@ ErrorOr<Optional<MimeType>> MimeType::parse(StringView string)
// 8. If the code point at position within input is U+0022 ("), then:
if (lexer.peek() == '"') {
// 1. Set parameterValue to the result of collecting an HTTP quoted string from input, given position and the extract-value flag.
parameter_value = TRY(Fetch::Infrastructure::collect_an_http_quoted_string(lexer, Fetch::Infrastructure::HttpQuotedStringExtractValue::Yes));
parameter_value = Fetch::Infrastructure::collect_an_http_quoted_string(lexer, Fetch::Infrastructure::HttpQuotedStringExtractValue::Yes);
// 2. Collect a sequence of code points that are not U+003B (;) from input, given position.
lexer.ignore_until(';');