1998-12-03 01:38:19 +00:00
|
|
|
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
|
|
|
*
|
|
|
|
* The contents of this file are subject to the Netscape Public License
|
|
|
|
* Version 1.0 (the "License"); you may not use this file except in
|
|
|
|
* compliance with the License. You may obtain a copy of the License at
|
|
|
|
* http://www.mozilla.org/NPL/
|
|
|
|
*
|
|
|
|
* Software distributed under the License is distributed on an "AS IS"
|
|
|
|
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
|
|
|
|
* the License for the specific language governing rights and limitations
|
|
|
|
* under the License.
|
|
|
|
*
|
|
|
|
* The Original Code is Mozilla Communicator client code.
|
|
|
|
*
|
|
|
|
* The Initial Developer of the Original Code is Netscape Communications
|
|
|
|
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
|
|
|
* Netscape Communications Corporation. All Rights Reserved.
|
|
|
|
*/
|
1998-12-29 23:32:11 +00:00
|
|
|
|
1999-01-05 10:39:04 +00:00
|
|
|
#define NS_IMPL_IDS
|
1998-12-03 01:38:19 +00:00
|
|
|
#include "nsIAppShellService.h"
|
1999-01-22 22:22:13 +00:00
|
|
|
#include "nsICmdLineService.h"
|
1999-03-22 07:52:22 +00:00
|
|
|
#include "nsIDOMXPConnectFactory.h"
|
1999-01-21 07:29:53 +00:00
|
|
|
#include "nsAppShellCIDs.h"
|
1999-04-07 06:35:05 +00:00
|
|
|
#include "nsINetSupportDialogService.h"
|
1999-02-25 18:04:50 +00:00
|
|
|
#include "nsIEditor.h"
|
1999-05-06 13:35:25 +00:00
|
|
|
#include "nsIComponentManager.h"
|
1999-05-06 15:19:22 +00:00
|
|
|
#include "nsIServiceManager.h"
|
|
|
|
|
|
|
|
#include "nsFileSpec.h"
|
|
|
|
#include "nsFileLocations.h"
|
|
|
|
#include "nsIFileLocator.h"
|
1999-02-25 18:04:50 +00:00
|
|
|
|
1999-02-03 16:50:05 +00:00
|
|
|
#include "nsAppCoresCIDs.h"
|
1999-02-16 16:46:19 +00:00
|
|
|
#include "nsIDOMAppCoresManager.h"
|
1999-02-03 16:50:05 +00:00
|
|
|
#include "nsIDOMBrowserAppCore.h"
|
1999-02-25 18:04:50 +00:00
|
|
|
#include "nsIDOMEditorAppCore.h"
|
1999-02-03 16:50:05 +00:00
|
|
|
|
1999-05-06 15:19:22 +00:00
|
|
|
|
1999-02-16 16:46:19 +00:00
|
|
|
static NS_DEFINE_IID(kIAppCoresManagerIID, NS_IDOMAPPCORESMANAGER_IID);
|
|
|
|
static NS_DEFINE_IID(kAppCoresManagerCID, NS_APPCORESMANAGER_CID);
|
|
|
|
static NS_DEFINE_IID(kToolkitCoreCID, NS_TOOLKITCORE_CID);
|
1999-04-07 04:26:43 +00:00
|
|
|
static NS_DEFINE_IID(kDOMPropsCoreCID, NS_DOMPROPSCORE_CID);
|
1999-04-05 22:11:12 +00:00
|
|
|
static NS_DEFINE_IID(kPrefsCoreCID, NS_PREFSCORE_CID);
|
1999-05-26 22:42:49 +00:00
|
|
|
static NS_DEFINE_IID(kSignonCoreCID, NS_SIGNONCORE_CID);
|
|
|
|
static NS_DEFINE_IID(kWalletCoreCID, NS_WALLETCORE_CID);
|
1999-05-04 19:37:51 +00:00
|
|
|
static NS_DEFINE_IID(kProfileCoreCID, NS_PROFILECORE_CID);
|
1999-02-16 16:46:19 +00:00
|
|
|
static NS_DEFINE_IID(kToolbarCoreCID, NS_TOOLBARCORE_CID);
|
|
|
|
static NS_DEFINE_IID(kBrowserAppCoreCID, NS_BROWSERAPPCORE_CID);
|
1999-02-25 18:04:50 +00:00
|
|
|
static NS_DEFINE_IID(kEditorAppCoreCID, NS_EDITORAPPCORE_CID);
|
1999-03-19 01:45:03 +00:00
|
|
|
static NS_DEFINE_IID(kRDFCoreCID, NS_RDFCORE_CID);
|
1999-02-03 16:50:05 +00:00
|
|
|
|
1999-04-01 20:30:20 +00:00
|
|
|
|
1998-12-03 01:38:19 +00:00
|
|
|
#ifdef XP_PC
|
|
|
|
|
|
|
|
#define APPSHELL_DLL "nsappshell.dll"
|
1998-12-29 23:32:11 +00:00
|
|
|
#define BROWSER_DLL "nsbrowser.dll"
|
1999-02-03 16:50:05 +00:00
|
|
|
#define APPCORES_DLL "appcores.dll"
|
1999-02-25 18:04:50 +00:00
|
|
|
#define EDITOR_DLL "ender.dll"
|
1998-12-29 23:32:11 +00:00
|
|
|
|
1998-12-03 01:38:19 +00:00
|
|
|
#else
|
|
|
|
|
|
|
|
#ifdef XP_MAC
|
|
|
|
|
1998-12-09 20:40:18 +00:00
|
|
|
#define APPSHELL_DLL "APPSHELL_DLL"
|
1999-02-03 16:50:05 +00:00
|
|
|
#define APPCORES_DLL "APPCORES_DLL"
|
1999-02-25 18:04:50 +00:00
|
|
|
#define EDITOR_DLL "ENDER_DLL"
|
1998-12-03 01:38:19 +00:00
|
|
|
|
|
|
|
#else
|
|
|
|
|
|
|
|
// XP_UNIX
|
1999-06-03 03:31:56 +00:00
|
|
|
#define APPSHELL_DLL "libnsappshell.so"
|
|
|
|
#define APPCORES_DLL "libappcores.so"
|
|
|
|
#define EDITOR_DLL "libender.so"
|
1998-12-08 22:43:52 +00:00
|
|
|
|
1998-12-03 01:38:19 +00:00
|
|
|
#endif // XP_MAC
|
|
|
|
|
|
|
|
#endif // XP_PC
|
|
|
|
|
1999-04-02 20:40:12 +00:00
|
|
|
// Class IDs
|
1998-12-29 23:32:11 +00:00
|
|
|
static NS_DEFINE_IID(kCAppShellServiceCID, NS_APPSHELL_SERVICE_CID);
|
1999-01-22 22:22:13 +00:00
|
|
|
static NS_DEFINE_IID(kCCmdLineServiceCID, NS_COMMANDLINE_SERVICE_CID);
|
1999-04-02 20:40:12 +00:00
|
|
|
static NS_DEFINE_IID(kFileLocatorCID, NS_FILELOCATOR_CID);
|
1999-03-22 07:52:22 +00:00
|
|
|
static NS_DEFINE_IID(kXPConnectFactoryCID, NS_XPCONNECTFACTORY_CID);
|
1999-04-07 06:35:05 +00:00
|
|
|
static NS_DEFINE_IID(kNetSupportDialogCID, NS_NETSUPPORTDIALOG_CID);
|
1999-04-28 04:53:50 +00:00
|
|
|
static NS_DEFINE_IID(kProtocolHelperCID, NS_PROTOCOL_HELPER_CID);
|
1999-01-22 22:22:13 +00:00
|
|
|
|
1999-05-06 13:35:25 +00:00
|
|
|
nsresult NS_AutoregisterComponents()
|
|
|
|
{
|
|
|
|
nsresult rv = NS_ERROR_FAILURE;
|
|
|
|
|
1999-05-06 15:19:22 +00:00
|
|
|
NS_WITH_SERVICE(nsIFileLocator, locator, kFileLocatorCID, &rv);
|
|
|
|
|
|
|
|
if (NS_FAILED(rv))
|
|
|
|
return rv;
|
|
|
|
|
|
|
|
nsFileSpec sysdir;
|
|
|
|
rv = locator->GetFileLocation(nsSpecialFileSpec::App_ComponentsDirectory, &sysdir);
|
1999-05-06 13:35:25 +00:00
|
|
|
|
1999-05-06 15:19:22 +00:00
|
|
|
if (NS_FAILED(rv))
|
|
|
|
return rv;
|
|
|
|
|
1999-05-10 05:34:26 +00:00
|
|
|
nsNSPRPath componentsDir(sysdir);
|
1999-05-06 13:35:25 +00:00
|
|
|
const char *componentsDirPath = (const char *) componentsDir;
|
|
|
|
if (componentsDirPath != NULL)
|
|
|
|
{
|
|
|
|
rv = nsComponentManager::AutoRegister(nsIComponentManager::NS_Startup, componentsDirPath);
|
|
|
|
}
|
|
|
|
return rv;
|
|
|
|
}
|
|
|
|
|
1999-01-05 10:39:04 +00:00
|
|
|
/*
|
|
|
|
* This evil file will go away when the XPCOM registry can be
|
|
|
|
* externally initialized!
|
|
|
|
*
|
|
|
|
* Until then, include the real file to keep everything in sync.
|
|
|
|
*/
|
1999-01-05 19:51:59 +00:00
|
|
|
#ifdef XP_MAC
|
|
|
|
#include ":::webshell:tests:viewer:nsSetupRegistry.cpp"
|
|
|
|
#else
|
1999-01-05 10:39:04 +00:00
|
|
|
#include "../../webshell/tests/viewer/nsSetupRegistry.cpp"
|
1999-01-05 19:51:59 +00:00
|
|
|
#endif
|
1999-01-05 10:39:04 +00:00
|
|
|
|
1998-12-03 01:38:19 +00:00
|
|
|
extern "C" void
|
1999-01-05 10:39:04 +00:00
|
|
|
NS_SetupRegistry_1()
|
1998-12-03 01:38:19 +00:00
|
|
|
{
|
1999-05-06 23:09:57 +00:00
|
|
|
nsComponentManager::RegisterComponent(kFileLocatorCID, NULL, NULL, APPSHELL_DLL, PR_FALSE, PR_FALSE);
|
|
|
|
|
|
|
|
// This *has* to happen after registration of nsIFileLocator as the call
|
|
|
|
// required it.
|
|
|
|
//
|
|
|
|
// The right thing for autoregistration which causes dynamic component
|
|
|
|
// registraion is to happen after all the static RegisterComponents()
|
|
|
|
// have been registered. But doing that is causing a coredump with
|
|
|
|
// jsdom.dll. Puttin that off until that gets resolved.
|
|
|
|
NS_AutoregisterComponents();
|
|
|
|
|
1999-01-05 10:39:04 +00:00
|
|
|
/*
|
|
|
|
* Call the standard NS_SetupRegistry() implemented in
|
|
|
|
* webshell/tests/viewer/nsSetupregistry.cpp
|
|
|
|
*/
|
|
|
|
NS_SetupRegistry();
|
1998-12-03 01:38:19 +00:00
|
|
|
|
1999-03-09 09:44:27 +00:00
|
|
|
nsComponentManager::RegisterComponent(kCAppShellServiceCID, NULL, NULL, APPSHELL_DLL, PR_FALSE, PR_FALSE);
|
|
|
|
nsComponentManager::RegisterComponent(kCCmdLineServiceCID, NULL, NULL, APPSHELL_DLL, PR_FALSE, PR_FALSE);
|
1999-03-22 07:52:22 +00:00
|
|
|
nsComponentManager::RegisterComponent(kXPConnectFactoryCID, NULL, NULL, APPSHELL_DLL, PR_FALSE, PR_FALSE);
|
1999-04-07 06:35:05 +00:00
|
|
|
nsComponentManager::RegisterComponent(kNetSupportDialogCID, NULL, NULL, APPSHELL_DLL, PR_TRUE, PR_TRUE);
|
1999-04-28 04:53:50 +00:00
|
|
|
nsComponentManager::RegisterComponent(kProtocolHelperCID, NULL, NULL, APPSHELL_DLL, PR_TRUE, PR_TRUE);
|
|
|
|
|
1999-02-03 16:50:05 +00:00
|
|
|
|
1999-03-09 09:44:27 +00:00
|
|
|
nsComponentManager::RegisterComponent(kAppCoresManagerCID, NULL, NULL, APPCORES_DLL, PR_FALSE, PR_FALSE);
|
|
|
|
nsComponentManager::RegisterComponent(kToolkitCoreCID, NULL, NULL, APPCORES_DLL, PR_FALSE, PR_FALSE);
|
1999-04-07 04:26:43 +00:00
|
|
|
nsComponentManager::RegisterComponent(kDOMPropsCoreCID, NULL, NULL, APPCORES_DLL, PR_FALSE, PR_FALSE);
|
1999-04-05 22:11:12 +00:00
|
|
|
nsComponentManager::RegisterComponent(kPrefsCoreCID, NULL, NULL, APPCORES_DLL, PR_FALSE, PR_FALSE);
|
1999-05-26 22:42:49 +00:00
|
|
|
nsComponentManager::RegisterComponent(kSignonCoreCID, NULL, NULL, APPCORES_DLL, PR_FALSE, PR_FALSE);
|
|
|
|
nsComponentManager::RegisterComponent(kWalletCoreCID, NULL, NULL, APPCORES_DLL, PR_FALSE, PR_FALSE);
|
1999-05-04 19:37:51 +00:00
|
|
|
nsComponentManager::RegisterComponent(kProfileCoreCID, NULL, NULL, APPCORES_DLL, PR_FALSE, PR_FALSE);
|
1999-03-09 09:44:27 +00:00
|
|
|
nsComponentManager::RegisterComponent(kToolbarCoreCID, NULL, NULL, APPCORES_DLL, PR_FALSE, PR_FALSE);
|
|
|
|
nsComponentManager::RegisterComponent(kBrowserAppCoreCID, NULL, NULL, APPCORES_DLL, PR_FALSE, PR_FALSE);
|
|
|
|
nsComponentManager::RegisterComponent(kEditorAppCoreCID, NULL, NULL, APPCORES_DLL, PR_FALSE, PR_FALSE);
|
1999-03-19 01:45:03 +00:00
|
|
|
nsComponentManager::RegisterComponent(kRDFCoreCID, NULL, NULL, APPCORES_DLL, PR_FALSE, PR_FALSE);
|
1999-04-07 06:35:05 +00:00
|
|
|
|
1999-03-09 00:05:27 +00:00
|
|
|
//All Editor registration is done in webshell/tests/viewer/nsSetupregistry.cpp
|
1999-05-06 15:19:22 +00:00
|
|
|
|
1998-12-03 01:38:19 +00:00
|
|
|
}
|
1999-04-01 20:30:20 +00:00
|
|
|
|
|
|
|
|
1999-05-06 15:19:22 +00:00
|
|
|
|
|
|
|
|