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 <WebKit/WebKitPluginHostTypes.defs> 27 28 // FIXME: Come up with a better name. 29 subsystem WebKitPluginClient 300; 30 31 serverprefix WK; 32 userprefix _WK; 33 34 simpleroutine PCStatusText(clientPort :mach_port_t; 35 pluginID :uint32_t; 36 text :data_t); 37 38 routine PCLoadURL(clientPort :mach_port_t; 39 pluginID :uint32_t; 40 url :data_t; 41 target :data_t; 42 postData :data_t; 43 flags: uint32_t; 44 out resultCode :uint16_t; 45 out requestID :uint32_t); 46 47 simpleroutine PCCancelLoadURL(clientPort :mach_port_t; 48 pluginID :uint32_t; 49 streamID :uint32_t; 50 reason :int16_t); 51 52 simpleroutine PCInvalidateRect(clientPort :mach_port_t; 53 pluginID :uint32_t; 54 x :double; 55 y :double; 56 width :double; 57 height :double); 58 59 routine PCGetCookies(clientPort :mach_port_t; 60 pluginID :uint32_t; 61 url :data_t; 62 out returnValue :boolean_t; 63 out cookies :data_t, dealloc); 64 65 routine PCSetCookies(clientPort :mach_port_t; 66 pluginID :uint32_t; 67 url :data_t; 68 cookies :data_t; 69 out returnValue :boolean_t); 70 71 routine PCGetProxy(clientPort :mach_port_t; 72 pluginID :uint32_t; 73 url :data_t; 74 out returnValue :boolean_t; 75 out proxy :data_t, dealloc); 76 77 routine PCGetAuthenticationInfo(clientPort :mach_port_t; 78 pluginID :uint32_t; 79 protocol :data_t; 80 host :data_t; 81 port :uint32_t; 82 scheme :data_t; 83 realm :data_t; 84 out returnValue :boolean_t; 85 out username :data_t, dealloc; 86 out password :data_t, dealloc); 87 88 routine PCConvertPoint(clientPort :mach_port_t; 89 pluginID :uint32_t; 90 sourceX :double; 91 sourceY :double; 92 sourceSpace :uint32_t; 93 destSpace :uint32_t; 94 out returnValue :boolean_t; 95 out destX :double; 96 out destY :double); 97 98 // NPRuntime 99 100 routine PCGetStringIdentifier(clientPort :mach_port_t; 101 name :data_t; 102 out identifier :uint64_t); 103 104 routine PCGetIntIdentifier(clientPort :mach_port_t; 105 value :int32_t; 106 out identifier: uint64_t); 107 108 routine PCGetWindowNPObject(clientPort :mach_port_t; 109 pluginID :uint32_t; 110 out objectID :uint32_t); 111 routine PCGetPluginElementNPObject(clientPort :mach_port_t; 112 pluginID :uint32_t; 113 out objectID :uint32_t); 114 115 routine PCForgetBrowserObject(clientPort :mach_port_t; 116 pluginID :uint32_t; 117 objectID :uint32_t); 118 119 simpleroutine PCEvaluate(clientPort :mach_port_t; 120 pluginID :uint32_t; 121 requestID :uint32_t; 122 objectID :uint32_t; 123 script :data_t; 124 allowPopups :boolean_t); 125 126 simpleroutine PCInvoke(clientPort :mach_port_t; 127 pluginID :uint32_t; 128 requestID :uint32_t; 129 objectID :uint32_t; 130 methodNameIdentifier :uint64_t; 131 arguments :data_t); 132 133 simpleroutine PCInvokeDefault(clientPort :mach_port_t; 134 pluginID :uint32_t; 135 requestID :uint32_t; 136 objectID :uint32_t; 137 arguments :data_t); 138 139 routine PCConstruct(clientPort :mach_port_t; 140 pluginID :uint32_t; 141 objectID :uint32_t; 142 arguments :data_t; 143 out returnValue :boolean_t; 144 out result :data_t, dealloc); 145 146 simpleroutine PCGetProperty(clientPort :mach_port_t; 147 pluginID :uint32_t; 148 requestID :uint32_t; 149 objectID :uint32_t; 150 propertyNameIdentifier :uint64_t); 151 152 simpleroutine PCSetProperty(clientPort :mach_port_t; 153 pluginID :uint32_t; 154 requestID :uint32_t; 155 objectID :uint32_t; 156 propertyNameIdentifier :uint64_t; 157 value :data_t); 158 159 simpleroutine PCRemoveProperty(clientPort :mach_port_t; 160 pluginID :uint32_t; 161 requestID :uint32_t; 162 objectID :uint32_t; 163 propertyNameIdentifier :uint64_t); 164 165 simpleroutine PCHasProperty(clientPort :mach_port_t; 166 pluginID :uint32_t; 167 requestID :uint32_t; 168 objectID :uint32_t; 169 propertyNameIdentifier :uint64_t); 170 171 simpleroutine PCHasMethod(clientPort :mach_port_t; 172 pluginID :uint32_t; 173 requestID :uint32_t; 174 objectID :uint32_t; 175 methodNameIdentifier :uint64_t); 176 177 routine PCIdentifierInfo(clientPort :mach_port_t; 178 identifier :uint64_t; 179 out info :data_t, dealloc); 180 181 simpleroutine PCEnumerate(clientPort :mach_port_t; 182 pluginID :uint32_t; 183 requestID :uint32_t; 184 objectID :uint32_t); 185 186 // Misc 187 188 simpleroutine PCSetMenuBarVisible(clientPort :mach_port_t; 189 visible :boolean_t); 190 191 simpleroutine PCSetModal(clientPort :mach_port_t; 192 modal :boolean_t); 193 194 routine PCCheckIfAllowedToLoadURL(clientPort :mach_port_t; 195 pluginID :uint32_t; 196 url :data_t; 197 target :data_t; 198 out checkID :uint32_t); 199 200 simpleroutine PCCancelCheckIfAllowedToLoadURL(clientPort :mach_port_t; 201 pluginID :uint32_t; 202 checkID :uint32_t); 203 204 routine PCResolveURL(clientPort :mach_port_t; 205 pluginID :uint32_t; 206 url :data_t; 207 target :data_t; 208 out resolvedURL :data_t, dealloc); 209 210 // Replies 211 simpleroutine PCInstantiatePluginReply(clientPort :mach_port_t; 212 pluginID :uint32_t; 213 requestID :uint32_t; 214 result :kern_return_t; 215 renderContextID :uint32_t; 216 rendererType :uint32_t); 217 218 simpleroutine PCGetScriptableNPObjectReply(clientPort :mach_port_t; 219 pluginID :uint32_t; 220 requestID :uint32_t; 221 objectID :uint32_t); 222 223 simpleroutine PCBooleanReply(clientPort :mach_port_t; 224 pluginID :uint32_t; 225 requestID :uint32_t; 226 result :boolean_t); 227 228 simpleroutine PCBooleanAndDataReply(clientPort :mach_port_t; 229 pluginID :uint32_t; 230 requestID :uint32_t; 231 returnValue :boolean_t; 232 result :data_t); 233 234 simpleroutine PCSetFullscreenWindowIsShowing(clientPort :mach_port_t; 235 isShowing :boolean_t); 236 237 simpleroutine PCSetException(clientPort :mach_port_t; 238 message :data_t); 239