2010-07-20 Jessie Berlin <jberlin@apple.com>
[WebKit-https.git] / WebCore / bindings / scripts / test / TestObj.idl
1 /*
2  * Copyright (C) 2009 Google Inc. All rights reserved.
3  * Copyright (C) 2010 Apple Inc. All rights reserved.
4  *
5  * Redistribution and use in source and binary formstrArg, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  *
9  * 1.  Redistributions of source code must retain the above copyright
10  *     notice, this list of conditions and the following disclaimer.
11  * 2.  Redistributions in binary form must reproduce the above copyright
12  *     notice, this list of conditions and the following disclaimer in the
13  *     documentation and/or other materials provided with the distribution.
14  * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
15  *     its contributors may be used to endorse or promote products derived
16  *     from this software without specific prior written permission.
17  *
18  * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
19  * EXPRESS OR IMPLIED WARRANTIEstrArg, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21  * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
22  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
24  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
25  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28  */
29
30 // This IDL file is for testing the bindings code generator and for tracking
31 // changes in its ouput.
32 module test {
33     interface TestObj {
34         // Attributes
35         readonly attribute long            readOnlyIntAttr;
36         readonly attribute DOMString       readOnlyStringAttr;
37         readonly attribute TestObj         readOnlyTestObjAttr;
38         attribute long                     intAttr;
39         attribute long long                longLongAttr;
40         attribute unsigned long long       unsignedLongLongAttr;
41         attribute DOMString                stringAttr;
42         attribute TestObj                  testObjAttr;
43
44         // Reflected DOM attributes
45         attribute [Reflect] DOMString reflectedStringAttr;
46         attribute [Reflect] long reflectedIntegralAttr;
47         attribute [Reflect] boolean reflectedBooleanAttr;
48         attribute [Reflect,URL] DOMString reflectedURLAttr;
49         attribute [Reflect,NonEmpty,URL] DOMString reflectedNonEmptyURLAttr;
50         attribute [Reflect=customContentStringAttr] DOMString reflectedStringAttr;
51         attribute [Reflect=customContentIntegralAttr] long reflectedCustomIntegralAttr;
52         attribute [Reflect=customContentBooleanAttr] boolean reflectedCustomBooleanAttr;
53         attribute [Reflect=customContentURLAttr,URL] DOMString reflectedCustomURLAttr;
54         attribute [Reflect=customContentNonEmptyURLAttr,NonEmpty,URL] DOMString reflectedCustomNonEmptyURLAttr;
55
56         // Methods
57         void    voidMethod();
58         void    voidMethodWithArgs(in long intArg, in DOMString strArg, in TestObj objArg);
59         long    intMethod();
60         long    intMethodWithArgs(in long intArg, in DOMString strArg, in TestObj objArg);
61         TestObj objMethod();
62         TestObj objMethodWithArgs(in long intArg, in DOMString strArg, in TestObj objArg);
63
64         [RequiresAllArguments] TestObj methodThatRequiresAllArgs(in DOMString strArg, in TestObj objArg);
65         [RequiresAllArguments=Raise] TestObj methodThatRequiresAllArgsAndThrows(in DOMString strArg, in TestObj objArg)
66             raises(DOMException);
67
68         void serializedValue(in SerializedScriptValue serializedArg);
69         void idbKey(in IDBKey key);
70
71         // Exceptions
72         void methodWithException() raises(DOMException);
73         attribute long attrWithGetterException getter raises(DOMException);
74         attribute long attrWithSetterException setter raises(DOMException);
75         attribute DOMString stringAttrWithGetterException getter raises(DOMException);
76         attribute DOMString stringAttrWithSetterException setter raises(DOMException);
77
78         // 'Custom' extended attribute
79         attribute [Custom] long            customAttr;
80         [Custom] void customMethod();
81         [Custom] void customMethodWithArgs(in long intArg, in DOMString strArg, in TestObj objArg);
82
83         [CustomArgumentHandling] void customArgsAndException(in log intArg)
84             raises(DOMException);
85
86         void addEventListener(in DOMString type, 
87                               in EventListener listener, 
88                               in boolean useCapture);
89         void removeEventListener(in DOMString type, 
90                                  in EventListener listener, 
91                                  in boolean useCapture);
92
93         // 'CallWith' extended attribute
94         [CallWith=DynamicFrame] void withDynamicFrame();
95         [CallWith=DynamicFrame] void withDynamicFrameAndArg(in long intArg);
96         [CallWith=DynamicFrame] void withDynamicFrameAndOptionalArg(in long intArg, in [Optional] long optionalArg);
97         [NeedsUserGestureCheck, CallWith=DynamicFrame] void withDynamicFrameAndUserGesture(in long intArg);
98         [NeedsUserGestureCheck, CallWith=DynamicFrame] void withDynamicFrameAndUserGestureASAD(in long intArg, in [Optional] long optionalArg);
99         [CallWith=ScriptState] void withScriptStateVoid();
100         [CallWith=ScriptState] TestObj withScriptStateObj();
101         [CallWith=ScriptState] void withScriptStateVoidException()
102             raises(DOMException);
103         [CallWith=ScriptState] TestObj withScriptStateObjException()
104             raises(DOMException);
105         [CallWith=ScriptExecutionContext] void withScriptExecutionContext();
106
107         // 'Optional' extended attribute
108         void    methodWithOptionalArg(in [Optional] long opt);
109         void    methodWithNonOptionalArgAndOptionalArg(in long nonOpt, in [Optional] long opt);
110         void    methodWithNonOptionalArgAndTwoOptionalArgs(in long nonOpt, in [Optional] long opt1, in long opt2);
111
112         // 'ConvertScriptString' extended attribute
113         readonly attribute [ConvertScriptString] DOMString scriptStringAttr;
114
115         // 'Conditional' extended attribute
116         attribute [Conditional=Condition1] long conditionalAttr1;
117         attribute [Conditional=Condition1&Condition2] long conditionalAttr2;
118         attribute [Conditional=Condition1|Condition2] long conditionalAttr3;
119
120 #if defined(TESTING_V8) || defined(TESTING_JS)
121         // Overloads
122         void    overloadedMethod(in TestObj objArg, in DOMString strArg);
123         void    overloadedMethod(in TestObj objArg, in [Optional] long intArg);
124         void    overloadedMethod(in DOMString strArg);
125         void    overloadedMethod(in long intArg);
126 #endif
127
128         // ObjectiveC reserved words.
129         readonly attribute long      description;
130         attribute long               id;
131         readonly attribute DOMString hash;
132
133         // Check constants and enums.
134         const unsigned short CONST_VALUE_0 = 0;
135         const unsigned short CONST_VALUE_1 = 1;
136         const unsigned short CONST_VALUE_2 = 2;
137         const unsigned short CONST_VALUE_4 = 4;
138         const unsigned short CONST_VALUE_8 = 8;
139         const short CONST_VALUE_9 = -1;
140         const DOMString CONST_VALUE_10 = "my constant string";
141         const unsigned short CONST_VALUE_11 = 0xffffffff;
142         const unsigned short CONST_VALUE_12 = 0x01;
143         const unsigned short CONST_VALUE_13 = 0X20;
144         const unsigned short CONST_VALUE_14 = 0x1abc;
145     };
146 }