1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
|
// Copyright 2014 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// https://fetch.spec.whatwg.org/#request-class
typedef (Request or USVString) RequestInfo;
enum RequestDestination {
// https://fetch.spec.whatwg.org/#requestdestination
"", "audio", "audioworklet", "document", "embed", "font", "frame", "iframe", "image", "json", "manifest", "object", "paintworklet", "report",
"script", "serviceworker", "sharedworker", "style", "track", "video", "worker", "xslt",
// https://wicg.github.io/fenced-frame/#new-request-destination
"fencedframe",
// https://github.com/WICG/compression-dictionary-transport
"dictionary",
// https://wicg.github.io/nav-speculation/speculation-rules.html#fetch-destination
"speculationrules",
// https://wicg.github.io/shared-storage/#request-destination-monkey-patch
"sharedstorageworklet",
// https://w3c-fedid.github.io/FedCM/
"webidentity",
// https://github.com/whatwg/fetch/issues/1120
"webbundle",
};
enum RequestMode { "navigate", "same-origin", "no-cors", "cors" };
enum RequestCredentials { "omit", "same-origin", "include" };
enum RequestRedirect { "follow", "error", "manual" };
enum RequestCache { "default", "no-store", "reload", "no-cache", "force-cache",
"only-if-cached" };
enum FetchPriority {"low", "auto", "high"};
enum RequestDuplex {"half"};
enum IPAddressSpace {"loopback", "local", "private", "public", "unknown"};
// https://w3c.github.io/webappsec-referrer-policy/#referrer-policies
enum ReferrerPolicy {
"",
"no-referrer",
"no-referrer-when-downgrade",
"same-origin",
"origin",
"strict-origin",
"origin-when-cross-origin",
"strict-origin-when-cross-origin",
"unsafe-url"
};
[
Exposed=(Window,Worker)
] interface Request {
[CallWith=ScriptState, RaisesException] constructor(RequestInfo input, optional RequestInit init = {});
readonly attribute ByteString method;
readonly attribute USVString url;
[ImplementedAs=getHeaders, SameObject] readonly attribute Headers headers;
readonly attribute RequestDestination destination;
readonly attribute DOMString referrer;
[ImplementedAs=getReferrerPolicy] 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 AbortSignal signal;
readonly attribute RequestDuplex duplex;
[RuntimeEnabled=LocalNetworkAccessPermissionPolicy] readonly attribute IPAddressSpace targetAddressSpace;
[MeasureAs=RequestIsHistoryNavigation] readonly attribute boolean isHistoryNavigation;
[RaisesException, CallWith=ScriptState, NewObject] Request clone();
[Affects=Everything, RuntimeEnabled=FetchUploadStreaming] readonly attribute ReadableStream? body;
};
Request includes Body;
|