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

// Copyright 2018 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/#requestinit

// NOTE: Upon adding or removing any dictionary members here you must update
// the AreAnyMembersPresent function in request.cc.

dictionary RequestInit {
    ByteString method;
    HeadersInit headers;
    // TODO(domfarolino): this should be of type BodyInit? when the IDL
    // compiler can handle it.
    any body;
    USVString referrer;
    ReferrerPolicy referrerPolicy;
    RequestMode mode;
    RequestCredentials credentials;
    RequestCache cache;
    RequestRedirect redirect;
    DOMString integrity;
    boolean keepalive;
    FetchPriority priority;
    [RuntimeEnabled=TopicsAPI, Exposed=Window] boolean browsingTopics;
    [RuntimeEnabled=AdInterestGroupAPI, Exposed=Window] boolean adAuctionHeaders;
    [RuntimeEnabled=SharedStorageAPIM118, Exposed=Window] boolean sharedStorageWritable;
    AbortSignal? signal;
    [RuntimeEnabled=FetchUploadStreaming] RequestDuplex duplex;
    [RuntimeEnabled=PrivateNetworkAccessPermissionPrompt] IPAddressSpace targetAddressSpace;
    // Even though Private Token and Attribution Reporting operations are only
    // available in secure contexts, this has to be enforced after the fact
    // because the SecureContext IDL attribute doesn't affect dictionary members.
    [RuntimeEnabled=PrivateStateTokens] PrivateToken privateToken;
    [RuntimeEnabled=AttributionReportingInterface] AttributionReportingRequestOptions attributionReporting;
    // TODO(domfarolino): add support for RequestInit window member.
    //any window; // can only be set to null
};