| /* |
| * Copyright (C) 2013 Google Inc. All rights reserved. |
| * |
| * Redistribution and use in source and binary forms, with or without |
| * modification, are permitted provided that the following conditions are |
| * met: |
| * |
| * * Redistributions of source code must retain the above copyright |
| * notice, this list of conditions and the following disclaimer. |
| * * Redistributions in binary form must reproduce the above |
| * copyright notice, this list of conditions and the following disclaimer |
| * in the documentation and/or other materials provided with the |
| * distribution. |
| * * Neither the name of Google Inc. nor the names of its |
| * contributors may be used to endorse or promote products derived from |
| * this software without specific prior written permission. |
| * |
| * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
| * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
| * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
| * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
| * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
| * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
| * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
| * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| */ |
| |
| enum TestEnum {"", "EnumValue1", "EnumValue2", "EnumValue3"}; |
| |
| callback VoidCallbackFunction = void (); |
| callback AnyCallbackFunctionOptionalAnyArg = any (optional any optionalAnyArg); |
| |
| // No extended attributes on the interface; those go in TestInterface.idl |
| interface TestObject { |
| // Constants |
| const unsigned short CONST_VALUE_0 = 0; |
| const unsigned short CONST_VALUE_1 = 1; |
| const unsigned short CONST_VALUE_2 = 2; |
| const unsigned short CONST_VALUE_4 = 4; |
| const unsigned short CONST_VALUE_8 = 8; |
| const short CONST_VALUE_9 = -1; |
| const DOMString CONST_VALUE_10 = "my constant string"; |
| const unsigned short CONST_VALUE_11 = 0xffffffff; |
| const unsigned short CONST_VALUE_12 = 0x01; |
| const unsigned short CONST_VALUE_13 = 0X20; |
| const unsigned short CONST_VALUE_14 = 0x1abc; |
| const unsigned short CONST_VALUE_15 = 010; |
| const unsigned short CONST_VALUE_16 = -010; |
| const unsigned short CONST_VALUE_16 = -0x1A; |
| const unsigned short CONST_VALUE_17 = -0X1a; |
| const double CONST_VALUE_18 = 0.123; |
| const double CONST_VALUE_19 = 4e9; |
| const double CONST_VALUE_20 = 3.4e5; |
| const double CONST_VALUE_21 = -1.3; |
| const double CONST_VALUE_22 = -4e-9; |
| const double CONST_VALUE_23 = .123; |
| const double CONST_VALUE_24 = 5E+4; |
| const float CONST_VALUE_25 = 1; |
| |
| // Extended attributes |
| [DeprecateAs=Constant] const short DEPRECATED_CONSTANT = 1; |
| [MeasureAs=Constant] const short MEASURED_CONSTANT = 1; |
| [RuntimeEnabled=FeatureName] const short FEATURE_ENABLED_CONST = 1; |
| [Reflect=CONST_IMPL] const short CONST_JAVASCRIPT = 1; |
| |
| stringifier attribute DOMString stringifierAttribute; |
| |
| // Attributes |
| // |
| // Naming convention: |
| // [ExtAttr] attribute Type extAttrTypeNameAttribute; |
| // E.g., |
| // [Foo] attribute DOMString? fooStringOrNullAttribute |
| // |
| // Type name reference: |
| // http://heycam.github.io/webidl/#dfn-type-name |
| // |
| // TestInterfaceEmpty is used as a stub interface type, for testing behavior |
| // that should not depend on particular type (beyond "interface or not"). |
| // read only |
| readonly attribute DOMString readonlyStringAttribute; |
| readonly attribute TestInterfaceEmpty readonlyTestInterfaceEmptyAttribute; |
| readonly attribute long readonlyLongAttribute; |
| // Basic types |
| attribute Date dateAttribute; |
| attribute DOMString stringAttribute; |
| attribute ByteString byteStringAttribute; |
| attribute ScalarValueString scalarValueStringAttribute; |
| attribute DOMTimeStamp domTimeStampAttribute; |
| attribute boolean booleanAttribute; |
| attribute byte byteAttribute; |
| attribute double doubleAttribute; |
| attribute float floatAttribute; |
| attribute long longAttribute; |
| attribute long long longLongAttribute; |
| attribute octet octetAttribute; |
| attribute short shortAttribute; |
| attribute unrestricted double unrestrictedDoubleAttribute; |
| attribute unrestricted float unrestrictedFloatAttribute; |
| attribute unsigned long unsignedLongAttribute; |
| attribute unsigned long long unsignedLongLongAttribute; |
| attribute unsigned short unsignedShortAttribute; |
| // Interface type |
| attribute TestInterfaceEmpty testInterfaceEmptyAttribute; |
| // Self-reference |
| attribute TestObject testObjectAttribute; |
| // Callback function type |
| attribute VoidCallbackFunction voidCallbackFunctionAttribute; |
| attribute AnyCallbackFunctionOptionalAnyArg anyCallbackFunctionOptionalAnyArgAttribute; |
| // Names that begin with an acronym |
| attribute long cssAttribute; |
| attribute long imeAttribute; |
| attribute long svgAttribute; |
| attribute long xmlAttribute; |
| // Non-wrapper types |
| attribute NodeFilter nodeFilterAttribute; |
| attribute SerializedScriptValue serializedScriptValueAttribute; |
| attribute any anyAttribute; |
| // Custom type conversions |
| attribute Promise promiseAttribute; |
| attribute Window windowAttribute; |
| // DOM Node types |
| attribute Document documentAttribute; |
| attribute DocumentFragment documentFragmentAttribute; |
| attribute DocumentType documentTypeAttribute; |
| attribute Element elementAttribute; |
| attribute Node nodeAttribute; |
| attribute ShadowRoot shadowRootAttribute; |
| // Typed arrays |
| attribute ArrayBuffer arrayBufferAttribute; |
| attribute Float32Array float32ArrayAttribute; |
| attribute Uint8Array uint8ArrayAttribute; |
| // Exceptions for is_keep_alive_for_gc |
| readonly attribute TestInterfaceEmpty self; |
| readonly attribute EventTarget readonlyEventTargetAttribute; |
| readonly attribute EventTarget? readonlyEventTargetOrNullAttribute; |
| readonly attribute Window readonlyWindowAttribute; |
| readonly attribute HTMLCollection htmlCollectionAttribute; |
| readonly attribute HTMLElement htmlElementAttribute; |
| // Arrays |
| attribute DOMString[] stringArrayAttribute; |
| attribute TestInterfaceEmpty[] testInterfaceEmptyArrayAttribute; |
| attribute float[] floatArrayAttribute; |
| // Nullable attributes |
| attribute DOMString? stringOrNullAttribute; |
| attribute long? longOrNullAttribute; |
| attribute TestInterface? testInterfaceOrNullAttribute; |
| // Enumerations |
| attribute TestEnum testEnumAttribute; |
| // Static attributes |
| static attribute DOMString staticStringAttribute; |
| static attribute long staticLongAttribute; |
| // Exceptional type |
| attribute EventHandler eventHandlerAttribute; |
| |
| // Extended attributes |
| [LogActivity, LogAllWorlds] attribute long activityLoggingAccessForAllWorldsLongAttribute; |
| [LogActivity=GetterOnly, LogAllWorlds] attribute long activityLoggingGetterForAllWorldsLongAttribute; |
| [LogActivity=SetterOnly, LogAllWorlds] attribute long activityLoggingSetterForAllWorldsLongAttribute; |
| [CachedAttribute=isValueDirty] attribute any cachedAttributeAnyAttribute; |
| [CachedAttribute=isArrayDirty] attribute DOMString[] cachedArrayAttribute; |
| [CachedAttribute=isStringDirty] attribute DOMString? cachedStringOrNoneAttribute; |
| [CallWith=ExecutionContext] attribute any callWithExecutionContextAnyAttribute; |
| [CallWith=ScriptState] attribute any callWithScriptStateAnyAttribute; |
| [CallWith=(ExecutionContext,ScriptState)] attribute any callWithExecutionContextAndScriptStateAnyAttribute; |
| [CheckSecurity=Node] readonly attribute Document checkSecurityForNodeReadonlyDocumentAttribute; // All uses are read only |
| [Conditional=CONDITION] attribute long conditionalLongAttribute; |
| // Constructors: FIXME: replace suffix with [ConstructorAttribute] |
| attribute TestInterfaceEmptyConstructor testInterfaceEmptyConstructorAttribute; |
| [DeprecateAs=deprecatedTestInterfaceEmptyConstructorAttribute] attribute TestInterfaceEmptyConstructor testInterfaceEmptyConstructorAttribute; |
| [MeasureAs=FeatureName] attribute TestInterfaceEmptyConstructor measureAsFeatureNameTestInterfaceEmptyConstructorAttribute; |
| [Custom] attribute object customObjectAttribute; |
| [Custom=Getter] attribute long customGetterLongAttribute; |
| [Custom=Getter] readonly attribute object customGetterReadonlyObjectAttribute; |
| [Custom=Setter] attribute long customSetterLongAttribute; |
| [Conditional=CONDITION, Custom] attribute long customLongAttribute; |
| [CustomElementCallbacks] readonly attribute long customElementsCallbacksReadonlyLongAttribute; |
| [DeprecateAs=LongAttribute] attribute long deprecatedLongAttribute; |
| [EnforceRange] attribute long enforceRangeLongAttribute; |
| [ExposeJSAccessors] attribute long exposeJSAccessorsLongAttribute; |
| [ImplementedAs=implementedAsName] attribute long implementedAsLongAttribute; |
| [Custom, ImplementedAs=implementedAsNameWithCustom] attribute long customImplementedAsLongAttribute; |
| [Custom=Getter, ImplementedAs=implementedAsNameWithCustomGetter] attribute long customGetterImplementedAsLongAttribute; |
| [Custom=Setter, ImplementedAs=implementedAsNameWithCustomGetter] attribute long customSetterImplementedAsLongAttribute; |
| [MeasureAs=TestFeature] attribute long measureAsLongAttribute; |
| [NotEnumerable] attribute long notEnumerableLongAttribute; |
| [PerContextEnabled=FeatureName] attribute long perContextEnabledLongAttribute; |
| [PerWorldBindings] readonly attribute TestInterfaceEmpty perWorldBindingsReadonlyTestInterfaceEmptyAttribute; |
| [LogActivity, LogAllWorlds, PerWorldBindings] attribute long activityLoggingAccessPerWorldBindingsLongAttribute; |
| [LogActivity, PerWorldBindings] attribute long activityLoggingAccessForIsolatedWorldsPerWorldBindingsLongAttribute; |
| [LogActivity=GetterOnly, LogAllWorlds, PerWorldBindings] attribute long activityLoggingGetterPerWorldBindingsLongAttribute; |
| [LogActivity=GetterOnly, PerWorldBindings] attribute long activityLoggingGetterForIsolatedWorldsPerWorldBindingsLongAttribute; |
| [PutForwards=href] readonly attribute TestNode location; |
| [PutForwards=hrefThrows] readonly attribute TestNode locationWithException; |
| [PutForwards=hrefCallWith] readonly attribute TestNode locationWithCallWith; |
| [PutForwards=hrefByteString] readonly attribute TestNode locationByteString; |
| [PerWorldBindings, PutForwards=href] readonly attribute TestNode locationWithPerWorldBindings; |
| [TypeChecking=Interface, PutForwards=href] readonly attribute TestNode locationTypeCheckingInterface; |
| [PutForwards=attr1] readonly attribute TestInterfaceGarbageCollected locationGarbageCollected; |
| [PutForwards=attr1] readonly attribute TestInterfaceWillBeGarbageCollected locationWillBeGarbageCollected; |
| [RaisesException] attribute long raisesExceptionLongAttribute; |
| [RaisesException=Getter] attribute long raisesExceptionGetterLongAttribute; |
| [RaisesException=Setter] attribute long setterRaisesExceptionLongAttribute; |
| [RaisesException] attribute TestInterfaceEmpty raisesExceptionTestInterfaceEmptyAttribute; |
| [CachedAttribute=isValueDirty, RaisesException] attribute any cachedAttributeRaisesExceptionGetterAnyAttribute; |
| [Reflect] attribute TestInterface reflectTestInterfaceAttribute; |
| [Reflect=reflectedNameAttribute] attribute TestInterface reflectReflectedNameAttributeTestAttribute; |
| // [Reflect] exceptional types: exceptional getters, exceptional setters, |
| // or range checking for unsigned |
| [Reflect] attribute boolean reflectBooleanAttribute; |
| [Reflect] attribute long reflectLongAttribute; |
| [Reflect] attribute unsigned short reflectUnsignedShortAttribute; |
| [Reflect] attribute unsigned long reflectUnsignedLongAttribute; |
| // [Reflect] exceptional names |
| [Reflect] attribute DOMString id; |
| [Reflect] attribute DOMString name; |
| [Reflect] attribute DOMString class; |
| [Reflect=id] attribute DOMString reflectedId; |
| [Reflect=name] attribute DOMString reflectedName; |
| [Reflect=class] attribute DOMString reflectedClass; |
| // Limited value attributes and enumerated attributes |
| [Reflect, ReflectOnly="unique"] attribute DOMString limitedToOnlyOneAttribute; |
| [Reflect, ReflectOnly=("Per","Paal","Espen")] attribute DOMString limitedToOnlyAttribute; |
| [Reflect=other, ReflectOnly=("Value1","Value2")] attribute DOMString limitedToOnlyOtherAttribute; |
| [Reflect, ReflectOnly=("rsa","dsa"), ReflectMissing="rsa"] attribute DOMString limitedWithMissingDefaultAttribute; |
| [Reflect, ReflectOnly=("ltr","rtl","auto"), ReflectMissing="auto", ReflectInvalid="ltr"] attribute DOMString limitedWithInvalidMissingDefaultAttribute; |
| [Reflect, ReflectOnly=("anonymous","use-credentials"), ReflectEmpty="anonymous", ReflectInvalid="anonymous"] readonly attribute DOMString corsSettingAttribute; |
| [Reflect, ReflectOnly=("empty","missing","invalid","a-normal"), ReflectEmpty="empty", ReflectMissing="missing", ReflectInvalid="invalid"] readonly attribute DOMString limitedWithEmptyMissingInvalidAttribute; |
| |
| [Replaceable] readonly attribute long replaceableReadonlyLongAttribute; |
| [Replaceable, PutForwards=href] readonly attribute TestNode locationReplaceable; |
| [RuntimeEnabled=FeatureName] attribute long runtimeEnabledLongAttribute; |
| [PerContextEnabled=FeatureName, RuntimeEnabled=FeatureName] attribute long perContextEnabledRuntimeEnabledLongAttribute; |
| [Conditional=CONDITION, RuntimeEnabled=FeatureName] attribute long conditionalRuntimeEnabledLongAttribute; |
| [SetterCallWith=(ActiveWindow,FirstWindow)] attribute DOMString setterCallWithActiveWindowAndFirstWindowStringAttribute; |
| [SetterCallWith=ExecutionContext] attribute DOMString setterCallWithExecutionContextStringAttribute; |
| [TreatNullAs=EmptyString] attribute DOMString treatNullAsEmptyStringStringAttribute; |
| [TreatNullAs=NullString] attribute DOMString treatNullAsNullStringStringAttribute; |
| [TreatReturnedNullStringAs=Null] attribute DOMString treatReturnedNullStringAsNullStringAttribute; |
| [TreatReturnedNullStringAs=Undefined] attribute DOMString treatReturnedNullStringAsUndefinedStringAttribute; |
| [TreatReturnedNullStringAs=Undefined, CachedAttribute=isStringDirty] attribute DOMString cachedTreatReturnedNullStringAsUndefinedStringAttribute; |
| [TreatReturnedNullStringAs=Null] attribute ByteString treatReturnedNullStringAsNullByteStringAttribute; |
| [TreatReturnedNullStringAs=Undefined] attribute ByteString treatReturnedNullStringAsUndefinedByteStringAttribute; |
| [TreatReturnedNullStringAs=Null] attribute ScalarValueString treatReturnedNullStringAsNullScalarValueStringAttribute; |
| [TreatReturnedNullStringAs=Undefined] attribute ScalarValueString treatReturnedNullStringAsUndefinedScalarValueStringAttribute; |
| [TypeChecking=Interface] attribute float typeCheckingInterfaceFloatAttribute; // nop for non-interface types |
| [TypeChecking=Interface] attribute TestInterface typeCheckingInterfaceTestInterfaceAttribute; |
| [TypeChecking=Interface] attribute TestInterface? typeCheckingInterfaceTestInterfaceOrNullAttribute; |
| [Reflect, URL] attribute DOMString urlStringAttribute; |
| [Reflect=reflectUrlAttribute, URL] attribute DOMString urlStringAttribute; |
| [Unforgeable] attribute long unforgeableLongAttribute; |
| |
| |
| // Methods |
| // |
| // Naming convention: |
| // ReturnType returnTypeMethodTypeName1ArgTypeName2Arg(Type1 typeName1Arg, Type2 typeName2Arg); |
| // E.g., |
| // void voidMethodStringArgLongArrayArg(DOMString stringArg, long[] longArrayArg); |
| void voidMethod(); |
| static void staticVoidMethod(); |
| |
| // Types |
| // Basic types |
| Date dateMethod(); |
| DOMString stringMethod(); |
| ByteString byteStringMethod(); |
| ScalarValueString scalarValueStringMethod(); |
| DOMTimeStamp readonlyDOMTimeStampMethod(); |
| boolean booleanMethod(); |
| byte byteMethod(); |
| double doubleMethod(); |
| float floatMethod(); |
| long longMethod(); |
| long long longLongMethod(); |
| octet octetMethod(); |
| short shortMethod(); |
| unsigned long unsignedLongMethod(); |
| unsigned long long unsignedLongLongMethod(); |
| unsigned short unsignedShortMethod(); |
| |
| void voidMethodDateArg(Date dateArg); |
| void voidMethodStringArg(DOMString stringArg); |
| void voidMethodByteStringArg(ByteString stringArg); |
| void voidMethodScalarValueStringArg(ScalarValueString scalarValueStringArg); |
| void voidMethodDOMTimeStampArg(DOMTimeStamp domTimeStampArg); |
| void voidMethodBooleanArg(boolean booleanArg); |
| void voidMethodByteArg(byte byteArg); |
| void voidMethodDoubleArg(double doubleArg); |
| void voidMethodFloatArg(float floatArg); |
| void voidMethodLongArg(long longArg); |
| void voidMethodLongLongArg(long long longLongArg); |
| void voidMethodOctetArg(octet octetArg); |
| void voidMethodShortArg(short shortArg); |
| void voidMethodUnsignedLongArg(unsigned long unsignedLongArg); |
| void voidMethodUnsignedLongLongArg(unsigned long long unsignedLongLongArg); |
| void voidMethodUnsignedShortArg(unsigned short unsignedShortArg); |
| // Interface types |
| TestInterfaceEmpty testInterfaceEmptyMethod(); |
| void voidMethodTestInterfaceEmptyArg(TestInterfaceEmpty testInterfaceEmptyArg); |
| void voidMethodLongArgTestInterfaceEmptyArg(long longArg, TestInterfaceEmpty testInterfaceEmptyArg); |
| // Callback function type |
| VoidCallbackFunction voidCallbackFunctionMethod(); |
| AnyCallbackFunctionOptionalAnyArg anyCallbackFunctionOptionalAnyArgMethod(); |
| void voidMethodVoidCallbackFunctionArg(VoidCallbackFunction voidCallbackFunctionArg); |
| void voidMethodAnyCallbackFunctionOptionalAnyArg(AnyCallbackFunctionOptionalAnyArg anyCallbackFunctionOptionalAnyArgArg); |
| // Custom type conversions |
| any anyMethod(); |
| void voidMethodEventTargetArg(EventTarget eventTargetArg); |
| void voidMethodAnyArg(any anyArg); |
| // DOM node types |
| void voidMethodAttrArg(Attr attrArg); |
| void voidMethodDocumentArg(Document documentArg); |
| void voidMethodDocumentTypeArg(DocumentType documentTypeArg); |
| void voidMethodElementArg(Element elementArg); |
| void voidMethodNodeArg(Node nodeArg); |
| // Typed arrays |
| ArrayBuffer arrayBufferMethod(); |
| ArrayBufferView arrayBufferViewMethod(); |
| Float32Array float32ArrayMethod(); |
| Int32Array int32ArrayMethod(); |
| Uint8Array uint8ArrayMethod(); |
| void voidMethodArrayBufferArg(ArrayBuffer arrayBufferArg); |
| void voidMethodArrayBufferOrNullArg(ArrayBuffer? arrayBufferArg); |
| void voidMethodArrayBufferViewArg(ArrayBufferView arrayBufferViewArg); |
| void voidMethodFloat32ArrayArg(Float32Array float32ArrayArg); |
| void voidMethodInt32ArrayArg(Int32Array int32ArrayArg); |
| void voidMethodUint8ArrayArg(Uint8Array uint8ArrayArg); |
| // Arrays |
| long[] longArrayMethod(); |
| DOMString[] stringArrayMethod(); |
| TestInterfaceEmpty[] testInterfaceEmptyArrayMethod(); |
| void voidMethodArrayLongArg(long[] arrayLongArg); |
| void voidMethodArrayStringArg(DOMString[] arrayStringArg); |
| void voidMethodArrayTestInterfaceEmptyArg(TestInterfaceEmpty[] arrayTestInterfaceEmptyArg); |
| // Sequences |
| sequence<long> longSequenceMethod(); |
| sequence<DOMString> stringSequenceMethod(); |
| sequence<TestInterfaceEmpty> testInterfaceEmptySequenceMethod(); |
| void voidMethodSequenceLongArg(sequence<long> longSequenceArg); |
| void voidMethodSequenceStringArg(sequence<DOMString> stringSequenceArg); |
| void voidMethodSequenceTestInterfaceEmptyArg(sequence<TestInterfaceEmpty> testInterfaceEmptySequenceArg); |
| void voidMethodSequenceSequenceDOMStringArg(sequence<sequence<DOMString>> stringSequenceSequenceArg); |
| // Nullable types |
| long? nullableLongMethod(); |
| DOMString? nullableStringMethod(); |
| TestInterface? nullableTestInterfaceMethod(); |
| sequence<long>? nullableLongSequenceMethod(); |
| // Union types |
| (TestInterfaceGarbageCollected or DOMString) testInterfaceGarbageCollectedOrDOMStringMethod(); |
| (TestInterfaceWillBeGarbageCollected or TestDictionary) testInterfaceWillBeGarbageCollectedOrTestDictionaryMethod(); |
| (sequence<long> or DOMString[] or unrestricted double) longSequenceOrDOMStringArrayOrUnrestrictedDoubleMethod(); |
| // Currently only used on interface type arguments |
| void voidMethodTestInterfaceEmptyOrNullArg(TestInterfaceEmpty? nullableTestInterfaceEmptyArg); |
| // Callback interface types |
| void voidMethodTestCallbackInterfaceArg(TestCallbackInterface testCallbackInterfaceArg); |
| void voidMethodOptionalTestCallbackInterfaceArg(optional TestCallbackInterface optionalTestCallbackInterfaceArg); |
| void voidMethodTestCallbackInterfaceOrNullArg(TestCallbackInterface? testCallbackInterfaceArg); |
| // Enumerations |
| TestEnum testEnumMethod(); |
| void voidMethodTestEnumArg(TestEnum testEnumTypeArg); |
| // Exceptional types |
| Dictionary dictionaryMethod(); |
| NodeFilter nodeFilterMethod(); |
| Promise promiseMethod(long arg1, Dictionary arg2, DOMString arg3, DOMString... variadic); |
| Promise promiseMethodWithoutExceptionState(Dictionary arg1); |
| SerializedScriptValue serializedScriptValueMethod(); |
| XPathNSResolver xPathNSResolverMethod(); |
| void voidMethodDictionaryArg(Dictionary dictionaryArg); |
| void voidMethodNodeFilterArg(NodeFilter nodeFilterArg); |
| void voidMethodPromiseArg(Promise promiseArg); |
| void voidMethodSerializedScriptValueArg(SerializedScriptValue serializedScriptValueArg); |
| void voidMethodXPathNSResolverArg(XPathNSResolver xPathNSResolverArg); |
| void voidMethodDictionarySequenceArg(sequence<Dictionary> dictionarySequenceArg); |
| Promise overloadedPromiseMethod(long arg); |
| Promise overloadedPromiseMethod(DOMString arg); |
| |
| // Arguments |
| void voidMethodStringArgLongArg(DOMString stringArg, long longArg); |
| // Optional arguments |
| void voidMethodOptionalStringArg(optional DOMString optionalStringArg); |
| void voidMethodOptionalTestInterfaceEmptyArg(optional TestInterfaceEmpty optionalTestInterfaceEmptyArg); |
| void voidMethodOptionalLongArg(optional long optionalLongArg); |
| DOMString stringMethodOptionalLongArg(optional long optionalLongArg); |
| TestInterfaceEmpty testInterfaceEmptyMethodOptionalLongArg(optional long optionalLongArg); |
| long longMethodOptionalLongArg(optional long optionalLongArg); |
| void voidMethodLongArgOptionalLongArg(long longArg, optional long optionalLongArg); |
| void voidMethodLongArgOptionalLongArgOptionalLongArg(long longArg, optional long optionalLongArg1, optional long optionalLongArg2); |
| void voidMethodLongArgOptionalTestInterfaceEmptyArg(long longArg, optional TestInterfaceEmpty optionalTestInterfaceEmpty); |
| void voidMethodTestInterfaceEmptyArgOptionalLongArg(TestInterfaceEmpty optionalTestInterfaceEmpty, optional long longArg); |
| // Optional arguments: exceptional case |
| void voidMethodOptionalDictionaryArg(optional Dictionary optionalDictionaryArg); |
| |
| // Optional arguments with defaults |
| void voidMethodDefaultByteStringArg(optional ByteString defaultByteStringArg = "foo"); |
| void voidMethodDefaultStringArg(optional DOMString defaultStringArg = "foo"); |
| void voidMethodDefaultIntegerArgs(optional long defaultLongArg = 10, |
| optional long long defaultLongLongArg = -10, |
| optional unsigned long defaultUnsignedArg = 0xFFFFFFFF); |
| void voidMethodDefaultDoubleArg(optional double defaultDoubleArg = 0.5); |
| void voidMethodDefaultTrueBooleanArg(optional boolean defaultBooleanArg = true); |
| void voidMethodDefaultFalseBooleanArg(optional boolean defaultBooleanArg = false); |
| void voidMethodDefaultNullableByteStringArg(optional ByteString? defaultStringArg = null); |
| void voidMethodDefaultNullableStringArg(optional DOMString? defaultStringArg = null); |
| void voidMethodDefaultNullableTestInterfaceArg(optional TestInterface? defaultTestInterfaceArg = null); |
| |
| // Variadic operations |
| void voidMethodVariadicStringArg(DOMString... variadicStringArgs); |
| void voidMethodStringArgVariadicStringArg(DOMString stringArg, DOMString... variadicStringArgs); |
| void voidMethodVariadicTestInterfaceEmptyArg(TestInterfaceEmpty... variadicTestInterfaceEmptyArgs); |
| void voidMethodTestInterfaceEmptyArgVariadicTestInterfaceEmptyArg(TestInterfaceEmpty testInterfaceEmptyArg, TestInterfaceEmpty... variadicTestInterfaceEmptyArgs); |
| void voidMethodVariadicTestInterfaceGarbageCollectedArg(TestInterfaceGarbageCollected... variadicTestInterfaceGarbageCollectedArg); |
| void voidMethodVariadicTestInterfaceWillBeGarbageCollectedArg(TestInterfaceWillBeGarbageCollected... variadicTestInterfaceWillBeGarbageCollectedArg); |
| |
| // Overloaded methods |
| void overloadedMethodA(long longArg); |
| void overloadedMethodA(long longArg1, long longArg2); |
| void overloadedMethodB(long longArg); |
| void overloadedMethodB(DOMString stringArg, optional long longArg); |
| void overloadedMethodC(long longArg); |
| void overloadedMethodC(TestInterfaceEmpty testInterfaceEmptyArg); |
| void overloadedMethodD(long longArg); |
| void overloadedMethodD(long[] longArrayArg); |
| void overloadedMethodE(long longArg); |
| void overloadedMethodE(TestInterfaceEmpty? testInterfaceEmptyOrNullArg); |
| void overloadedMethodF(optional DOMString stringArg); |
| void overloadedMethodF(double doubleArg); |
| void overloadedMethodG(long longArg); |
| void overloadedMethodG(optional TestInterfaceEmpty? testInterfaceEmptyOrNullArg = null); |
| void overloadedMethodH(TestInterface testInterfaceArg); |
| void overloadedMethodH(TestInterfaceEmpty testInterfaceEmptyArg); |
| void overloadedMethodI(DOMString stringArg); |
| void overloadedMethodI(double doubleArg); |
| void overloadedMethodJ(DOMString stringArg); |
| void overloadedMethodJ(TestDictionary testDictionaryArg); |
| |
| |
| [PerWorldBindings] void overloadedPerWorldBindingsMethod(); |
| [PerWorldBindings] void overloadedPerWorldBindingsMethod(long longArg); |
| |
| static void overloadedStaticMethod(long longArg); |
| static void overloadedStaticMethod(long longArg1, long longArg2); |
| |
| // Extended attributes for arguments |
| // [Clamp] |
| void voidMethodClampUnsignedShortArg([Clamp] unsigned short clampUnsignedShortArg); |
| void voidMethodClampUnsignedLongArg([Clamp] unsigned long clampUnsignedLongArg); |
| // [Default] |
| void voidMethodDefaultUndefinedTestInterfaceEmptyArg([Default=Undefined] optional TestInterfaceEmpty defaultUndefinedTestInterfaceEmptyArg); |
| void voidMethodDefaultUndefinedLongArg([Default=Undefined] optional long defaultUndefinedLongArg); |
| void voidMethodDefaultUndefinedStringArg([Default=Undefined] optional DOMString defaultUndefinedStringArg); |
| // [EnforceRange] |
| void voidMethodEnforceRangeLongArg([EnforceRange] long enforceRangeLongArg); |
| // [TreatNullAs], [TreatUndefinedAs] |
| void voidMethodTreatNullAsEmptyStringStringArg([TreatNullAs=EmptyString] DOMString treatNullAsEmptyStringStringArg); |
| void voidMethodTreatNullAsNullStringStringArg([TreatNullAs=NullString] DOMString treatNullAsNullStringStringArg); |
| void voidMethodTreatNullAsNullStringTreatUndefinedAsNullStringStringArg([TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString treatNullAsNullStringStringArg); |
| |
| // Extended attributes for methods |
| [LogActivity, LogAllWorlds] void activityLoggingAccessForAllWorldsMethod(); |
| [CallWith=ExecutionContext] void callWithExecutionContextVoidMethod(); |
| [CallWith=ScriptState] void callWithScriptStateVoidMethod(); |
| [CallWith=ScriptState] long callWithScriptStateLongMethod(); |
| [CallWith=(ScriptState,ExecutionContext)] void callWithScriptStateExecutionContextVoidMethod(); |
| [CallWith=(ScriptState,ScriptArguments)] void callWithScriptStateScriptArgumentsVoidMethod(); |
| [CallWith=(ScriptState,ScriptArguments)] void callWithScriptStateScriptArgumentsVoidMethodOptionalBooleanArg(optional boolean optionalBooleanArg); |
| [CallWith=ActiveWindow] void callWithActiveWindow(); |
| [CallWith=(ActiveWindow,FirstWindow)] void callWithActiveWindowScriptWindow(); |
| [CheckSecurity=Node] void checkSecurityForNodeVoidMethod(); |
| [Conditional=CONDITION] void conditionalConditionVoidMethod(); |
| [Conditional=CONDITION] static void conditionalConditionStaticVoidMethod(); |
| [Custom] void customVoidMethod(); |
| [Conditional=CONDITION, Custom] void conditionalConditionCustomVoidMethod(); |
| [CustomElementCallbacks] void customElementCallbacksVoidMethod(); |
| [DeprecateAs=voidMethod] void deprecatedVoidMethod(); |
| [DoNotCheckSignature] void doNotCheckSignatureVoidMethod(); |
| [ImplementedAs=implementedAsMethodName] void implementedAsVoidMethod(); |
| [MeasureAs=TestFeature] void measureAsVoidMethod(); |
| [DeprecateAs=TestFeatureA] void DeprecateAsOverloadedMethod(); |
| [DeprecateAs=TestFeatureB] void DeprecateAsOverloadedMethod(long arg); |
| [DeprecateAs=TestFeature] void DeprecateAsSameValueOverloadedMethod(); |
| [DeprecateAs=TestFeature] void DeprecateAsSameValueOverloadedMethod(long arg); |
| [MeasureAs=TestFeatureA] void measureAsOverloadedMethod(); |
| [MeasureAs=TestFeatureB] void measureAsOverloadedMethod(long arg); |
| [MeasureAs=TestFeature] void measureAsSameValueOverloadedMethod(); |
| [MeasureAs=TestFeature] void measureAsSameValueOverloadedMethod(long arg); |
| [DeprecateAs=TestFeatureA, MeasureAs=TestFeature] void deprecateAsMeasureAsSameValueOverloadedMethod(); |
| [DeprecateAs=TestFeatureB, MeasureAs=TestFeature] void deprecateAsMeasureAsSameValueOverloadedMethod(long arg); |
| [DeprecateAs=TestFeature, MeasureAs=TestFeatureA] void deprecateAsSameValueMeasureAsOverloadedMethod(); |
| [DeprecateAs=TestFeature, MeasureAs=TestFeatureB] void deprecateAsSameValueMeasureAsOverloadedMethod(long arg); |
| [DeprecateAs=TestFeatureA, MeasureAs=TestFeatureB] void deprecateAsSameValueMeasureAsSameValueOverloadedMethod(); |
| [DeprecateAs=TestFeatureA, MeasureAs=TestFeatureB] void deprecateAsSameValueMeasureAsSameValueOverloadedMethod(long arg); |
| [NotEnumerable] void notEnumerableVoidMethod(); |
| [PerContextEnabled=FeatureName] void perContextEnabledVoidMethod(); |
| [PerWorldBindings] void perWorldBindingsVoidMethod(); |
| [PerWorldBindings] void perWorldBindingsVoidMethodTestInterfaceEmptyArg(TestInterfaceEmpty testInterfaceEmptyArg); |
| [LogActivity, LogAllWorlds, PerWorldBindings] void activityLoggingForAllWorldsPerWorldBindingsVoidMethod(); |
| [LogActivity, PerWorldBindings] void activityLoggingForIsolatedWorldsPerWorldBindingsVoidMethod(); |
| [RaisesException] void raisesExceptionVoidMethod(); |
| [RaisesException] DOMString raisesExceptionStringMethod(); |
| [RaisesException] void raisesExceptionVoidMethodOptionalLongArg(optional long optionalLongArg); |
| [RaisesException] void raisesExceptionVoidMethodTestCallbackInterfaceArg(TestCallbackInterface testCallbackInterfaceArg); |
| [RaisesException] void raisesExceptionVoidMethodOptionalTestCallbackInterfaceArg(optional TestCallbackInterface optionalTestCallbackInterfaceArg); |
| [RaisesException] TestInterfaceEmpty raisesExceptionTestInterfaceEmptyVoidMethod(); |
| [CallWith=ExecutionContext, RaisesException] void callWithExecutionContextRaisesExceptionVoidMethodLongArg(long longArg); |
| [RuntimeEnabled=FeatureName] void runtimeEnabledVoidMethod(); |
| [PerWorldBindings, RuntimeEnabled=FeatureName] void perWorldBindingsRuntimeEnabledVoidMethod(); |
| [RuntimeEnabled=FeatureName] void runtimeEnabledOverloadedVoidMethod(DOMString stringArg); |
| [RuntimeEnabled=FeatureName] void runtimeEnabledOverloadedVoidMethod(long longArg); |
| [RuntimeEnabled=FeatureName1] void partiallyRuntimeEnabledOverloadedVoidMethod(DOMString stringArg); |
| [RuntimeEnabled=FeatureName2] void partiallyRuntimeEnabledOverloadedVoidMethod(TestInterface testInterface); |
| void partiallyRuntimeEnabledOverloadedVoidMethod(long longArg); |
| [TreatReturnedNullStringAs=Null] DOMString treatReturnedNullStringAsNullStringMethod(); |
| [TreatReturnedNullStringAs=Undefined] DOMString treatReturnedNullStringAsUndefinedStringMethod(); |
| [TreatReturnedNullStringAs=Null] ByteString treatReturnedNullStringAsNullByteStringMethod(); |
| [TreatReturnedNullStringAs=Undefined] ByteString treatReturnedNullStringAsUndefinedByteStringMethod(); |
| [TreatReturnedNullStringAs=Null] ScalarValueString treatReturnedNullStringAsNullScalarValueStringMethod(); |
| [TreatReturnedNullStringAs=Undefined] ScalarValueString treatReturnedNullStringAsUndefinedScalarValueStringMethod(); |
| [TypeChecking=Interface] void typeCheckingInterfaceVoidMethodTestInterfaceEmptyArg(TestInterfaceEmpty testInterfaceEmptyArg); |
| [TypeChecking=Interface] void typeCheckingInterfaceVoidMethodTestInterfaceEmptyVariadicArg(TestInterfaceEmpty... testInterfaceEmptyArg); |
| [TypeChecking=Unrestricted] void typeCheckingUnrestrictedVoidMethodFloatArgDoubleArg(float floatArg, double doubleArg); |
| [Unforgeable] void unforgeableVoidMethod(); |
| void voidMethodTestInterfaceGarbageCollectedSequenceArg(sequence<TestInterfaceGarbageCollected> testInterfaceGarbageCollectedSequenceArg); |
| void voidMethodTestInterfaceGarbageCollectedArrayArg(TestInterfaceGarbageCollected[] testInterfaceGarbageCollectedArrayArg); |
| void voidMethodTestInterfaceWillBeGarbageCollectedSequenceArg(sequence<TestInterfaceWillBeGarbageCollected> testInterfaceWillBeGarbageCollectedSequenceArg); |
| void voidMethodTestInterfaceWillBeGarbageCollectedArrayArg(TestInterfaceWillBeGarbageCollected[] testInterfaceWillBeGarbageCollectedArrayArg); |
| |
| // Extended attributes on referenced interfaces |
| // (not self; self-reference tests at interface themselves) |
| attribute TestInterface testInterfaceAttribute; // [ImplementedAs] |
| attribute TestInterfaceGarbageCollected testInterfaceGarbageCollectedAttribute; // [GarbageCollected] |
| attribute TestInterfaceGarbageCollected? testInterfaceGarbageCollectedOrNullAttribute; // [GarbageCollected] |
| attribute TestInterfaceWillBeGarbageCollected testInterfaceWillBeGarbageCollectedAttribute; // [WillBeGarbageCollected] |
| attribute TestInterfaceWillBeGarbageCollected? testInterfaceWillBeGarbageCollectedOrNullAttribute; // [WillBeGarbageCollected] |
| |
| // Private scripts |
| [ImplementedInPrivateScript] void voidMethodImplementedInPrivateScript(); |
| [ImplementedInPrivateScript] short shortMethodImplementedInPrivateScript(); |
| [ImplementedInPrivateScript] short shortMethodWithShortArgumentImplementedInPrivateScript(short value); |
| [ImplementedInPrivateScript] DOMString stringMethodWithStringArgumentImplementedInPrivateScript(DOMString value); |
| [ImplementedInPrivateScript] Node nodeMethodWithNodeArgumentImplementedInPrivateScript(Node value); |
| [ImplementedInPrivateScript] Node nodeMethodWithVariousArgumentsImplementedInPrivateScript(Document document, Node node, short value1, double value2, DOMString string); |
| [ImplementedInPrivateScript] readonly attribute short readonlyShortAttribute; |
| [ImplementedInPrivateScript] attribute short shortAttribute; |
| [ImplementedInPrivateScript] attribute DOMString stringAttribute; |
| [ImplementedInPrivateScript] attribute Node nodeAttribute; |
| [OnlyExposedToPrivateScript] short methodImplementedInCPPForPrivateScriptOnly(short value1, short value2); |
| [OnlyExposedToPrivateScript] attribute DOMString attributeImplementedInCPPForPrivateScriptOnly; |
| [ImplementedInPrivateScript, OnlyExposedToPrivateScript] short methodForPrivateScriptOnly(short value1, short value2); |
| [ImplementedInPrivateScript, OnlyExposedToPrivateScript] attribute DOMString attributeForPrivateScriptOnly; |
| [ImplementedInPrivateScript] attribute TestEnum enumForPrivateScript; |
| }; |