Back to index

lightning-sunbird  0.9+nobinonly
Defines | Functions | Variables
npmac.cpp File Reference
#include <string.h>
#include <Carbon/Carbon.h>
#include "npapi.h"
#include "npupp.h"

Go to the source code of this file.

Defines

#define PLUGINDEBUGSTR(msg)   ((void) 0)
#define PLUGIN_TO_HOST_GLUE(name, fp)   (fp)
#define HOST_TO_PLUGIN_GLUE(name, fp)   (fp)

Functions

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 *window, void *notifyData)
NPError NPN_GetURL (NPP instance, const char *url, const char *window)
NPError NPN_PostURLNotify (NPP instance, const char *url, const char *window, uint32 len, const char *buf, NPBool file, void *notifyData)
NPError NPN_PostURL (NPP instance, const char *url, const char *window, uint32 len, const char *buf, NPBool file)
NPError NPN_RequestRead (NPStream *stream, NPByteRange *rangeList)
NPError NPN_NewStream (NPP instance, NPMIMEType type, const char *window, NPStream **stream)
int32 NPN_Write (NPP instance, NPStream *stream, int32 len, void *buffer)
NPError NPN_DestroyStream (NPP instance, NPStream *stream, NPError reason)
void NPN_Status (NPP instance, const char *message)
const char * NPN_UserAgent (NPP instance)
voidNPN_MemAlloc (uint32 size)
void NPN_MemFree (void *ptr)
uint32 NPN_MemFlush (uint32 size)
void NPN_ReloadPlugins (NPBool reloadPages)
NPError NPN_GetValue (NPP instance, NPNVariable variable, void *value)
NPError NPN_SetValue (NPP instance, NPPVariable variable, void *value)
void NPN_InvalidateRect (NPP instance, NPRect *rect)
void NPN_InvalidateRegion (NPP instance, NPRegion region)
void NPN_ForceRedraw (NPP instance)
void NPN_PushPopupsEnabledState (NPP instance, NPBool enabled)
void NPN_PopPopupsEnabledState (NPP instance)
NPError Private_Initialize (void)
void Private_Shutdown (void)
NPError Private_New (NPMIMEType pluginType, NPP instance, uint16 mode, int16 argc, char *argn[], char *argv[], NPSavedData *saved)
NPError Private_Destroy (NPP instance, NPSavedData **save)
NPError Private_SetWindow (NPP instance, NPWindow *window)
NPError Private_NewStream (NPP instance, NPMIMEType type, NPStream *stream, NPBool seekable, uint16 *stype)
NPError Private_DestroyStream (NPP instance, NPStream *stream, NPError reason)
int32 Private_WriteReady (NPP instance, NPStream *stream)
int32 Private_Write (NPP instance, NPStream *stream, int32 offset, int32 len, void *buffer)
void Private_StreamAsFile (NPP instance, NPStream *stream, const char *fname)
void Private_Print (NPP instance, NPPrint *platformPrint)
int16 Private_HandleEvent (NPP instance, void *event)
void Private_URLNotify (NPP instance, const char *url, NPReason reason, void *notifyData)
jobject Private_GetJavaClass (void)
void SetUpQD (void)
int main (NPNetscapeFuncs *nsTable, NPPluginFuncs *pluginFuncs, NPP_ShutdownUPP *unloadUpp)
 DEFINE_API_C (int) main(NPNetscapeFuncs *nsTable
NPPluginFuncs NPP_ShutdownUPP
*unloadUpp 
PLUGINDEBUGSTR ("\pmain")
 if ((nsTable==NULL)||(pluginFuncs==NULL)||(unloadUpp==NULL)) err
 if (err==NPERR_NO_ERROR)

Variables

short gResFile
NPNetscapeFuncs gNetscapeFuncs
NPPluginFuncspluginFuncs
NPError err = NPERR_NO_ERROR

Define Documentation

#define HOST_TO_PLUGIN_GLUE (   name,
  fp 
)    (fp)

Definition at line 108 of file npmac.cpp.

#define PLUGIN_TO_HOST_GLUE (   name,
  fp 
)    (fp)

Definition at line 107 of file npmac.cpp.

#define PLUGINDEBUGSTR (   msg)    ((void) 0)

Definition at line 23 of file npmac.cpp.


Function Documentation

