2018-09-13 23:04:55 +03:00
|
|
|
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
2016-03-10 12:50:56 +03:00
|
|
|
/* 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/.
|
|
|
|
*/
|
|
|
|
|
|
|
|
// A dumping ground for random testing functions
|
2016-12-20 02:38:44 +03:00
|
|
|
|
|
|
|
callback PromiseReturner = Promise<any>();
|
|
|
|
|
2018-10-12 02:02:10 +03:00
|
|
|
[Pref="dom.expose_test_interfaces"]
|
|
|
|
interface WrapperCachedNonISupportsTestInterface {
|
|
|
|
};
|
|
|
|
|
2017-02-01 23:29:47 +03:00
|
|
|
[Pref="dom.expose_test_interfaces",
|
|
|
|
Constructor]
|
2016-03-10 12:50:56 +03:00
|
|
|
interface TestFunctions {
|
|
|
|
[Throws]
|
|
|
|
static void throwUncatchableException();
|
2016-12-20 02:38:44 +03:00
|
|
|
|
|
|
|
// Simply returns its argument. Can be used to test Promise
|
|
|
|
// argument processing behavior.
|
|
|
|
static Promise<any> passThroughPromise(Promise<any> arg);
|
|
|
|
|
|
|
|
// Returns whatever Promise the given PromiseReturner returned.
|
|
|
|
[Throws]
|
|
|
|
static Promise<any> passThroughCallbackPromise(PromiseReturner callback);
|
2017-02-01 23:29:47 +03:00
|
|
|
|
|
|
|
// Some basic tests for string binding round-tripping behavior.
|
|
|
|
void setStringData(DOMString arg);
|
|
|
|
|
|
|
|
// Get the string data, using an nsAString argument on the C++ side.
|
|
|
|
// This will just use Assign/operator=, whatever that does.
|
|
|
|
DOMString getStringDataAsAString();
|
|
|
|
|
|
|
|
// Get the string data, but only "length" chars of it, using an
|
|
|
|
// nsAString argument on the C++ side. This will always copy on the
|
|
|
|
// C++ side.
|
|
|
|
DOMString getStringDataAsAString(unsigned long length);
|
|
|
|
|
|
|
|
// Get the string data, but only "length" chars of it, using a
|
|
|
|
// DOMString argument on the C++ side and trying to hand it
|
|
|
|
// stringbuffers. If length not passed, use our full length.
|
|
|
|
DOMString getStringDataAsDOMString(optional unsigned long length);
|
2017-12-09 06:01:16 +03:00
|
|
|
|
|
|
|
// Functions that just punch through to mozITestInterfaceJS.idl
|
|
|
|
[Throws]
|
|
|
|
void testThrowNsresult();
|
|
|
|
[Throws]
|
|
|
|
void testThrowNsresultFromNative();
|
2018-02-10 09:34:10 +03:00
|
|
|
|
|
|
|
// Throws an InvalidStateError to auto-create a rejected promise.
|
|
|
|
[Throws]
|
|
|
|
static Promise<any> throwToRejectPromise();
|
2018-06-01 19:17:10 +03:00
|
|
|
|
|
|
|
// Some attributes for the toJSON to work with.
|
|
|
|
readonly attribute long one;
|
|
|
|
[Func="mozilla::dom::TestFunctions::ObjectFromAboutBlank"]
|
|
|
|
readonly attribute long two;
|
|
|
|
|
|
|
|
// Testing for how default toJSON behaves.
|
|
|
|
[Default] object toJSON();
|
2018-10-12 02:02:10 +03:00
|
|
|
|
|
|
|
// This returns a wrappercached non-ISupports object. While this will always
|
|
|
|
// return the same object, no optimization attributes like [Pure] should be
|
|
|
|
// used here because the object should not be held alive from JS by the
|
|
|
|
// bindings. This is needed to test wrapper preservation for weak map keys.
|
|
|
|
// See bug 1351501.
|
|
|
|
readonly attribute WrapperCachedNonISupportsTestInterface wrapperCachedNonISupportsObject;
|
2016-03-10 12:50:56 +03:00
|
|
|
};
|