The DocumentLoader is now a global service. Rather than creating document loaders via the factory, they are now created as child loaders of the global DocumentLoader service which is accessable via GetService.

git-svn-id: svn://10.0.0.236/trunk@17935 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
rpotts%netscape.com
1999-01-17 11:48:58 +00:00
parent dc9ee3099d
commit 64515206b5
5 changed files with 136 additions and 191 deletions

View File

@@ -344,7 +344,7 @@ protected:
static NS_DEFINE_IID(kEventQueueServiceCID, NS_EVENTQUEUESERVICE_CID);
static NS_DEFINE_IID(kChildCID, NS_CHILD_CID);
static NS_DEFINE_IID(kDeviceContextCID, NS_DEVICE_CONTEXT_CID);
static NS_DEFINE_IID(kDocumentLoaderCID, NS_DOCUMENTLOADER_CID);
static NS_DEFINE_IID(kDocLoaderServiceCID, NS_DOCUMENTLOADER_SERVICE_CID);
static NS_DEFINE_IID(kWebShellCID, NS_WEB_SHELL_CID);
// IID's
@@ -720,10 +720,16 @@ nsWebShell::Init(nsNativeWidget aNativeParent,
NS_RELEASE(parentLoader);
}
} else {
rv = nsRepository::CreateInstance(kDocumentLoaderCID,
nsnull,
nsIDocumentLoader* docLoaderService;
// Get the global document loader service...
rv = nsServiceManager::GetService(kDocLoaderServiceCID,
kIDocumentLoaderIID,
(void**)&mDocLoader);
(nsISupports **)&docLoaderService);
if (NS_SUCCEEDED(rv)) {
rv = docLoaderService->CreateDocumentLoader(&mDocLoader);
nsServiceManager::ReleaseService(kDocLoaderServiceCID, docLoaderService);
}
}
if (NS_FAILED(rv)) {
goto done;