Home | History | Annotate | Download | only in Hosted
      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 subsystem WebKitPluginHost 300;
     29 
     30 serverprefix WK;
     31 userprefix _WK;
     32 
     33 routine PHCheckInWithPluginHost(pluginHostPort :mach_port_t;
     34                               options :plist_bytes_t;
     35                               clientPort :mach_port_make_send_t;
     36                               clientPSNHigh :uint32_t;
     37                               clientPSNLow :uint32_t;
     38                               renderPort :mach_port_copy_send_t;
     39                               out pluginHostPSNHigh :uint32_t;
     40                               out pluginHostPSNLow :uint32_t);
     41 
     42 simpleroutine PHInstantiatePlugin(pluginHostPort :mach_port_t;
     43                                 requestID :uint32_t;
     44                                 options :plist_bytes_t;
     45                                 pluginID :uint32_t);
     46 
     47 simpleroutine PHResizePluginInstance(pluginHostPort :mach_port_t;
     48                                      pluginID :uint32_t;
     49                                 requestID :uint32_t;
     50                                      pluginX :double;
     51                                      pluginY :double;
     52                                      pluginWidth :double;
     53                                      pluginHeight :double;
     54                                      clipX :double;
     55                                      clipY :double;
     56                                      clipWidth :double;
     57                                      clipHeight :double);
     58 
     59 simpleroutine PHPluginInstanceFocusChanged(pluginHostPort :mach_port_t;
     60                                          pluginID :uint32_t;
     61                                          hasFocus :boolean_t);
     62 simpleroutine PHPluginInstanceWindowFocusChanged(pluginHostPort :mach_port_t;
     63                                          pluginID :uint32_t;
     64                                          hasFocus :boolean_t);
     65 simpleroutine PHPluginInstanceWindowFrameChanged(pluginHostPort :mach_port_t;
     66                                                pluginID :uint32_t;
     67                                                x :double;
     68                                                y :double;
     69                                                width :double;
     70                                                height :double;
     71                                                maxScreenY :double);
     72 
     73 simpleroutine PHPluginInstanceMouseEvent(pluginHostPort :mach_port_t;
     74                                        pluginID :uint32_t;
     75                                        timestamp :double;
     76                                        eventType :uint32_t;
     77                                        modifierFlags :uint32_t;
     78                                        pluginX :double;
     79                                        pluginY :double;
     80                                        screenX :double;
     81                                        screenY :double;
     82                                        maxScreenY :double;
     83                                        buttonNumber :int32_t;
     84                                        clickCount :int32_t;
     85                                        deltaX :double;
     86                                        deltaY :double;
     87                                        deltaZ: double);
     88 
     89 simpleroutine PHPluginInstanceKeyboardEvent(pluginHostPort :mach_port_t;
     90                                           pluginID :uint32_t;
     91                                           timestamp :double;
     92                                           eventType :uint32_t;
     93                                           modifierFlags :uint32_t;
     94                                           characters :data_t;
     95                                           charactersIgnoringModifiers :data_t;
     96                                           isARepeat :boolean_t;
     97                                           keyCode :uint16_t;
     98                                           keyChar :uint8_t);
     99 
    100 simpleroutine PHPluginInstanceWheelEvent(pluginHostPort :mach_port_t;
    101                                          pluginID :uint32_t;
    102                                          requestID :uint32_t;
    103                                          timestamp :double;
    104                                          modifierFlags :uint32_t;
    105                                          pluginX :double;
    106                                          pluginY :double;
    107                                          buttonNumber :int32_t;
    108                                          deltaX :double;
    109                                          deltaY :double;
    110                                          deltaZ: double);
    111 
    112 simpleroutine PHPluginInstanceInsertText(pluginHostPort :mach_port_t;
    113                                          pluginID :uint32_t;
    114                                          text :data_t);
    115 
    116 simpleroutine PHPluginInstanceStartTimers(pluginHostPort :mach_port_t;
    117                                         pluginID :uint32_t;
    118                                         throttleTimers :boolean_t);
    119 simpleroutine PHPluginInstanceStopTimers(pluginHostPort :mach_port_t;
    120                                        pluginID :uint32_t);
    121 
    122 simpleroutine PHPluginInstancePrint(pluginHostPort :mach_port_t;
    123                                     pluginID :uint32_t;
    124                                     requestID :uint32_t;
    125                                     width :uint32_t;
    126                                     height :uint32_t);
    127 
    128 simpleroutine PHDestroyPluginInstance(pluginHostPort :mach_port_t;
    129                                     pluginID :uint32_t;
    130                                     requestID :uint32_t);
    131 
    132 simpleroutine PHCheckIfAllowedToLoadURLResult(clientPort :mach_port_t;
    133                                               pluginID :uint32_t;
    134                                               checkID :uint32_t;
    135                                               result :boolean_t);
    136 
    137 // Streams
    138 simpleroutine PHStartStream(pluginHostPort :mach_port_t;
    139                           pluginID :uint32_t;
    140                           streamID :uint32_t;
    141                           responseURL :data_t;
    142                           expectedContentLength :int64_t;
    143                           lastModifiedTimeInterval :double;
    144                           mimeType :data_t;
    145                           headers :data_t);
    146 
    147 simpleroutine PHStreamDidReceiveData(pluginHostPort :mach_port_t;
    148                                    pluginID :uint32_t;
    149                                    streamID :uint32_t;
    150                                    data :data_t);
    151 
    152 simpleroutine PHStreamDidFinishLoading(pluginHostPort :mach_port_t;
    153                                      pluginID :uint32_t;
    154                                      streamID :uint32_t);
    155 
    156 simpleroutine PHStreamDidFail(pluginHostPort :mach_port_t;
    157                             pluginID :uint32_t;
    158                             streamID :uint32_t;
    159                             reason :int16_t);
    160 
    161 simpleroutine PHLoadURLNotify(pluginHostPort :mach_port_t;
    162                             pluginID :uint32_t;
    163                             requestID :uint32_t;
    164                             reason :int16_t);
    165 
    166 // NPRuntime
    167 
    168 simpleroutine PHGetScriptableNPObject(pluginHostPort :mach_port_t;
    169                                       pluginID :uint32_t;
    170                                       requestID :uint32_t);
    171 
    172 simpleroutine PHNPObjectHasProperty(pluginHostPort :mach_port_t;
    173                                   pluginID :uint32_t;
    174                                   requestID :uint32_t;
    175                                   objectID :uint32_t;
    176                                   propertyName :uint64_t);
    177 
    178 simpleroutine PHNPObjectHasMethod(pluginHostPort :mach_port_t;
    179                                 pluginID :uint32_t;
    180                                 requestID :uint32_t;
    181                                 objectID :uint32_t;
    182                                 methodName :uint64_t);
    183 
    184 simpleroutine PHNPObjectInvoke(pluginHostPort :mach_port_t;
    185                              pluginID :uint32_t;
    186                              requestID :uint32_t;
    187                              objectID :uint32_t;
    188                              invokeType :uint32_t;
    189                              methodName :uint64_t;
    190                              arguments :data_t);
    191 
    192 simpleroutine PHNPObjectHasInvokeDefaultMethod(pluginHostPort :mach_port_t;
    193                                              pluginID :uint32_t;
    194                                              requestID :uint32_t;
    195                                              objectID :uint32_t);
    196 
    197 simpleroutine PHNPObjectHasConstructMethod(pluginHostPort :mach_port_t;
    198                                          pluginID :uint32_t;
    199                                          requestID :uint32_t;
    200                                          objectID :uint32_t);
    201 
    202 simpleroutine PHNPObjectGetProperty(pluginHostPort :mach_port_t;
    203                                   pluginID :uint32_t;
    204                                   requestID :uint32_t;
    205                                   objectID :uint32_t;
    206                                   propertyName :uint64_t);
    207 
    208 simpleroutine PHNPObjectSetProperty(pluginHostPort :mach_port_t;
    209                                   pluginID :uint32_t;
    210                                   requestID :uint32_t;
    211                                   objectID :uint32_t;
    212                                   propertyName :uint64_t;
    213                                   value :data_t);
    214 
    215 simpleroutine PHNPObjectRelease(pluginHostPort :mach_port_t;
    216                               pluginID :uint32_t;
    217                               objectID :uint32_t);
    218 
    219 simpleroutine PHNPObjectEnumerate(pluginHostPort :mach_port_t;
    220                                   pluginID :uint32_t;
    221                                   requestID :uint32_t;
    222                                   objectID :uint32_t);
    223 
    224 // Replies
    225 
    226 simpleroutine PHBooleanReply(clientPort :mach_port_t;
    227                              pluginID :uint32_t;
    228                              requestID :uint32_t;
    229                              result :boolean_t);
    230 
    231 simpleroutine PHBooleanAndDataReply(pluginHostPort :mach_port_t;
    232                                     pluginID :uint32_t;
    233                                     requestID :uint32_t;
    234                                     returnValue :boolean_t;
    235                                     result :data_t);
    236 
    237 simpleroutine PHPluginInstanceDidDraw(pluginHostPort :mach_port_t;
    238                                       pluginID :uint32_t);
    239 simpleroutine PHPluginInstancePrivateBrowsingModeDidChange(pluginHostPort :mach_port_t;
    240                                                            pluginID :uint32_t;
    241                                                            privateBrowsingEnabled :boolean_t);
    242 
    243 simpleroutine PHPluginInstanceSnapshot(pluginHostPort :mach_port_t;
    244                                     pluginID :uint32_t;
    245                                     requestID :uint32_t;
    246                                     width :uint32_t;
    247                                     height :uint32_t);
    248