enum RequestType { "", "audio", "font", "image", "script", "style", "track", "video" };
enum RequestDestination { "", "document", "sharedworker", "subresource", "unknown", "worker" };
enum RequestMode { "navigate", "same-origin", "no-cors", "cors" };
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 ReferrerPolicy { "", "no-referrer", "no-referrer-when-downgrade", "origin", "origin-when-cross-origin", "unsafe-url" };
typedef (ArrayBufferView or ArrayBuffer) BufferSource;
typedef (Blob or BufferSource or DOMFormData or URLSearchParams or USVString) BodyInit;
dictionary RequestInit {
ByteString method;
USVString referrer;
ReferrerPolicy referrerPolicy;
RequestMode mode;
RequestCredentials credentials;
RequestCache cache;
RequestRedirect redirect;
DOMString integrity;
any window; };
[
ActiveDOMObject,
Conditional=FETCH_API,
Constructor(any input, optional RequestInit init),
EnabledAtRuntime=FetchAPI,
Exposed=(Window,Worker),
InterfaceName=Request,
JSBuiltinConstructor,
PrivateIdentifier,
PublicIdentifier,
] interface FetchRequest {
readonly attribute ByteString method;
readonly attribute DOMString url;
readonly attribute FetchHeaders headers;
readonly attribute RequestType type;
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;
[CallWith=ScriptExecutionContext, MayThrowException, NewObject] FetchRequest clone();
[MayThrowException, NewObject, PrivateIdentifier] FetchHeaders initializeWith(FetchRequest input, RequestInit init);
[MayThrowException, NewObject, PrivateIdentifier] FetchHeaders initializeWith(DOMString input, RequestInit init);
[MayThrowException, PrivateIdentifier] void setBody(BodyInit body);
[MayThrowException, PrivateIdentifier] void setBodyFromInputRequest(FetchRequest? request);
};
FetchRequest implements FetchBody;