1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/docshell/build/nsDocShellModule.cpp Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,224 @@ 1.4 +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- 1.5 + * 1.6 + * This Source Code Form is subject to the terms of the Mozilla Public 1.7 + * License, v. 2.0. If a copy of the MPL was not distributed with this 1.8 + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 1.9 + 1.10 +#include "mozilla/ModuleUtils.h" 1.11 +#include "nsDocShellCID.h" 1.12 + 1.13 +#include "nsDocShell.h" 1.14 +#include "nsDefaultURIFixup.h" 1.15 +#include "nsWebNavigationInfo.h" 1.16 +#include "nsAboutRedirector.h" 1.17 +#include "nsCDefaultURIFixup.h" 1.18 + 1.19 +// uriloader 1.20 +#include "nsURILoader.h" 1.21 +#include "nsDocLoader.h" 1.22 +#include "nsOSHelperAppService.h" 1.23 +#include "nsExternalProtocolHandler.h" 1.24 +#include "nsPrefetchService.h" 1.25 +#include "nsOfflineCacheUpdate.h" 1.26 +#include "nsLocalHandlerApp.h" 1.27 +#ifdef MOZ_ENABLE_DBUS 1.28 +#include "nsDBusHandlerApp.h" 1.29 +#endif 1.30 +#if defined(MOZ_WIDGET_ANDROID) || defined(MOZ_ENABLE_MEEGOTOUCHSHARE) 1.31 +#include "nsExternalSharingAppService.h" 1.32 +#endif 1.33 +#if defined(MOZ_WIDGET_ANDROID) 1.34 +#include "nsExternalURLHandlerService.h" 1.35 +#endif 1.36 + 1.37 +// session history 1.38 +#include "nsSHEntry.h" 1.39 +#include "nsSHEntryShared.h" 1.40 +#include "nsSHistory.h" 1.41 +#include "nsSHTransaction.h" 1.42 + 1.43 +// download history 1.44 +#include "nsDownloadHistory.h" 1.45 + 1.46 +static bool gInitialized = false; 1.47 + 1.48 +// The one time initialization for this module 1.49 +static nsresult 1.50 +Initialize() 1.51 +{ 1.52 + NS_PRECONDITION(!gInitialized, "docshell module already initialized"); 1.53 + if (gInitialized) { 1.54 + return NS_OK; 1.55 + } 1.56 + gInitialized = true; 1.57 + 1.58 + nsresult rv = nsSHistory::Startup(); 1.59 + NS_ENSURE_SUCCESS(rv, rv); 1.60 + 1.61 + nsSHEntryShared::Startup(); 1.62 + return NS_OK; 1.63 +} 1.64 + 1.65 +static void 1.66 +Shutdown() 1.67 +{ 1.68 + nsSHistory::Shutdown(); 1.69 + nsSHEntryShared::Shutdown(); 1.70 + gInitialized = false; 1.71 +} 1.72 + 1.73 +// docshell 1.74 +NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsDocShell, Init) 1.75 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsDefaultURIFixup) 1.76 +NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsWebNavigationInfo, Init) 1.77 + 1.78 +// uriloader 1.79 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsURILoader) 1.80 +NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsDocLoader, Init) 1.81 +NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsOSHelperAppService, Init) 1.82 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsExternalProtocolHandler) 1.83 +NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsPrefetchService, Init) 1.84 +NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsOfflineCacheUpdateService, 1.85 + nsOfflineCacheUpdateService::GetInstance) 1.86 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsOfflineCacheUpdate) 1.87 +NS_GENERIC_FACTORY_CONSTRUCTOR(PlatformLocalHandlerApp_t) 1.88 +#ifdef MOZ_ENABLE_DBUS 1.89 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsDBusHandlerApp) 1.90 +#endif 1.91 +#if defined(MOZ_WIDGET_ANDROID) || defined(MOZ_ENABLE_MEEGOTOUCHSHARE) 1.92 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsExternalSharingAppService) 1.93 +#endif 1.94 +#if defined(MOZ_WIDGET_ANDROID) 1.95 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsExternalURLHandlerService) 1.96 +#endif 1.97 + 1.98 +// session history 1.99 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsSHEntry) 1.100 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsSHTransaction) 1.101 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsSHistory) 1.102 + 1.103 +// download history 1.104 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsDownloadHistory) 1.105 + 1.106 +NS_DEFINE_NAMED_CID(NS_DOCSHELL_CID); 1.107 +NS_DEFINE_NAMED_CID(NS_DEFAULTURIFIXUP_CID); 1.108 +NS_DEFINE_NAMED_CID(NS_WEBNAVIGATION_INFO_CID); 1.109 +NS_DEFINE_NAMED_CID(NS_ABOUT_REDIRECTOR_MODULE_CID); 1.110 +NS_DEFINE_NAMED_CID(NS_URI_LOADER_CID); 1.111 +NS_DEFINE_NAMED_CID(NS_DOCUMENTLOADER_SERVICE_CID); 1.112 +NS_DEFINE_NAMED_CID(NS_EXTERNALHELPERAPPSERVICE_CID); 1.113 +NS_DEFINE_NAMED_CID(NS_EXTERNALPROTOCOLHANDLER_CID); 1.114 +NS_DEFINE_NAMED_CID(NS_PREFETCHSERVICE_CID); 1.115 +NS_DEFINE_NAMED_CID(NS_OFFLINECACHEUPDATESERVICE_CID); 1.116 +NS_DEFINE_NAMED_CID(NS_OFFLINECACHEUPDATE_CID); 1.117 +NS_DEFINE_NAMED_CID(NS_LOCALHANDLERAPP_CID); 1.118 +#ifdef MOZ_ENABLE_DBUS 1.119 +NS_DEFINE_NAMED_CID(NS_DBUSHANDLERAPP_CID); 1.120 +#endif 1.121 +#if defined(MOZ_WIDGET_ANDROID) || defined(MOZ_ENABLE_MEEGOTOUCHSHARE) 1.122 +NS_DEFINE_NAMED_CID(NS_EXTERNALSHARINGAPPSERVICE_CID); 1.123 +#endif 1.124 +#if defined(MOZ_WIDGET_ANDROID) 1.125 +NS_DEFINE_NAMED_CID(NS_EXTERNALURLHANDLERSERVICE_CID); 1.126 +#endif 1.127 +NS_DEFINE_NAMED_CID(NS_SHENTRY_CID); 1.128 +NS_DEFINE_NAMED_CID(NS_SHTRANSACTION_CID); 1.129 +NS_DEFINE_NAMED_CID(NS_SHISTORY_CID); 1.130 +NS_DEFINE_NAMED_CID(NS_SHISTORY_INTERNAL_CID); 1.131 +NS_DEFINE_NAMED_CID(NS_DOWNLOADHISTORY_CID); 1.132 + 1.133 + 1.134 +const mozilla::Module::CIDEntry kDocShellCIDs[] = { 1.135 + { &kNS_DOCSHELL_CID, false, nullptr, nsDocShellConstructor }, 1.136 + { &kNS_DEFAULTURIFIXUP_CID, false, nullptr, nsDefaultURIFixupConstructor }, 1.137 + { &kNS_WEBNAVIGATION_INFO_CID, false, nullptr, nsWebNavigationInfoConstructor }, 1.138 + { &kNS_ABOUT_REDIRECTOR_MODULE_CID, false, nullptr, nsAboutRedirector::Create }, 1.139 + { &kNS_URI_LOADER_CID, false, nullptr, nsURILoaderConstructor }, 1.140 + { &kNS_DOCUMENTLOADER_SERVICE_CID, false, nullptr, nsDocLoaderConstructor }, 1.141 + { &kNS_EXTERNALHELPERAPPSERVICE_CID, false, nullptr, nsOSHelperAppServiceConstructor }, 1.142 + { &kNS_EXTERNALPROTOCOLHANDLER_CID, false, nullptr, nsExternalProtocolHandlerConstructor }, 1.143 + { &kNS_PREFETCHSERVICE_CID, false, nullptr, nsPrefetchServiceConstructor }, 1.144 + { &kNS_OFFLINECACHEUPDATESERVICE_CID, false, nullptr, nsOfflineCacheUpdateServiceConstructor }, 1.145 + { &kNS_OFFLINECACHEUPDATE_CID, false, nullptr, nsOfflineCacheUpdateConstructor }, 1.146 + { &kNS_LOCALHANDLERAPP_CID, false, nullptr, PlatformLocalHandlerApp_tConstructor }, 1.147 +#ifdef MOZ_ENABLE_DBUS 1.148 + { &kNS_DBUSHANDLERAPP_CID, false, nullptr, nsDBusHandlerAppConstructor }, 1.149 +#endif 1.150 +#if defined(MOZ_WIDGET_ANDROID) || defined(MOZ_ENABLE_MEEGOTOUCHSHARE) 1.151 + { &kNS_EXTERNALSHARINGAPPSERVICE_CID, false, nullptr, nsExternalSharingAppServiceConstructor }, 1.152 +#endif 1.153 +#if defined(MOZ_WIDGET_ANDROID) 1.154 + { &kNS_EXTERNALURLHANDLERSERVICE_CID, false, nullptr, nsExternalURLHandlerServiceConstructor }, 1.155 +#endif 1.156 + { &kNS_SHENTRY_CID, false, nullptr, nsSHEntryConstructor }, 1.157 + { &kNS_SHTRANSACTION_CID, false, nullptr, nsSHTransactionConstructor }, 1.158 + { &kNS_SHISTORY_CID, false, nullptr, nsSHistoryConstructor }, 1.159 + { &kNS_SHISTORY_INTERNAL_CID, false, nullptr, nsSHistoryConstructor }, 1.160 + { &kNS_DOWNLOADHISTORY_CID, false, nullptr, nsDownloadHistoryConstructor }, 1.161 + { nullptr } 1.162 +}; 1.163 + 1.164 +const mozilla::Module::ContractIDEntry kDocShellContracts[] = { 1.165 + { "@mozilla.org/docshell;1", &kNS_DOCSHELL_CID }, 1.166 + { NS_URIFIXUP_CONTRACTID, &kNS_DEFAULTURIFIXUP_CID }, 1.167 + { NS_WEBNAVIGATION_INFO_CONTRACTID, &kNS_WEBNAVIGATION_INFO_CID }, 1.168 + { NS_ABOUT_MODULE_CONTRACTID_PREFIX "", &kNS_ABOUT_REDIRECTOR_MODULE_CID }, 1.169 + { NS_ABOUT_MODULE_CONTRACTID_PREFIX "about", &kNS_ABOUT_REDIRECTOR_MODULE_CID }, 1.170 + { NS_ABOUT_MODULE_CONTRACTID_PREFIX "config", &kNS_ABOUT_REDIRECTOR_MODULE_CID }, 1.171 +#ifdef MOZ_CRASHREPORTER 1.172 + { NS_ABOUT_MODULE_CONTRACTID_PREFIX "crashes", &kNS_ABOUT_REDIRECTOR_MODULE_CID }, 1.173 +#endif 1.174 + { NS_ABOUT_MODULE_CONTRACTID_PREFIX "credits", &kNS_ABOUT_REDIRECTOR_MODULE_CID }, 1.175 + { NS_ABOUT_MODULE_CONTRACTID_PREFIX "plugins", &kNS_ABOUT_REDIRECTOR_MODULE_CID }, 1.176 + { NS_ABOUT_MODULE_CONTRACTID_PREFIX "mozilla", &kNS_ABOUT_REDIRECTOR_MODULE_CID }, 1.177 + { NS_ABOUT_MODULE_CONTRACTID_PREFIX "logo", &kNS_ABOUT_REDIRECTOR_MODULE_CID }, 1.178 + { NS_ABOUT_MODULE_CONTRACTID_PREFIX "buildconfig", &kNS_ABOUT_REDIRECTOR_MODULE_CID }, 1.179 + { NS_ABOUT_MODULE_CONTRACTID_PREFIX "license", &kNS_ABOUT_REDIRECTOR_MODULE_CID }, 1.180 + { NS_ABOUT_MODULE_CONTRACTID_PREFIX "neterror", &kNS_ABOUT_REDIRECTOR_MODULE_CID }, 1.181 + { NS_ABOUT_MODULE_CONTRACTID_PREFIX "compartments", &kNS_ABOUT_REDIRECTOR_MODULE_CID }, 1.182 + { NS_ABOUT_MODULE_CONTRACTID_PREFIX "memory", &kNS_ABOUT_REDIRECTOR_MODULE_CID }, 1.183 + { NS_ABOUT_MODULE_CONTRACTID_PREFIX "addons", &kNS_ABOUT_REDIRECTOR_MODULE_CID }, 1.184 + { NS_ABOUT_MODULE_CONTRACTID_PREFIX "newaddon", &kNS_ABOUT_REDIRECTOR_MODULE_CID }, 1.185 + { NS_ABOUT_MODULE_CONTRACTID_PREFIX "support", &kNS_ABOUT_REDIRECTOR_MODULE_CID }, 1.186 + { NS_ABOUT_MODULE_CONTRACTID_PREFIX "telemetry", &kNS_ABOUT_REDIRECTOR_MODULE_CID }, 1.187 + { NS_ABOUT_MODULE_CONTRACTID_PREFIX "networking", &kNS_ABOUT_REDIRECTOR_MODULE_CID }, 1.188 + { NS_ABOUT_MODULE_CONTRACTID_PREFIX "webrtc", &kNS_ABOUT_REDIRECTOR_MODULE_CID }, 1.189 + { NS_ABOUT_MODULE_CONTRACTID_PREFIX "srcdoc", &kNS_ABOUT_REDIRECTOR_MODULE_CID }, 1.190 + { NS_URI_LOADER_CONTRACTID, &kNS_URI_LOADER_CID }, 1.191 + { NS_DOCUMENTLOADER_SERVICE_CONTRACTID, &kNS_DOCUMENTLOADER_SERVICE_CID }, 1.192 + { NS_EXTERNALHELPERAPPSERVICE_CONTRACTID, &kNS_EXTERNALHELPERAPPSERVICE_CID }, 1.193 + { NS_EXTERNALPROTOCOLSERVICE_CONTRACTID, &kNS_EXTERNALHELPERAPPSERVICE_CID }, 1.194 + { NS_MIMESERVICE_CONTRACTID, &kNS_EXTERNALHELPERAPPSERVICE_CID }, 1.195 + { NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX"default", &kNS_EXTERNALPROTOCOLHANDLER_CID }, 1.196 + { NS_PREFETCHSERVICE_CONTRACTID, &kNS_PREFETCHSERVICE_CID }, 1.197 + { NS_OFFLINECACHEUPDATESERVICE_CONTRACTID, &kNS_OFFLINECACHEUPDATESERVICE_CID }, 1.198 + { NS_OFFLINECACHEUPDATE_CONTRACTID, &kNS_OFFLINECACHEUPDATE_CID }, 1.199 + { NS_LOCALHANDLERAPP_CONTRACTID, &kNS_LOCALHANDLERAPP_CID }, 1.200 +#ifdef MOZ_ENABLE_DBUS 1.201 + { NS_DBUSHANDLERAPP_CONTRACTID, &kNS_DBUSHANDLERAPP_CID }, 1.202 +#endif 1.203 +#if defined(MOZ_WIDGET_ANDROID) || defined(MOZ_ENABLE_MEEGOTOUCHSHARE) 1.204 + { NS_EXTERNALSHARINGAPPSERVICE_CONTRACTID, &kNS_EXTERNALSHARINGAPPSERVICE_CID }, 1.205 +#endif 1.206 +#if defined(MOZ_WIDGET_ANDROID) 1.207 + { NS_EXTERNALURLHANDLERSERVICE_CONTRACTID, &kNS_EXTERNALURLHANDLERSERVICE_CID }, 1.208 +#endif 1.209 + { NS_SHENTRY_CONTRACTID, &kNS_SHENTRY_CID }, 1.210 + { NS_SHTRANSACTION_CONTRACTID, &kNS_SHTRANSACTION_CID }, 1.211 + { NS_SHISTORY_CONTRACTID, &kNS_SHISTORY_CID }, 1.212 + { NS_SHISTORY_INTERNAL_CONTRACTID, &kNS_SHISTORY_INTERNAL_CID }, 1.213 + { NS_DOWNLOADHISTORY_CONTRACTID, &kNS_DOWNLOADHISTORY_CID }, 1.214 + { nullptr } 1.215 +}; 1.216 + 1.217 +static const mozilla::Module kDocShellModule = { 1.218 + mozilla::Module::kVersion, 1.219 + kDocShellCIDs, 1.220 + kDocShellContracts, 1.221 + nullptr, 1.222 + nullptr, 1.223 + Initialize, 1.224 + Shutdown 1.225 +}; 1.226 + 1.227 +NSMODULE_DEFN(docshell_provider) = &kDocShellModule;