1/*
2 * Copyright (C) 2008 Apple 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 * 1. Redistributions of source code must retain the above copyright
8 *    notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright
10 *    notice, this list of conditions and the following disclaimer in the
11 *    documentation and/or other materials provided with the distribution.
12 *
13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 */
25
26#include <WebKitLegacy/WebKitPluginHostTypes.defs>
27
28subsystem WebKitPluginHost 300;
29
30serverprefix WK;
31userprefix _WK;
32
33routine PHCheckInWithPluginHost(pluginHostPort :mach_port_t;
34                              ServerAuditToken token :audit_token_t;
35                              options :plist_bytes_t;
36                              clientPort :mach_port_make_send_t;
37                              clientPSNHigh :uint32_t;
38                              clientPSNLow :uint32_t;
39                              renderPort :mach_port_copy_send_t;
40                              out pluginHostPSNHigh :uint32_t;
41                              out pluginHostPSNLow :uint32_t);
42
43simpleroutine PHInstantiatePlugin(pluginHostPort :mach_port_t;
44                                requestID :uint32_t;
45                                options :plist_bytes_t;
46                                pluginID :uint32_t);
47
48simpleroutine PHResizePluginInstance(pluginHostPort :mach_port_t;
49                                     pluginID :uint32_t;
50                                requestID :uint32_t;
51                                     pluginX :double;
52                                     pluginY :double;
53                                     pluginWidth :double;
54                                     pluginHeight :double;
55                                     clipX :double;
56                                     clipY :double;
57                                     clipWidth :double;
58                                     clipHeight :double);
59
60simpleroutine PHPluginInstanceFocusChanged(pluginHostPort :mach_port_t;
61                                         pluginID :uint32_t;
62                                         hasFocus :boolean_t);
63simpleroutine PHPluginInstanceWindowFocusChanged(pluginHostPort :mach_port_t;
64                                         pluginID :uint32_t;
65                                         hasFocus :boolean_t);
66simpleroutine PHPluginInstanceWindowFrameChanged(pluginHostPort :mach_port_t;
67                                               pluginID :uint32_t;
68                                               x :double;
69                                               y :double;
70                                               width :double;
71                                               height :double;
72                                               maxScreenY :double);
73
74simpleroutine PHPluginInstanceMouseEvent(pluginHostPort :mach_port_t;
75                                       pluginID :uint32_t;
76                                       timestamp :double;
77                                       eventType :uint32_t;
78                                       modifierFlags :uint32_t;
79                                       pluginX :double;
80                                       pluginY :double;
81                                       screenX :double;
82                                       screenY :double;
83                                       maxScreenY :double;
84                                       buttonNumber :int32_t;
85                                       clickCount :int32_t;
86                                       deltaX :double;
87                                       deltaY :double;
88                                       deltaZ: double);
89
90simpleroutine PHPluginInstanceKeyboardEvent(pluginHostPort :mach_port_t;
91                                          pluginID :uint32_t;
92                                          timestamp :double;
93                                          eventType :uint32_t;
94                                          modifierFlags :uint32_t;
95                                          characters :data_t;
96                                          charactersIgnoringModifiers :data_t;
97                                          isARepeat :boolean_t;
98                                          keyCode :uint16_t;
99                                          keyChar :uint8_t);
100
101simpleroutine PHPluginInstanceWheelEvent(pluginHostPort :mach_port_t;
102                                         pluginID :uint32_t;
103                                         requestID :uint32_t;
104                                         timestamp :double;
105                                         modifierFlags :uint32_t;
106                                         pluginX :double;
107                                         pluginY :double;
108                                         buttonNumber :int32_t;
109                                         deltaX :double;
110                                         deltaY :double;
111                                         deltaZ: double);
112
113simpleroutine PHPluginInstanceInsertText(pluginHostPort :mach_port_t;
114                                         pluginID :uint32_t;
115                                         text :data_t);
116
117simpleroutine PHPluginInstanceStartTimers(pluginHostPort :mach_port_t;
118                                        pluginID :uint32_t;
119                                        throttleTimers :boolean_t);
120simpleroutine PHPluginInstanceStopTimers(pluginHostPort :mach_port_t;
121                                       pluginID :uint32_t);
122
123simpleroutine PHPluginInstancePrint(pluginHostPort :mach_port_t;
124                                    pluginID :uint32_t;
125                                    requestID :uint32_t;
126                                    width :uint32_t;
127                                    height :uint32_t);
128
129simpleroutine PHDestroyPluginInstance(pluginHostPort :mach_port_t;
130                                    pluginID :uint32_t;
131                                    requestID :uint32_t);
132
133simpleroutine PHCheckIfAllowedToLoadURLResult(clientPort :mach_port_t;
134                                              pluginID :uint32_t;
135                                              checkID :uint32_t;
136                                              result :boolean_t);
137
138// Streams
139simpleroutine PHStartStream(pluginHostPort :mach_port_t;
140                          pluginID :uint32_t;
141                          streamID :uint32_t;
142                          responseURL :data_t;
143                          expectedContentLength :int64_t;
144                          lastModifiedTimeInterval :double;
145                          mimeType :data_t;
146                          headers :data_t);
147
148simpleroutine PHStreamDidReceiveData(pluginHostPort :mach_port_t;
149                                   pluginID :uint32_t;
150                                   streamID :uint32_t;
151                                   data :data_t);
152
153simpleroutine PHStreamDidFinishLoading(pluginHostPort :mach_port_t;
154                                     pluginID :uint32_t;
155                                     streamID :uint32_t);
156
157simpleroutine PHStreamDidFail(pluginHostPort :mach_port_t;
158                            pluginID :uint32_t;
159                            streamID :uint32_t;
160                            reason :int16_t);
161
162simpleroutine PHLoadURLNotify(pluginHostPort :mach_port_t;
163                            pluginID :uint32_t;
164                            requestID :uint32_t;
165                            reason :int16_t);
166
167// NPRuntime
168
169simpleroutine PHGetScriptableNPObject(pluginHostPort :mach_port_t;
170                                      pluginID :uint32_t;
171                                      requestID :uint32_t);
172
173simpleroutine PHNPObjectHasProperty(pluginHostPort :mach_port_t;
174                                  pluginID :uint32_t;
175                                  requestID :uint32_t;
176                                  objectID :uint32_t;
177                                  propertyName :uint64_t);
178
179simpleroutine PHNPObjectHasMethod(pluginHostPort :mach_port_t;
180                                pluginID :uint32_t;
181                                requestID :uint32_t;
182                                objectID :uint32_t;
183                                methodName :uint64_t);
184
185simpleroutine PHNPObjectInvoke(pluginHostPort :mach_port_t;
186                             pluginID :uint32_t;
187                             requestID :uint32_t;
188                             objectID :uint32_t;
189                             invokeType :uint32_t;
190                             methodName :uint64_t;
191                             arguments :data_t);
192
193simpleroutine PHNPObjectHasInvokeDefaultMethod(pluginHostPort :mach_port_t;
194                                             pluginID :uint32_t;
195                                             requestID :uint32_t;
196                                             objectID :uint32_t);
197
198simpleroutine PHNPObjectHasConstructMethod(pluginHostPort :mach_port_t;
199                                         pluginID :uint32_t;
200                                         requestID :uint32_t;
201                                         objectID :uint32_t);
202
203simpleroutine PHNPObjectGetProperty(pluginHostPort :mach_port_t;
204                                  pluginID :uint32_t;
205                                  requestID :uint32_t;
206                                  objectID :uint32_t;
207                                  propertyName :uint64_t);
208
209simpleroutine PHNPObjectSetProperty(pluginHostPort :mach_port_t;
210                                  pluginID :uint32_t;
211                                  requestID :uint32_t;
212                                  objectID :uint32_t;
213                                  propertyName :uint64_t;
214                                  value :data_t);
215
216simpleroutine PHNPObjectRelease(pluginHostPort :mach_port_t;
217                              pluginID :uint32_t;
218                              objectID :uint32_t);
219
220simpleroutine PHNPObjectEnumerate(pluginHostPort :mach_port_t;
221                                  pluginID :uint32_t;
222                                  requestID :uint32_t;
223                                  objectID :uint32_t);
224
225// Replies
226
227simpleroutine PHBooleanReply(clientPort :mach_port_t;
228                             pluginID :uint32_t;
229                             requestID :uint32_t;
230                             result :boolean_t);
231
232simpleroutine PHBooleanAndDataReply(pluginHostPort :mach_port_t;
233                                    pluginID :uint32_t;
234                                    requestID :uint32_t;
235                                    returnValue :boolean_t;
236                                    result :data_t);
237
238// New Routines (must be added at the bottom of the file)
239
240simpleroutine PHPluginInstanceDidDraw(pluginHostPort :mach_port_t;
241                                      pluginID :uint32_t);
242simpleroutine PHPluginInstancePrivateBrowsingModeDidChange(pluginHostPort :mach_port_t;
243                                                           pluginID :uint32_t;
244                                                           privateBrowsingEnabled :boolean_t);
245
246simpleroutine PHPluginInstanceSnapshot(pluginHostPort :mach_port_t;
247                                    pluginID :uint32_t;
248                                    requestID :uint32_t;
249                                    width :uint32_t;
250                                    height :uint32_t);
251
252routine PHCreatePluginMIMETypesPreferences(pluginHostPort :mach_port_t);
253
254simpleroutine PHPluginShouldHostLayersInWindowServerChanged(pluginHostPort :mach_port_t;
255                                                            pluginID :uint32_t;
256                                                            shouldHostLayersInWindowServer :boolean_t);
257