diff options
Diffstat (limited to 'dom/webidl/DOMRequest.webidl')
-rw-r--r-- | dom/webidl/DOMRequest.webidl | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/dom/webidl/DOMRequest.webidl b/dom/webidl/DOMRequest.webidl new file mode 100644 index 0000000000..e7e40cfd6d --- /dev/null +++ b/dom/webidl/DOMRequest.webidl @@ -0,0 +1,32 @@ +/* -*- 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/. */ + +enum DOMRequestReadyState { "pending", "done" }; + +[Exposed=(Window,Worker)] +interface mixin DOMRequestShared { + readonly attribute DOMRequestReadyState readyState; + + readonly attribute any result; + readonly attribute DOMException? error; + + attribute EventHandler onsuccess; + attribute EventHandler onerror; +}; + +[Exposed=(Window,Worker)] +interface DOMRequest : EventTarget { + // The [TreatNonCallableAsNull] annotation is required since then() should do + // nothing instead of throwing errors when non-callable arguments are passed. + // See documentation for Promise.then to see why we return "any". + [NewObject, Throws] + any then([TreatNonCallableAsNull] optional AnyCallback? fulfillCallback = null, + [TreatNonCallableAsNull] optional AnyCallback? rejectCallback = null); + + [ChromeOnly] + undefined fireDetailedError(DOMException aError); +}; + +DOMRequest includes DOMRequestShared; |