if ( (nsTable==NULL)||(pluginFuncs==NULL)||(unloadUpp==NULL )
if ( err  = NPERR_NO_ERROR)

Definition at line 471 of file npmac.cpp.

       {
              if ((nsTable->version >> 8) > NP_VERSION_MAJOR)         // Major version is in high byte
                     err = NPERR_INCOMPATIBLE_VERSION_ERROR;
       }
int main ( NPNetscapeFuncs nsTable,
NPPluginFuncs pluginFuncs,
NPP_ShutdownUPP unloadUpp 
)

Definition at line 622 of file npmac.cpp.

{
       EnterCodeResource();
       PLUGINDEBUGSTR("\pmain");

       NPError err = NPERR_NO_ERROR;
       
       //
       // Ensure that everything Netscape passed us is valid!
       //
       if ((nsTable == NULL) || (pluginFuncs == NULL) || (unloadUpp == NULL))
              err = NPERR_INVALID_FUNCTABLE_ERROR;
       
       //
       // Check the ³major² version passed in Netscapeıs function table.
       // We wonıt load if the major version is newer than what we expect.
       // Also check that the function tables passed in are big enough for
       // all the functions we need (they could be bigger, if Netscape added
       // new APIs, but thatıs OK with us -- weıll just ignore them).
       //
       if (err == NPERR_NO_ERROR)
       {
              if ((nsTable->version >> 8) > NP_VERSION_MAJOR)         // Major version is in high byte
                     err = NPERR_INCOMPATIBLE_VERSION_ERROR;
//            if (nsTable->size < sizeof(NPNetscapeFuncs))
//                   err = NPERR_INVALID_FUNCTABLE_ERROR;
//            if (pluginFuncs->size < sizeof(NPPluginFuncs))          
//                   err = NPERR_INVALID_FUNCTABLE_ERROR;
       }
              
       
       if (err == NPERR_NO_ERROR)
       {
              //
              // Copy all the fields of Netscapeıs function table into our
              // copy so we can call back into Netscape later.  Note that
              // we need to copy the fields one by one, rather than assigning
              // the whole structure, because the Netscape function table
              // could actually be bigger than what we expect.
              //
              
              int navMinorVers = nsTable->version & 0xFF;

              gNetscapeFuncs.version = nsTable->version;
              gNetscapeFuncs.size = nsTable->size;
              gNetscapeFuncs.posturl = nsTable->posturl;
              gNetscapeFuncs.geturl = nsTable->geturl;
              gNetscapeFuncs.requestread = nsTable->requestread;
              gNetscapeFuncs.newstream = nsTable->newstream;
              gNetscapeFuncs.write = nsTable->write;
              gNetscapeFuncs.destroystream = nsTable->destroystream;
              gNetscapeFuncs.status = nsTable->status;
              gNetscapeFuncs.uagent = nsTable->uagent;
              gNetscapeFuncs.memalloc = nsTable->memalloc;
              gNetscapeFuncs.memfree = nsTable->memfree;
              gNetscapeFuncs.memflush = nsTable->memflush;
              gNetscapeFuncs.reloadplugins = nsTable->reloadplugins;
              if( navMinorVers >= NPVERS_HAS_LIVECONNECT )
              {
                     gNetscapeFuncs.getJavaEnv = nsTable->getJavaEnv;
                     gNetscapeFuncs.getJavaPeer = nsTable->getJavaPeer;
              }
              if( navMinorVers >= NPVERS_HAS_NOTIFICATION )
              {      
                     gNetscapeFuncs.geturlnotify = nsTable->geturlnotify;
                     gNetscapeFuncs.posturlnotify = nsTable->posturlnotify;
              }
              gNetscapeFuncs.getvalue = nsTable->getvalue;
              gNetscapeFuncs.setvalue = nsTable->setvalue;
              gNetscapeFuncs.invalidaterect = nsTable->invalidaterect;
              gNetscapeFuncs.invalidateregion = nsTable->invalidateregion;
              gNetscapeFuncs.forceredraw = nsTable->forceredraw;

              // defer static constructors until the global functions are initialized.
              __InitCode__();
              
              //
              // Set up the plugin function table that Netscape will use to
              // call us.  Netscape needs to know about our version and size
              // and have a UniversalProcPointer for every function we implement.
              //
              pluginFuncs->version = (NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR;
              pluginFuncs->size = sizeof(NPPluginFuncs);
              pluginFuncs->newp = NewNPP_NewProc(Private_New);
              pluginFuncs->destroy = NewNPP_DestroyProc(Private_Destroy);
              pluginFuncs->setwindow = NewNPP_SetWindowProc(Private_SetWindow);
              pluginFuncs->newstream = NewNPP_NewStreamProc(Private_NewStream);
              pluginFuncs->destroystream = NewNPP_DestroyStreamProc(Private_DestroyStream);
              pluginFuncs->asfile = NewNPP_StreamAsFileProc(Private_StreamAsFile);
              pluginFuncs->writeready = NewNPP_WriteReadyProc(Private_WriteReady);
              pluginFuncs->write = NewNPP_WriteProc(Private_Write);
              pluginFuncs->print = NewNPP_PrintProc(Private_Print);
              pluginFuncs->event = NewNPP_HandleEventProc(Private_HandleEvent);     
              if( navMinorVers >= NPVERS_HAS_NOTIFICATION )
              {      
                     pluginFuncs->urlnotify = NewNPP_URLNotifyProc(Private_URLNotify);                   
              }
              if( navMinorVers >= NPVERS_HAS_LIVECONNECT )
              {
                     pluginFuncs->javaClass      = (JRIGlobalRef) Private_GetJavaClass();
                     pluginFuncs->getvalue = NewNPP_GetValueProc(Private_GetValue);
                     pluginFuncs->setvalue = NewNPP_SetValueProc(Private_SetValue);
              }
              *unloadUpp = NewNPP_ShutdownProc(Private_Shutdown);
              SetUpQD();
              err = Private_Initialize();
       }
       
       ExitCodeResource();
       return err;
}

Here is the call graph for this function:

NPError NPN_DestroyStream ( NPP  instance,
NPStream stream,
NPError  reason 
)

Definition at line 223 of file npmac.cpp.

{
       int navMinorVers = gNetscapeFuncs.version & 0xFF;
       NPError err;
       
       if( navMinorVers >= NPVERS_HAS_STREAMOUTPUT )
       {
              err = CallNPN_DestroyStreamProc(gNetscapeFuncs.destroystream, instance, stream, reason);
       }
       else
       {
              err = NPERR_INCOMPATIBLE_VERSION_ERROR;
       }
       return err;
}
void NPN_ForceRedraw ( NPP  instance)

Definition at line 301 of file npmac.cpp.

NPError NPN_GetURL ( NPP  instance,
const char *  url,
const char *  window 
)

Definition at line 159 of file npmac.cpp.

{
       return CallNPN_GetURLProc(gNetscapeFuncs.geturl, instance, url, window);
}
NPError NPN_GetURLNotify ( NPP  instance,
const char *  url,
const char *  window,
void notifyData 
)

Definition at line 143 of file npmac.cpp.

{
       int navMinorVers = gNetscapeFuncs.version & 0xFF;
       NPError err;
       
       if( navMinorVers >= NPVERS_HAS_NOTIFICATION )
       {
              err = CallNPN_GetURLNotifyProc(gNetscapeFuncs.geturlnotify, instance, url, window, notifyData);
       }
       else
       {
              err = NPERR_INCOMPATIBLE_VERSION_ERROR;
       }
       return err;
}
NPError NPN_GetValue ( NPP  instance,
NPNVariable  variable,
void value 
)

Definition at line 281 of file npmac.cpp.

{
       return CallNPN_GetValueProc( gNetscapeFuncs.getvalue, instance, variable, value);
}
void NPN_InvalidateRect ( NPP  instance,
NPRect rect 
)

Definition at line 291 of file npmac.cpp.

void NPN_InvalidateRegion ( NPP  instance,
NPRegion  region 
)

Definition at line 296 of file npmac.cpp.

void* NPN_MemAlloc ( uint32  size)

Definition at line 249 of file npmac.cpp.

Definition at line 259 of file npmac.cpp.

void NPN_MemFree ( void ptr)

Definition at line 254 of file npmac.cpp.

NPError NPN_NewStream ( NPP  instance,
NPMIMEType  type,
const char *  window,
NPStream **  stream 
)

Definition at line 191 of file npmac.cpp.

{
       int navMinorVers = gNetscapeFuncs.version & 0xFF;
       NPError err;
       
       if( navMinorVers >= NPVERS_HAS_STREAMOUTPUT )
       {
              err = CallNPN_NewStreamProc(gNetscapeFuncs.newstream, instance, type, window, stream);
       }
       else
       {
              err = NPERR_INCOMPATIBLE_VERSION_ERROR;
       }
       return err;
}
NPError NPN_PostURL ( NPP  instance,
const char *  url,
const char *  window,
uint32  len,
const char *  buf,
NPBool  file 
)

Definition at line 181 of file npmac.cpp.

{
       return CallNPN_PostURLProc(gNetscapeFuncs.posturl, instance, url, window, len, buf, file);
}
NPError NPN_PostURLNotify ( NPP  instance,
const char *  url,
const char *  window,
uint32  len,
const char *  buf,
NPBool  file,
void notifyData 
)

Definition at line 164 of file npmac.cpp.

{
       int navMinorVers = gNetscapeFuncs.version & 0xFF;
       NPError err;
       
       if( navMinorVers >= NPVERS_HAS_NOTIFICATION )
       {
              err = CallNPN_PostURLNotifyProc(gNetscapeFuncs.posturlnotify, instance, url, 
                                                                                                  window, len, buf, file, notifyData);
       }
       else
       {
              err = NPERR_INCOMPATIBLE_VERSION_ERROR;
       }
       return err;
}
void NPN_PushPopupsEnabledState ( NPP  instance,
NPBool  enabled 
)

Definition at line 306 of file npmac.cpp.

void NPN_ReloadPlugins ( NPBool  reloadPages)

Definition at line 264 of file npmac.cpp.

NPError NPN_RequestRead ( NPStream stream,
NPByteRange rangeList 
)

Definition at line 186 of file npmac.cpp.

{
       return CallNPN_RequestReadProc(gNetscapeFuncs.requestread, stream, rangeList);
}
NPError NPN_SetValue ( NPP  instance,
NPPVariable  variable,
void value 
)

Definition at line 286 of file npmac.cpp.

{
       return CallNPN_SetValueProc( gNetscapeFuncs.setvalue, instance, variable, value);
}
void NPN_Status ( NPP  instance,
const char *  message 
)

Definition at line 239 of file npmac.cpp.

const char* NPN_UserAgent ( NPP  instance)

Definition at line 244 of file npmac.cpp.

void NPN_Version ( int plugin_major,
int plugin_minor,
int netscape_major,
int netscape_minor 
)

Definition at line 135 of file npmac.cpp.

{
       *plugin_major = NP_VERSION_MAJOR;
       *plugin_minor = NP_VERSION_MINOR;
       *netscape_major = gNetscapeFuncs.version >> 8;          // Major version is in high byte
       *netscape_minor = gNetscapeFuncs.version & 0xFF; // Minor version is in low byte
}
int32 NPN_Write ( NPP  instance,
NPStream stream,
int32  len,
void buffer 
)

Definition at line 207 of file npmac.cpp.

{
       int navMinorVers = gNetscapeFuncs.version & 0xFF;
       NPError err;
       
       if( navMinorVers >= NPVERS_HAS_STREAMOUTPUT )
       {
              err = CallNPN_WriteProc(gNetscapeFuncs.write, instance, stream, len, buffer);
       }
       else
       {
              err = NPERR_INCOMPATIBLE_VERSION_ERROR;
       }
       return err;
}
NPPluginFuncs NPP_ShutdownUPP* unloadUpp PLUGINDEBUGSTR ( "\pmain"  )
NPError Private_Destroy ( NPP  instance,
NPSavedData **  save 
)
NPError Private_DestroyStream ( NPP  instance,
NPStream stream,
NPError  reason 
)

Definition at line 35 of file npwin.cpp.

{
    jref clazz = NPP_GetJavaClass();
    if (clazz) {
              JRIEnv* env = NPN_GetJavaEnv();
              return JRI_NewGlobalRef(env, clazz);
    }
    return NULL;
}

Here is the call graph for this function:

Here is the caller graph for this function:

int16 Private_HandleEvent ( NPP  instance,
void event 
)
NPError Private_New ( NPMIMEType  pluginType,
NPP  instance,
uint16  mode,
int16  argc,
char *  argn[],
char *  argv[],
NPSavedData saved 
)
NPError Private_NewStream ( NPP  instance,
NPMIMEType  type,
NPStream stream,
NPBool  seekable,
uint16 stype 
)
void Private_Print ( NPP  instance,
NPPrint platformPrint 
)
NPError Private_SetWindow ( NPP  instance,
NPWindow window 
)
void Private_StreamAsFile ( NPP  instance,
NPStream stream,
const char *  fname 
)
void Private_URLNotify ( NPP  instance,
const char *  url,
NPReason  reason,
void notifyData 
)
int32 Private_Write ( NPP  instance,
NPStream stream,
int32  offset,
int32  len,
void buffer 
)
int32 Private_WriteReady ( NPP  instance,
NPStream stream 
)
void SetUpQD ( void  )

Variable Documentation

Definition at line 456 of file npmac.cpp.

Definition at line 123 of file npmac.cpp.

short gResFile

Definition at line 122 of file npmac.cpp.

Definition at line 452 of file npmac.cpp.