OSDN Git Service

Use NPAPI headers from WebCore/bridge/ rather than those from V8Bindings/npapi/.
authorSteve Block <steveblock@google.com>
Mon, 26 Oct 2009 18:08:41 +0000 (18:08 +0000)
committerSteve Block <steveblock@google.com>
Wed, 28 Oct 2009 17:25:17 +0000 (17:25 +0000)
The files in question are npapi.h and npruntime.h. The Android versions at
V8Bindings/npapi/ are identical to the WebKit versions, other than a couple of
trivial changes, which are accounted for in this patch.

Change-Id: I998a5863181283aa6153c84a745b1923d9b5721b

V8Binding/V8Binding.derived.mk
V8Binding/jni/jni_npobject.cpp
V8Binding/npapi/README [deleted file]
V8Binding/npapi/npapi.h [deleted file]
V8Binding/npapi/npruntime.h [deleted file]
WebCore/bindings/v8/npruntime.cpp
WebCore/bridge/npapi.h
WebKit/android/jni/WebCoreFrameBridge.cpp

index 0c21a1d..0003aea 100644 (file)
@@ -20,11 +20,11 @@ LOCAL_CFLAGS += -DWTF_USE_V8=1
 v8binding_dir := $(LOCAL_PATH)
 
 BINDING_C_INCLUDES := \
-  $(LOCAL_PATH)/v8/include \
+       $(LOCAL_PATH)/v8/include \
        $(WEBCORE_PATH)/bindings/v8 \
        $(WEBCORE_PATH)/bindings/v8/custom \
        $(LOCAL_PATH)/binding \
-       $(LOCAL_PATH)/npapi \
+       $(WEBCORE_PATH)/bridge \
        $(LOCAL_PATH)/jni \
        $(JAVASCRIPTCORE_PATH)/wtf \
        $(JAVASCRIPTCORE_PATH)
index 9f59045..3480ac5 100644 (file)
@@ -31,6 +31,9 @@
 #include "jni_instance.h"
 #include "jni_runtime.h"
 #include "jni_utility.h"
