From 6065a9bc2ae97a565a5f9802b218bb8f2ae70c48 Mon Sep 17 00:00:00 2001 From: "Xiaobin.Lu%eng.Sun.com" Date: Wed, 4 Apr 2001 22:12:26 +0000 Subject: [PATCH] Bug 68933 r=sr=Mike Shaver Add GetPluginHost method in order to be used by JavaEnabled implementation git-svn-id: svn://10.0.0.236/trunk@91349 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/dom/src/base/nsPluginArray.cpp | 40 +++++++++++++++++--------- 1 file changed, 26 insertions(+), 14 deletions(-) diff --git a/mozilla/dom/src/base/nsPluginArray.cpp b/mozilla/dom/src/base/nsPluginArray.cpp index 3f29f2e6e8f..3f4d16db6d4 100644 --- a/mozilla/dom/src/base/nsPluginArray.cpp +++ b/mozilla/dom/src/base/nsPluginArray.cpp @@ -37,16 +37,11 @@ static NS_DEFINE_CID(kPluginManagerCID, NS_PLUGINMANAGER_CID); PluginArrayImpl::PluginArrayImpl(nsIDOMNavigator* navigator, nsIDocShell *aDocShell) { + nsresult rv; NS_INIT_ISUPPORTS(); mScriptObject = nsnull; mNavigator = navigator; // don't ADDREF here, needed for parent of script object. - - if (nsServiceManager::GetService(kPluginManagerCID, - NS_GET_IID(nsIPluginHost), - (nsISupports**)&mPluginHost) != NS_OK) { - mPluginHost = nsnull; - } - + mPluginHost = do_GetService(kPluginManagerCID, &rv); mPluginCount = 0; mPluginArray = nsnull; mDocShell = aDocShell; @@ -54,9 +49,6 @@ PluginArrayImpl::PluginArrayImpl(nsIDOMNavigator* navigator, nsIDocShell *aDocSh PluginArrayImpl::~PluginArrayImpl() { - if (mPluginHost != nsnull) - nsServiceManager::ReleaseService(kPluginManagerCID, mPluginHost); - if (mPluginArray != nsnull) { for (PRUint32 i = 0; i < mPluginCount; i++) { NS_IF_RELEASE(mPluginArray[i]); @@ -172,6 +164,27 @@ PluginArrayImpl::NamedItem(const nsAReadableString& aName, return NS_OK; } +nsresult +PluginArrayImpl::GetPluginHost(nsIPluginHost** aPluginHost) +{ + NS_ENSURE_ARG_POINTER(aPluginHost); + + nsresult rv = NS_OK; + + if (!mPluginHost) { + mPluginHost = do_GetService(kPluginManagerCID, &rv); + + if (NS_FAILED(rv)) { + return rv; + } + } + + *aPluginHost = mPluginHost; + NS_IF_ADDREF(*aPluginHost); + + return rv; +} + void PluginArrayImpl::SetDocShell(nsIDocShell* aDocShell) { @@ -194,12 +207,11 @@ PluginArrayImpl::Refresh(PRBool aReloadDocuments) mPluginCount = 0; mPluginArray = nsnull; - if (mPluginHost == nsnull) - res = nsServiceManager::GetService(kPluginManagerCID, NS_GET_IID(nsIPluginHost), (nsISupports**)&mPluginHost); - + if (!mPluginHost) + mPluginHost = do_GetService(kPluginManagerCID, &res); + if(NS_FAILED(res)) { - mPluginHost = nsnull; return res; }