Line data Source code
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 :
5 : #include "mozilla/ModuleUtils.h"
6 : #include "nsAppStartup.h"
7 : #include "nsNetCID.h"
8 : #include "nsUserInfo.h"
9 : #include "nsToolkitCompsCID.h"
10 : #include "nsFindService.h"
11 : #if defined(MOZ_UPDATER) && !defined(MOZ_WIDGET_ANDROID)
12 : #include "nsUpdateDriver.h"
13 : #endif
14 :
15 : #if !defined(MOZ_DISABLE_PARENTAL_CONTROLS)
16 : #include "nsParentalControlsService.h"
17 : #endif
18 :
19 : #include "mozilla/AlertNotification.h"
20 : #include "nsAlertsService.h"
21 :
22 : #include "nsDownloadManager.h"
23 : #include "DownloadPlatform.h"
24 : #include "rdf.h"
25 :
26 : #include "nsTypeAheadFind.h"
27 :
28 : #include "ApplicationReputation.h"
29 : #include "nsUrlClassifierDBService.h"
30 : #include "nsUrlClassifierStreamUpdater.h"
31 : #include "nsUrlClassifierUtils.h"
32 : #include "nsUrlClassifierPrefixSet.h"
33 :
34 : #include "nsBrowserStatusFilter.h"
35 : #include "mozilla/FinalizationWitnessService.h"
36 : #include "mozilla/NativeOSFileInternals.h"
37 : #include "mozilla/AddonContentPolicy.h"
38 : #include "mozilla/AddonManagerStartup.h"
39 : #include "mozilla/AddonPathService.h"
40 : #include "mozilla/ExtensionPolicyService.h"
41 :
42 : #if defined(XP_WIN)
43 : #include "NativeFileWatcherWin.h"
44 : #else
45 : #include "NativeFileWatcherNotSupported.h"
46 : #endif // (XP_WIN)
47 :
48 : #include "nsWebRequestListener.h"
49 :
50 : #if !defined(MOZ_WIDGET_GONK) && !defined(MOZ_WIDGET_ANDROID)
51 : #define MOZ_HAS_TERMINATOR
52 : #endif
53 :
54 : #if defined(MOZ_HAS_TERMINATOR)
55 : #include "nsTerminator.h"
56 : #endif
57 :
58 : #define MOZ_HAS_PERFSTATS
59 :
60 : #if defined(MOZ_HAS_PERFSTATS)
61 : #include "nsPerformanceStats.h"
62 : #endif // defined (MOZ_HAS_PERFSTATS)
63 :
64 : using namespace mozilla;
65 :
66 : /////////////////////////////////////////////////////////////////////////////
67 :
68 2 : NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsAppStartup, Init)
69 :
70 : #if defined(MOZ_HAS_PERFSTATS)
71 0 : NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsPerformanceStatsService, Init)
72 : #endif // defined (MOZ_HAS_PERFSTATS)
73 :
74 : #if defined(MOZ_HAS_TERMINATOR)
75 2 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsTerminator)
76 : #endif
77 :
78 0 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsUserInfo)
79 0 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsFindService)
80 :
81 : #if !defined(MOZ_DISABLE_PARENTAL_CONTROLS)
82 4 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsParentalControlsService)
83 : #endif
84 :
85 0 : NS_GENERIC_FACTORY_CONSTRUCTOR(AlertNotification)
86 0 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsAlertsService)
87 :
88 0 : NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsDownloadManager,
89 : nsDownloadManager::GetSingleton)
90 0 : NS_GENERIC_FACTORY_CONSTRUCTOR(DownloadPlatform)
91 :
92 0 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsTypeAheadFind)
93 :
94 0 : NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(ApplicationReputationService,
95 : ApplicationReputationService::GetSingleton)
96 0 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsUrlClassifierPrefixSet)
97 2 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsUrlClassifierStreamUpdater)
98 2 : NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsUrlClassifierUtils, Init)
99 :
100 : static nsresult
101 1 : nsUrlClassifierDBServiceConstructor(nsISupports *aOuter, REFNSIID aIID,
102 : void **aResult)
103 : {
104 : nsresult rv;
105 1 : NS_ENSURE_ARG_POINTER(aResult);
106 1 : NS_ENSURE_NO_AGGREGATION(aOuter);
107 :
108 1 : nsUrlClassifierDBService *inst = nsUrlClassifierDBService::GetInstance(&rv);
109 1 : if (nullptr == inst) {
110 0 : return rv;
111 : }
112 : /* NS_ADDREF(inst); */
113 1 : rv = inst->QueryInterface(aIID, aResult);
114 1 : NS_RELEASE(inst);
115 :
116 1 : return rv;
117 : }
118 :
119 4 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsBrowserStatusFilter)
120 : #if defined(MOZ_UPDATER) && !defined(MOZ_WIDGET_ANDROID)
121 0 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsUpdateProcessor)
122 : #endif
123 2 : NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(FinalizationWitnessService, Init)
124 2 : NS_GENERIC_FACTORY_CONSTRUCTOR(NativeOSFileInternalsService)
125 0 : NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(NativeFileWatcherService, Init)
126 :
127 4 : NS_GENERIC_FACTORY_CONSTRUCTOR(AddonContentPolicy)
128 1 : NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(AddonPathService, AddonPathService::GetInstance)
129 1 : NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(AddonManagerStartup, AddonManagerStartup::GetInstance)
130 0 : NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(ExtensionPolicyService, ExtensionPolicyService::GetInstance)
131 :
132 0 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsWebRequestListener)
133 :
134 : NS_DEFINE_NAMED_CID(NS_TOOLKIT_APPSTARTUP_CID);
135 : #if defined(MOZ_HAS_PERFSTATS)
136 : NS_DEFINE_NAMED_CID(NS_TOOLKIT_PERFORMANCESTATSSERVICE_CID);
137 : #endif // defined (MOZ_HAS_PERFSTATS)
138 :
139 : #if defined(MOZ_HAS_TERMINATOR)
140 : NS_DEFINE_NAMED_CID(NS_TOOLKIT_TERMINATOR_CID);
141 : #endif
142 : NS_DEFINE_NAMED_CID(NS_USERINFO_CID);
143 : NS_DEFINE_NAMED_CID(ALERT_NOTIFICATION_CID);
144 : NS_DEFINE_NAMED_CID(NS_ALERTSSERVICE_CID);
145 : #if !defined(MOZ_DISABLE_PARENTAL_CONTROLS)
146 : NS_DEFINE_NAMED_CID(NS_PARENTALCONTROLSSERVICE_CID);
147 : #endif
148 : NS_DEFINE_NAMED_CID(NS_DOWNLOADMANAGER_CID);
149 : NS_DEFINE_NAMED_CID(NS_DOWNLOADPLATFORM_CID);
150 : NS_DEFINE_NAMED_CID(NS_FIND_SERVICE_CID);
151 : NS_DEFINE_NAMED_CID(NS_TYPEAHEADFIND_CID);
152 : NS_DEFINE_NAMED_CID(NS_APPLICATION_REPUTATION_SERVICE_CID);
153 : NS_DEFINE_NAMED_CID(NS_URLCLASSIFIERPREFIXSET_CID);
154 : NS_DEFINE_NAMED_CID(NS_URLCLASSIFIERDBSERVICE_CID);
155 : NS_DEFINE_NAMED_CID(NS_URLCLASSIFIERSTREAMUPDATER_CID);
156 : NS_DEFINE_NAMED_CID(NS_URLCLASSIFIERUTILS_CID);
157 : NS_DEFINE_NAMED_CID(NS_BROWSERSTATUSFILTER_CID);
158 : #if defined(MOZ_UPDATER) && !defined(MOZ_WIDGET_ANDROID)
159 : NS_DEFINE_NAMED_CID(NS_UPDATEPROCESSOR_CID);
160 : #endif
161 : NS_DEFINE_NAMED_CID(FINALIZATIONWITNESSSERVICE_CID);
162 : NS_DEFINE_NAMED_CID(NATIVE_OSFILE_INTERNALS_SERVICE_CID);
163 : NS_DEFINE_NAMED_CID(NS_ADDONCONTENTPOLICY_CID);
164 : NS_DEFINE_NAMED_CID(NS_ADDON_PATH_SERVICE_CID);
165 : NS_DEFINE_NAMED_CID(NS_ADDON_MANAGER_STARTUP_CID);
166 : NS_DEFINE_NAMED_CID(NS_ADDON_POLICY_SERVICE_CID);
167 : NS_DEFINE_NAMED_CID(NATIVE_FILEWATCHER_SERVICE_CID);
168 : NS_DEFINE_NAMED_CID(NS_WEBREQUESTLISTENER_CID);
169 :
170 : static const Module::CIDEntry kToolkitCIDs[] = {
171 : { &kNS_TOOLKIT_APPSTARTUP_CID, false, nullptr, nsAppStartupConstructor },
172 : #if defined(MOZ_HAS_TERMINATOR)
173 : { &kNS_TOOLKIT_TERMINATOR_CID, false, nullptr, nsTerminatorConstructor },
174 : #endif
175 : #if defined(MOZ_HAS_PERFSTATS)
176 : { &kNS_TOOLKIT_PERFORMANCESTATSSERVICE_CID, false, nullptr, nsPerformanceStatsServiceConstructor },
177 : #endif // defined (MOZ_HAS_PERFSTATS)
178 : { &kNS_USERINFO_CID, false, nullptr, nsUserInfoConstructor },
179 : { &kALERT_NOTIFICATION_CID, false, nullptr, AlertNotificationConstructor },
180 : { &kNS_ALERTSSERVICE_CID, false, nullptr, nsAlertsServiceConstructor },
181 : #if !defined(MOZ_DISABLE_PARENTAL_CONTROLS)
182 : { &kNS_PARENTALCONTROLSSERVICE_CID, false, nullptr, nsParentalControlsServiceConstructor },
183 : #endif
184 : { &kNS_DOWNLOADMANAGER_CID, false, nullptr, nsDownloadManagerConstructor },
185 : { &kNS_DOWNLOADPLATFORM_CID, false, nullptr, DownloadPlatformConstructor },
186 : { &kNS_FIND_SERVICE_CID, false, nullptr, nsFindServiceConstructor },
187 : { &kNS_TYPEAHEADFIND_CID, false, nullptr, nsTypeAheadFindConstructor },
188 : { &kNS_APPLICATION_REPUTATION_SERVICE_CID, false, nullptr, ApplicationReputationServiceConstructor },
189 : { &kNS_URLCLASSIFIERPREFIXSET_CID, false, nullptr, nsUrlClassifierPrefixSetConstructor },
190 : { &kNS_URLCLASSIFIERDBSERVICE_CID, false, nullptr, nsUrlClassifierDBServiceConstructor },
191 : { &kNS_URLCLASSIFIERSTREAMUPDATER_CID, false, nullptr, nsUrlClassifierStreamUpdaterConstructor },
192 : { &kNS_URLCLASSIFIERUTILS_CID, false, nullptr, nsUrlClassifierUtilsConstructor },
193 : { &kNS_BROWSERSTATUSFILTER_CID, false, nullptr, nsBrowserStatusFilterConstructor },
194 : #if defined(MOZ_UPDATER) && !defined(MOZ_WIDGET_ANDROID)
195 : { &kNS_UPDATEPROCESSOR_CID, false, nullptr, nsUpdateProcessorConstructor },
196 : #endif
197 : { &kFINALIZATIONWITNESSSERVICE_CID, false, nullptr, FinalizationWitnessServiceConstructor },
198 : { &kNATIVE_OSFILE_INTERNALS_SERVICE_CID, false, nullptr, NativeOSFileInternalsServiceConstructor },
199 : { &kNS_ADDONCONTENTPOLICY_CID, false, nullptr, AddonContentPolicyConstructor },
200 : { &kNS_ADDON_PATH_SERVICE_CID, false, nullptr, AddonPathServiceConstructor },
201 : { &kNS_ADDON_MANAGER_STARTUP_CID, false, nullptr, AddonManagerStartupConstructor },
202 : { &kNS_ADDON_POLICY_SERVICE_CID, false, nullptr, ExtensionPolicyServiceConstructor },
203 : { &kNATIVE_FILEWATCHER_SERVICE_CID, false, nullptr, NativeFileWatcherServiceConstructor },
204 : { &kNS_WEBREQUESTLISTENER_CID, false, nullptr, nsWebRequestListenerConstructor },
205 : { nullptr }
206 : };
207 :
208 : static const Module::ContractIDEntry kToolkitContracts[] = {
209 : { NS_APPSTARTUP_CONTRACTID, &kNS_TOOLKIT_APPSTARTUP_CID },
210 : #if defined(MOZ_HAS_TERMINATOR)
211 : { NS_TOOLKIT_TERMINATOR_CONTRACTID, &kNS_TOOLKIT_TERMINATOR_CID },
212 : #endif
213 : #if defined(MOZ_HAS_PERFSTATS)
214 : { NS_TOOLKIT_PERFORMANCESTATSSERVICE_CONTRACTID, &kNS_TOOLKIT_PERFORMANCESTATSSERVICE_CID },
215 : #endif // defined (MOZ_HAS_PERFSTATS)
216 : { NS_USERINFO_CONTRACTID, &kNS_USERINFO_CID },
217 : { ALERT_NOTIFICATION_CONTRACTID, &kALERT_NOTIFICATION_CID },
218 : { NS_ALERTSERVICE_CONTRACTID, &kNS_ALERTSSERVICE_CID },
219 : #if !defined(MOZ_DISABLE_PARENTAL_CONTROLS)
220 : { NS_PARENTALCONTROLSSERVICE_CONTRACTID, &kNS_PARENTALCONTROLSSERVICE_CID },
221 : #endif
222 : { NS_DOWNLOADMANAGER_CONTRACTID, &kNS_DOWNLOADMANAGER_CID },
223 : { NS_DOWNLOADPLATFORM_CONTRACTID, &kNS_DOWNLOADPLATFORM_CID },
224 : { NS_FIND_SERVICE_CONTRACTID, &kNS_FIND_SERVICE_CID },
225 : { NS_TYPEAHEADFIND_CONTRACTID, &kNS_TYPEAHEADFIND_CID },
226 : { NS_APPLICATION_REPUTATION_SERVICE_CONTRACTID, &kNS_APPLICATION_REPUTATION_SERVICE_CID },
227 : { NS_URLCLASSIFIERPREFIXSET_CONTRACTID, &kNS_URLCLASSIFIERPREFIXSET_CID },
228 : { NS_URLCLASSIFIERDBSERVICE_CONTRACTID, &kNS_URLCLASSIFIERDBSERVICE_CID },
229 : { NS_URICLASSIFIERSERVICE_CONTRACTID, &kNS_URLCLASSIFIERDBSERVICE_CID },
230 : { NS_URLCLASSIFIERSTREAMUPDATER_CONTRACTID, &kNS_URLCLASSIFIERSTREAMUPDATER_CID },
231 : { NS_URLCLASSIFIERUTILS_CONTRACTID, &kNS_URLCLASSIFIERUTILS_CID },
232 : { NS_BROWSERSTATUSFILTER_CONTRACTID, &kNS_BROWSERSTATUSFILTER_CID },
233 : #if defined(MOZ_UPDATER) && !defined(MOZ_WIDGET_ANDROID)
234 : { NS_UPDATEPROCESSOR_CONTRACTID, &kNS_UPDATEPROCESSOR_CID },
235 : #endif
236 : { FINALIZATIONWITNESSSERVICE_CONTRACTID, &kFINALIZATIONWITNESSSERVICE_CID },
237 : { NATIVE_OSFILE_INTERNALS_SERVICE_CONTRACTID, &kNATIVE_OSFILE_INTERNALS_SERVICE_CID },
238 : { NS_ADDONCONTENTPOLICY_CONTRACTID, &kNS_ADDONCONTENTPOLICY_CID },
239 : { NS_ADDONPATHSERVICE_CONTRACTID, &kNS_ADDON_PATH_SERVICE_CID },
240 : { NS_ADDONMANAGERSTARTUP_CONTRACTID, &kNS_ADDON_MANAGER_STARTUP_CID },
241 : { NS_ADDON_POLICY_SERVICE_CONTRACTID, &kNS_ADDON_POLICY_SERVICE_CID },
242 : { NATIVE_FILEWATCHER_SERVICE_CONTRACTID, &kNATIVE_FILEWATCHER_SERVICE_CID },
243 : { NS_WEBREQUESTLISTENER_CONTRACTID, &kNS_WEBREQUESTLISTENER_CID },
244 : { nullptr }
245 : };
246 :
247 : static const mozilla::Module::CategoryEntry kToolkitCategories[] = {
248 : { "content-policy", NS_ADDONCONTENTPOLICY_CONTRACTID, NS_ADDONCONTENTPOLICY_CONTRACTID },
249 : { nullptr }
250 : };
251 :
252 : static const Module kToolkitModule = {
253 : Module::kVersion,
254 : kToolkitCIDs,
255 : kToolkitContracts,
256 : kToolkitCategories
257 : };
258 :
259 : NSMODULE_DEFN(nsToolkitCompsModule) = &kToolkitModule;
|