+// This source file should be in bridge/jni, so it's OK to use the private
+// NPAPI header from here.
+#include "npruntime_impl.h"
 
 namespace JSC { namespace Bindings {
 static NPObject* AllocJavaNPObject(NPP, NPClass*)
diff --git a/V8Binding/npapi/README b/V8Binding/npapi/README
deleted file mode 100644 (file)
index 0522ba2..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Copy from WebCore/bridge.
-
-We only need npapi.h and npruntime.h. Chrome's version is also tied to Chromme codebase.
diff --git a/V8Binding/npapi/npapi.h b/V8Binding/npapi/npapi.h
deleted file mode 100644 (file)
index 320241e..0000000
+++ /dev/null
@@ -1,873 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is mozilla.org code.
- *
- * The Initial Developer of the Original Code is
- * Netscape Communications Corporation.
- * Portions created by the Initial Developer are Copyright (C) 1998
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either the GNU General Public License Version 2 or later (the "GPL"), or
- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
- /*
-  *  Netscape client plug-in API spec
-  */
-
-#ifndef _NPAPI_H_
-#define _NPAPI_H_
-
-#ifdef INCLUDE_JAVA
-#include "jri.h"                /* Java Runtime Interface */
-#else
-#define jref    void *
-#define JRIEnv  void
-#endif
-
-#ifdef _WIN32
-#    ifndef XP_WIN
-#        define XP_WIN 1
-#    endif /* XP_WIN */
-#endif /* _WIN32 */
-
-#ifdef __MWERKS__
-#    define _declspec __declspec
-#    ifdef macintosh
-#        ifndef XP_MAC
-#            define XP_MAC 1
-#        endif /* XP_MAC */
-#    endif /* macintosh */
-#    ifdef __INTEL__
-#        undef NULL
-#        ifndef XP_WIN
-#            define XP_WIN 1
-#        endif /* __INTEL__ */
-#    endif /* XP_PC */
-#endif /* __MWERKS__ */
-
-#if defined(__APPLE_CC__) && !defined(__MACOS_CLASSIC__) && !defined(XP_UNIX)
-#   define XP_MACOSX
-#endif
-
-#ifdef XP_MAC
-    #include <Quickdraw.h>
-    #include <Events.h>
-#endif
-
-#if defined(XP_MACOSX) && defined(__LP64__)
-#define NP_NO_QUICKDRAW
-#define NP_NO_CARBON
-#endif
-
-#ifdef XP_MACOSX
-    #include <ApplicationServices/ApplicationServices.h>
-    #include <OpenGL/OpenGL.h>
-#ifndef NP_NO_CARBON
-    #include <Carbon/Carbon.h>
-#endif
-#endif
-
-#ifdef XP_UNIX
-    #include <X11/Xlib.h>
-    #include <X11/Xutil.h>
-    #include <stdio.h>
-#endif
-
-#ifdef XP_WIN
-    #include <windows.h>
-#endif
-
-/*----------------------------------------------------------------------*/
-/*             Plugin Version Constants                                 */
-/*----------------------------------------------------------------------*/
-
-#define NP_VERSION_MAJOR 0
-#define NP_VERSION_MINOR 24
-
-/*----------------------------------------------------------------------*/
-/*             Definition of Basic Types                                */
-/*----------------------------------------------------------------------*/
-
-#ifndef _UINT16
-#define _UINT16
-typedef unsigned short uint16;
-#endif
-
-#ifndef _UINT32
-#define _UINT32
-#ifdef __LP64__
-typedef unsigned int uint32;
-#else /* __LP64__ */
-typedef unsigned long uint32;
-#endif /* __LP64__ */
-#endif
-
-#ifndef _INT16
-#define _INT16
-typedef short int16;
-#endif
-
-#ifndef _INT32
-#define _INT32
-#ifdef __LP64__
-typedef int int32;
-#else /* __LP64__ */
-typedef long int32;
-#endif /* __LP64__ */
-#endif
-
-#ifndef FALSE
-#define FALSE (0)
-#endif
-#ifndef TRUE
-#define TRUE (1)
-#endif
-#ifndef NULL
-#define NULL (0L)
-#endif
-
-typedef unsigned char    NPBool;
-typedef int16            NPError;
-typedef int16            NPReason;
-typedef char*            NPMIMEType;
-
-
-
-/*----------------------------------------------------------------------*/
-/*             Structures and definitions             */
-/*----------------------------------------------------------------------*/
-
-#if !defined(__LP64__)
-#if defined(XP_MAC) || defined(XP_MACOSX)
-#pragma options align=mac68k
-#endif
-#endif /* __LP64__ */
-
-/*
- *  NPP is a plug-in's opaque instance handle
- */
-typedef struct _NPP
-{
-    void*    pdata;            /* plug-in private data */
-    void*    ndata;            /* netscape private data */
-} NPP_t;
-
-typedef NPP_t*    NPP;
-
-
-typedef struct _NPStream
-{
-    void*        pdata;        /* plug-in private data */
-    void*        ndata;        /* netscape private data */
-    const char*  url;
-    uint32       end;
-    uint32       lastmodified;
-    void*        notifyData;
-    const char*  headers;      /* Response headers from host.
-                                * Exists only for >= NPVERS_HAS_RESPONSE_HEADERS.
-                                * Used for HTTP only; NULL for non-HTTP.
-                                * Available from NPP_NewStream onwards.
-                                * Plugin should copy this data before storing it.
-                                * Includes HTTP status line and all headers,
-                                * preferably verbatim as received from server,
-                                * headers formatted as in HTTP ("Header: Value"),
-                                * and newlines (\n, NOT \r\n) separating lines.
-                                * Terminated by \n\0 (NOT \n\n\0). */
-} NPStream;
-
-
-typedef struct _NPByteRange
-{
-    int32      offset;         /* negative offset means from the end */
-    uint32     length;
-    struct _NPByteRange* next;
-} NPByteRange;
-
-
-typedef struct _NPSavedData
-{
-    int32    len;
-    void*    buf;
-} NPSavedData;
-
-
-typedef struct _NPRect
-{
-    uint16    top;
-    uint16    left;
-    uint16    bottom;
-    uint16    right;
-} NPRect;
-
-
-#ifdef XP_UNIX
-/*
- * Unix specific structures and definitions
- */
-
-/*
- * Callback Structures.
- *
- * These are used to pass additional platform specific information.
- */
-enum {
-    NP_SETWINDOW = 1,
-    NP_PRINT
-};
-
-typedef struct
-{
-    int32        type;
-} NPAnyCallbackStruct;
-
-typedef struct
-{
-    int32           type;
-    Display*        display;
-    Visual*         visual;
-    Colormap        colormap;
-    unsigned int    depth;
-} NPSetWindowCallbackStruct;
-
-typedef struct
-{
-    int32            type;
-    FILE*            fp;
-} NPPrintCallbackStruct;
-
-#endif /* XP_UNIX */
-
-/*
- *   The following masks are applied on certain platforms to NPNV and 
- *   NPPV selectors that pass around pointers to COM interfaces. Newer 
- *   compilers on some platforms may generate vtables that are not 
- *   compatible with older compilers. To prevent older plugins from 
- *   not understanding a new browser's ABI, these masks change the 
- *   values of those selectors on those platforms. To remain backwards
- *   compatible with differenet versions of the browser, plugins can 
- *   use these masks to dynamically determine and use the correct C++
- *   ABI that the browser is expecting. This does not apply to Windows 
- *   as Microsoft's COM ABI will likely not change.
- */
-
-#define NP_ABI_GCC3_MASK  0x10000000
-/*
- *   gcc 3.x generated vtables on UNIX and OSX are incompatible with 
- *   previous compilers.
- */
-#if (defined (XP_UNIX) && defined(__GNUC__) && (__GNUC__ >= 3))
-#define _NP_ABI_MIXIN_FOR_GCC3 NP_ABI_GCC3_MASK
-#else
-#define _NP_ABI_MIXIN_FOR_GCC3 0
-#endif
-
-#define NP_ABI_MACHO_MASK 0x01000000
-/*
- *   On OSX, the Mach-O executable format is significantly
- *   different than CFM. In addition to having a different
- *   C++ ABI, it also has has different C calling convention.
- *   You must use glue code when calling between CFM and
- *   Mach-O C functions. 
- */
-#if (defined(TARGET_RT_MAC_MACHO))
-#define _NP_ABI_MIXIN_FOR_MACHO NP_ABI_MACHO_MASK
-#else
-#define _NP_ABI_MIXIN_FOR_MACHO 0
-#endif
-
-
-#define NP_ABI_MASK (_NP_ABI_MIXIN_FOR_GCC3 | _NP_ABI_MIXIN_FOR_MACHO)
-
-/*
- * List of variable names for which NPP_GetValue shall be implemented
- */
-typedef enum {
-    NPPVpluginNameString = 1,
-    NPPVpluginDescriptionString,
-    NPPVpluginWindowBool,
-    NPPVpluginTransparentBool,
-
-    NPPVjavaClass,                /* Not implemented in WebKit */
-    NPPVpluginWindowSize,         /* Not implemented in WebKit */
-    NPPVpluginTimerInterval,      /* Not implemented in WebKit */
-
-    NPPVpluginScriptableInstance = (10 | NP_ABI_MASK), /* Not implemented in WebKit */
-    NPPVpluginScriptableIID = 11, /* Not implemented in WebKit */
-
-    /* 12 and over are available on Mozilla builds starting with 0.9.9 */
-    NPPVjavascriptPushCallerBool = 12,  /* Not implemented in WebKit */
-    NPPVpluginKeepLibraryInMemory = 13, /* Not implemented in WebKit */
-    NPPVpluginNeedsXEmbed         = 14, /* Not implemented in WebKit */
-
-    /* Get the NPObject for scripting the plugin. */
-    NPPVpluginScriptableNPObject  = 15,
-
-    /* Get the plugin value (as \0-terminated UTF-8 string data) for
-     * form submission if the plugin is part of a form. Use
-     * NPN_MemAlloc() to allocate memory for the string data.
-     */
-    NPPVformValue = 16,    /* Not implemented in WebKit */
-
-    NPPVpluginUrlRequestsDisplayedBool = 17, /* Not implemented in WebKit */
-
-    /* Checks if the plugin is interested in receiving the http body of
-     * failed http requests (http status != 200).
-     */
-    NPPVpluginWantsAllNetworkStreams = 18,
-
-    NPPVpluginPrivateModeBool = 19,
-    
-    /* Checks to see if the plug-in would like the browser to load the "src" attribute. */
-    NPPVpluginCancelSrcStream = 20,
-
-#ifdef XP_MACOSX
-    /* Used for negotiating drawing models */
-    NPPVpluginDrawingModel = 1000,
-    /* Used for negotiating event models */
-    NPPVpluginEventModel = 1001,
-    /* In the NPDrawingModelCoreAnimation drawing model, the browser asks the plug-in for a Core Animation layer. */
-    NPPVpluginCoreAnimationLayer = 1003
-#endif
-
-#ifdef ANDROID
-    // TODO(andreip): Remove?
-    NPPFakeValueToForce32Bits = 0x7FFFFFFF
-#endif
-} NPPVariable;
-
-/*
- * List of variable names for which NPN_GetValue is implemented by Mozilla
- */
-typedef enum {
-    NPNVxDisplay = 1,
-    NPNVxtAppContext,
-    NPNVnetscapeWindow,
-    NPNVjavascriptEnabledBool,
-    NPNVasdEnabledBool,
-    NPNVisOfflineBool,
-
-    /* 10 and over are available on Mozilla builds starting with 0.9.4 */
-    NPNVserviceManager = (10 | NP_ABI_MASK),  /* Not implemented in WebKit */
-    NPNVDOMElement     = (11 | NP_ABI_MASK),  /* Not implemented in WebKit */
-    NPNVDOMWindow      = (12 | NP_ABI_MASK),  /* Not implemented in WebKit */
-    NPNVToolkit        = (13 | NP_ABI_MASK),  /* Not implemented in WebKit */
-    NPNVSupportsXEmbedBool = 14,              /* Not implemented in WebKit */
-
-    /* Get the NPObject wrapper for the browser window. */
-    NPNVWindowNPObject = 15,
-
-    /* Get the NPObject wrapper for the plugins DOM element. */
-    NPNVPluginElementNPObject = 16,
-
-    NPNVSupportsWindowless = 17,
-    
-    NPNVprivateModeBool = 18
-
-#ifdef XP_MACOSX
-    , NPNVpluginDrawingModel = 1000 /* The NPDrawingModel specified by the plugin */
-
-#ifndef NP_NO_QUICKDRAW
-    , NPNVsupportsQuickDrawBool = 2000 /* TRUE if the browser supports the QuickDraw drawing model */
-#endif
-    , NPNVsupportsCoreGraphicsBool = 2001 /* TRUE if the browser supports the CoreGraphics drawing model */
-    , NPNVsupportsOpenGLBool = 2002 /* TRUE if the browser supports the OpenGL drawing model (CGL on Mac) */
-    , NPNVsupportsCoreAnimationBool = 2003 /* TRUE if the browser supports the CoreAnimation drawing model */
-
-#ifndef NP_NO_CARBON
-    , NPNVsupportsCarbonBool = 3000 /* TRUE if the browser supports the Carbon event model */
-#endif
-    , NPNVsupportsCocoaBool = 3001 /* TRUE if the browser supports the Cocoa event model */
-    
-#endif /* XP_MACOSX */
-    
-#ifdef ANDROID
-    , NPNFakeValueToForce32Bits = 0x7FFFFFFF
-#endif
-} NPNVariable;
-
-typedef enum {
-   NPNURLVCookie = 501,
-   NPNURLVProxy
-} NPNURLVariable;
-
-/*
- * The type of a NPWindow - it specifies the type of the data structure
- * returned in the window field.
- */
-typedef enum {
-    NPWindowTypeWindow = 1,
-    NPWindowTypeDrawable
-} NPWindowType;
-
-#ifdef XP_MACOSX
-
-/*
- * The drawing model for a Mac OS X plugin.  These are the possible values for the NPNVpluginDrawingModel variable.
- */
-typedef enum {
-#ifndef NP_NO_QUICKDRAW
-    NPDrawingModelQuickDraw = 0,
-#endif
-    NPDrawingModelCoreGraphics = 1,
-    NPDrawingModelOpenGL = 2,
-    NPDrawingModelCoreAnimation = 3
-} NPDrawingModel;
-
-/*
- * The event model for a Mac OS X plugin. These are the possible values for the NPNVpluginEventModel variable.
- */
-
-typedef enum {
-#ifndef NP_NO_CARBON
-    NPEventModelCarbon = 0,
-#endif
-    NPEventModelCocoa = 1,
-} NPEventModel;
-
-typedef enum {
-    NPCocoaEventDrawRect = 1,
-    NPCocoaEventMouseDown,
-    NPCocoaEventMouseUp,
-    NPCocoaEventMouseMoved,
-    NPCocoaEventMouseEntered,
-    NPCocoaEventMouseExited,
-    NPCocoaEventMouseDragged,
-    NPCocoaEventKeyDown,
-    NPCocoaEventKeyUp,
-    NPCocoaEventFlagsChanged,
-    NPCocoaEventFocusChanged,
-    NPCocoaEventWindowFocusChanged,
-    NPCocoaEventScrollWheel,
-    NPCocoaEventTextInput
-} NPCocoaEventType;
-
-typedef struct _NPNSString NPNSString;
-typedef struct _NPNSWindow NPNSWindow;
-typedef struct _NPNSMenu NPNSMenu;
-
-typedef struct _NPCocoaEvent {
-    NPCocoaEventType type;
-    uint32 version;
-    
-    union {
-        struct {
-            uint32 modifierFlags;
-            double pluginX;
-            double pluginY;            
-            int32 buttonNumber;
-            int32 clickCount;
-            double deltaX;
-            double deltaY;
-            double deltaZ;
-        } mouse;
-        struct {
-            uint32 modifierFlags;
-            NPNSString *characters;
-            NPNSString *charactersIgnoringModifiers;
-            NPBool isARepeat;
-            uint16 keyCode;
-        } key;
-        struct {
-            CGContextRef context;
-
-            double x;
-            double y;
-            double width;
-            double height;
-        } draw;
-        struct {
-            NPBool hasFocus;
-        } focus;
-        struct {
-            NPNSString *text;
-        } text;
-    } data;
-} NPCocoaEvent;
-
-#endif
-
-typedef struct _NPWindow
-{
-    void*    window;     /* Platform specific window handle */
-    int32    x;            /* Position of top left corner relative */
-    int32    y;            /*    to a netscape page.                    */
-    uint32    width;        /* Maximum window size */
-    uint32    height;
-    NPRect    clipRect;    /* Clipping rectangle in port coordinates */
-                        /* Used by MAC only.              */
-#ifdef XP_UNIX
-    void *    ws_info;    /* Platform-dependent additonal data */
-#endif /* XP_UNIX */
-    NPWindowType type;    /* Is this a window or a drawable? */
-} NPWindow;
-
-
-typedef struct _NPFullPrint
-{
-    NPBool    pluginPrinted;    /* Set TRUE if plugin handled fullscreen */
-                            /*    printing                             */
-    NPBool    printOne;        /* TRUE if plugin should print one copy  */
-                            /*    to default printer                     */
-    void*    platformPrint;    /* Platform-specific printing info */
-} NPFullPrint;
-
-typedef struct _NPEmbedPrint
-{
-    NPWindow    window;
-    void*    platformPrint;    /* Platform-specific printing info */
-} NPEmbedPrint;
-
-typedef struct _NPPrint
-{
-    uint16    mode;                        /* NP_FULL or NP_EMBED */
-    union
-    {
-        NPFullPrint     fullPrint;        /* if mode is NP_FULL */
-        NPEmbedPrint    embedPrint;        /* if mode is NP_EMBED */
-    } print;
-} NPPrint;
-
-#ifdef XP_MACOSX
-typedef NPNSMenu NPMenu;
-#else
-typedef void * NPMenu;
-#endif
-
-typedef enum {
-    NPCoordinateSpacePlugin = 1,
-    NPCoordinateSpaceWindow,
-    NPCoordinateSpaceFlippedWindow,
-    NPCoordinateSpaceScreen,
-    NPCoordinateSpaceFlippedScreen
-
-#ifdef ANDROID
-    , NPCoordinateSpaceToForce32Bits = 0x7FFFFFFF
-#endif
-    
-} NPCoordinateSpace;
-
-#if defined(XP_MAC) || defined(XP_MACOSX)
-
-#ifndef NP_NO_CARBON
-typedef EventRecord    NPEvent;
-#endif
-
-#elif defined(XP_WIN)
-typedef struct _NPEvent
-{
-    uint16   event;
-    uint32   wParam;
-    uint32   lParam;
-} NPEvent;
-#elif defined (XP_UNIX)
-typedef XEvent NPEvent;
-#else
-typedef void*            NPEvent;
-#endif /* XP_MAC */
-
-#if defined(XP_MAC)
-typedef RgnHandle NPRegion;
-#elif defined(XP_MACOSX)
-/* 
- * NPRegion's type depends on the drawing model specified by the plugin (see NPNVpluginDrawingModel).
- * NPQDRegion represents a QuickDraw RgnHandle and is used with the QuickDraw drawing model.
- * NPCGRegion repesents a graphical region when using any other drawing model.
- */
-typedef void *NPRegion;
-#ifndef NP_NO_QUICKDRAW
-typedef RgnHandle NPQDRegion;
-#endif
-typedef CGPathRef NPCGRegion;
-#elif defined(XP_WIN)
-typedef HRGN NPRegion;
-#elif defined(XP_UNIX)
-typedef Region NPRegion;
-#else
-typedef void *NPRegion;
-#endif /* XP_MAC */
-
-#ifdef XP_MACOSX
-
-/* 
- * NP_CGContext is the type of the NPWindow's 'window' when the plugin specifies NPDrawingModelCoreGraphics
- * as its drawing model.
- */
-
-typedef struct NP_CGContext
-{
-    CGContextRef context;
-#ifdef NP_NO_CARBON
-    NPNSWindow *window;
-#else
-    void *window; // Can be either an NSWindow or a WindowRef depending on the event model
-#endif
-} NP_CGContext;
-
-/* 
- * NP_GLContext is the type of the NPWindow's 'window' when the plugin specifies NPDrawingModelOpenGL as its
- * drawing model.
- */
-
-typedef struct NP_GLContext
-{
-    CGLContextObj context;
-#ifdef NP_NO_CARBON
-    NPNSWindow *window;
-#else
-    void *window; // Can be either an NSWindow or a WindowRef depending on the event model
-#endif
-} NP_GLContext;
-
-#endif /* XP_MACOSX */
-
-#if defined(XP_MAC) || defined(XP_MACOSX)
-
-/*
- *  Mac-specific structures and definitions.
- */
-
-#ifndef NP_NO_QUICKDRAW
-
-/* 
- * NP_Port is the type of the NPWindow's 'window' when the plugin specifies NPDrawingModelQuickDraw as its
- * drawing model, or the plugin does not specify a drawing model.
- *
- * It is not recommended that new plugins use NPDrawingModelQuickDraw or NP_Port, as QuickDraw has been
- * deprecated in Mac OS X 10.5.  CoreGraphics is the preferred drawing API.
- *
- * NP_Port is not available in 64-bit.
- */
-typedef struct NP_Port
-{
-    CGrafPtr     port;        /* Grafport */
-    int32        portx;        /* position inside the topmost window */
-    int32        porty;
-} NP_Port;
-
-#endif /* NP_NO_QUICKDRAW */
-
-/*
- *  Non-standard event types that can be passed to HandleEvent
- */
-#define getFocusEvent        (osEvt + 16)
-#define loseFocusEvent        (osEvt + 17)
-#define adjustCursorEvent   (osEvt + 18)
-
-#endif /* XP_MAC */
-
-
-/*
- * Values for mode passed to NPP_New:
- */
-#define NP_EMBED        1
-#define NP_FULL         2
-
-/*
- * Values for stream type passed to NPP_NewStream:
- */
-#define NP_NORMAL        1
-#define NP_SEEK         2
-#define NP_ASFILE        3
-#define NP_ASFILEONLY        4
-
-#define NP_MAXREADY    (((unsigned)(~0)<<1)>>1)
-
-#if !defined(__LP64__)
-#if defined(XP_MAC) || defined(XP_MACOSX)
-#pragma options align=reset
-#endif
-#endif /* __LP64__ */
-
-
-/*----------------------------------------------------------------------*/
-/*             Error and Reason Code definitions            */
-/*----------------------------------------------------------------------*/
-
-/*
- *    Values of type NPError:
- */
-#define NPERR_BASE                            0
-#define NPERR_NO_ERROR                        (NPERR_BASE + 0)
-#define NPERR_GENERIC_ERROR                    (NPERR_BASE + 1)
-#define NPERR_INVALID_INSTANCE_ERROR        (NPERR_BASE + 2)
-#define NPERR_INVALID_FUNCTABLE_ERROR        (NPERR_BASE + 3)
-#define NPERR_MODULE_LOAD_FAILED_ERROR        (NPERR_BASE + 4)
-#define NPERR_OUT_OF_MEMORY_ERROR            (NPERR_BASE + 5)
-#define NPERR_INVALID_PLUGIN_ERROR            (NPERR_BASE + 6)
-#define NPERR_INVALID_PLUGIN_DIR_ERROR        (NPERR_BASE + 7)
-#define NPERR_INCOMPATIBLE_VERSION_ERROR    (NPERR_BASE + 8)
-#define NPERR_INVALID_PARAM                (NPERR_BASE + 9)
-#define NPERR_INVALID_URL                    (NPERR_BASE + 10)
-#define NPERR_FILE_NOT_FOUND                (NPERR_BASE + 11)
-#define NPERR_NO_DATA                        (NPERR_BASE + 12)
-#define NPERR_STREAM_NOT_SEEKABLE            (NPERR_BASE + 13)
-
-/*
- *    Values of type NPReason:
- */
-#define NPRES_BASE                0
-#define NPRES_DONE                    (NPRES_BASE + 0)
-#define NPRES_NETWORK_ERR            (NPRES_BASE + 1)
-#define NPRES_USER_BREAK            (NPRES_BASE + 2)
-
-/*
- *      Don't use these obsolete error codes any more.
- */
-#define NP_NOERR  NP_NOERR_is_obsolete_use_NPERR_NO_ERROR
-#define NP_EINVAL NP_EINVAL_is_obsolete_use_NPERR_GENERIC_ERROR
-#define NP_EABORT NP_EABORT_is_obsolete_use_NPRES_USER_BREAK
-
-/*
- * Version feature information
- */
-#define NPVERS_HAS_STREAMOUTPUT     8
-#define NPVERS_HAS_NOTIFICATION     9
-#define NPVERS_HAS_LIVECONNECT        9
-#define NPVERS_WIN16_HAS_LIVECONNECT    9
-#define NPVERS_68K_HAS_LIVECONNECT    11
-#define NPVERS_HAS_WINDOWLESS       11
-#define NPVERS_HAS_XPCONNECT_SCRIPTING    13  /* Not implemented in WebKit */
-#define NPVERS_HAS_NPRUNTIME_SCRIPTING    14
-#define NPVERS_HAS_FORM_VALUES            15  /* Not implemented in WebKit; see bug 13061 */
-#define NPVERS_HAS_POPUPS_ENABLED_STATE   16  /* Not implemented in WebKit */
-#define NPVERS_HAS_RESPONSE_HEADERS       17
-#define NPVERS_HAS_NPOBJECT_ENUM          18
-#define NPVERS_HAS_PLUGIN_THREAD_ASYNC_CALL 19
-#define NPVERS_HAS_ALL_NETWORK_STREAMS    20
-#define NPVERS_HAS_URL_AND_AUTH_INFO      21
-#define NPVERS_HAS_PRIVATE_MODE           22
-#define NPVERS_MACOSX_HAS_EVENT_MODELS    23
-#define NPVERS_HAS_CANCEL_SRC_STREAM      24
-
-/*----------------------------------------------------------------------*/
-/*             Function Prototypes                */
-/*----------------------------------------------------------------------*/
-
-#if defined(_WINDOWS) && !defined(WIN32)
-#define NP_LOADDS  _loadds
-#else
-#define NP_LOADDS
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * NPP_* functions are provided by the plugin and called by the navigator.
- */
-
-#ifdef XP_UNIX
-char*                    NPP_GetMIMEDescription(void);
-#endif /* XP_UNIX */
-
-NPError     NPP_Initialize(void);
-void        NPP_Shutdown(void);
-NPError     NP_LOADDS    NPP_New(NPMIMEType pluginType, NPP instance,
-                                uint16 mode, int16 argc, char* argn[],
-                                char* argv[], NPSavedData* saved);
-NPError     NP_LOADDS    NPP_Destroy(NPP instance, NPSavedData** save);
-NPError     NP_LOADDS    NPP_SetWindow(NPP instance, NPWindow* window);
-NPError     NP_LOADDS    NPP_NewStream(NPP instance, NPMIMEType type,
-                                      NPStream* stream, NPBool seekable,
-                                      uint16* stype);
-NPError     NP_LOADDS    NPP_DestroyStream(NPP instance, NPStream* stream,
-                                          NPReason reason);
-int32        NP_LOADDS    NPP_WriteReady(NPP instance, NPStream* stream);
-int32        NP_LOADDS    NPP_Write(NPP instance, NPStream* stream, int32 offset,
-                                  int32 len, void* buffer);
-void        NP_LOADDS    NPP_StreamAsFile(NPP instance, NPStream* stream,
-                                         const char* fname);
-void        NP_LOADDS    NPP_Print(NPP instance, NPPrint* platformPrint);
-int16            NPP_HandleEvent(NPP instance, void* event);
-void        NP_LOADDS    NPP_URLNotify(NPP instance, const char* url,
-                                      NPReason reason, void* notifyData);
-jref        NP_LOADDS            NPP_GetJavaClass(void);
-NPError     NPP_GetValue(NPP instance, NPPVariable variable,
-                                     void *value);
-NPError     NPP_SetValue(NPP instance, NPNVariable variable,
-                                     void *value);
-
-/*
- * NPN_* functions are provided by the navigator and called by the plugin.
- */
-
-void        NPN_Version(int* plugin_major, int* plugin_minor,
-                            int* netscape_major, int* netscape_minor);
-NPError     NPN_GetURLNotify(NPP instance, const char* url,
-                                 const char* target, void* notifyData);
-NPError     NPN_GetURL(NPP instance, const char* url,
-                           const char* target);
-NPError     NPN_PostURLNotify(NPP instance, const char* url,
-                                  const char* target, uint32 len,
-                                  const char* buf, NPBool file,
-                                  void* notifyData);
-NPError     NPN_PostURL(NPP instance, const char* url,
-                            const char* target, uint32 len,
-                            const char* buf, NPBool file);
-NPError     NPN_RequestRead(NPStream* stream, NPByteRange* rangeList);
-NPError     NPN_NewStream(NPP instance, NPMIMEType type,
-                              const char* target, NPStream** stream);
-int32        NPN_Write(NPP instance, NPStream* stream, int32 len,
-                          void* buffer);
-NPError     NPN_DestroyStream(NPP instance, NPStream* stream,
-                                  NPReason reason);
-void        NPN_Status(NPP instance, const char* message);
-const char*    NPN_UserAgent(NPP instance);
-void*        NPN_MemAlloc(uint32 size);
-void        NPN_MemFree(void* ptr);
-uint32        NPN_MemFlush(uint32 size);
-void        NPN_ReloadPlugins(NPBool reloadPages);
-JRIEnv*     NPN_GetJavaEnv(void);
-jref        NPN_GetJavaPeer(NPP instance);
-NPError     NPN_GetValue(NPP instance, NPNVariable variable,
-                             void *value);
-NPError     NPN_SetValue(NPP instance, NPPVariable variable,
-                             void *value);
-void        NPN_InvalidateRect(NPP instance, NPRect *invalidRect);
-void        NPN_InvalidateRegion(NPP instance, NPRegion invalidRegion);
-void        NPN_ForceRedraw(NPP instance);
-void        NPN_PushPopupsEnabledState(NPP instance, NPBool enabled);
-void        NPN_PopPopupsEnabledState(NPP instance);
-void        NPN_PluginThreadAsyncCall(NPP instance, void (*func) (void *), void *userData);
-NPError     NPN_GetValueForURL(NPP instance, NPNURLVariable variable, const char* url, char** value, uint32* len);
-NPError     NPN_SetValueForURL(NPP instance, NPNURLVariable variable, const char* url, const char* value, uint32 len);
-NPError     NPN_GetAuthenticationInfo(NPP instance, const char* protocol, const char* host, int32 port, const char* scheme, const char *realm, char** username, uint32* ulen, char** password, uint32* plen);
-uint32      NPN_ScheduleTimer(NPP instance, uint32 interval, NPBool repeat, void (*timerFunc)(NPP npp, uint32 timerID));
-void        NPN_UnscheduleTimer(NPP instance, uint32 timerID);
-NPError     NPN_PopUpContextMenu(NPP instance, NPMenu* menu);
-NPBool      NPN_ConvertPoint(NPP instance, double sourceX, double sourceY, NPCoordinateSpace sourceSpace, double *destX, double *destY, NPCoordinateSpace destSpace);
-    
-#ifdef __cplusplus
-}  /* end extern "C" */
-#endif
-
-#endif /* _NPAPI_H_ */
diff --git a/V8Binding/npapi/npruntime.h b/V8Binding/npapi/npruntime.h
deleted file mode 100644 (file)
index b0ca9e4..0000000
+++ /dev/null
@@ -1,357 +0,0 @@
-/*
- * Copyright (C) 2004, Apple Computer, Inc. and The Mozilla Foundation. 
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- * 
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the names of Apple Computer, Inc. ("Apple") or The Mozilla
- * Foundation ("Mozilla") nor the names of their contributors may be used
- * to endorse or promote products derived from this software without
- * specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY APPLE, MOZILLA AND THEIR CONTRIBUTORS "AS
- * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE, MOZILLA OR
- * THEIR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * Revision 1 (March 4, 2004):
- * Initial proposal.
- *
- * Revision 2 (March 10, 2004):
- * All calls into script were made asynchronous.  Results are
- * provided via the NPScriptResultFunctionPtr callback.
- *
- * Revision 3 (March 10, 2004):
- * Corrected comments to not refer to class retain/release FunctionPtrs.
- *
- * Revision 4 (March 11, 2004):
- * Added additional convenience NPN_SetExceptionWithUTF8().
- * Changed NPHasPropertyFunctionPtr and NPHasMethodFunctionPtr to take NPClass
- * pointers instead of NPObject pointers.
- * Added NPIsValidIdentifier().
- *
- * Revision 5 (March 17, 2004):
- * Added context parameter to result callbacks from ScriptObject functions.
- *
- * Revision 6 (March 29, 2004):
- * Renamed functions implemented by user agent to NPN_*.  Removed _ from
- * type names.
- * Renamed "JavaScript" types to "Script".
- *
- * Revision 7 (April 21, 2004):
- * NPIdentifier becomes a void*, was int32_t
- * Remove NP_IsValidIdentifier, renamed NP_IdentifierFromUTF8 to NP_GetIdentifier
- * Added NPVariant and modified functions to use this new type.
- *
- * Revision 8 (July 9, 2004):
- * Updated to joint Apple-Mozilla license.
- *
- * Revision 9 (August 12, 2004):
- * Changed NPVariantType enum values to form PVariantType_XXX
- * Added NPP arguments to NPObject functions.
- * Replaced NPVariant functions with macros.
- */
-#ifndef _NP_RUNTIME_H_
-#define _NP_RUNTIME_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <stdint.h>
-#include "npapi.h"
-
-/*
-    This API is used to facilitate binding code written in C to script
-    objects.  The API in this header does not assume the presence of a
-    user agent.  That is, it can be used to bind C code to scripting
-    environments outside of the context of a user agent.
-    
-    However, the normal use of the this API is in the context of a
-    scripting environment running in a browser or other user agent.
-    In particular it is used to support the extended Netscape
-    script-ability API for plugins (NP-SAP).  NP-SAP is an extension
-    of the Netscape plugin API.  As such we have adopted the use of
-    the "NP" prefix for this API.
-
-    The following NP{N|P}Variables were added to the Netscape plugin
-    API (in npapi.h):
-
-    NPNVWindowNPObject
-    NPNVPluginElementNPObject
-    NPPVpluginScriptableNPObject
-
-    These variables are exposed through NPN_GetValue() and
-    NPP_GetValue() (respectively) and are used to establish the
-    initial binding between the user agent and native code.  The DOM
-    objects in the user agent can be examined and manipulated using
-    the NPN_ functions that operate on NPObjects described in this
-    header.
-
-    To the extent possible the assumptions about the scripting
-    language used by the scripting environment have been minimized.
-*/
-
-
-/*
-    Objects (non-primitive data) passed between 'C' and script is
-    always wrapped in an NPObject.  The 'interface' of an NPObject is
-    described by an NPClass.
-*/
-typedef struct NPObject NPObject;
-typedef struct NPClass NPClass;
-
-typedef char NPUTF8;
-typedef struct _NPString {
-    const NPUTF8 *UTF8Characters;
-    uint32_t UTF8Length;
-} NPString;
-  
-typedef enum {
-    NPVariantType_Void,
-    NPVariantType_Null,
-    NPVariantType_Bool,
-    NPVariantType_Int32,
-    NPVariantType_Double,
-    NPVariantType_String,
-    NPVariantType_Object
-} NPVariantType;
-
-typedef struct _NPVariant {
-    NPVariantType type;
-    union {
-        bool boolValue;
-        int32_t intValue;
-        double doubleValue;
-        NPString stringValue;
-        NPObject *objectValue;
-    } value;
-} NPVariant;
-
-/*
-    NPN_ReleaseVariantValue is called on all 'out' parameters references.
-    Specifically it is called on variants that are resultant out parameters
-    in NPGetPropertyFunctionPtr and NPInvokeFunctionPtr.  Resultant variants
-    from these two functions should be initialized using the
-    NPN_InitializeVariantXXX() functions.
-    
-    After calling NPReleaseVariantValue, the type of the variant will
-    be set to NPVariantUndefinedType.
-*/
-void NPN_ReleaseVariantValue (NPVariant *variant);
-
-#define NPVARIANT_IS_VOID(_v)    ((_v).type == NPVariantType_Void)
-#define NPVARIANT_IS_NULL(_v)    ((_v).type == NPVariantType_Null)
-#define NPVARIANT_IS_BOOLEAN(_v) ((_v).type == NPVariantType_Bool)
-#define NPVARIANT_IS_INT32(_v)   ((_v).type == NPVariantType_Int32)
-#define NPVARIANT_IS_DOUBLE(_v)  ((_v).type == NPVariantType_Double)
-#define NPVARIANT_IS_STRING(_v)  ((_v).type == NPVariantType_String)
-#define NPVARIANT_IS_OBJECT(_v)  ((_v).type == NPVariantType_Object)
-
-#define NPVARIANT_TO_BOOLEAN(_v) ((_v).value.boolValue)
-#define NPVARIANT_TO_INT32(_v)   ((_v).value.intValue)
-#define NPVARIANT_TO_DOUBLE(_v)  ((_v).value.doubleValue)
-#define NPVARIANT_TO_STRING(_v)  ((_v).value.stringValue)
-#define NPVARIANT_TO_OBJECT(_v)  ((_v).value.objectValue)
-
-#define NP_BEGIN_MACRO  do {
-#define NP_END_MACRO    } while (0)
-
-#define VOID_TO_NPVARIANT(_v)                NP_BEGIN_MACRO (_v).type = NPVariantType_Void; (_v).value.objectValue = NULL; NP_END_MACRO
-#define NULL_TO_NPVARIANT(_v)                NP_BEGIN_MACRO (_v).type = NPVariantType_Null; (_v).value.objectValue = NULL; NP_END_MACRO
-#define BOOLEAN_TO_NPVARIANT(_val, _v)       NP_BEGIN_MACRO (_v).type = NPVariantType_Bool; (_v).value.boolValue = !!(_val); NP_END_MACRO
-#define INT32_TO_NPVARIANT(_val, _v)         NP_BEGIN_MACRO (_v).type = NPVariantType_Int32; (_v).value.intValue = _val; NP_END_MACRO
-#define DOUBLE_TO_NPVARIANT(_val, _v)        NP_BEGIN_MACRO (_v).type = NPVariantType_Double; (_v).value.doubleValue = _val; NP_END_MACRO
-#define STRINGZ_TO_NPVARIANT(_val, _v)       NP_BEGIN_MACRO (_v).type = NPVariantType_String; NPString str = { _val, strlen(_val) }; (_v).value.stringValue = str; NP_END_MACRO
-#define STRINGN_TO_NPVARIANT(_val, _len, _v) NP_BEGIN_MACRO (_v).type = NPVariantType_String; NPString str = { _val, _len }; (_v).value.stringValue = str; NP_END_MACRO
-#define OBJECT_TO_NPVARIANT(_val, _v)        NP_BEGIN_MACRO (_v).type = NPVariantType_Object; (_v).value.objectValue = _val; NP_END_MACRO
-
-/*
-        Type mappings (JavaScript types have been used for illustration
-    purposes):
-
-        JavaScript       to             C (NPVariant with type:)
-        undefined                       NPVariantType_Void
-        null                            NPVariantType_Null
-        Boolean                         NPVariantType_Bool
-        Number                          NPVariantType_Double or NPVariantType_Int32
-        String                          NPVariantType_String
-        Object                          NPVariantType_Object
-
-        C (NPVariant with type:)   to   JavaScript
-        NPVariantType_Void              undefined
-        NPVariantType_Null              null
-        NPVariantType_Bool              Boolean 
-        NPVariantType_Int32             Number
-        NPVariantType_Double            Number
-        NPVariantType_String            String
-        NPVariantType_Object            Object
-*/
-
-typedef void *NPIdentifier;
-
-/*
-    NPObjects have methods and properties.  Methods and properties are
-    identified with NPIdentifiers.  These identifiers may be reflected
-    in script.  NPIdentifiers can be either strings or integers, IOW,
-    methods and properties can be identified by either strings or
-    integers (i.e. foo["bar"] vs foo[1]). NPIdentifiers can be
-    compared using ==.  In case of any errors, the requested
-    NPIdentifier(s) will be NULL.
-*/
-NPIdentifier NPN_GetStringIdentifier(const NPUTF8 *name);
-void NPN_GetStringIdentifiers(const NPUTF8 **names, int32_t nameCount, NPIdentifier *identifiers);
-NPIdentifier NPN_GetIntIdentifier(int32_t intid);
-bool NPN_IdentifierIsString(NPIdentifier identifier);
-
-/*
-    The NPUTF8 returned from NPN_UTF8FromIdentifier SHOULD be freed.
-*/
-NPUTF8 *_NPN_UTF8FromIdentifier(NPIdentifier identifier);
-
-/*
-    Get the integer represented by identifier. If identifier is not an
-    integer identifier, the behaviour is undefined.
-*/
-int32_t NPN_IntFromIdentifier(NPIdentifier identifier);
-
-/*
-    NPObject behavior is implemented using the following set of
-    callback functions.
-
-    The NPVariant *result argument of these functions (where
-    applicable) should be released using NPN_ReleaseVariantValue().
-*/
-typedef NPObject *(*NPAllocateFunctionPtr)(NPP npp, NPClass *aClass);
-typedef void (*NPDeallocateFunctionPtr)(NPObject *obj);
-typedef void (*NPInvalidateFunctionPtr)(NPObject *obj);
-typedef bool (*NPHasMethodFunctionPtr)(NPObject *obj, NPIdentifier name);
-typedef bool (*NPInvokeFunctionPtr)(NPObject *obj, NPIdentifier name, const NPVariant *args, uint32_t argCount, NPVariant *result);
-typedef bool (*NPInvokeDefaultFunctionPtr)(NPObject *npobj, const NPVariant *args, uint32_t argCount, NPVariant *result);
-typedef bool (*NPHasPropertyFunctionPtr)(NPObject *obj, NPIdentifier name);
-typedef bool (*NPGetPropertyFunctionPtr)(NPObject *obj, NPIdentifier name, NPVariant *result);
-typedef bool (*NPSetPropertyFunctionPtr)(NPObject *obj, NPIdentifier name, const NPVariant *value);
-typedef bool (*NPRemovePropertyFunctionPtr)(NPObject *npobj, NPIdentifier name);
-typedef bool (*NPEnumerationFunctionPtr)(NPObject *npobj, NPIdentifier **value, uint32_t *count);
-typedef bool (*NPConstructFunctionPtr)(NPObject *npobj, const NPVariant *args, uint32_t argCount, NPVariant *result);
-
-/*
-    NPObjects returned by create have a reference count of one.  It is the caller's responsibility
-    to release the returned object.
-
-    NPInvokeFunctionPtr function may return false to indicate a the method could not be invoked.
-    
-    NPGetPropertyFunctionPtr and NPSetPropertyFunctionPtr may return false to indicate a property doesn't
-    exist.
-    
-    NPInvalidateFunctionPtr is called by the scripting environment when the native code is
-    shutdown.  Any attempt to message a NPObject instance after the invalidate
-    callback has been called will result in undefined behavior, even if the
-    native code is still retaining those NPObject instances.
-    (The runtime will typically return immediately, with 0 or NULL, from an attempt to
-    dispatch to a NPObject, but this behavior should not be depended upon.)
-    
-    The NPEnumerationFunctionPtr function may pass an array of                  
-    NPIdentifiers back to the caller. The callee allocs the memory of           
-    the array using NPN_MemAlloc(), and it's the caller's responsibility        
-    to release it using NPN_MemFree().           
-*/
-struct NPClass
-{
-    uint32_t structVersion;
-    NPAllocateFunctionPtr allocate;
-    NPDeallocateFunctionPtr deallocate;
-    NPInvalidateFunctionPtr invalidate;
-    NPHasMethodFunctionPtr hasMethod;
-    NPInvokeFunctionPtr invoke;
-    NPInvokeDefaultFunctionPtr invokeDefault;
-    NPHasPropertyFunctionPtr hasProperty;
-    NPGetPropertyFunctionPtr getProperty;
-    NPSetPropertyFunctionPtr setProperty;
-    NPRemovePropertyFunctionPtr removeProperty;
-    NPEnumerationFunctionPtr enumerate;
-    NPConstructFunctionPtr construct;
-};
-
-#define NP_CLASS_STRUCT_VERSION      3
-#define NP_CLASS_STRUCT_VERSION_ENUM 2
-#define NP_CLASS_STRUCT_VERSION_CTOR 3
-
-#define NP_CLASS_STRUCT_VERSION_HAS_ENUM(npclass)   \
-    ((npclass)->structVersion >= NP_CLASS_STRUCT_VERSION_ENUM)
-#define NP_CLASS_STRUCT_VERSION_HAS_CTOR(npclass)   \
-    ((npclass)->structVersion >= NP_CLASS_STRUCT_VERSION_CTOR)
-
-struct NPObject {
-    NPClass *_class;
-    uint32_t referenceCount;
-    // Additional space may be allocated here by types of NPObjects
-};
-
-/*
-    If the class has an allocate function, NPN_CreateObject invokes that function,
-    otherwise a NPObject is allocated and returned.  If a class has an allocate
-    function it is the responsibility of that implementation to set the initial retain
-    count to 1.
-*/
-NPObject *_NPN_CreateObject(NPP npp, NPClass *aClass);
-
-/*
-    Increment the NPObject's reference count.
-*/
-NPObject *NPN_RetainObject (NPObject *obj);
-
-/*
-    Decremented the NPObject's reference count.  If the reference
-    count goes to zero, the class's destroy function is invoke if
-    specified, otherwise the object is freed directly.
-*/
-void _NPN_ReleaseObject (NPObject *obj);
-
-/*
-    Functions to access script objects represented by NPObject.
-
-    Calls to script objects are synchronous.  If a function returns a
-    value, it will be supplied via the result NPVariant
-    argument. Successful calls will return true, false will be
-    returned in case of an error.
-    
-    Calls made from plugin code to script must be made from the thread
-    on which the plugin was initialized.
-*/
-bool NPN_Invoke(NPP npp, NPObject *npobj, NPIdentifier methodName, const NPVariant *args, uint32_t argCount, NPVariant *result);
-bool NPN_InvokeDefault(NPP npp, NPObject *npobj, const NPVariant *args, uint32_t argCount, NPVariant *result);
-bool NPN_Evaluate(NPP npp, NPObject *npobj, NPString *script, NPVariant *result);
-bool NPN_GetProperty(NPP npp, NPObject *npobj, NPIdentifier propertyName, NPVariant *result);
-bool NPN_SetProperty(NPP npp, NPObject *npobj, NPIdentifier propertyName, const NPVariant *value);
-bool NPN_RemoveProperty(NPP npp, NPObject *npobj, NPIdentifier propertyName);
-bool NPN_HasProperty(NPP npp, NPObject *npobj, NPIdentifier propertyName);
-bool NPN_HasMethod(NPP npp, NPObject *npobj, NPIdentifier methodName);
-bool NPN_Enumerate(NPP npp, NPObject *npobj, NPIdentifier **identifier, uint32_t *count);
-bool NPN_Construct(NPP npp, NPObject *npobj, const NPVariant *args, uint32_t argCount, NPVariant *result);
-
-/*
-    NPN_SetException may be called to trigger a script exception upon return
-    from entry points into NPObjects.
-*/
-void NPN_SetException (NPObject *obj, const NPUTF8 *message);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
index 3ae2e70..35015b0 100644 (file)
@@ -312,6 +312,15 @@ void _NPN_DeallocateObject(NPObject* npObject)
     }
 }
 
