Using the service manager to access the plugin manager, because it needs to be a singleton.

git-svn-id: svn://10.0.0.236/trunk@23138 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
beard%netscape.com
1999-03-08 00:01:02 +00:00
parent 02c61ddd40
commit 7be9526f8f
2 changed files with 26 additions and 14 deletions

View File

@@ -401,9 +401,9 @@ nsresult nsWebShell::CreatePluginHost(PRBool aAllowPlugins)
{
if (nsnull == mPluginManager)
{
rv = nsRepository::CreateInstance(kCPluginManagerCID, nsnull,
kIPluginManagerIID,
(void**)&mPluginManager);
// use the service manager to obtain the plugin manager.
rv = nsServiceManager::GetService(kCPluginManagerCID, kIPluginManagerIID,
(nsISupports**)&mPluginManager);
if (NS_OK == rv)
{
if (NS_OK == mPluginManager->QueryInterface(kIPluginHostIID,
@@ -428,11 +428,17 @@ nsresult nsWebShell::DestroyPluginHost(void)
if (0 == mPluginInitCnt)
{
if (nsnull != mPluginHost)
if (nsnull != mPluginHost) {
mPluginHost->Destroy();
NS_IF_RELEASE(mPluginManager);
NS_IF_RELEASE(mPluginHost);
mPluginHost->Release();
mPluginHost = NULL;
}
// use the service manager to release the plugin manager.
if (nsnull != mPluginManager) {
nsServiceManager::ReleaseService(kCPluginManagerCID, mPluginManager);
mPluginManager = NULL;
}
}
return NS_OK;