diff --git a/mozilla/modules/plugin/base/src/nsPluginHostImpl.cpp b/mozilla/modules/plugin/base/src/nsPluginHostImpl.cpp index cdbe499a67b..24120f41bc3 100644 --- a/mozilla/modules/plugin/base/src/nsPluginHostImpl.cpp +++ b/mozilla/modules/plugin/base/src/nsPluginHostImpl.cpp @@ -686,6 +686,7 @@ printf("manager getvalue %d called\n", variable); nsresult nsPluginHostImpl :: ReloadPlugins(PRBool reloadPages) { + mPluginsLoaded = PR_FALSE; return LoadPlugins(); } @@ -1211,6 +1212,8 @@ printf("plugin %s added to list %s\n", plugintag->mName, (plugintag->mFlags & NS #endif #endif + mPluginsLoaded = PR_TRUE; + return NS_OK; } @@ -1220,6 +1223,9 @@ nsresult nsPluginHostImpl :: InstantiatePlugin(const char *aMimeType, nsIURL *aU nsPluginTag *plugins = nsnull; PRInt32 variants, cnt; + if (PR_FALSE == mPluginsLoaded) + LoadPlugins(); + if (nsnull != aMimeType) { plugins = mPlugins; diff --git a/mozilla/modules/plugin/base/src/nsPluginHostImpl.h b/mozilla/modules/plugin/base/src/nsPluginHostImpl.h index 661d829c649..876408c6771 100644 --- a/mozilla/modules/plugin/base/src/nsPluginHostImpl.h +++ b/mozilla/modules/plugin/base/src/nsPluginHostImpl.h @@ -169,6 +169,7 @@ private: char *mPluginPath; nsPluginTag *mPlugins; nsIMalloc *mMalloc; + PRBool mPluginsLoaded; }; #endif diff --git a/mozilla/modules/plugin/nglsrc/nsPluginHostImpl.cpp b/mozilla/modules/plugin/nglsrc/nsPluginHostImpl.cpp index cdbe499a67b..24120f41bc3 100644 --- a/mozilla/modules/plugin/nglsrc/nsPluginHostImpl.cpp +++ b/mozilla/modules/plugin/nglsrc/nsPluginHostImpl.cpp @@ -686,6 +686,7 @@ printf("manager getvalue %d called\n", variable); nsresult nsPluginHostImpl :: ReloadPlugins(PRBool reloadPages) { + mPluginsLoaded = PR_FALSE; return LoadPlugins(); } @@ -1211,6 +1212,8 @@ printf("plugin %s added to list %s\n", plugintag->mName, (plugintag->mFlags & NS #endif #endif + mPluginsLoaded = PR_TRUE; + return NS_OK; } @@ -1220,6 +1223,9 @@ nsresult nsPluginHostImpl :: InstantiatePlugin(const char *aMimeType, nsIURL *aU nsPluginTag *plugins = nsnull; PRInt32 variants, cnt; + if (PR_FALSE == mPluginsLoaded) + LoadPlugins(); + if (nsnull != aMimeType) { plugins = mPlugins; diff --git a/mozilla/modules/plugin/nglsrc/nsPluginHostImpl.h b/mozilla/modules/plugin/nglsrc/nsPluginHostImpl.h index 661d829c649..876408c6771 100644 --- a/mozilla/modules/plugin/nglsrc/nsPluginHostImpl.h +++ b/mozilla/modules/plugin/nglsrc/nsPluginHostImpl.h @@ -169,6 +169,7 @@ private: char *mPluginPath; nsPluginTag *mPlugins; nsIMalloc *mMalloc; + PRBool mPluginsLoaded; }; #endif