diff --git a/mozilla/docshell/base/nsWebShell.cpp b/mozilla/docshell/base/nsWebShell.cpp index 9b7ba2a5f04..864425c70fe 100644 --- a/mozilla/docshell/base/nsWebShell.cpp +++ b/mozilla/docshell/base/nsWebShell.cpp @@ -225,6 +225,7 @@ protected: static nsIPluginHost *mPluginHost; static nsIPluginManager *mPluginManager; + static PRBool mPluginInited; }; //---------------------------------------------------------------------- @@ -258,6 +259,7 @@ static NS_DEFINE_IID(kILinkHandlerIID, NS_ILINKHANDLER_IID); nsIPluginHost *nsWebShell::mPluginHost = nsnull; nsIPluginManager *nsWebShell::mPluginManager = nsnull; +PRBool nsWebShell::mPluginInited = PR_FALSE; nsresult nsWebShell::CreatePluginHost(void) { @@ -454,9 +456,12 @@ nsWebShell::Init(nsNativeWidget aNativeParent, //be associated with the nsIContentViewerContainer interfaces, //not the nsIWebShell interfaces. this is a hack. MMP - if (PR_TRUE == aAllowPlugins) + if ((PR_TRUE == aAllowPlugins) && (PR_FALSE == mPluginInited)) CreatePluginHost(); + //never attempt to initialize plugins again... + mPluginInited = PR_TRUE; + mScrollPref = aScrolling; WEB_TRACE(WEB_TRACE_CALLS, diff --git a/mozilla/webshell/src/nsWebShell.cpp b/mozilla/webshell/src/nsWebShell.cpp index 9b7ba2a5f04..864425c70fe 100644 --- a/mozilla/webshell/src/nsWebShell.cpp +++ b/mozilla/webshell/src/nsWebShell.cpp @@ -225,6 +225,7 @@ protected: static nsIPluginHost *mPluginHost; static nsIPluginManager *mPluginManager; + static PRBool mPluginInited; }; //---------------------------------------------------------------------- @@ -258,6 +259,7 @@ static NS_DEFINE_IID(kILinkHandlerIID, NS_ILINKHANDLER_IID); nsIPluginHost *nsWebShell::mPluginHost = nsnull; nsIPluginManager *nsWebShell::mPluginManager = nsnull; +PRBool nsWebShell::mPluginInited = PR_FALSE; nsresult nsWebShell::CreatePluginHost(void) { @@ -454,9 +456,12 @@ nsWebShell::Init(nsNativeWidget aNativeParent, //be associated with the nsIContentViewerContainer interfaces, //not the nsIWebShell interfaces. this is a hack. MMP - if (PR_TRUE == aAllowPlugins) + if ((PR_TRUE == aAllowPlugins) && (PR_FALSE == mPluginInited)) CreatePluginHost(); + //never attempt to initialize plugins again... + mPluginInited = PR_TRUE; + mScrollPref = aScrolling; WEB_TRACE(WEB_TRACE_CALLS,