mirror of
https://github.com/servo/servo.git
synced 2025-09-27 15:20:09 +01:00
The signal taken from the requestinit is now passed into the request object with the relevant steps. I added all spec comments to this method, as I had trouble figuring out which steps I had to add. This required implementing the algorithm to create dependent signals, which is used in the `any()` method. So that's now implemented as well. All of that required the machinery to have dependent and source signals on an AbortSignal. It uses an IndexSet as the spec requires it to be an ordered set. Part of #34866 Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
121 lines
2.8 KiB
Text
121 lines
2.8 KiB
Text
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
|
|
// https://fetch.spec.whatwg.org/#request-class
|
|
|
|
typedef (Request or USVString) RequestInfo;
|
|
|
|
// https://fetch.spec.whatwg.org/#request
|
|
[Exposed=(Window,Worker)]
|
|
interface Request {
|
|
[Throws] constructor(RequestInfo input, optional RequestInit init = {});
|
|
readonly attribute ByteString method;
|
|
readonly attribute USVString url;
|
|
[SameObject] readonly attribute Headers headers;
|
|
|
|
readonly attribute RequestDestination destination;
|
|
readonly attribute USVString referrer;
|
|
readonly attribute ReferrerPolicy referrerPolicy;
|
|
readonly attribute RequestMode mode;
|
|
readonly attribute RequestCredentials credentials;
|
|
readonly attribute RequestCache cache;
|
|
readonly attribute RequestRedirect redirect;
|
|
readonly attribute DOMString integrity;
|
|
// readonly attribute boolean keepalive;
|
|
// readonly attribute boolean isReloadNavigation;
|
|
// readonly attribute boolean isHistoryNavigation;
|
|
readonly attribute AbortSignal signal;
|
|
// readonly attribute RequestDuplex duplex;
|
|
|
|
[NewObject, Throws] Request clone();
|
|
};
|
|
|
|
Request includes Body;
|
|
|
|
// https://fetch.spec.whatwg.org/#requestinit
|
|
dictionary RequestInit {
|
|
ByteString method;
|
|
HeadersInit headers;
|
|
BodyInit? body;
|
|
USVString referrer;
|
|
ReferrerPolicy referrerPolicy;
|
|
RequestMode mode;
|
|
RequestCredentials credentials;
|
|
RequestCache cache;
|
|
RequestRedirect redirect;
|
|
DOMString integrity;
|
|
// boolean keepalive;
|
|
AbortSignal? signal;
|
|
// RequestDuplex duplex;
|
|
// RequestPriority priority;
|
|
any window; // can only be set to null
|
|
};
|
|
|
|
// https://fetch.spec.whatwg.org/#requestdestination
|
|
enum RequestDestination {
|
|
"",
|
|
"audio",
|
|
"document",
|
|
"embed",
|
|
"font",
|
|
"frame",
|
|
"iframe",
|
|
"image",
|
|
"json",
|
|
"manifest",
|
|
"object",
|
|
"report",
|
|
"script",
|
|
"sharedworker",
|
|
"style",
|
|
"track",
|
|
"video",
|
|
"worker",
|
|
"xslt"
|
|
};
|
|
|
|
// https://fetch.spec.whatwg.org/#requestmode
|
|
enum RequestMode {
|
|
"navigate",
|
|
"same-origin",
|
|
"no-cors",
|
|
"cors"
|
|
};
|
|
|
|
// https://fetch.spec.whatwg.org/#requestcredentials
|
|
enum RequestCredentials {
|
|
"omit",
|
|
"same-origin",
|
|
"include"
|
|
};
|
|
|
|
// https://fetch.spec.whatwg.org/#requestcache
|
|
enum RequestCache {
|
|
"default",
|
|
"no-store",
|
|
"reload",
|
|
"no-cache",
|
|
"force-cache",
|
|
"only-if-cached"
|
|
};
|
|
|
|
// https://fetch.spec.whatwg.org/#requestredirect
|
|
enum RequestRedirect {
|
|
"follow",
|
|
"error",
|
|
"manual"
|
|
};
|
|
|
|
// https://w3c.github.io/webappsec-referrer-policy/#enumdef-referrerpolicy
|
|
enum ReferrerPolicy {
|
|
"",
|
|
"no-referrer",
|
|
"no-referrer-when-downgrade",
|
|
"origin",
|
|
"origin-when-cross-origin",
|
|
"unsafe-url",
|
|
"same-origin",
|
|
"strict-origin",
|
|
"strict-origin-when-cross-origin"
|
|
};
|