nsToolkitCompsModule.cpp 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256
  1. /* This Source Code Form is subject to the terms of the Mozilla Public
  2. * License, v. 2.0. If a copy of the MPL was not distributed with this
  3. * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
  4. #include "mozilla/ModuleUtils.h"
  5. #include "nsAppStartup.h"
  6. #include "nsNetCID.h"
  7. #ifdef MOZ_USERINFO
  8. #include "nsUserInfo.h"
  9. #endif
  10. #include "nsToolkitCompsCID.h"
  11. #include "nsFindService.h"
  12. #ifdef MOZ_UPDATER
  13. #include "nsUpdateDriver.h"
  14. #endif
  15. #if !defined(MOZ_DISABLE_PARENTAL_CONTROLS)
  16. #include "nsParentalControlsService.h"
  17. #endif
  18. #include "mozilla/AlertNotification.h"
  19. #include "nsAlertsService.h"
  20. #include "nsDownloadManager.h"
  21. #include "DownloadPlatform.h"
  22. #include "nsDownloadProxy.h"
  23. #include "rdf.h"
  24. #include "nsTypeAheadFind.h"
  25. #ifdef MOZ_URL_CLASSIFIER
  26. #include "ApplicationReputation.h"
  27. #include "nsUrlClassifierDBService.h"
  28. #include "nsUrlClassifierStreamUpdater.h"
  29. #include "nsUrlClassifierUtils.h"
  30. #include "nsUrlClassifierPrefixSet.h"
  31. #endif
  32. #include "nsBrowserStatusFilter.h"
  33. #include "mozilla/FinalizationWitnessService.h"
  34. #include "mozilla/NativeOSFileInternals.h"
  35. #include "mozilla/AddonPathService.h"
  36. #if defined(XP_WIN)
  37. #include "NativeFileWatcherWin.h"
  38. #else
  39. #include "NativeFileWatcherNotSupported.h"
  40. #endif // (XP_WIN)
  41. #define MOZ_HAS_TERMINATOR
  42. #include "nsTerminator.h"
  43. #define MOZ_HAS_PERFSTATS
  44. #if defined(MOZ_HAS_PERFSTATS)
  45. #include "nsPerformanceStats.h"
  46. #endif // defined (MOZ_HAS_PERFSTATS)
  47. using namespace mozilla;
  48. /////////////////////////////////////////////////////////////////////////////
  49. NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsAppStartup, Init)
  50. #if defined(MOZ_HAS_PERFSTATS)
  51. NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsPerformanceStatsService, Init)
  52. #endif // defined (MOZ_HAS_PERFSTATS)
  53. #if defined(MOZ_HAS_TERMINATOR)
  54. NS_GENERIC_FACTORY_CONSTRUCTOR(nsTerminator)
  55. #endif
  56. #if defined(MOZ_USERINFO)
  57. NS_GENERIC_FACTORY_CONSTRUCTOR(nsUserInfo)
  58. #endif // defined (MOZ_USERINFO)
  59. NS_GENERIC_FACTORY_CONSTRUCTOR(nsFindService)
  60. #if !defined(MOZ_DISABLE_PARENTAL_CONTROLS)
  61. NS_GENERIC_FACTORY_CONSTRUCTOR(nsParentalControlsService)
  62. #endif
  63. NS_GENERIC_FACTORY_CONSTRUCTOR(AlertNotification)
  64. NS_GENERIC_FACTORY_CONSTRUCTOR(nsAlertsService)
  65. NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsDownloadManager,
  66. nsDownloadManager::GetSingleton)
  67. NS_GENERIC_FACTORY_CONSTRUCTOR(DownloadPlatform)
  68. NS_GENERIC_FACTORY_CONSTRUCTOR(nsDownloadProxy)
  69. NS_GENERIC_FACTORY_CONSTRUCTOR(nsTypeAheadFind)
  70. #ifdef MOZ_URL_CLASSIFIER
  71. NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(ApplicationReputationService,
  72. ApplicationReputationService::GetSingleton)
  73. NS_GENERIC_FACTORY_CONSTRUCTOR(nsUrlClassifierPrefixSet)
  74. NS_GENERIC_FACTORY_CONSTRUCTOR(nsUrlClassifierStreamUpdater)
  75. NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsUrlClassifierUtils, Init)
  76. static nsresult
  77. nsUrlClassifierDBServiceConstructor(nsISupports *aOuter, REFNSIID aIID,
  78. void **aResult)
  79. {
  80. nsresult rv;
  81. NS_ENSURE_ARG_POINTER(aResult);
  82. NS_ENSURE_NO_AGGREGATION(aOuter);
  83. nsUrlClassifierDBService *inst = nsUrlClassifierDBService::GetInstance(&rv);
  84. if (nullptr == inst) {
  85. return rv;
  86. }
  87. /* NS_ADDREF(inst); */
  88. rv = inst->QueryInterface(aIID, aResult);
  89. NS_RELEASE(inst);
  90. return rv;
  91. }
  92. #endif
  93. NS_GENERIC_FACTORY_CONSTRUCTOR(nsBrowserStatusFilter)
  94. #ifdef MOZ_UPDATER
  95. NS_GENERIC_FACTORY_CONSTRUCTOR(nsUpdateProcessor)
  96. #endif
  97. NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(FinalizationWitnessService, Init)
  98. NS_GENERIC_FACTORY_CONSTRUCTOR(NativeOSFileInternalsService)
  99. NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(NativeFileWatcherService, Init)
  100. NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(AddonPathService, AddonPathService::GetInstance)
  101. NS_DEFINE_NAMED_CID(NS_TOOLKIT_APPSTARTUP_CID);
  102. #if defined(MOZ_HAS_PERFSTATS)
  103. NS_DEFINE_NAMED_CID(NS_TOOLKIT_PERFORMANCESTATSSERVICE_CID);
  104. #endif // defined (MOZ_HAS_PERFSTATS)
  105. #if defined(MOZ_HAS_TERMINATOR)
  106. NS_DEFINE_NAMED_CID(NS_TOOLKIT_TERMINATOR_CID);
  107. #endif
  108. #if defined(MOZ_USERINFO)
  109. NS_DEFINE_NAMED_CID(NS_USERINFO_CID);
  110. #endif // defined (MOZ_USERINFO)
  111. NS_DEFINE_NAMED_CID(ALERT_NOTIFICATION_CID);
  112. NS_DEFINE_NAMED_CID(NS_ALERTSSERVICE_CID);
  113. #if !defined(MOZ_DISABLE_PARENTAL_CONTROLS)
  114. NS_DEFINE_NAMED_CID(NS_PARENTALCONTROLSSERVICE_CID);
  115. #endif
  116. NS_DEFINE_NAMED_CID(NS_DOWNLOADMANAGER_CID);
  117. NS_DEFINE_NAMED_CID(NS_DOWNLOADPLATFORM_CID);
  118. NS_DEFINE_NAMED_CID(NS_DOWNLOAD_CID);
  119. NS_DEFINE_NAMED_CID(NS_FIND_SERVICE_CID);
  120. NS_DEFINE_NAMED_CID(NS_TYPEAHEADFIND_CID);
  121. #ifdef MOZ_URL_CLASSIFIER
  122. NS_DEFINE_NAMED_CID(NS_APPLICATION_REPUTATION_SERVICE_CID);
  123. NS_DEFINE_NAMED_CID(NS_URLCLASSIFIERPREFIXSET_CID);
  124. NS_DEFINE_NAMED_CID(NS_URLCLASSIFIERDBSERVICE_CID);
  125. NS_DEFINE_NAMED_CID(NS_URLCLASSIFIERSTREAMUPDATER_CID);
  126. NS_DEFINE_NAMED_CID(NS_URLCLASSIFIERUTILS_CID);
  127. #endif
  128. NS_DEFINE_NAMED_CID(NS_BROWSERSTATUSFILTER_CID);
  129. #ifdef MOZ_UPDATER
  130. NS_DEFINE_NAMED_CID(NS_UPDATEPROCESSOR_CID);
  131. #endif
  132. NS_DEFINE_NAMED_CID(FINALIZATIONWITNESSSERVICE_CID);
  133. NS_DEFINE_NAMED_CID(NATIVE_OSFILE_INTERNALS_SERVICE_CID);
  134. NS_DEFINE_NAMED_CID(NS_ADDON_PATH_SERVICE_CID);
  135. NS_DEFINE_NAMED_CID(NATIVE_FILEWATCHER_SERVICE_CID);
  136. static const Module::CIDEntry kToolkitCIDs[] = {
  137. { &kNS_TOOLKIT_APPSTARTUP_CID, false, nullptr, nsAppStartupConstructor },
  138. #if defined(MOZ_HAS_TERMINATOR)
  139. { &kNS_TOOLKIT_TERMINATOR_CID, false, nullptr, nsTerminatorConstructor },
  140. #endif
  141. #if defined(MOZ_HAS_PERFSTATS)
  142. { &kNS_TOOLKIT_PERFORMANCESTATSSERVICE_CID, false, nullptr, nsPerformanceStatsServiceConstructor },
  143. #endif // defined (MOZ_HAS_PERFSTATS)
  144. #if defined(MOZ_USERINFO)
  145. { &kNS_USERINFO_CID, false, nullptr, nsUserInfoConstructor },
  146. #endif // defined (MOZ_USERINFO)
  147. { &kALERT_NOTIFICATION_CID, false, nullptr, AlertNotificationConstructor },
  148. { &kNS_ALERTSSERVICE_CID, false, nullptr, nsAlertsServiceConstructor },
  149. #if !defined(MOZ_DISABLE_PARENTAL_CONTROLS)
  150. { &kNS_PARENTALCONTROLSSERVICE_CID, false, nullptr, nsParentalControlsServiceConstructor },
  151. #endif
  152. { &kNS_DOWNLOADMANAGER_CID, false, nullptr, nsDownloadManagerConstructor },
  153. { &kNS_DOWNLOADPLATFORM_CID, false, nullptr, DownloadPlatformConstructor },
  154. { &kNS_DOWNLOAD_CID, false, nullptr, nsDownloadProxyConstructor },
  155. { &kNS_FIND_SERVICE_CID, false, nullptr, nsFindServiceConstructor },
  156. { &kNS_TYPEAHEADFIND_CID, false, nullptr, nsTypeAheadFindConstructor },
  157. #ifdef MOZ_URL_CLASSIFIER
  158. { &kNS_APPLICATION_REPUTATION_SERVICE_CID, false, nullptr, ApplicationReputationServiceConstructor },
  159. { &kNS_URLCLASSIFIERPREFIXSET_CID, false, nullptr, nsUrlClassifierPrefixSetConstructor },
  160. { &kNS_URLCLASSIFIERDBSERVICE_CID, false, nullptr, nsUrlClassifierDBServiceConstructor },
  161. { &kNS_URLCLASSIFIERSTREAMUPDATER_CID, false, nullptr, nsUrlClassifierStreamUpdaterConstructor },
  162. { &kNS_URLCLASSIFIERUTILS_CID, false, nullptr, nsUrlClassifierUtilsConstructor },
  163. #endif
  164. { &kNS_BROWSERSTATUSFILTER_CID, false, nullptr, nsBrowserStatusFilterConstructor },
  165. #ifdef MOZ_UPDATER
  166. { &kNS_UPDATEPROCESSOR_CID, false, nullptr, nsUpdateProcessorConstructor },
  167. #endif
  168. { &kFINALIZATIONWITNESSSERVICE_CID, false, nullptr, FinalizationWitnessServiceConstructor },
  169. { &kNATIVE_OSFILE_INTERNALS_SERVICE_CID, false, nullptr, NativeOSFileInternalsServiceConstructor },
  170. { &kNS_ADDON_PATH_SERVICE_CID, false, nullptr, AddonPathServiceConstructor },
  171. { &kNATIVE_FILEWATCHER_SERVICE_CID, false, nullptr, NativeFileWatcherServiceConstructor },
  172. { nullptr }
  173. };
  174. static const Module::ContractIDEntry kToolkitContracts[] = {
  175. { NS_APPSTARTUP_CONTRACTID, &kNS_TOOLKIT_APPSTARTUP_CID },
  176. #if defined(MOZ_HAS_TERMINATOR)
  177. { NS_TOOLKIT_TERMINATOR_CONTRACTID, &kNS_TOOLKIT_TERMINATOR_CID },
  178. #endif
  179. #if defined(MOZ_HAS_PERFSTATS)
  180. { NS_TOOLKIT_PERFORMANCESTATSSERVICE_CONTRACTID, &kNS_TOOLKIT_PERFORMANCESTATSSERVICE_CID },
  181. #endif // defined (MOZ_HAS_PERFSTATS)
  182. #if defined(MOZ_USERINFO)
  183. { NS_USERINFO_CONTRACTID, &kNS_USERINFO_CID },
  184. #endif // defined(MOZ_USERINFO)
  185. { ALERT_NOTIFICATION_CONTRACTID, &kALERT_NOTIFICATION_CID },
  186. { NS_ALERTSERVICE_CONTRACTID, &kNS_ALERTSSERVICE_CID },
  187. #if !defined(MOZ_DISABLE_PARENTAL_CONTROLS)
  188. { NS_PARENTALCONTROLSSERVICE_CONTRACTID, &kNS_PARENTALCONTROLSSERVICE_CID },
  189. #endif
  190. { NS_DOWNLOADMANAGER_CONTRACTID, &kNS_DOWNLOADMANAGER_CID },
  191. { NS_DOWNLOADPLATFORM_CONTRACTID, &kNS_DOWNLOADPLATFORM_CID },
  192. { NS_FIND_SERVICE_CONTRACTID, &kNS_FIND_SERVICE_CID },
  193. { NS_TYPEAHEADFIND_CONTRACTID, &kNS_TYPEAHEADFIND_CID },
  194. #ifdef MOZ_URL_CLASSIFIER
  195. { NS_APPLICATION_REPUTATION_SERVICE_CONTRACTID, &kNS_APPLICATION_REPUTATION_SERVICE_CID },
  196. { NS_URLCLASSIFIERPREFIXSET_CONTRACTID, &kNS_URLCLASSIFIERPREFIXSET_CID },
  197. { NS_URLCLASSIFIERDBSERVICE_CONTRACTID, &kNS_URLCLASSIFIERDBSERVICE_CID },
  198. { NS_URICLASSIFIERSERVICE_CONTRACTID, &kNS_URLCLASSIFIERDBSERVICE_CID },
  199. { NS_URLCLASSIFIERSTREAMUPDATER_CONTRACTID, &kNS_URLCLASSIFIERSTREAMUPDATER_CID },
  200. { NS_URLCLASSIFIERUTILS_CONTRACTID, &kNS_URLCLASSIFIERUTILS_CID },
  201. #endif
  202. { NS_BROWSERSTATUSFILTER_CONTRACTID, &kNS_BROWSERSTATUSFILTER_CID },
  203. #ifdef MOZ_UPDATER
  204. { NS_UPDATEPROCESSOR_CONTRACTID, &kNS_UPDATEPROCESSOR_CID },
  205. #endif
  206. { FINALIZATIONWITNESSSERVICE_CONTRACTID, &kFINALIZATIONWITNESSSERVICE_CID },
  207. { NATIVE_OSFILE_INTERNALS_SERVICE_CONTRACTID, &kNATIVE_OSFILE_INTERNALS_SERVICE_CID },
  208. { NS_ADDONPATHSERVICE_CONTRACTID, &kNS_ADDON_PATH_SERVICE_CID },
  209. { NATIVE_FILEWATCHER_SERVICE_CONTRACTID, &kNATIVE_FILEWATCHER_SERVICE_CID },
  210. { nullptr }
  211. };
  212. static const mozilla::Module::CategoryEntry kToolkitCategories[] = {
  213. { nullptr }
  214. };
  215. static const Module kToolkitModule = {
  216. Module::kVersion,
  217. kToolkitCIDs,
  218. kToolkitContracts,
  219. kToolkitCategories
  220. };
  221. NSMODULE_DEFN(nsToolkitCompsModule) = &kToolkitModule;