1563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark/* 2563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * Copyright (C) 2006, 2007 Apple Inc. All rights reserved. 3563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * 4563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * Redistribution and use in source and binary forms, with or without 5563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * modification, are permitted provided that the following conditions 6563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * are met: 7563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * 1. Redistributions of source code must retain the above copyright 8563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * notice, this list of conditions and the following disclaimer. 9563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * 2. Redistributions in binary form must reproduce the above copyright 10563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * notice, this list of conditions and the following disclaimer in the 11563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * documentation and/or other materials provided with the distribution. 12563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * 13563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY 14563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 16563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR 17563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 18563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 19563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 20563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 21563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 23563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark */ 25563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 2628040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu#ifndef PluginObject_h 2728040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu#define PluginObject_h 2828040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu 29563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark#include <WebKit/npfunctions.h> 302daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch#include <stdarg.h> 31563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 32db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block#if defined(XP_MACOSX) 33e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke#if !defined(MAC_OS_X_VERSION_10_5) || MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_5 34e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke#define BUILDING_ON_TIGER 1 35e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke#elif !defined(MAC_OS_X_VERSION_10_6) || MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_6 36e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke#define BUILDING_ON_LEOPARD 1 37e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke#elif !defined(MAC_OS_X_VERSION_10_7) || MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_7 38e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke#define BUILDING_ON_SNOW_LEOPARD 1 39e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke#endif 40e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke#endif // XP_MACOSX 41e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke 42db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Blockclass PluginTest; 43db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block 44563af33bc48281d19dce701398dbb88cb54fd7ecCary Clarkextern NPNetscapeFuncs *browser; 45e14391e94c850b8bd03680c23b38978db68687a8John Reckextern NPPluginFuncs* pluginFunctions; 46563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 47563af33bc48281d19dce701398dbb88cb54fd7ecCary Clarktypedef struct { 48563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark NPObject header; 49563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 50db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block PluginTest* pluginTest; 51db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block 52563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark NPP npp; 53563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark NPBool eventLogging; 54563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark NPBool logSetWindow; 55563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark NPBool logDestroy; 56e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke NPBool returnNegativeOneFromWrite; 57563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark NPBool returnErrorFromNewStream; 58cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block NPBool cachedPrivateBrowsingMode; 59563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark NPObject* testObject; 60dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block NPObject* rememberedObject; 61563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark NPStream* stream; 626c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen NPBool testGetURLOnDestroy; 63643ca7872b450ea4efacab6188849e5aac2ba161Steve Block NPBool testWindowOpen; 64dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block NPBool testKeyboardFocusForPlugins; 65bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen NPBool mouseDownForEvaluateScript; 66563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark char* onStreamLoad; 67563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark char* onStreamDestroy; 68643ca7872b450ea4efacab6188849e5aac2ba161Steve Block char* onDestroy; 69563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark char* onURLNotify; 70dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block char* onSetWindow; 71f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch char* onPaintEvent; 72563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark char* firstUrl; 73563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark char* firstHeaders; 74563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark char* lastUrl; 75563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark char* lastHeaders; 76bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen char* evaluateScriptOnMouseDownOrKeyDown; 77563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark#ifdef XP_MACOSX 78563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark NPEventModel eventModel; 79563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark#endif 80db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block#if defined(XP_MACOSX) && !defined(BUILDING_ON_TIGER) 81e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke void* coreAnimationLayer; 82e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke#endif 83dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block NPWindow lastWindow; 84563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark} PluginObject; 85563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 86563af33bc48281d19dce701398dbb88cb54fd7ecCary Clarkextern NPClass *getPluginClass(void); 87563af33bc48281d19dce701398dbb88cb54fd7ecCary Clarkextern void handleCallback(PluginObject* object, const char *url, NPReason reason, void *notifyData); 88563af33bc48281d19dce701398dbb88cb54fd7ecCary Clarkextern void notifyStream(PluginObject* object, const char *url, const char *headers); 89563af33bc48281d19dce701398dbb88cb54fd7ecCary Clarkextern void testNPRuntime(NPP npp); 900bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochextern void pluginLog(NPP instance, const char* format, ...); 912daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdochextern void pluginLogWithArguments(NPP instance, const char* format, va_list args); 92643ca7872b450ea4efacab6188849e5aac2ba161Steve Blockextern bool testDocumentOpen(NPP npp); 93643ca7872b450ea4efacab6188849e5aac2ba161Steve Blockextern bool testWindowOpen(NPP npp); 94e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke 95db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block#if defined(XP_MACOSX) && !defined(BUILDING_ON_TIGER) 96e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarkeextern void* createCoreAnimationLayer(); 97e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke#endif 98e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke 9928040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu#endif // PluginObject_h 100