| /* |
| * Copyright (C) 2009 Google Inc. All rights reserved. |
| * Copyright (C) 2010 Apple Inc. All rights reserved. |
| * |
| * Redistribution and use in source and binary formstrArg, with or without |
| * modification, are permitted provided that the following conditions |
| * are met: |
| * |
| * 1. Redistributions of source code must retain the above copyright |
| * notice, this list of conditions and the following disclaimer. |
| * 2. 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. |
| * 3. Neither the name of Apple Computer, Inc. ("Apple") 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 APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY |
| * EXPRESS OR IMPLIED WARRANTIEstrArg, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
| * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
| * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS 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. |
| */ |
| |
| // This IDL file is for testing the bindings code generator and for tracking |
| // changes in its ouput. |
| |
| enum TestEnumType { "", "EnumValue1", "EnumValue2", "EnumValue3" }; |
| |
| callback TestCallbackFunction = void (TestEnumType formal1, TestObject formal2); |
| |
| [ |
| Constructor(TestCallback testCallback), |
| ImplementedAs=TestObj |
| ] interface TestObject : EventTarget { |
| // Attributes |
| readonly attribute long readOnlyLongAttr; |
| readonly attribute DOMString readOnlyStringAttr; |
| readonly attribute TestObject readOnlyTestObjectAttr; |
| static readonly attribute long staticReadOnlyLongAttr; |
| static attribute DOMString staticStringAttr; |
| static readonly attribute TestSubObjConstructor TestSubObj; |
| attribute TestEnumType enumAttr; |
| readonly attribute TestEnumType readOnlyEnumAttr; |
| attribute byte byteAttr; |
| attribute octet octetAttr; |
| attribute short shortAttr; |
| attribute unsigned short unsignedShortAttr; |
| attribute long longAttr; |
| attribute long long longLongAttr; |
| attribute unsigned long long unsignedLongLongAttr; |
| attribute DOMString stringAttr; |
| attribute EventHandler eventHandlerAttr; |
| [MeasureAs=TestFeature] attribute TestObject testObjAttr; |
| |
| // WK_ucfirst, WK_lcfirst exceptional cases. |
| attribute TestObject XMLObjAttr; |
| attribute boolean create; |
| |
| // Reflected DOM attributes |
| [Reflect, TreatNullAs=NullString] attribute DOMString reflectedStringAttr; |
| [Reflect] attribute long reflectedIntegralAttr; |
| [Reflect] attribute unsigned long reflectedUnsignedIntegralAttr; |
| [Reflect] attribute boolean reflectedBooleanAttr; |
| [Reflect, TreatNullAs=NullString, URL] attribute DOMString reflectedURLAttr; |
| [Reflect=customContentStringAttr, TreatNullAs=NullString] attribute DOMString reflectedStringAttr; |
| [Reflect=customContentIntegralAttr] attribute long reflectedCustomIntegralAttr; |
| [Reflect=customContentBooleanAttr] attribute boolean reflectedCustomBooleanAttr; |
| [Reflect=customContentURLAttr, TreatNullAs=NullString, URL] attribute DOMString reflectedCustomURLAttr; |
| |
| // TypedArray attribute |
| attribute Float32Array typedArrayAttr; |
| |
| // Methods |
| void voidMethod(); |
| void voidMethodWithArgs(long longArg, DOMString strArg, TestObject objArg); |
| long longMethod(); |
| long longMethodWithArgs(long longArg, DOMString strArg, TestObject objArg); |
| [MeasureAs=TestFeature] TestObject objMethod(); |
| TestObject objMethodWithArgs(long longArg, DOMString strArg, TestObject objArg); |
| |
| void methodWithSequenceArg(sequence<TestInterface> sequenceArg); |
| sequence<TestInterface> methodReturningSequence(long longArg); |
| |
| void methodWithEnumArg(TestEnumType enumArg); |
| [RaisesException] TestObject methodThatRequiresAllArgsAndThrows(DOMString strArg, TestObject objArg); |
| |
| void serializedValue(SerializedScriptValue serializedArg); |
| void optionsObject(Dictionary oo, optional Dictionary ooo); |
| |
| // Indexed/named properties |
| [ImplementedAs=item] getter Node (unsigned long index); |
| [ImplementedAs=namedItem] getter DOMString (DOMString name); |
| |
| // Exceptions |
| [RaisesException] void methodWithException(); |
| [GetterRaisesException] attribute long attrWithGetterException; |
| [SetterRaisesException] attribute long attrWithSetterException; |
| [GetterRaisesException] attribute DOMString stringAttrWithGetterException; |
| [SetterRaisesException] attribute DOMString stringAttrWithSetterException; |
| |
| // 'Custom' extended attribute |
| [Custom] attribute long customAttr; |
| [Custom, MeasureAs=CustomTestFeature] void customMethod(); |
| [Custom] void customMethodWithArgs(long longArg, DOMString strArg, TestObject objArg); |
| |
| void addEventListener(DOMString type, |
| EventListener listener, |
| optional boolean useCapture); |
| void removeEventListener(DOMString type, |
| EventListener listener, |
| optional boolean useCapture); |
| |
| // 'CallWith' extended attribute |
| [CallWith=ScriptState] void withScriptStateVoid(); |
| [CallWith=ScriptState] TestObject withScriptStateObj(); |
| [CallWith=ScriptState, RaisesException] void withScriptStateVoidException(); |
| [CallWith=ScriptState, RaisesException] TestObject withScriptStateObjException(); |
| [CallWith=ExecutionContext] void withExecutionContext(); |
| [CallWith=ExecutionContext&ScriptState] void withExecutionContextAndScriptState(); |
| [CallWith=ExecutionContext&ScriptState, RaisesException] TestObject withExecutionContextAndScriptStateObjException(); |
| [CallWith= ExecutionContext & ScriptState ] TestObject withExecutionContextAndScriptStateWithSpaces(); |
| [CallWith=ActiveWindow&FirstWindow] void withActiveWindowAndFirstWindow(); |
| |
| [CallWith=ScriptState] attribute long withScriptStateAttribute; |
| [CallWith=ExecutionContext] attribute TestObject withExecutionContextAttribute; |
| [SetterCallWith=ActiveWindow&FirstWindow] attribute TestObject withActiveWindowAndFirstWindowAttribute; |
| [CallWith=ScriptState, GetterRaisesException] attribute TestObject withScriptStateAttributeRaises; |
| [CallWith=ExecutionContext, GetterRaisesException] attribute TestObject withExecutionContextAttributeRaises; |
| [CallWith=ExecutionContext&ScriptState] attribute TestObject withExecutionContextAndScriptStateAttribute; |
| [CallWith=ExecutionContext&ScriptState, GetterRaisesException] attribute TestObject withExecutionContextAndScriptStateAttributeRaises; |
| [CallWith= ExecutionContext & ScriptState ] attribute TestObject withExecutionContextAndScriptStateWithSpacesAttribute; |
| |
| // optional parameters |
| void methodWithOptionalArg(optional long opt); |
| void methodWithNonOptionalArgAndOptionalArg(long nonOpt, optional long opt); |
| void methodWithNonOptionalArgAndTwoOptionalArgs(long nonOpt, optional long opt1, optional long opt2); |
| void methodWithOptionalString(optional DOMString str); |
| void methodWithOptionalStringIsUndefined([Default=Undefined] optional DOMString str); |
| void methodWithOptionalStringIsNullString([Default=NullString] optional DOMString str); |
| |
| // Callback parameters |
| void methodWithCallbackArg(TestCallback callback); |
| void methodWithNonCallbackArgAndCallbackArg(long nonCallback, TestCallback callback); |
| void methodWithCallbackAndOptionalArg(optional TestCallback callback); |
| void methodWithNullableCallbackArg(TestCallback? callback); |
| // static methods with Callback parameter |
| static void staticMethodWithCallbackAndOptionalArg(optional TestCallback callback); |
| static void staticMethodWithCallbackArg(TestCallback callback); |
| |
| // 'EnforceRange' extended attribute |
| void methodWithEnforceRangeInt8([EnforceRange] byte value); |
| void methodWithEnforceRangeUInt8([EnforceRange] octet value); |
| void methodWithEnforceRangeInt32([EnforceRange] long value); |
| void methodWithEnforceRangeUInt32([EnforceRange] unsigned long value); |
| void methodWithEnforceRangeInt64([EnforceRange] long long value); |
| void methodWithEnforceRangeUInt64([EnforceRange] unsigned long long value); |
| |
| [EnforceRange] attribute byte enforcedRangeByteAttr; |
| [EnforceRange] attribute octet enforcedRangeOctetAttr; |
| [EnforceRange] attribute long enforcedRangeLongAttr; |
| [EnforceRange] attribute unsigned long enforcedRangeUnsignedLongAttr; |
| [EnforceRange] attribute long long enforcedRangeLongLongAttr; |
| [EnforceRange] attribute unsigned long long enforcedRangeUnsignedLongLongAttr; |
| |
| // 'Conditional' extended attribute |
| [Conditional=Condition1] attribute long conditionalAttr1; |
| [Conditional=Condition1&Condition2] attribute long conditionalAttr2; |
| [Conditional=Condition1|Condition2] attribute long conditionalAttr3; |
| |
| // 'Conditional' extended method |
| [Conditional=Condition1] DOMString conditionalMethod1(); |
| [Conditional=Condition1&Condition2] void conditionalMethod2(); |
| [Conditional=Condition1|Condition2] void conditionalMethod3(); |
| |
| [Conditional=Condition1] attribute TestObjectectAConstructor conditionalAttr4; |
| [Conditional=Condition1&Condition2] attribute TestObjectectBConstructor conditionalAttr5; |
| [Conditional=Condition1|Condition2] attribute TestObjectectCConstructor conditionalAttr6; |
| |
| readonly attribute any cachedAttribute1; |
| readonly attribute any cachedAttribute2; |
| |
| attribute any anyAttribute; |
| |
| attribute TestCallbackFunction callbackFunctionAttribute; |
| TestCallbackFunction callbackFunctionReturnValue(); |
| void callbackFunctionArgument(TestCallbackFunction function); |
| |
| // Overloads |
| void overloadedMethod(TestObject? objArg, [StrictTypeChecking] DOMString strArg); |
| void overloadedMethod(TestObject? objArg, optional long longArg); |
| void overloadedMethod([StrictTypeChecking] DOMString strArg); |
| void overloadedMethod(long longArg); |
| void overloadedMethod(TestCallback callback); |
| void overloadedMethod(DOMStringList? listArg); |
| void overloadedMethod(DOMString[]? arrayArg); |
| void overloadedMethod(TestObject objArg); |
| void overloadedMethod(DOMString[] arrayArg); |
| void overloadedMethod(sequence<unsigned long> arrayArg); |
| void overloadedMethod(DOMString strArg); |
| |
| // Class methods within JavaScript (like what's used for IDBKeyRange). |
| static void classMethod(); |
| static long classMethodWithOptional(optional long arg); |
| [Custom] static void classMethod2(long arg); |
| |
| // Static method with conditional on overloaded methods |
| [Conditional=Condition1] static void overloadedMethod1(long arg); |
| [Conditional=Condition1] static void overloadedMethod1([StrictTypeChecking] DOMString type); |
| |
| void classMethodWithClamp([Clamp] unsigned short objArgsShort, [Clamp] unsigned long objArgsLong); |
| |
| // [RuntimeEnabled] methods and attributes. |
| [RuntimeEnabled=FeatureName] void enabledAtRuntimeMethod(long longArg); |
| [RuntimeEnabled=FeatureName] attribute long enabledAtRuntimeAttr; |
| // [PerContextEnabled] methods and attributes. |
| [PerContextEnabled=FeatureName] void enabledPerContextMethod(long longArg); |
| [PerContextEnabled=FeatureName] attribute long enabledPerContextAttr; |
| |
| attribute float[] floatArray; |
| attribute double[] doubleArray; |
| attribute MessagePort[] messagePortArray; |
| |
| void methodWithUnsignedLongSequence(sequence<unsigned long> unsignedLongSequence); |
| [RaisesException] DOMString[] stringArrayFunction(DOMString[] values); |
| [RaisesException] DOMStringList domStringListFunction(DOMStringList values); |
| |
| [CheckSecurityForNode] readonly attribute Document contentDocument; |
| [CheckSecurityForNode, RaisesException] SVGDocument getSVGDocument(); |
| |
| void convert1([TreatReturnedNullStringAs=Null] TestNode value); |
| void convert2([TreatReturnedNullStringAs=Undefined] TestNode value); |
| void convert4([TreatNullAs=NullString] TestNode value); |
| void convert5([TreatNullAs=NullString, TreatUndefinedAs=NullString] TestNode value); |
| |
| attribute SVGPoint mutablePoint; |
| [Immutable] attribute SVGPoint immutablePoint; |
| SVGPoint mutablePointFunction(); |
| [Immutable] SVGPoint immutablePointFunction(); |
| |
| SVGPoint svgPointMethod(SVGPoint item, unsigned long index); |
| [StrictTypeChecking, RaisesException] SVGPoint strictSVGPointMethod(SVGPoint item, unsigned long index); |
| |
| [ImplementedAs=banana] void orange(); |
| [ImplementedAs=blueberry] attribute long strawberry; |
| |
| [StrictTypeChecking] attribute float strictFloat; |
| [StrictTypeChecking, RaisesException] boolean strictFunction(DOMString str, float a, long b); |
| |
| // ObjectiveC reserved words. |
| readonly attribute long description; |
| attribute long id; |
| readonly attribute DOMString hash; |
| |
| [Replaceable] readonly attribute long replaceableAttribute; |
| |
| void variadicStringMethod(DOMString head, DOMString... tail); |
| void variadicDoubleMethod(double head, double... tail); |
| void variadicNodeMethod(Node head, Node... tail); |
| |
| // Nullable attributes. |
| readonly attribute double? nullableDoubleAttribute; |
| readonly attribute long? nullableLongAttribute; |
| readonly attribute boolean? nullableBooleanAttribute; |
| readonly attribute DOMString? nullableStringAttribute; |
| attribute long? nullableLongSettableAttribute; |
| [GetterRaisesException] attribute long? nullableStringValue; |
| |
| // Nullable arguments. |
| void methodWithNullableArguments(DOMString? str, long? l, TestObject? obj, optional double? d); |
| |
| [PerWorldBindings] readonly attribute TestObject perWorldReadOnlyAttribute; |
| [PerWorldBindings] attribute TestObject perWorldAttribute; |
| [PerWorldBindings] void perWorldMethod(); |
| [PerWorldBindings] void overloadedPerWorldMethod(long longArg); |
| [PerWorldBindings] void overloadedPerWorldMethod(DOMString strArg, long longArg); |
| |
| [ActivityLogging=AccessForAllWorlds] void activityLoggedMethod1(long longArg); |
| [PerWorldBindings, ActivityLogging=AccessForAllWorlds] void activityLoggedMethod2(long longArg); |
| [PerWorldBindings, ActivityLogging=AccessForIsolatedWorlds] void activityLoggedInIsolatedWorldMethod(long longArg); |
| [PerWorldBindings, ActivityLogging=AccessForAllWorlds] void overloadedActivityLoggedMethod(long longArg); |
| [PerWorldBindings, ActivityLogging=AccessForAllWorlds] void overloadedActivityLoggedMethod(DOMString strArg, long longArg); |
| [ActivityLogging=AccessForAllWorlds] attribute long activityLoggedAttr1; |
| [PerWorldBindings, ActivityLogging=AccessForAllWorlds] attribute long activityLoggedAttr2; |
| [PerWorldBindings, ActivityLogging=AccessForIsolatedWorlds] attribute long activityLoggedInIsolatedWorldsAttr; |
| [ActivityLogging=SetterForAllWorlds] attribute long activityLoggedAttrSetter1; |
| [PerWorldBindings, ActivityLogging=SetterForAllWorlds] attribute long activityLoggedAttrSetter2; |
| [PerWorldBindings, ActivityLogging=SetterForIsolatedWorlds] attribute long activityLoggedInIsolatedWorldsAttrSetter; |
| [ActivityLogging=GetterForAllWorlds] attribute long activityLoggedAttrGetter1; |
| [PerWorldBindings, ActivityLogging=GetterForAllWorlds] attribute long activityLoggedAttrGetter2; |
| [PerWorldBindings, ActivityLogging=GetterForIsolatedWorlds] attribute long activityLoggedInIsolatedWorldsAttrGetter; |
| |
| // DeprecateAs |
| [DeprecateAs=StaticReadonlyAttribute] static readonly attribute long deprecatedStaticReadOnlyAttr; |
| [DeprecateAs=StaticAttribute] static attribute long deprecatedStaticAttr; |
| [DeprecateAs=ReadonlyAttribute] readonly attribute long deprecatedReadonlyAttr; |
| [DeprecateAs=Attribute] attribute long deprecatedAttr; |
| |
| [DeprecateAs=Method] void deprecatedMethod(); |
| [DeprecateAs=StaticMethod] static void deprecatedStaticMethod(); |
| |
| [DeprecateAs=Constant] const unsigned short DEPRECATED_CONSTANT = 1; |
| |
| // PutForwards |
| [PutForwards=href] readonly attribute TestNode location; |
| [PutForwards=hrefThrows] readonly attribute TestNode locationWithException; |
| }; |
| |
| // The following comment should not generate any code |
| // TestObject implements TestImplements; |
| |