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