If we fail to register or unregister a component, we should remember the error code and return it, BUT we should also still try to register/unregister the rest of the components.
git-svn-id: svn://10.0.0.236/trunk@33883 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
@@ -336,9 +336,7 @@ extern "C" NS_EXPORT nsresult
|
||||
NSRegisterSelf(nsISupports* aServMgr, const char* path)
|
||||
{
|
||||
nsresult rv;
|
||||
|
||||
nsCOMPtr<nsIServiceManager> servMgr(do_QueryInterface(aServMgr, &rv));
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
nsresult finalResult = NS_OK;
|
||||
|
||||
NS_WITH_SERVICE(nsIComponentManager, compMgr, kComponentManagerCID, &rv);
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
@@ -348,81 +346,96 @@ NSRegisterSelf(nsISupports* aServMgr, const char* path)
|
||||
"Folder Event",
|
||||
nsnull,
|
||||
path, PR_TRUE, PR_TRUE);
|
||||
if (NS_FAILED(rv)) finalResult = rv;
|
||||
rv = compMgr->RegisterComponent(kCUrlListenerManagerCID,
|
||||
"UrlListenerManager",
|
||||
"component://netscape/messenger/urlListenerManager",
|
||||
path, PR_TRUE, PR_TRUE);
|
||||
if (NS_FAILED(rv)) finalResult = rv;
|
||||
|
||||
rv = compMgr->RegisterComponent(kCMessengerBootstrapCID,
|
||||
"Netscape Messenger Bootstrapper",
|
||||
"component://netscape/appshell/component/messenger",
|
||||
path,
|
||||
PR_TRUE, PR_TRUE);
|
||||
if (NS_FAILED(rv)) finalResult = rv;
|
||||
|
||||
rv = compMgr->RegisterComponent(kCMessengerCID,
|
||||
"Messenger DOM interaction object",
|
||||
"component://netscape/messenger",
|
||||
path,
|
||||
PR_TRUE, PR_TRUE);
|
||||
if (NS_FAILED(rv)) finalResult = rv;
|
||||
|
||||
rv = compMgr->RegisterComponent(kMsgAccountManagerCID,
|
||||
"Messenger Account Manager",
|
||||
"component://netscape/messenger/account-manager",
|
||||
path,
|
||||
PR_TRUE, PR_TRUE);
|
||||
if (NS_FAILED(rv)) finalResult = rv;
|
||||
|
||||
rv = compMgr->RegisterComponent(kMsgAccountCID,
|
||||
"Messenger User Account",
|
||||
"component://netscape/messenger/account",
|
||||
path,
|
||||
PR_TRUE, PR_TRUE);
|
||||
if (NS_FAILED(rv)) finalResult = rv;
|
||||
|
||||
rv = compMgr->RegisterComponent(kMsgIdentityCID,
|
||||
"Messenger User Identity",
|
||||
"component://netscape/messenger/identity",
|
||||
path,
|
||||
PR_TRUE, PR_TRUE);
|
||||
if (NS_FAILED(rv)) finalResult = rv;
|
||||
|
||||
rv = compMgr->RegisterComponent(kCMsgMailSessionCID,
|
||||
"Mail Session",
|
||||
"component://netscape/messenger/services/session",
|
||||
path,
|
||||
PR_TRUE, PR_TRUE);
|
||||
if (NS_FAILED(rv)) finalResult = rv;
|
||||
|
||||
// register our RDF datasources:
|
||||
rv = compMgr->RegisterComponent(kMailNewsFolderDataSourceCID,
|
||||
"Mail/News Folder Data Source",
|
||||
NS_RDF_DATASOURCE_PROGID_PREFIX "mailnewsfolders",
|
||||
path, PR_TRUE, PR_TRUE);
|
||||
if (NS_FAILED(rv)) finalResult = rv;
|
||||
|
||||
// register our RDF datasources:
|
||||
rv = compMgr->RegisterComponent(kMailNewsMessageDataSourceCID,
|
||||
"Mail/News Message Data Source",
|
||||
NS_RDF_DATASOURCE_PROGID_PREFIX "mailnewsmessages",
|
||||
path, PR_TRUE, PR_TRUE);
|
||||
if (NS_FAILED(rv)) finalResult = rv;
|
||||
|
||||
rv = compMgr->RegisterComponent(kCMessageViewDataSourceCID,
|
||||
"Mail/News Message View Data Source",
|
||||
NS_RDF_DATASOURCE_PROGID_PREFIX "mail-messageview",
|
||||
path, PR_TRUE, PR_TRUE);
|
||||
if (NS_FAILED(rv)) finalResult = rv;
|
||||
|
||||
rv = compMgr->RegisterComponent(kMsgAccountManagerDataSourceCID,
|
||||
"Mail/News Account Manager Data Source",
|
||||
NS_RDF_DATASOURCE_PROGID_PREFIX "msgaccountmanager",
|
||||
path, PR_TRUE, PR_TRUE);
|
||||
if (NS_FAILED(rv)) finalResult = rv;
|
||||
rv = compMgr->RegisterComponent(kMsgAccountDataSourceCID,
|
||||
"Mail/News Account Data Source",
|
||||
NS_RDF_DATASOURCE_PROGID_PREFIX "msgaccounts",
|
||||
path, PR_TRUE, PR_TRUE);
|
||||
if (NS_FAILED(rv)) finalResult = rv;
|
||||
|
||||
rv = compMgr->RegisterComponent(kMsgIdentityDataSourceCID,
|
||||
"Mail/News Identity Data Source",
|
||||
NS_RDF_DATASOURCE_PROGID_PREFIX "msgidentities",
|
||||
path, PR_TRUE, PR_TRUE);
|
||||
if (NS_FAILED(rv)) finalResult = rv;
|
||||
rv = compMgr->RegisterComponent(kMsgServerDataSourceCID,
|
||||
"Mail/News Server Data Source",
|
||||
NS_RDF_DATASOURCE_PROGID_PREFIX "msgservers",
|
||||
path, PR_TRUE, PR_TRUE);
|
||||
if (NS_FAILED(rv)) finalResult = rv;
|
||||
|
||||
#ifdef DEBUG_bienvenu
|
||||
printf("register filter service\n");
|
||||
@@ -430,6 +443,7 @@ NSRegisterSelf(nsISupports* aServMgr, const char* path)
|
||||
"Message Filter Service",
|
||||
"component://netscape/messenger/services/filters",
|
||||
path, PR_TRUE, PR_TRUE);
|
||||
if (NS_FAILED(rv)) finalResult = rv;
|
||||
#endif
|
||||
|
||||
rv = compMgr->RegisterComponent(kMsgBiffManagerCID,
|
||||
@@ -437,46 +451,59 @@ NSRegisterSelf(nsISupports* aServMgr, const char* path)
|
||||
"component://netscape/messenger/biffManager",
|
||||
path,
|
||||
PR_TRUE, PR_TRUE);
|
||||
if (NS_FAILED(rv)) finalResult = rv;
|
||||
#ifdef NS_DEBUG
|
||||
printf("mailnews registering from %s\n",path);
|
||||
#endif
|
||||
|
||||
return rv;
|
||||
return finalResult;
|
||||
}
|
||||
|
||||
extern "C" NS_EXPORT nsresult
|
||||
NSUnregisterSelf(nsISupports* aServMgr, const char* path)
|
||||
{
|
||||
nsresult rv;
|
||||
|
||||
nsCOMPtr<nsIServiceManager> servMgr(do_QueryInterface(aServMgr, &rv));
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
nsresult rv = NS_OK;
|
||||
nsresult finalResult = NS_OK;
|
||||
|
||||
NS_WITH_SERVICE(nsIComponentManager, compMgr, kComponentManagerCID, &rv);
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
|
||||
rv = compMgr->UnregisterComponent(kCUrlListenerManagerCID, path);
|
||||
if (NS_FAILED(rv)) finalResult = rv;
|
||||
|
||||
rv = compMgr->UnregisterComponent(kCMessengerBootstrapCID, path);
|
||||
if (NS_FAILED(rv)) finalResult = rv;
|
||||
|
||||
rv = compMgr->UnregisterComponent(kCMsgFolderEventCID, path);
|
||||
if (NS_FAILED(rv)) finalResult = rv;
|
||||
|
||||
rv = compMgr->UnregisterComponent(kCMsgMailSessionCID, path);
|
||||
if (NS_FAILED(rv)) finalResult = rv;
|
||||
rv = compMgr->UnregisterComponent(kMailNewsFolderDataSourceCID, path);
|
||||
if (NS_FAILED(rv)) finalResult = rv;
|
||||
rv = compMgr->UnregisterComponent(kMailNewsMessageDataSourceCID, path);
|
||||
if (NS_FAILED(rv)) finalResult = rv;
|
||||
rv = compMgr->UnregisterComponent(kCMessageViewDataSourceCID, path);
|
||||
if (NS_FAILED(rv)) finalResult = rv;
|
||||
|
||||
// Account Manager RDF stuff
|
||||
rv = compMgr->UnregisterComponent(kMsgAccountManagerDataSourceCID, path);
|
||||
if (NS_FAILED(rv)) finalResult = rv;
|
||||
rv = compMgr->UnregisterComponent(kMsgAccountDataSourceCID, path);
|
||||
if (NS_FAILED(rv)) finalResult = rv;
|
||||
rv = compMgr->UnregisterComponent(kMsgIdentityDataSourceCID, path);
|
||||
if (NS_FAILED(rv)) finalResult = rv;
|
||||
rv = compMgr->UnregisterComponent(kMsgServerDataSourceCID, path);
|
||||
if (NS_FAILED(rv)) finalResult = rv;
|
||||
#ifdef DEBUG_bienvenu
|
||||
rv = compMgr->UnregisterComponent(kMsgFilterServiceCID, path);
|
||||
if (NS_FAILED(rv)) finalResult = rv;
|
||||
#endif
|
||||
|
||||
//Biff
|
||||
rv = compMgr->UnregisterComponent(kMsgBiffManagerCID, path);
|
||||
return rv;
|
||||
if (NS_FAILED(rv)) finalResult = rv;
|
||||
return finalResult;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
Reference in New Issue
Block a user