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 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174
|
/* -*- 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/.
*/
// A dumping ground for random testing functions
callback PromiseReturner = Promise<any>();
callback PromiseReturner2 = Promise<any>(any arg, DOMString arg2);
[Pref="dom.expose_test_interfaces",
Exposed=Window]
interface WrapperCachedNonISupportsTestInterface {
[Pref="dom.webidl.test1"] constructor();
};
[Trial="TestTrial", Exposed=*]
interface TestTrialInterface {
constructor();
};
[Pref="dom.expose_test_interfaces",
Exposed=Window]
interface TestInterfaceLength {
[ChromeOnly]
constructor(boolean arg);
};
// The type of string C++ sees.
enum StringType {
"literal", // A string with the LITERAL flag.
"stringbuffer", // A string with the REFCOUNTED flag.
"inline", // A string with the INLINE flag.
"other", // Anything else.
};
[Pref="dom.expose_test_interfaces",
Exposed=Window]
interface TestFunctions {
constructor();
[Throws]
static undefined throwUncatchableException();
// 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);
// Some basic tests for string binding round-tripping behavior.
undefined 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);
// Get a short (short enough to fit in a JS inline string) literal string.
DOMString getShortLiteralString();
// Get a medium (long enough to not be a JS inline, but short enough
// to fit in a FakeString inline buffer) literal string.
DOMString getMediumLiteralString();
// Get a long (long enough to not fit in any inline buffers) literal string.
DOMString getLongLiteralString();
// Get a stringbuffer string for whatever string is passed in.
DOMString getStringbufferString(DOMString input);
// Get the type of string that the C++ sees after going through bindings.
StringType getStringType(DOMString str);
// Returns true if both the incoming string and the stored (via setStringData())
// string have stringbuffers and they're the same stringbuffer.
boolean stringbufferMatchesStored(DOMString str);
// Functions that just punch through to mozITestInterfaceJS.idl
[Throws]
undefined testThrowNsresult();
[Throws]
undefined testThrowNsresultFromNative();
// Throws an InvalidStateError to auto-create a rejected promise.
[Throws]
static Promise<any> throwToRejectPromise();
// 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();
// 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;
attribute [Clamp] octet? clampedNullableOctet;
attribute [EnforceRange] octet? enforcedNullableOctet;
// Testing for [AllowShared]
[GetterThrows]
attribute ArrayBufferView arrayBufferView;
[GetterThrows]
attribute [AllowShared] ArrayBufferView allowSharedArrayBufferView;
[Cached, Pure, GetterThrows]
attribute sequence<ArrayBufferView> sequenceOfArrayBufferView;
[Cached, Pure, GetterThrows]
attribute sequence<[AllowShared] ArrayBufferView> sequenceOfAllowSharedArrayBufferView;
[GetterThrows]
attribute ArrayBuffer arrayBuffer;
[GetterThrows]
attribute [AllowShared] ArrayBuffer allowSharedArrayBuffer;
[Cached, Pure, GetterThrows]
attribute sequence<ArrayBuffer> sequenceOfArrayBuffer;
[Cached, Pure, GetterThrows]
attribute sequence<[AllowShared] ArrayBuffer> sequenceOfAllowSharedArrayBuffer;
undefined testNotAllowShared(ArrayBufferView buffer);
undefined testNotAllowShared(ArrayBuffer buffer);
undefined testNotAllowShared(DOMString buffer);
undefined testAllowShared([AllowShared] ArrayBufferView buffer);
undefined testAllowShared([AllowShared] ArrayBuffer buffer);
undefined testDictWithAllowShared(optional DictWithAllowSharedBufferSource buffer = {});
undefined testUnionOfBufferSource((ArrayBuffer or ArrayBufferView or DOMString) foo);
undefined testUnionOfAllowSharedBufferSource(AllowSharedBufferSource foo);
undefined testUnionWithAllowShared([AllowShared] (Int8Array or Int16Array) foo);
boolean staticAndNonStaticOverload();
static boolean staticAndNonStaticOverload(optional unsigned long foo);
[ChromeOnly, NewObject]
static TestChromeOnlyInterface createTestChromeOnlyInterface();
};
[Pref="dom.expose_test_interfaces",
ChromeOnly,
Exposed=Window]
interface TestChromeOnlyInterface {
};
[Pref="dom.expose_test_interfaces",
Exposed=Window]
interface TestReflectedHTMLAttribute {
constructor();
[Frozen, ReflectedHTMLAttributeReturningFrozenArray]
attribute sequence<Element>? reflectedHTMLAttribute;
undefined setReflectedHTMLAttributeValue(sequence<Element> seq);
};
dictionary DictWithAllowSharedBufferSource {
ArrayBuffer arrayBuffer;
ArrayBufferView arrayBufferView;
[AllowShared] ArrayBuffer allowSharedArrayBuffer;
[AllowShared] ArrayBufferView allowSharedArrayBufferView;
};
|