+#if PLATFORM(ANDROID)
+// Android uses NPN_ReleaseObject (the 'public' version of _NPN_ReleaseObject)
+// in WebCoreFrameBridge.cpp. See http://trac.webkit.org/changeset/47021.
+// TODO: Upstream this to webkit.org.
+void NPN_ReleaseObject(NPObject *obj)
+{
+    _NPN_ReleaseObject(obj);
+}
+#endif
 void _NPN_ReleaseObject(NPObject* npObject)
 {
     ASSERT(npObject);
index ca70dcf..af54acd 100644 (file)
@@ -369,6 +369,7 @@ typedef enum {
 #endif
 
 #ifdef ANDROID
+    // TODO(andreip): Remove?
     NPPFakeValueToForce32Bits = 0x7FFFFFFF
 #endif
 } NPPVariable;
index d6aa3f6..0675bcb 100644 (file)
@@ -1244,7 +1244,12 @@ static void AddJavascriptInterface(JNIEnv *env, jobject obj, jint nativeFramePoi
         // the ref count when the object is not reachable from JavaScript
         // side. Code here must release the reference count increased by
         // JavaInstanceToNPObject.
-        _NPN_ReleaseObject(obj);
+
+        // Note that while this function is declared in WebCore/bridge/npruntime.h, for V8 builds
+        // we use WebCore/bindings/v8/npruntime.cpp (rather than
+        // WebCore/bridge/npruntime.cpp), so the function is implemented there.
+        // TODO: Combine the two versions of these NPAPI files.
+        NPN_ReleaseObject(obj);
         JSC::Bindings::releaseCharactersForJString(interfaceName, name);
     }
 #endif