1{
2    "types": {
3        "Global": [
4            { "name": "bool", "mode": "SCALAR" },
5            { "name": "double", "mode": "SCALAR" },
6            { "name": "int", "mode": "SCALAR" },
7            { "name": "unsigned", "mode": "SCALAR" },
8            { "name": "unsigned long", "mode": "SCALAR" },
9            { "name": "unsigned long long", "mode": "SCALAR" }
10        ],
11
12        "WTF": [
13            {
14                "name": "String", "mode": "HEAVY_SCALAR",
15                "header": "wtf/text/WTFString.h"
16            }
17        ],
18
19        "JavaScriptCore": [
20            {
21                "name": "InputQueue", "mode": "SCALAR", "storage": "uint8_t",
22                "flags": ["ENUM_CLASS"],
23                "values": ["EventLoopInput", "LoaderMemoizedData", "ScriptMemoizedData", "Count"],
24                "header": "replay/NondeterministicInput.h"
25            }
26        ],
27
28        "WebCore": [
29            {
30                "name": "EncodedCType", "mode": "SCALAR", "storage": "uint8_t",
31                "flags": ["ENUM_CLASS"],
32                "values": [
33                    "Boolean",
34                    "Int",
35                    "String",
36                    "Unsigned"
37                ],
38                "header": "replay/MemoizedDOMResult.h"
39            },
40            {
41                "name": "Modifiers", "mode": "SCALAR", "storage": "uint8_t",
42                "enclosing_class": "PlatformEvent",
43                "flags": ["ENUM"],
44                "values": ["AltKey", "CtrlKey", "MetaKey", "ShiftKey"],
45                "header": "platform/PlatformEvent.h"
46            },
47            {
48                "name": "MouseButton", "mode": "SCALAR", "storage": "int8_t",
49                "flags": ["ENUM"],
50                "values": ["NoButton", "LeftButton", "MiddleButton", "RightButton"],
51                "header": "platform/PlatformMouseEvent.h"
52            },
53            {
54                "name": "Page", "mode": "OWNED",
55                "header": "page/Page.h"
56            },
57            {
58                "name": "PlatformKeyboardEvent", "mode": "OWNED",
59                "header": "platform/PlatformKeyboardEvent.h"
60            },
61            {
62                "name": "PlatformMouseEvent", "mode": "OWNED",
63                "header": "platform/PlatformMouseEvent.h"
64            },
65            {
66                "name": "PlatformWheelEvent", "mode": "OWNED",
67                "header": "platform/PlatformWheelEvent.h"
68            },
69            {
70                "name": "PlatformWheelEventGranularity", "mode": "SCALAR", "storage": "uint64_t",
71                "flags": ["ENUM"],
72                "values": ["ScrollByPageWheelEvent", "ScrollByPixelWheelEvent"],
73                "header": "platform/PlatformWheelEvent.h"
74            },
75            {
76                "name": "PlatformWheelEventPhase", "mode": "SCALAR", "storage": "uint64_t",
77                "flags": ["ENUM"],
78                "guard": "PLATFORM(COCOA)",
79                "values": [
80                    "PlatformWheelEventPhaseNone",
81                    "PlatformWheelEventPhaseBegan",
82                    "PlatformWheelEventPhaseStationary",
83                    "PlatformWheelEventPhaseChanged",
84                    "PlatformWheelEventPhaseEnded",
85                    "PlatformWheelEventPhaseCancelled",
86                    "PlatformWheelEventPhaseMayBegin"
87                ],
88                "header": "platform/PlatformWheelEvent.h"
89            },
90            {
91                "name": "PluginData", "mode": "SHARED",
92                "header": "plugins/PluginData.h"
93            },
94            {
95                "name": "ScrollDirection", "mode": "SCALAR", "storage": "uint64_t",
96                "flags": ["ENUM"],
97                "values": ["ScrollUp", "ScrollDown", "ScrollLeft", "ScrollRight"],
98                "header": "platform/ScrollTypes.h"
99            },
100            {
101                "name": "ScrollGranularity", "mode": "SCALAR", "storage": "uint64_t",
102                "flags": ["ENUM"],
103                "values": [
104                    "ScrollByLine",
105                    "ScrollByPage",
106                    "ScrollByDocument",
107                    "ScrollByPixel",
108                    "ScrollByPrecisePixel"
109                ],
110                "header": "platform/ScrollTypes.h"
111            },
112            {
113                "name": "ScrollLogicalDirection", "mode": "SCALAR", "storage": "uint64_t",
114                "flags": ["ENUM"],
115                "values": [
116                    "ScrollBlockDirectionBackward",
117                    "ScrollBlockDirectionForward",
118                    "ScrollInlineDirectionBackward",
119                    "ScrollInlineDirectionForward"
120                ],
121                "header": "platform/ScrollTypes.h"
122            },
123            {
124                "name": "SecurityOrigin", "mode": "SHARED",
125                "header": "page/SecurityOrigin.h"
126            },
127            {
128                "name": "Type", "mode": "SCALAR", "storage": "uint8_t",
129                "enclosing_class": "PlatformEvent",
130                "flags": ["ENUM"],
131                "values": [
132                    "NoType",
133                    "KeyDown",
134                    "KeyUp",
135                    "RawKeyDown",
136                    "Char",
137                    "MouseMoved",
138                    "MousePressed",
139                    "MouseReleased",
140                    "MouseScroll",
141                    "Wheel"
142                ],
143                "guarded_values": {
144                    "ENABLE(TOUCH_EVENTS)": [
145                        "TouchStart",
146                        "TouchMove",
147                        "TouchEnd",
148                        "TouchCancel"
149                    ]
150                },
151                "header": "platform/PlatformEvent.h"
152            },
153            {
154                "name": "URL", "mode": "HEAVY_SCALAR",
155                "header": "platform/URL.h"
156            }
157        ]
158    },
159
160    "inputs": [
161        {
162            "name": "BeginSegmentSentinel",
163            "description": "A sentinel input to signal the start of a segment.",
164            "queue": "EVENT_LOOP",
165            "members": [ ]
166        },
167        {
168            "name": "DocumentLastModifiedDate",
169            "description": "A fallback value used for the document's last modified date if the Last-Modified header can't be found or used.",
170            "queue": "SCRIPT_MEMOIZED",
171            "members": [
172                { "name": "fallbackValue", "type": "double" }
173            ]
174        },
175        {
176            "name": "EndSegmentSentinel",
177            "description": "A sentinel input to signal the end of a segment.",
178            "queue": "EVENT_LOOP",
179            "members": [ ]
180        },
181        {
182            "name": "HandleMouseMove",
183            "description": "The embedder signalled a mouse move event.",
184            "queue": "EVENT_LOOP",
185            "members": [
186                { "name": "platformEvent", "type": "PlatformMouseEvent" },
187                { "name": "scrollbarTargeted", "type": "bool" }
188            ]
189        },
190        {
191            "name": "HandleMousePress",
192            "description": "The embedder signalled a mouse press event.",
193            "queue": "EVENT_LOOP",
194            "members": [
195                { "name": "platformEvent", "type": "PlatformMouseEvent" }
196            ]
197        },
198        {
199            "name": "HandleMouseRelease",
200            "description": "The embedder signalled a mouse release event.",
201            "queue": "EVENT_LOOP",
202            "members": [
203                { "name": "platformEvent", "type": "PlatformMouseEvent" }
204            ]
205        },
206        {
207            "name": "HandleKeyPress",
208            "description": "The embedder signalled a key press event.",
209            "queue": "EVENT_LOOP",
210            "members": [
211                { "name": "platformEvent", "type": "PlatformKeyboardEvent" }
212            ]
213        },
214        {
215            "name": "HandleWheelEvent",
216            "description": "The embedder signalled a mouse wheel event.",
217            "queue": "EVENT_LOOP",
218            "members": [
219                { "name": "platformEvent", "type": "PlatformWheelEvent" }
220            ]
221        },
222        {
223            "name": "InitialNavigation",
224            "description": "Initiate the initial main frame navigation.",
225            "queue": "EVENT_LOOP",
226            "flags": ["HIDDEN", "CREATE_FROM_PAGE"],
227            "members": [
228                { "name": "securityOrigin", "type": "SecurityOrigin" },
229                { "name": "url", "type": "URL" },
230                { "name": "referrer", "type": "String" }
231            ]
232        },
233        {
234            "name": "FetchPluginData",
235            "description": "Plugin data was requested through DOMPluginArray or DOMMimeTypeArray.",
236            "queue": "SCRIPT_MEMOIZED",
237            "members": [
238                { "name": "pluginData", "type": "PluginData" }
239            ]
240        },
241        {
242            "name": "LogicalScrollPage",
243            "description": "The embedder signalled a logical scroll event.",
244            "queue": "EVENT_LOOP",
245            "members": [
246                { "name": "direction", "type": "ScrollLogicalDirection" },
247                { "name": "granularity", "type": "ScrollGranularity" }
248            ]
249        },
250        {
251            "name": "ScrollPage",
252            "description": "The embedder signalled a scroll event.",
253            "queue": "EVENT_LOOP",
254            "members": [
255                { "name": "direction", "type": "ScrollDirection" },
256                { "name": "granularity", "type": "ScrollGranularity" }
257            ]
258        }
259    ]
260}
261