mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-09-19 09:17:38 +03:00
LibWeb/Fetch: Support setting request priority from JS
This commit is contained in:
parent
4387d12159
commit
74d90338b1
Notes:
sideshowbarker
2024-07-17 06:24:08 +09:00
Author: https://github.com/jamierocks Commit: https://github.com/SerenityOS/serenity/commit/74d90338b1 Pull-request: https://github.com/SerenityOS/serenity/pull/24193
@ -113,6 +113,20 @@ Infrastructure::Request::RedirectMode from_bindings_enum(Bindings::RequestRedire
|
||||
}
|
||||
}
|
||||
|
||||
Infrastructure::Request::Priority from_bindings_enum(Bindings::RequestPriority request_priority)
|
||||
{
|
||||
switch (request_priority) {
|
||||
case Bindings::RequestPriority::High:
|
||||
return Infrastructure::Request::Priority::High;
|
||||
case Bindings::RequestPriority::Low:
|
||||
return Infrastructure::Request::Priority::Low;
|
||||
case Bindings::RequestPriority::Auto:
|
||||
return Infrastructure::Request::Priority::Auto;
|
||||
default:
|
||||
VERIFY_NOT_REACHED();
|
||||
}
|
||||
}
|
||||
|
||||
Bindings::ReferrerPolicy to_bindings_enum(ReferrerPolicy::ReferrerPolicy referrer_policy)
|
||||
{
|
||||
switch (referrer_policy) {
|
||||
|
@ -18,6 +18,7 @@ namespace Web::Fetch {
|
||||
[[nodiscard]] Infrastructure::Request::CredentialsMode from_bindings_enum(Bindings::RequestCredentials);
|
||||
[[nodiscard]] Infrastructure::Request::CacheMode from_bindings_enum(Bindings::RequestCache);
|
||||
[[nodiscard]] Infrastructure::Request::RedirectMode from_bindings_enum(Bindings::RequestRedirect);
|
||||
[[nodiscard]] Infrastructure::Request::Priority from_bindings_enum(Bindings::RequestPriority);
|
||||
|
||||
[[nodiscard]] Bindings::ReferrerPolicy to_bindings_enum(ReferrerPolicy::ReferrerPolicy);
|
||||
[[nodiscard]] Bindings::RequestDestination to_bindings_enum(Optional<Infrastructure::Request::Destination> const&);
|
||||
|
@ -383,7 +383,9 @@ WebIDL::ExceptionOr<JS::NonnullGCPtr<Request>> Request::construct_impl(JS::Realm
|
||||
if (init.signal.has_value())
|
||||
input_signal = *init.signal;
|
||||
|
||||
// FIXME: 27. If init["priority"] exists, then:
|
||||
// 27. If init["priority"] exists, then:
|
||||
if (init.priority.has_value())
|
||||
request->set_priority(from_bindings_enum(*init.priority));
|
||||
|
||||
// 28. Set this’s request to request.
|
||||
// NOTE: This is done at the beginning as the 'this' value Request object
|
||||
|
@ -37,6 +37,7 @@ struct RequestInit {
|
||||
Optional<bool> keepalive;
|
||||
Optional<JS::GCPtr<DOM::AbortSignal>> signal;
|
||||
Optional<Bindings::RequestDuplex> duplex;
|
||||
Optional<Bindings::RequestPriority> priority;
|
||||
Optional<JS::Value> window;
|
||||
|
||||
// https://infra.spec.whatwg.org/#map-is-empty
|
||||
@ -55,6 +56,7 @@ struct RequestInit {
|
||||
|| keepalive.has_value()
|
||||
|| signal.has_value()
|
||||
|| duplex.has_value()
|
||||
|| priority.has_value()
|
||||
|| window.has_value());
|
||||
}
|
||||
};
|
||||
|
@ -46,6 +46,7 @@ dictionary RequestInit {
|
||||
boolean keepalive;
|
||||
AbortSignal? signal;
|
||||
RequestDuplex duplex;
|
||||
RequestPriority priority;
|
||||
any window; // can only be set to null
|
||||
};
|
||||
|
||||
@ -55,6 +56,7 @@ enum RequestCredentials { "omit", "same-origin", "include" };
|
||||
enum RequestCache { "default", "no-store", "reload", "no-cache", "force-cache", "only-if-cached" };
|
||||
enum RequestRedirect { "follow", "error", "manual" };
|
||||
enum RequestDuplex { "half" };
|
||||
enum RequestPriority { "high", "low", "auto" };
|
||||
|
||||
// https://w3c.github.io/webappsec-referrer-policy/#enumdef-referrerpolicy
|
||||
enum ReferrerPolicy {
|
||||
|
@ -61,6 +61,7 @@ enum class RequestCredentials;
|
||||
enum class RequestDestination;
|
||||
enum class RequestDuplex;
|
||||
enum class RequestMode;
|
||||
enum class RequestPriority;
|
||||
enum class RequestRedirect;
|
||||
enum class ResizeObserverBoxOptions;
|
||||
enum class ResponseType;
|
||||
|
Loading…
Reference in New Issue
Block a user