Rename ExceptionCode-based exception handling to "legacy"
[WebKit-https.git] / Source / WebCore / Modules / fetch / FetchRequest.idl
1 /*
2  * Copyright (C) 2016 Canon Inc.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted, provided that the following conditions
6  * are required to be met:
7  *
8  * 1.  Redistributions of source code must retain the above copyright
9  *     notice, this list of conditions and the following disclaimer.
10  * 2.  Redistributions in binary form must reproduce the above copyright
11  *     notice, this list of conditions and the following disclaimer in the
12  *     documentation and/or other materials provided with the distribution.
13  * 3.  Neither the name of Canon Inc. nor the names of
14  *     its contributors may be used to endorse or promote products derived
15  *     from this software without specific prior written permission.
16  *
17  * THIS SOFTWARE IS PROVIDED BY CANON INC. AND ITS CONTRIBUTORS "AS IS" AND ANY
18  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20  * DISCLAIMED. IN NO EVENT SHALL CANON INC. AND ITS CONTRIBUTORS BE LIABLE FOR
21  * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
23  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
24  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
25  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27  */
28
29 enum RequestType { "", "audio", "font", "image", "script", "style", "track", "video" };
30 enum RequestDestination { "", "document", "sharedworker", "subresource", "unknown", "worker" };
31 enum RequestMode { "navigate", "same-origin", "no-cors", "cors" };
32 enum RequestCredentials { "omit", "same-origin", "include" };
33 enum RequestCache { "default", "no-store", "reload", "no-cache", "force-cache" };
34 enum RequestRedirect { "follow", "error", "manual" };
35 enum ReferrerPolicy { "", "no-referrer",  "no-referrer-when-downgrade", "origin", "origin-when-cross-origin", "unsafe-url" };
36
37 [
38     ActiveDOMObject,
39     Conditional=FETCH_API,
40     Constructor(any input, optional Dictionary init),
41     EnabledAtRuntime=FetchAPI,
42     Exposed=(Window,Worker),
43     InterfaceName=Request,
44     JSBuiltinConstructor,
45     PrivateIdentifier,
46     PublicIdentifier,
47 ]
48 interface FetchRequest {
49     readonly attribute DOMString method;
50     readonly attribute DOMString url;
51     readonly attribute FetchHeaders headers;
52
53     readonly attribute RequestType type;
54     readonly attribute RequestDestination destination;
55     readonly attribute DOMString referrer;
56     readonly attribute ReferrerPolicy referrerPolicy;
57     readonly attribute RequestMode mode;
58     readonly attribute RequestCredentials credentials;
59     readonly attribute RequestCache cache;
60     readonly attribute RequestRedirect redirect;
61     readonly attribute DOMString integrity;
62
63     [NewObject, CallWith=ScriptExecutionContext, MayThrowLegacyException] FetchRequest clone();
64
65     [PrivateIdentifier, MayThrowLegacyException] FetchHeaders initializeWith(FetchRequest input, Dictionary init);
66     [PrivateIdentifier, MayThrowLegacyException] FetchHeaders initializeWith(DOMString input, Dictionary init);
67     [PrivateIdentifier, MayThrowLegacyException, CallWith=ScriptState] void setBody(any body, FetchRequest? request);
68 };
69 FetchRequest implements FetchBody;