From 5445c054f5762ff2a72eb44730c16675615cd8a5 Mon Sep 17 00:00:00 2001 From: "amusil%netscape.com" Date: Sun, 22 Nov 1998 23:13:44 +0000 Subject: [PATCH] Fix for Bug 1416. Moving the call of the plugin entry point into Initialize (after the mPluginManager is set up). This is so that NPN calls can get resolved if the plugin makes them in the entry point routine. git-svn-id: svn://10.0.0.236/trunk@15137 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/modules/plugin/base/src/ns4xPlugin.cpp | 11 ++++++----- mozilla/modules/plugin/base/src/ns4xPlugin.h | 3 ++- mozilla/modules/plugin/nglsrc/ns4xPlugin.cpp | 11 ++++++----- mozilla/modules/plugin/nglsrc/ns4xPlugin.h | 3 ++- 4 files changed, 16 insertions(+), 12 deletions(-) diff --git a/mozilla/modules/plugin/base/src/ns4xPlugin.cpp b/mozilla/modules/plugin/base/src/ns4xPlugin.cpp index 631bc2eb122..cdec5d12301 100644 --- a/mozilla/modules/plugin/base/src/ns4xPlugin.cpp +++ b/mozilla/modules/plugin/base/src/ns4xPlugin.cpp @@ -74,12 +74,13 @@ ns4xPlugin::CheckClassInitialized(void) //////////////////////////////////////////////////////////////////////// -ns4xPlugin::ns4xPlugin(NPPluginFuncs* callbacks, NP_PLUGINSHUTDOWN aShutdown) +ns4xPlugin::ns4xPlugin(NPPluginFuncs* callbacks, NP_PLUGINSHUTDOWN aShutdown, NP_PLUGININIT aInit) { NS_INIT_REFCNT(); memcpy((void*) &fCallbacks, (void*) callbacks, sizeof(fCallbacks)); fShutdownEntry = aShutdown; + fInitialize = aInit; } @@ -192,10 +193,7 @@ ns4xPlugin::CreatePlugin(PRLibrary *library, if (pfnInitialize == NULL) return NS_ERROR_UNEXPECTED; // XXX Right error? - if (pfnInitialize(&ns4xPlugin::CALLBACKS) != NS_OK) - return NS_ERROR_UNEXPECTED; // XXX shoudl convert the 4.x error... - - *result = new ns4xPlugin(&callbacks, pfnShutdown); + *result = new ns4xPlugin(&callbacks, pfnShutdown, pfnInitialize); NS_ADDREF(*result); @@ -254,6 +252,9 @@ ns4xPlugin::Initialize(nsISupports* browserInterfaces) if (nsnull == mMalloc) rv = browserInterfaces->QueryInterface(kIMallocIID, (void **)&mMalloc); + if (fInitialize(&ns4xPlugin::CALLBACKS) != NS_OK) + rv = NS_ERROR_UNEXPECTED; // XXX shoudl convert the 4.x error... + return rv; } diff --git a/mozilla/modules/plugin/base/src/ns4xPlugin.h b/mozilla/modules/plugin/base/src/ns4xPlugin.h index e662bba504e..cce633051d2 100644 --- a/mozilla/modules/plugin/base/src/ns4xPlugin.h +++ b/mozilla/modules/plugin/base/src/ns4xPlugin.h @@ -64,7 +64,7 @@ typedef NPError (PLUGIN_ENTRYPOINT_CALL_TYPE *NP_PLUGINSHUTDOWN)(); class ns4xPlugin : public nsILiveConnectPlugin { public: - ns4xPlugin(NPPluginFuncs* callbacks, NP_PLUGINSHUTDOWN aShutdown); + ns4xPlugin(NPPluginFuncs* callbacks, NP_PLUGINSHUTDOWN aShutdown, NP_PLUGININIT aInit); ~ns4xPlugin(void); NS_DECL_ISUPPORTS @@ -219,6 +219,7 @@ protected: */ NPPluginFuncs fCallbacks; + NP_PLUGININIT fInitialize; NP_PLUGINSHUTDOWN fShutdownEntry; /** diff --git a/mozilla/modules/plugin/nglsrc/ns4xPlugin.cpp b/mozilla/modules/plugin/nglsrc/ns4xPlugin.cpp index 631bc2eb122..cdec5d12301 100644 --- a/mozilla/modules/plugin/nglsrc/ns4xPlugin.cpp +++ b/mozilla/modules/plugin/nglsrc/ns4xPlugin.cpp @@ -74,12 +74,13 @@ ns4xPlugin::CheckClassInitialized(void) //////////////////////////////////////////////////////////////////////// -ns4xPlugin::ns4xPlugin(NPPluginFuncs* callbacks, NP_PLUGINSHUTDOWN aShutdown) +ns4xPlugin::ns4xPlugin(NPPluginFuncs* callbacks, NP_PLUGINSHUTDOWN aShutdown, NP_PLUGININIT aInit) { NS_INIT_REFCNT(); memcpy((void*) &fCallbacks, (void*) callbacks, sizeof(fCallbacks)); fShutdownEntry = aShutdown; + fInitialize = aInit; } @@ -192,10 +193,7 @@ ns4xPlugin::CreatePlugin(PRLibrary *library, if (pfnInitialize == NULL) return NS_ERROR_UNEXPECTED; // XXX Right error? - if (pfnInitialize(&ns4xPlugin::CALLBACKS) != NS_OK) - return NS_ERROR_UNEXPECTED; // XXX shoudl convert the 4.x error... - - *result = new ns4xPlugin(&callbacks, pfnShutdown); + *result = new ns4xPlugin(&callbacks, pfnShutdown, pfnInitialize); NS_ADDREF(*result); @@ -254,6 +252,9 @@ ns4xPlugin::Initialize(nsISupports* browserInterfaces) if (nsnull == mMalloc) rv = browserInterfaces->QueryInterface(kIMallocIID, (void **)&mMalloc); + if (fInitialize(&ns4xPlugin::CALLBACKS) != NS_OK) + rv = NS_ERROR_UNEXPECTED; // XXX shoudl convert the 4.x error... + return rv; } diff --git a/mozilla/modules/plugin/nglsrc/ns4xPlugin.h b/mozilla/modules/plugin/nglsrc/ns4xPlugin.h index e662bba504e..cce633051d2 100644 --- a/mozilla/modules/plugin/nglsrc/ns4xPlugin.h +++ b/mozilla/modules/plugin/nglsrc/ns4xPlugin.h @@ -64,7 +64,7 @@ typedef NPError (PLUGIN_ENTRYPOINT_CALL_TYPE *NP_PLUGINSHUTDOWN)(); class ns4xPlugin : public nsILiveConnectPlugin { public: - ns4xPlugin(NPPluginFuncs* callbacks, NP_PLUGINSHUTDOWN aShutdown); + ns4xPlugin(NPPluginFuncs* callbacks, NP_PLUGINSHUTDOWN aShutdown, NP_PLUGININIT aInit); ~ns4xPlugin(void); NS_DECL_ISUPPORTS @@ -219,6 +219,7 @@ protected: */ NPPluginFuncs fCallbacks; + NP_PLUGININIT fInitialize; NP_PLUGINSHUTDOWN fShutdownEntry; /**