chromium/third_party/blink/renderer/core/fetch/request.idl

// 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", "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"
};
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 {"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;
    [RuntimeEnabled=PrivateNetworkAccessPermissionPrompt] 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;