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 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154
|
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/.
*
* The origin of this IDL file is
* https://xhr.spec.whatwg.org/#interface-xmlhttprequest
*
* Copyright © 2012 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C
* liability, trademark and document use rules apply.
*/
interface InputStream;
interface MozChannel;
enum XMLHttpRequestResponseType {
"",
"arraybuffer",
"blob",
"document",
"json",
"text",
};
/**
* Parameters for instantiating an XMLHttpRequest. They are passed as an
* optional argument to the constructor:
*
* new XMLHttpRequest({anon: true, system: true});
*/
dictionary MozXMLHttpRequestParameters
{
/**
* If true, the request will be sent without cookie and authentication
* headers. Defaults to true for system/privileged/chrome requests,
* and to false otherwise.
* Note that even if set to true, for system/privileged/chrome requests,
* manually-set 'Cookie' headers are not removed.
*/
boolean mozAnon;
/**
* If true, the same origin policy will not be enforced on the request.
*/
boolean mozSystem = false;
};
[Exposed=(Window,DedicatedWorker,SharedWorker)]
interface XMLHttpRequest : XMLHttpRequestEventTarget {
[Throws]
constructor(optional MozXMLHttpRequestParameters params = {});
// There are apparently callers, specifically CoffeeScript, who do
// things like this:
// c = new(window.ActiveXObject || XMLHttpRequest)("Microsoft.XMLHTTP")
// To handle that, we need a constructor that takes a string.
[Throws]
constructor(DOMString ignored);
// event handler
attribute EventHandler onreadystatechange;
// states
const unsigned short UNSENT = 0;
const unsigned short OPENED = 1;
const unsigned short HEADERS_RECEIVED = 2;
const unsigned short LOADING = 3;
const unsigned short DONE = 4;
readonly attribute unsigned short readyState;
// request
[Throws]
undefined open(ByteString method, UTF8String url);
[Throws]
undefined open(ByteString method, UTF8String url, boolean async,
optional UTF8String? user=null, optional UTF8String? password=null);
[Throws]
undefined setRequestHeader(ByteString header, ByteString value);
[SetterThrows]
attribute unsigned long timeout;
[SetterThrows]
attribute boolean withCredentials;
[Throws]
readonly attribute XMLHttpRequestUpload upload;
[Throws]
undefined send(optional (Document or XMLHttpRequestBodyInit)? body = null);
[Throws]
undefined abort();
// response
readonly attribute UTF8String responseURL;
[Throws]
readonly attribute unsigned short status;
[Throws]
readonly attribute ByteString statusText;
[Throws]
ByteString? getResponseHeader(ByteString header);
[Throws]
ByteString getAllResponseHeaders();
// Not UTF8String, because CMimeType::Parse
// has Latin1 rather than UTF-8 semantics.
[Throws]
undefined overrideMimeType(DOMString mime);
[SetterThrows]
attribute XMLHttpRequestResponseType responseType;
[Throws]
readonly attribute any response;
// This is really USVString, but this string is potentially large,
// and we already know that it's valid UTF-16, since it came out of
// an encoding converter, so let's not have the binding layer
// do UTF-16 validation on a known-valid value.
[Cached, Pure, Throws]
readonly attribute DOMString? responseText;
[Throws, Exposed=Window]
readonly attribute Document? responseXML;
// Mozilla-specific stuff
[ChromeOnly, SetterThrows]
attribute boolean mozBackgroundRequest;
[ChromeOnly, Exposed=Window]
readonly attribute MozChannel? channel;
[Throws, ChromeOnly, Exposed=Window]
any getInterface(any iid);
[ChromeOnly, Exposed=Window]
undefined setOriginAttributes(optional OriginAttributesDictionary originAttributes = {});
[ChromeOnly, Throws]
undefined sendInputStream(InputStream body);
// Only works on MainThread.
// Its permanence is to be evaluated in bug 1368540 for Firefox 60.
[ChromeOnly]
readonly attribute unsigned short errorCode;
readonly attribute boolean mozAnon;
readonly attribute boolean mozSystem;
};
|