diff options
author | stuartmorgan@chromium.org <stuartmorgan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-05-05 23:26:57 +0000 |
---|---|---|
committer | stuartmorgan@chromium.org <stuartmorgan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-05-05 23:26:57 +0000 |
commit | 027f4d4575f330822d17f09b25eebe31ace131c5 (patch) | |
tree | 383e8b45acc1805920d26597d4784b61ecf0b1e3 /third_party/npapi | |
parent | 6627ef6ed1e99731c6c2f2e3a87179fc6448790e (diff) | |
download | chromium_src-027f4d4575f330822d17f09b25eebe31ace131c5.zip chromium_src-027f4d4575f330822d17f09b25eebe31ace131c5.tar.gz chromium_src-027f4d4575f330822d17f09b25eebe31ace131c5.tar.bz2 |
Eliminate non-functional differences between our NPAPI headers and the npapi-headers copies
This changes only whitespace/comment and file order differences; substantive changes will be done separately.
BUG=42645
TEST=None; no behavioral changes.
Review URL: http://codereview.chromium.org/2001001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@46522 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'third_party/npapi')
-rw-r--r-- | third_party/npapi/bindings/npapi.h | 548 | ||||
-rw-r--r-- | third_party/npapi/bindings/npruntime.h | 287 |
2 files changed, 408 insertions, 427 deletions
diff --git a/third_party/npapi/bindings/npapi.h b/third_party/npapi/bindings/npapi.h index bf4306d..7019314 100644 --- a/third_party/npapi/bindings/npapi.h +++ b/third_party/npapi/bindings/npapi.h @@ -1,3 +1,4 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * @@ -34,12 +35,6 @@ * * ***** END LICENSE BLOCK ***** */ - -/* - * Netscape client plug-in API spec - */ - - #ifndef _NPAPI_H_ #define _NPAPI_H_ @@ -139,17 +134,15 @@ #endif /*----------------------------------------------------------------------*/ -/* Plugin Version Constants */ +/* Plugin Version Constants */ /*----------------------------------------------------------------------*/ #define NP_VERSION_MAJOR 0 -/* BEGIN GOOGLE MODIFICATIONS */ -#define NP_VERSION_MINOR 23 /* maximum version currently supported by Chromium */ -/* END GOOGLE MODIFICATIONS */ +#define NP_VERSION_MINOR 23 /*----------------------------------------------------------------------*/ -/* Definition of Basic Types */ +/* Definition of Basic Types */ /*----------------------------------------------------------------------*/ #ifndef FALSE @@ -162,12 +155,10 @@ #define NULL (0L) #endif -typedef unsigned char NPBool; -typedef int16_t NPError; -typedef int16_t NPReason; -typedef char* NPMIMEType; - - +typedef unsigned char NPBool; +typedef int16_t NPError; +typedef int16_t NPReason; +typedef char* NPMIMEType; /*----------------------------------------------------------------------*/ /* Structures and definitions */ @@ -184,34 +175,32 @@ typedef char* NPMIMEType; */ typedef struct _NPP { - void* pdata; /* plug-in private data */ - void* ndata; /* netscape private data */ + 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; + void* pdata; /* plug-in private data */ + void* ndata; /* netscape private data */ + const char* url; uint32_t end; uint32_t 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). */ + 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_t offset; /* negative offset means from the end */ @@ -219,14 +208,12 @@ typedef struct _NPByteRange struct _NPByteRange* next; } NPByteRange; - typedef struct _NPSavedData { - int32_t len; - void* buf; + int32_t len; + void* buf; } NPSavedData; - typedef struct _NPRect { uint16_t top; @@ -268,6 +255,23 @@ typedef struct #endif /* XP_UNIX */ +#ifdef XP_MACOSX +typedef enum { +#ifndef NP_NO_QUICKDRAW + NPDrawingModelQuickDraw = 0, +#endif + NPDrawingModelCoreGraphics = 1, + NPDrawingModelOpenGL = 2, + NPDrawingModelCoreAnimation = 3 +} NPDrawingModel; + +typedef enum { +#ifndef NP_NO_CARBON + NPEventModelCarbon = 0, +#endif + NPEventModelCocoa = 1 +} NPEventModel; +#endif /* * The following masks are applied on certain platforms to NPNV and @@ -276,7 +280,7 @@ typedef struct * 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 + * compatible with different 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. @@ -287,7 +291,7 @@ typedef struct * gcc 3.x generated vtables on UNIX and OSX are incompatible with * previous compilers. */ -#if (defined (XP_UNIX) && defined(__GNUC__) && (__GNUC__ >= 3)) +#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 @@ -307,7 +311,6 @@ typedef struct #define _NP_ABI_MIXIN_FOR_MACHO 0 #endif - #define NP_ABI_MASK (_NP_ABI_MIXIN_FOR_GCC3 | _NP_ABI_MIXIN_FOR_MACHO) /* @@ -318,53 +321,48 @@ typedef enum { NPPVpluginDescriptionString, NPPVpluginWindowBool, NPPVpluginTransparentBool, - NPPVjavaClass, /* Not implemented in Mozilla 1.0 */ + NPPVjavaClass, NPPVpluginWindowSize, NPPVpluginTimerInterval, - NPPVpluginScriptableInstance = (10 | NP_ABI_MASK), NPPVpluginScriptableIID = 11, - - /* Introduced in Mozilla 0.9.9 */ NPPVjavascriptPushCallerBool = 12, - - /* Introduced in Mozilla 1.0 */ NPPVpluginKeepLibraryInMemory = 13, NPPVpluginNeedsXEmbed = 14, - /* Get the NPObject for scripting the plugin. Introduced in Firefox - * 1.0 (NPAPI minor version 14). + /* Get the NPObject for scripting the plugin. Introduced in NPAPI minor version 14. */ 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. + * NPN_MemAlloc() to allocate memory for the string data. Introduced + * in NPAPI minor version 15. */ - NPPVformValue = 16, /* Not implemented in WebKit */ + NPPVformValue = 16, - NPPVpluginUrlRequestsDisplayedBool = 17, /* Not implemented in WebKit */ + NPPVpluginUrlRequestsDisplayedBool = 17, /* Checks if the plugin is interested in receiving the http body of - * failed http requests (http status != 200). + * all http requests (including failed ones, http status != 200). */ NPPVpluginWantsAllNetworkStreams = 18, - + /* 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, + , NPPVpluginDrawingModel = 1000 /* Used for negotiating event models */ - NPPVpluginEventModel = 1001, + , NPPVpluginEventModel = 1001 /* In the NPDrawingModelCoreAnimation drawing model, the browser asks the plug-in for a Core Animation layer. */ - NPPVpluginCoreAnimationLayer = 1003 + , NPPVpluginCoreAnimationLayer = 1003 #endif } NPPVariable; /* - * List of variable names for which NPN_GetValue is implemented by Mozilla + * List of variable names for which NPN_GetValue should be implemented. */ typedef enum { NPNVxDisplay = 1, @@ -374,9 +372,8 @@ typedef enum { NPNVasdEnabledBool, NPNVisOfflineBool, - /* 10 and over are available on Mozilla builds starting with 0.9.4 */ NPNVserviceManager = (10 | NP_ABI_MASK), - NPNVDOMElement = (11 | NP_ABI_MASK), /* available in Mozilla 1.2 */ + NPNVDOMElement = (11 | NP_ABI_MASK), NPNVDOMWindow = (12 | NP_ABI_MASK), NPNVToolkit = (13 | NP_ABI_MASK), NPNVSupportsXEmbedBool = 14, @@ -398,9 +395,8 @@ typedef enum { , NPNVsupportsQuickDrawBool = 2000 #endif , NPNVsupportsCoreGraphicsBool = 2001 - , 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 */ - + , NPNVsupportsOpenGLBool = 2002 + , NPNVsupportsCoreAnimationBool = 2003 #ifndef NP_NO_CARBON , NPNVsupportsCarbonBool = 3000 /* TRUE if the browser supports the Carbon event model */ #endif @@ -413,15 +409,13 @@ typedef enum { NPNURLVProxy } NPNURLVariable; -/* BEGIN GOOGLE MODIFICATIONS */ /* - * The type of Tookkit the widgets use + * The type of Toolkit the widgets use */ typedef enum { NPNVGtk12 = 1, NPNVGtk2 } NPNToolkitType; -/* END GOOGLE MODIFICATIONS */ /* * The type of a NPWindow - it specifies the type of the data structure @@ -432,105 +426,16 @@ typedef enum { 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_t version; - - union { - struct { - uint32_t modifierFlags; - double pluginX; - double pluginY; - int32_t buttonNumber; - int32_t clickCount; - double deltaX; - double deltaY; - double deltaZ; - } mouse; - struct { - uint32_t modifierFlags; - NPNSString *characters; - NPNSString *charactersIgnoringModifiers; - NPBool isARepeat; - uint16_t 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_t x; /* Position of top left corner relative */ - int32_t y; /* to a netscape page. */ + int32_t x; /* Position of top left corner relative */ + int32_t y; /* to a netscape page. */ uint32_t width; /* Maximum window size */ uint32_t height; - NPRect clipRect; /* Clipping rectangle in port coordinates */ - /* Used by MAC only. */ + NPRect clipRect; /* Clipping rectangle in port coordinates */ #if defined(XP_UNIX) && !defined(XP_MACOSX) - void * ws_info; /* Platform-dependent additonal data */ + void * ws_info; /* Platform-dependent additional data */ #endif /* XP_UNIX */ NPWindowType type; /* Is this a window or a drawable? */ } NPWindow; @@ -539,7 +444,8 @@ typedef struct _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 */ + NPBool printOne; /* TRUE if plugin should print one copy to default + printer */ void* platformPrint; /* Platform-specific printing info */ } NPFullPrint; @@ -551,7 +457,7 @@ typedef struct _NPEmbedPrint typedef struct _NPPrint { - uint16_t mode; /* NP_FULL or NP_EMBED */ + uint16_t mode; /* NP_FULL or NP_EMBED */ union { NPFullPrint fullPrint; /* if mode is NP_FULL */ @@ -559,29 +465,11 @@ typedef struct _NPPrint } print; } NPPrint; -#ifdef XP_MACOSX -/* BEGIN GOOGLE MODIFICATIONS */ -typedef struct _NPNSMenu NPNSMenu; -/* END GOOGLE MODIFICATIONS */ -typedef NPNSMenu NPMenu; -#else -typedef void * NPMenu; -#endif - -typedef enum { - NPCoordinateSpacePlugin = 1, - NPCoordinateSpaceWindow, - NPCoordinateSpaceFlippedWindow, - NPCoordinateSpaceScreen, - NPCoordinateSpaceFlippedScreen -} NPCoordinateSpace; - #if defined(XP_MAC) || defined(XP_MACOSX) #ifndef NP_NO_CARBON -typedef EventRecord NPEvent; +typedef EventRecord NPEvent; #endif - #elif defined(XP_WIN) typedef struct _NPEvent { @@ -595,18 +483,13 @@ typedef union _XEvent XEvent; /* END GOOGLE MODIFICATIONS */ typedef XEvent NPEvent; #else -typedef void* NPEvent; +typedef void* NPEvent; #endif /* XP_MACOSX */ #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; +typedef void* NPRegion; #ifndef NP_NO_QUICKDRAW typedef RgnHandle NPQDRegion; #endif @@ -622,8 +505,35 @@ typedef Region NPRegion; typedef void *NPRegion; #endif /* XP_MAC */ +typedef struct _NPNSString NPNSString; +typedef struct _NPNSWindow NPNSWindow; +typedef struct _NPNSMenu NPNSMenu; + +#ifdef XP_MACOSX +typedef NPNSMenu NPMenu; +#else +typedef void *NPMenu; +#endif + +typedef enum { + NPCoordinateSpacePlugin = 1, + NPCoordinateSpaceWindow, + NPCoordinateSpaceFlippedWindow, + NPCoordinateSpaceScreen, + NPCoordinateSpaceFlippedScreen +} NPCoordinateSpace; + #ifdef XP_MACOSX +#ifndef NP_NO_QUICKDRAW +typedef struct NP_Port +{ + CGrafPtr port; + int32_t portx; /* position inside the topmost window */ + int32_t porty; +} NP_Port; +#endif /* NP_NO_QUICKDRAW */ + /* * NP_CGContext is the type of the NPWindow's 'window' when the plugin specifies NPDrawingModelCoreGraphics * as its drawing model. @@ -635,7 +545,7 @@ typedef struct NP_CGContext #ifdef NP_NO_CARBON NPNSWindow *window; #else - void *window; /* Can be either an NSWindow or a WindowRef depending on the event model */ + void *window; /* A WindowRef or NULL for the Cocoa event model. */ #endif } NP_CGContext; @@ -654,40 +564,66 @@ typedef struct NP_GLContext #endif } NP_GLContext; -#endif /* XP_MACOSX */ - -#if defined(XP_MAC) || defined(XP_MACOSX) - -/* - * Mac-specific structures and definitions. - */ - -#ifndef NP_NO_QUICKDRAW +typedef enum { + NPCocoaEventDrawRect = 1, + NPCocoaEventMouseDown, + NPCocoaEventMouseUp, + NPCocoaEventMouseMoved, + NPCocoaEventMouseEntered, + NPCocoaEventMouseExited, + NPCocoaEventMouseDragged, + NPCocoaEventKeyDown, + NPCocoaEventKeyUp, + NPCocoaEventFlagsChanged, + NPCocoaEventFocusChanged, + NPCocoaEventWindowFocusChanged, + NPCocoaEventScrollWheel, + NPCocoaEventTextInput +} NPCocoaEventType; -/* - * 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 _NPCocoaEvent { + NPCocoaEventType type; + uint32_t version; + union { + struct { + uint32_t modifierFlags; + double pluginX; + double pluginY; + int32_t buttonNumber; + int32_t clickCount; + double deltaX; + double deltaY; + double deltaZ; + } mouse; + struct { + uint32_t modifierFlags; + NPNSString *characters; + NPNSString *charactersIgnoringModifiers; + NPBool isARepeat; + uint16_t keyCode; + } key; + struct { + CGContextRef context; + double x; + double y; + double width; + double height; + } draw; + struct { + NPBool hasFocus; + } focus; + struct { + NPNSString *text; + } text; + } data; +} NPCocoaEvent; -typedef struct NP_Port -{ - CGrafPtr port; /* Grafport */ - int32_t portx; /* position inside the topmost window */ - int32_t porty; -} NP_Port; +#endif /* XP_MACOSX */ -#endif /* NP_NO_QUICKDRAW */ +#if defined(XP_MAC) || defined(XP_MACOSX) -/* - * Non-standard event types that can be passed to HandleEvent - */ -/* BEGIN GOOGLE MODIFICATIONS */ #ifndef NP_NO_CARBON +/* Non-standard event types that can be passed to HandleEvent */ enum NPEventType { NPEventType_GetFocusEvent = (osEvt + 16), NPEventType_LoseFocusEvent, @@ -698,6 +634,7 @@ enum NPEventType { NPEventType_ScrollingEndsEvent }; +/* BEGIN GOOGLE MODIFICATIONS */ #ifdef OBSOLETE #define getFocusEvent (osEvt + 16) #define loseFocusEvent (osEvt + 17) @@ -722,7 +659,7 @@ enum NPEventType { #define NP_ASFILE 3 #define NP_ASFILEONLY 4 -#define NP_MAXREADY (((unsigned)(~0)<<1)>>1) +#define NP_MAXREADY (((unsigned)(~0)<<1)>>1) #if !defined(__LP64__) #if defined(XP_MAC) || defined(XP_MACOSX) @@ -730,9 +667,8 @@ enum NPEventType { #endif #endif /* __LP64__ */ - /*----------------------------------------------------------------------*/ -/* Error and Reason Code definitions */ +/* Error and Reason Code definitions */ /*----------------------------------------------------------------------*/ /* @@ -805,90 +741,98 @@ enum NPEventType { extern "C" { #endif -/* - * NPP_* functions are provided by the plugin and called by the navigator. - */ +/* 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_t mode, int16_t 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_t* stype); -NPError NP_LOADDS NPP_DestroyStream(NPP instance, NPStream* stream, - NPReason reason); -int32_t NP_LOADDS NPP_WriteReady(NPP instance, NPStream* stream); -int32_t NP_LOADDS NPP_Write(NPP instance, NPStream* stream, int32_t offset, - int32_t 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_t 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. - */ +#endif -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_t len, - const char* buf, NPBool file, - void* notifyData); -NPError NPN_PostURL(NPP instance, const char* url, - const char* target, uint32_t 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_t NPN_Write(NPP instance, NPStream* stream, int32_t 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_t size); -void NPN_MemFree(void* ptr); -uint32_t NPN_MemFlush(uint32_t 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_t* len); -NPError NPN_SetValueForURL(NPP instance, NPNURLVariable variable, const char* url, const char* value, uint32_t len); -NPError NPN_GetAuthenticationInfo(NPP instance, const char* protocol, const char* host, int32_t port, const char* scheme, const char *realm, char** username, uint32_t* ulen, char** password, uint32_t* plen); -uint32_t NPN_ScheduleTimer(NPP instance, uint32_t interval, NPBool repeat, void (*timerFunc)(NPP npp, uint32_t timerID)); -void NPN_UnscheduleTimer(NPP instance, uint32_t 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); +NPError NPP_Initialize(void); +void NPP_Shutdown(void); +NPError NP_LOADDS NPP_New(NPMIMEType pluginType, NPP instance, + uint16_t mode, int16_t 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_t* stype); +NPError NP_LOADDS NPP_DestroyStream(NPP instance, NPStream* stream, + NPReason reason); +int32_t NP_LOADDS NPP_WriteReady(NPP instance, NPStream* stream); +int32_t NP_LOADDS NPP_Write(NPP instance, NPStream* stream, int32_t offset, + int32_t 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_t 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_t len, + const char* buf, NPBool file, + void* notifyData); +NPError NPN_PostURL(NPP instance, const char* url, + const char* target, uint32_t 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_t NPN_Write(NPP instance, NPStream* stream, int32_t 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_t size); +void NPN_MemFree(void* ptr); +uint32_t NPN_MemFlush(uint32_t 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_t* len); +NPError NPN_SetValueForURL(NPP instance, NPNURLVariable variable, + const char* url, const char* value, + uint32_t len); +NPError NPN_GetAuthenticationInfo(NPP instance, + const char *protocol, + const char *host, int32_t port, + const char *scheme, + const char *realm, + char **username, uint32_t *ulen, + char **password, + uint32_t* plen); +uint32_t NPN_ScheduleTimer(NPP instance, uint32_t interval, NPBool repeat, void (*timerFunc)(NPP npp, uint32_t timerID)); +void NPN_UnscheduleTimer(NPP instance, uint32_t 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" */ diff --git a/third_party/npapi/bindings/npruntime.h b/third_party/npapi/bindings/npruntime.h index 496bbd69..0778526 100644 --- a/third_party/npapi/bindings/npruntime.h +++ b/third_party/npapi/bindings/npruntime.h @@ -1,5 +1,6 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* - * Copyright (C) 2004, Apple Computer, Inc. and The Mozilla Foundation. + * Copyright (c) 2004, Apple Computer, Inc. and The Mozilla Foundation. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -28,42 +29,6 @@ * 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_ @@ -107,6 +72,8 @@ extern "C" { language used by the scripting environment have been minimized. */ +#define NP_BEGIN_MACRO do { +#define NP_END_MACRO } while (0) /* Objects (non-primitive data) passed between 'C' and script is @@ -121,7 +88,7 @@ typedef struct _NPString { const NPUTF8 *UTF8Characters; uint32_t UTF8Length; } NPString; - + typedef enum { NPVariantType_Void, NPVariantType_Null, @@ -144,16 +111,16 @@ typedef struct _NPVariant { } 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. + NPN_ReleaseVariantValue is called on all 'out' parameters + references. Specifically it is to be called on variants that own + their value, as is the case with all non-const NPVariant* + arguments after a successful call to any methods (except this one) + in this API. + + After calling NPN_ReleaseVariantValue, the type of the variant + will be NPVariantType_Void. */ -void NPN_ReleaseVariantValue (NPVariant *variant); +void NPN_ReleaseVariantValue(NPVariant *variant); #define NPVARIANT_IS_VOID(_v) ((_v).type == NPVariantType_Void) #define NPVARIANT_IS_NULL(_v) ((_v).type == NPVariantType_Null) @@ -169,38 +136,77 @@ void NPN_ReleaseVariantValue (NPVariant *variant); #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, uint32_t(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, uint32_t(_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 -#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 + 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 + 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; @@ -212,10 +218,13 @@ typedef void *NPIdentifier; 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(s) will be NULL. NPIdentifier lifetime is controlled + by the browser. Plugins do not need to worry about memory management + with regards to NPIdentifiers. */ NPIdentifier NPN_GetStringIdentifier(const NPUTF8 *name); -void NPN_GetStringIdentifiers(const NPUTF8 **names, int32_t nameCount, NPIdentifier *identifiers); +void NPN_GetStringIdentifiers(const NPUTF8 **names, int32_t nameCount, + NPIdentifier *identifiers); NPIdentifier NPN_GetIntIdentifier(int32_t intid); bool NPN_IdentifierIsString(NPIdentifier identifier); @@ -238,38 +247,52 @@ int32_t NPN_IntFromIdentifier(NPIdentifier identifier); 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); +typedef void (*NPDeallocateFunctionPtr)(NPObject *npobj); +typedef void (*NPInvalidateFunctionPtr)(NPObject *npobj); +typedef bool (*NPHasMethodFunctionPtr)(NPObject *npobj, NPIdentifier name); +typedef bool (*NPInvokeFunctionPtr)(NPObject *npobj, 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 *npobj, NPIdentifier name); +typedef bool (*NPGetPropertyFunctionPtr)(NPObject *npobj, NPIdentifier name, + NPVariant *result); +typedef bool (*NPSetPropertyFunctionPtr)(NPObject *npobj, 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(). + NPObjects returned by create, retain, invoke, and getProperty pass + a reference count to the caller. That is, the callee adds a + reference count which passes to the caller. It is the caller's + responsibility to release the returned object. + + NPInvokeFunctionPtr function may return 0 to indicate a void + result. + + 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 { @@ -289,39 +312,43 @@ struct NPClass }; #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) + ((npclass)->structVersion >= NP_CLASS_STRUCT_VERSION_ENUM) + #define NP_CLASS_STRUCT_VERSION_HAS_CTOR(npclass) \ - ((npclass)->structVersion >= NP_CLASS_STRUCT_VERSION_CTOR) + ((npclass)->structVersion >= NP_CLASS_STRUCT_VERSION_CTOR) struct NPObject { NPClass *_class; uint32_t referenceCount; - // Additional space may be allocated here by types of NPObjects + /* + * 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. + If the class has an allocate function, NPN_CreateObject invokes + that function, otherwise a NPObject is allocated and + returned. This method will initialize the referenceCount member of + the NPObject to 1. */ NPObject *NPN_CreateObject(NPP npp, NPClass *aClass); /* Increment the NPObject's reference count. */ -NPObject *NPN_RetainObject (NPObject *obj); +NPObject *NPN_RetainObject(NPObject *npobj); /* 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); +void NPN_ReleaseObject(NPObject *npobj); /* Functions to access script objects represented by NPObject. @@ -334,16 +361,24 @@ void NPN_ReleaseObject (NPObject *obj); 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_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* obj, const NPVariant *args, uint32_t argCount, NPVariant *result); +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); // Helper function for evaluating a script in the scope of the NPObject passed in. // Parameters @@ -372,10 +407,12 @@ void NPN_PluginThreadAsyncCall(NPP id, void (*func)(void *), void *userData); // END GOOGLE MODIFICATIONS /* - NPN_SetException may be called to trigger a script exception upon return - from entry points into NPObjects. + NPN_SetException may be called to trigger a script exception upon + return from entry points into NPObjects. Typical usage: + + NPN_SetException (npobj, message); */ -void NPN_SetException (NPObject *obj, const NPUTF8 *message); +void NPN_SetException(NPObject *npobj, const NPUTF8 *message); #ifdef __cplusplus } |