1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 05:27:43 +00:00

LibWeb: Require error message for Response::network_error()

There will be a lot of different cases where we'll return an error
response, and having a customized Promise rejection message seems quite
useful.

Note that this has to be distinct from the existing 'status message',
which is required to be empty in those cases.
This commit is contained in:
Linus Groh 2022-10-23 19:10:17 +02:00
parent d8ebdef010
commit 32e0f0aec8
3 changed files with 12 additions and 6 deletions

View file

@ -36,17 +36,18 @@ JS::NonnullGCPtr<Response> Response::create(JS::VM& vm)
JS::NonnullGCPtr<Response> Response::aborted_network_error(JS::VM& vm)
{
auto response = network_error(vm);
auto response = network_error(vm, "Fetch has been aborted"sv);
response->set_aborted(true);
return response;
}
JS::NonnullGCPtr<Response> Response::network_error(JS::VM& vm)
JS::NonnullGCPtr<Response> Response::network_error(JS::VM& vm, String message)
{
auto response = Response::create(vm);
response->set_status(0);
response->set_type(Type::Error);
VERIFY(!response->body().has_value());
response->m_network_error_message = move(message);
return response;
}
@ -59,7 +60,7 @@ JS::NonnullGCPtr<Response> Response::appropriate_network_error(JS::VM& vm, Fetch
// 2. Return an aborted network error if fetchParams is aborted; otherwise return a network error.
return fetch_params.is_aborted()
? aborted_network_error(vm)
: network_error(vm);
: network_error(vm, "Fetch has been terminated"sv);
}
// https://fetch.spec.whatwg.org/#concept-aborted-network-error