Phantom focus/blur events fire on clicking between text input fields when listening...
[WebKit-https.git] / Source / WebCore / testing / TypeConversions.idl
1 /*
2  * Copyright (C) 2013 Google Inc. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  *
8  * 1.  Redistributions of source code must retain the above copyright
9  *     notice, this list of conditions and the following disclaimer.
10  * 2.  Redistributions in binary form must reproduce the above copyright
11  *     notice, this list of conditions and the following disclaimer in the
12  *     documentation and/or other materials provided with the distribution.
13  *
14  * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
15  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
16  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
17  * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
18  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
19  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
20  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
21  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24  */
25
26 [
27     NoInterfaceObject,
28     ImplementationLacksVTable,
29     ExportMacro=WEBCORE_TESTSUPPORT_EXPORT,
30 ] interface TypeConversions {
31     attribute byte testByte;
32     attribute [EnforceRange] byte testEnforceRangeByte;
33     attribute [Clamp] byte testClampByte;
34     attribute octet testOctet;
35     attribute [EnforceRange] octet testEnforceRangeOctet;
36     attribute [Clamp] octet testClampOctet;
37
38     attribute short testShort;
39     attribute [EnforceRange] short testEnforceRangeShort;
40     attribute [Clamp] short testClampShort;
41     attribute unsigned short testUnsignedShort;
42     attribute [EnforceRange] unsigned short testEnforceRangeUnsignedShort;
43     attribute [Clamp] unsigned short testClampUnsignedShort;
44
45     attribute long testLong;
46     attribute [EnforceRange] long testEnforceRangeLong;
47     attribute [Clamp] long testClampLong;
48     attribute unsigned long testUnsignedLong;
49     attribute [EnforceRange] unsigned long testEnforceRangeUnsignedLong;
50     attribute [Clamp] unsigned long testClampUnsignedLong;
51
52     attribute long long testLongLong;
53     attribute [EnforceRange] long long testEnforceRangeLongLong;
54     attribute [Clamp] long long testClampLongLong;
55     attribute unsigned long long testUnsignedLongLong;
56     attribute [EnforceRange] unsigned long long testEnforceRangeUnsignedLongLong;
57     attribute [Clamp] unsigned long long testClampUnsignedLongLong;
58
59     readonly attribute unrestricted double testImpureNaNUnrestrictedDouble;
60     readonly attribute unrestricted double testImpureNaN2UnrestrictedDouble;
61     readonly attribute unrestricted double testQuietNaNUnrestrictedDouble;
62     readonly attribute unrestricted double testPureNaNUnrestrictedDouble;
63
64     attribute DOMString testString;
65     attribute ByteString testByteString;
66     attribute USVString testUSVString;
67     attribute [TreatNullAs=EmptyString] DOMString testTreatNullAsEmptyString;
68
69     void setTestLongRecord(record<DOMString, long> record);
70     record<DOMString, long> testLongRecord();
71
72     void setTestNodeRecord(record<USVString, Node> record);
73     record<USVString, Node> testNodeRecord();
74
75     void setTestSequenceRecord(record<ByteString, sequence<DOMString>> record);
76     record<ByteString, sequence<DOMString>> testSequenceRecord();
77
78     attribute (DOMString or long or boolean or Node or sequence<long>) testUnion;
79
80     attribute TypeConversionsDictionary testDictionary;
81
82     attribute (DOMString or [Clamp] long or sequence<[Clamp] long>) testClampUnion;
83     attribute (DOMString or [EnforceRange] long or sequence<[EnforceRange] long>) testEnforceRangeUnion;
84     attribute ([TreatNullAs=EmptyString] DOMString or long or sequence<[TreatNullAs=EmptyString] DOMString>) testTreatNullAsEmptyStringUnion;
85 };
86
87 [
88     JSGenerateToJSObject
89 ] dictionary TypeConversionsOtherDictionary {
90     long longValue = 0;
91     DOMString stringValue = "";
92 };
93
94 [
95     JSGenerateToJSObject
96 ] dictionary TypeConversionsDictionary {
97     long longValue = 0;
98     DOMString stringValue = "";
99     [TreatNullAs=EmptyString] DOMString treatNullAsEmptyStringValue = "";
100     sequence<DOMString> sequenceValue = [];
101     (Node or sequence<DOMString> or TypeConversionsOtherDictionary) unionValue = null;
102     [Clamp] long clampLongValue = 0;
103     [EnforceRange] long enforceRangeLongValue = 0;
104 };