gecko/dom/webidl/XMLHttpRequest.webidl
Boris Zbarsky 56133baee1 Bug 768537 part 1. Update parser support for dictionaries to spec changes. r=jlebar
There are several parts here:

1)  Enforce the requirement that dictionary arguments not followed by a required argument are optional.
2)  Make dictionaries no longer be distinguishable from nullable types.
3)  Disallow dictionaries or unions containing dictionaries inside a nullable type.
4)  Force optional dictionaries to have a default value of null so that codegen doesn't have to worry about dealing with
    optional arguments that have no default value in the IDL but need to be treated as if they were null.
2012-07-17 12:18:53 -04:00

139 lines
3.5 KiB
Plaintext

/* -*- 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
* www.w3.org/TR/2012/WD-XMLHttpRequest-20120117/
*
* Copyright © 2012 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C
* liability, trademark and document use rules apply.
*/
interface Document;
interface Blob;
interface FormData;
interface InputStream;
interface MozChannel;
interface IID;
enum XMLHttpRequestResponseType {
"",
"arraybuffer",
"blob",
"document",
"json",
"text",
// Mozilla-specific stuff
"moz-chunked-text",
"moz-chunked-arraybuffer",
"moz-blob"
};
/**
* 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.
*/
boolean mozAnon = false;
/**
* If true, the same origin policy will not be enforced on the request.
*/
boolean mozSystem = false;
};
[Constructor(optional MozXMLHttpRequestParameters params)]
interface XMLHttpRequest : XMLHttpRequestEventTarget {
// event handler
[TreatNonCallableAsNull, GetterInfallible=MainThread]
attribute Function? 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;
[Infallible]
readonly attribute unsigned short readyState;
// request
void open(DOMString method, DOMString url, optional boolean async = true,
optional DOMString? user, optional DOMString? password);
void setRequestHeader(DOMString header, DOMString value);
[GetterInfallible]
attribute unsigned long timeout;
[GetterInfallible, SetterInfallible=MainThread]
attribute boolean withCredentials;
[Infallible=MainThread]
readonly attribute XMLHttpRequestUpload upload;
void send();
void send(ArrayBuffer data);
void send(Blob data);
void send(Document data);
void send(DOMString? data);
void send(FormData data);
void send(InputStream data);
[Infallible=MainThread]
void abort();
// response
[Infallible=MainThread]
readonly attribute unsigned short status;
[Infallible]
readonly attribute DOMString statusText;
DOMString? getResponseHeader(DOMString header);
[Infallible=MainThread]
DOMString getAllResponseHeaders();
[Infallible=MainThread]
void overrideMimeType(DOMString mime);
[GetterInfallible]
attribute XMLHttpRequestResponseType responseType;
readonly attribute any response;
readonly attribute DOMString? responseText;
[GetterInfallible=Workers]
readonly attribute Document? responseXML;
// Mozilla-specific stuff
[GetterInfallible, SetterInfallible=MainThread]
attribute boolean multipart;
[GetterInfallible, SetterInfallible=MainThread]
attribute boolean mozBackgroundRequest;
[ChromeOnly, GetterInfallible, SetterInfallible=MainThread]
readonly attribute MozChannel channel;
void sendAsBinary(DOMString body);
any getInterface(IID iid);
[TreatNonCallableAsNull, GetterInfallible=MainThread]
attribute Function? onuploadprogress;
[Infallible]
readonly attribute boolean mozAnon;
[Infallible]
readonly attribute boolean mozSystem;
};