Reduce WTF::String operations that do unnecessary Unicode operations instead of ASCII
[WebKit-https.git] / Source / WebCore / xml / XMLHttpRequest.idl
1 /*
2  * Copyright (C) 2008-2016 Apple Inc. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are 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 Apple Inc. ("Apple") 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 APPLE 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 APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
21  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
24  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27  */
28
29 // FIXME: Add URLSearchParams and ReadableStream to the union when supported.
30 typedef (Blob or BufferSource or DOMFormData or USVString) BodyInit;
31
32 enum XMLHttpRequestResponseType {
33     "",
34     "arraybuffer",
35     "blob",
36     "document",
37     "json",
38     "text"
39 };
40
41 [
42     ActiveDOMObject,
43     Constructor,
44     ConstructorCallWith=ScriptExecutionContext,
45     ExportMacro=WEBCORE_EXPORT,
46     Exposed=(Window,Worker),
47     JSCustomMarkFunction,
48     JSGenerateToJSObject,
49     JSGenerateToNativeObject,
50 ] interface XMLHttpRequest : XMLHttpRequestEventTarget {
51     // event handler
52     attribute EventHandler onreadystatechange;
53
54     // state
55     const unsigned short UNSENT = 0;
56     const unsigned short OPENED = 1;
57     const unsigned short HEADERS_RECEIVED = 2;
58     const unsigned short LOADING = 3;
59     const unsigned short DONE = 4;
60     readonly attribute unsigned short readyState;
61
62     // request
63     [MayThrowException] void open(ByteString method, DOMString url); // FIXME: url should be a USVString.
64     [MayThrowException] void open(ByteString method, DOMString url, boolean async, optional DOMString? user = null, optional DOMString? password = null); // FIXME: url/user/password should all be a USVStrings.
65     [MayThrowException] void setRequestHeader(ByteString header, ByteString value);
66     attribute unsigned long timeout;
67     attribute boolean withCredentials;
68     readonly attribute XMLHttpRequestUpload upload;
69     [MayThrowException] void send(optional (Document or BodyInit)? body = null);
70     void abort();
71
72     // response
73     readonly attribute USVString responseURL;
74     readonly attribute unsigned short status;
75     readonly attribute ByteString statusText;
76     ByteString? getResponseHeader(ByteString name);
77     ByteString getAllResponseHeaders();
78     [MayThrowException] void overrideMimeType(DOMString mime);
79     attribute XMLHttpRequestResponseType responseType;
80     [CachedAttribute, CustomGetter] readonly attribute any response;
81     readonly attribute USVString responseText;
82     [Exposed=Window] readonly attribute Document? responseXML;
83 };