/src/mozilla-central/layout/build/nsLayoutModule.cpp
Line | Count | Source (jump to first uncovered line) |
1 | | /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ |
2 | | /* vim: set ts=8 sts=2 et sw=2 tw=80: */ |
3 | | /* This Source Code Form is subject to the terms of the Mozilla Public |
4 | | * License, v. 2.0. If a copy of the MPL was not distributed with this |
5 | | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
6 | | |
7 | | #include "base/basictypes.h" |
8 | | |
9 | | #include "XPCModule.h" |
10 | | #include "mozilla/ModuleUtils.h" |
11 | | #include "nsImageModule.h" |
12 | | #include "nsLayoutStatics.h" |
13 | | #include "nsContentCID.h" |
14 | | #include "nsContentDLF.h" |
15 | | #include "nsContentPolicyUtils.h" |
16 | | #include "nsDataDocumentContentPolicy.h" |
17 | | #include "nsNoDataProtocolContentPolicy.h" |
18 | | #include "nsDOMCID.h" |
19 | | #include "nsFrameMessageManager.h" |
20 | | #include "nsHTMLContentSerializer.h" |
21 | | #include "nsHTMLParts.h" |
22 | | #include "nsIComponentManager.h" |
23 | | #include "nsIContentSerializer.h" |
24 | | #include "nsIContentViewer.h" |
25 | | #include "nsIController.h" |
26 | | #include "nsIControllers.h" |
27 | | #include "nsIDocumentEncoder.h" |
28 | | #include "nsIFactory.h" |
29 | | #include "nsIIdleService.h" |
30 | | #include "nsHTMLStyleSheet.h" |
31 | | #include "nsILayoutDebugger.h" |
32 | | #include "nsNameSpaceManager.h" |
33 | | #include "nsIObserver.h" |
34 | | #include "nsIObserverService.h" |
35 | | #include "nsIScriptError.h" |
36 | | #include "nsCaret.h" |
37 | | #include "nsPlainTextSerializer.h" |
38 | | #include "nsXMLContentSerializer.h" |
39 | | #include "nsXHTMLContentSerializer.h" |
40 | | #include "nsContentAreaDragDrop.h" |
41 | | #include "nsIFrameTraversal.h" |
42 | | #include "nsLayoutCID.h" |
43 | | #include "nsStyleSheetService.h" |
44 | | #include "nsFocusManager.h" |
45 | | #include "ThirdPartyUtil.h" |
46 | | #include "nsStructuredCloneContainer.h" |
47 | | #include "gfxPlatform.h" |
48 | | #include "mozilla/gfx/gfxVars.h" |
49 | | |
50 | | #include "nsIEventListenerService.h" |
51 | | #include "nsIMessageManager.h" |
52 | | |
53 | | // Transformiix stuff |
54 | | #include "mozilla/dom/XPathEvaluator.h" |
55 | | |
56 | | // view stuff |
57 | | #include "nsContentCreatorFunctions.h" |
58 | | |
59 | | #include "nsGlobalWindowCommands.h" |
60 | | #include "nsJSProtocolHandler.h" |
61 | | #include "nsIControllerContext.h" |
62 | | #include "nsZipArchive.h" |
63 | | #include "mozilla/Attributes.h" |
64 | | #include "mozilla/dom/BlobURL.h" |
65 | | #include "mozilla/dom/DOMRequest.h" |
66 | | #include "mozilla/dom/SDBConnection.h" |
67 | | #include "mozilla/dom/LocalStorageManager.h" |
68 | | #include "mozilla/dom/network/UDPSocketChild.h" |
69 | | #include "mozilla/dom/quota/QuotaManagerService.h" |
70 | | #include "mozilla/dom/ServiceWorkerManager.h" |
71 | | #include "mozilla/dom/StorageActivityService.h" |
72 | | #include "mozilla/dom/WorkerDebuggerManager.h" |
73 | | #include "mozilla/dom/Notification.h" |
74 | | #include "mozilla/OSFileConstants.h" |
75 | | #include "mozilla/Services.h" |
76 | | |
77 | | #ifdef MOZ_WEBSPEECH_TEST_BACKEND |
78 | | #include "mozilla/dom/FakeSpeechRecognitionService.h" |
79 | | #endif |
80 | | #ifdef MOZ_WEBSPEECH |
81 | | #include "mozilla/dom/nsSynthVoiceRegistry.h" |
82 | | #endif |
83 | | |
84 | | #include "mozilla/dom/PushNotifier.h" |
85 | | using mozilla::dom::PushNotifier; |
86 | | #define PUSHNOTIFIER_CID \ |
87 | | { 0x2fc2d3e3, 0x020f, 0x404e, { 0xb0, 0x6a, 0x6e, 0xcf, 0x3e, 0xa2, 0x33, 0x4a } } |
88 | | |
89 | | // Editor stuff |
90 | | #include "mozilla/EditorController.h" //CID |
91 | | |
92 | | #include "nsScriptSecurityManager.h" |
93 | | #include "ExpandedPrincipal.h" |
94 | | #include "mozilla/ContentPrincipal.h" |
95 | | #include "mozilla/NullPrincipal.h" |
96 | | #include "mozilla/SystemPrincipal.h" |
97 | | #include "nsNetCID.h" |
98 | | #if defined(MOZ_WIDGET_ANDROID) |
99 | | #include "nsHapticFeedback.h" |
100 | | #endif |
101 | | #include "nsParserUtils.h" |
102 | | |
103 | | #include "nsHTMLCanvasFrame.h" |
104 | | |
105 | | class nsIDocumentLoaderFactory; |
106 | | |
107 | | #define PRODUCT_NAME "Gecko" |
108 | | |
109 | | /* 0ddf4df8-4dbb-4133-8b79-9afb966514f5 */ |
110 | | #define NS_PLUGINDOCLOADERFACTORY_CID \ |
111 | | { 0x0ddf4df8, 0x4dbb, 0x4133, { 0x8b, 0x79, 0x9a, 0xfb, 0x96, 0x65, 0x14, 0xf5 } } |
112 | | |
113 | | #include "inDeepTreeWalker.h" |
114 | | |
115 | | static void Shutdown(); |
116 | | |
117 | | #include "nsGeolocation.h" |
118 | | #include "nsDeviceSensors.h" |
119 | | #include "mozilla/dom/nsContentSecurityManager.h" |
120 | | #include "mozilla/dom/nsCSPService.h" |
121 | | #include "mozilla/dom/nsCSPContext.h" |
122 | | #include "nsIPowerManagerService.h" |
123 | | #include "nsIMediaManager.h" |
124 | | #include "mozilla/dom/nsMixedContentBlocker.h" |
125 | | |
126 | | #include "mozilla/net/WebSocketEventService.h" |
127 | | |
128 | | #include "mozilla/dom/power/PowerManagerService.h" |
129 | | |
130 | | #include "nsIPresentationService.h" |
131 | | |
132 | | #include "MediaManager.h" |
133 | | |
134 | | #include "GMPService.h" |
135 | | |
136 | | #include "mozilla/dom/PresentationDeviceManager.h" |
137 | | #include "mozilla/dom/PresentationTCPSessionTransport.h" |
138 | | |
139 | | #include "nsScriptError.h" |
140 | | #include "nsBaseCommandController.h" |
141 | | #include "nsControllerCommandTable.h" |
142 | | |
143 | | #include "mozilla/TextInputProcessor.h" |
144 | | |
145 | | using namespace mozilla; |
146 | | using namespace mozilla::dom; |
147 | | using namespace mozilla::net; |
148 | | using mozilla::dom::power::PowerManagerService; |
149 | | using mozilla::dom::quota::QuotaManagerService; |
150 | | using mozilla::gmp::GeckoMediaPluginService; |
151 | | |
152 | | #define NS_HAPTICFEEDBACK_CID \ |
153 | | { 0x1f15dbc8, 0xbfaa, 0x45de, \ |
154 | | { 0x8a, 0x46, 0x08, 0xe2, 0xe2, 0x63, 0x26, 0xb0 } } |
155 | | |
156 | | NS_GENERIC_FACTORY_CONSTRUCTOR(nsParserUtils) |
157 | | |
158 | | // PresentationDeviceManager |
159 | | /* e1e79dec-4085-4994-ac5b-744b016697e6 */ |
160 | | #define PRESENTATION_DEVICE_MANAGER_CID \ |
161 | | { 0xe1e79dec, 0x4085, 0x4994, { 0xac, 0x5b, 0x74, 0x4b, 0x01, 0x66, 0x97, 0xe6 } } |
162 | | |
163 | | #define PRESENTATION_TCP_SESSION_TRANSPORT_CID \ |
164 | | { 0xc9d023f4, 0x6228, 0x4c07, { 0x8b, 0x1d, 0x9c, 0x19, 0x57, 0x3f, 0xaa, 0x27 } } |
165 | | |
166 | | already_AddRefed<nsIPresentationService> NS_CreatePresentationService(); |
167 | | |
168 | | // Factory Constructor |
169 | | typedef mozilla::dom::BlobURL::Mutator BlobURLMutator; |
170 | | NS_GENERIC_FACTORY_CONSTRUCTOR(BlobURLMutator) |
171 | | NS_GENERIC_FACTORY_CONSTRUCTOR(LocalStorageManager) |
172 | | NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(DOMRequestService, |
173 | | DOMRequestService::FactoryCreate) |
174 | | NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(QuotaManagerService, |
175 | | QuotaManagerService::FactoryCreate) |
176 | | NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(ServiceWorkerManager, |
177 | | ServiceWorkerManager::GetInstance) |
178 | | NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(WorkerDebuggerManager, |
179 | | WorkerDebuggerManager::GetInstance) |
180 | | NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(StorageActivityService, |
181 | | StorageActivityService::GetOrCreate) |
182 | | |
183 | | #ifdef MOZ_WEBSPEECH |
184 | | NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsSynthVoiceRegistry, |
185 | | nsSynthVoiceRegistry::GetInstanceForService) |
186 | | #endif |
187 | | |
188 | | NS_GENERIC_FACTORY_CONSTRUCTOR(nsDeviceSensors) |
189 | | |
190 | | #if defined(ANDROID) |
191 | | NS_GENERIC_FACTORY_CONSTRUCTOR(nsHapticFeedback) |
192 | | #endif |
193 | | NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(ThirdPartyUtil, Init) |
194 | | NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsIPowerManagerService, |
195 | | PowerManagerService::GetInstance) |
196 | | |
197 | | NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsIMediaManagerService, |
198 | | MediaManager::GetInstance) |
199 | | NS_GENERIC_FACTORY_CONSTRUCTOR(PresentationDeviceManager) |
200 | | NS_GENERIC_FACTORY_CONSTRUCTOR(TextInputProcessor) |
201 | | NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsIPresentationService, |
202 | | NS_CreatePresentationService) |
203 | | NS_GENERIC_FACTORY_CONSTRUCTOR(PresentationTCPSessionTransport) |
204 | | NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(NotificationTelemetryService, Init) |
205 | | NS_GENERIC_FACTORY_CONSTRUCTOR(PushNotifier) |
206 | | |
207 | | //----------------------------------------------------------------------------- |
208 | | |
209 | | static bool gInitialized = false; |
210 | | |
211 | | // Perform our one-time intialization for this module |
212 | | |
213 | | static nsresult |
214 | | Initialize() |
215 | 3 | { |
216 | 3 | if (gInitialized) { |
217 | 0 | MOZ_CRASH("Recursive layout module initialization"); |
218 | 0 | return NS_ERROR_FAILURE; |
219 | 3 | } |
220 | 3 | if (XRE_GetProcessType() == GeckoProcessType_GPU) { |
221 | 0 | // We mark the layout module as being available in the GPU process so that |
222 | 0 | // XPCOM's component manager initializes the power manager service, which |
223 | 0 | // is needed for nsAppShell. However, we don't actually need anything in |
224 | 0 | // the layout module itself. |
225 | 0 | return NS_OK; |
226 | 0 | } |
227 | 3 | |
228 | 3 | static_assert(sizeof(uintptr_t) == sizeof(void*), |
229 | 3 | "Eeek! You'll need to adjust the size of uintptr_t to the " |
230 | 3 | "size of a pointer on your platform."); |
231 | 3 | |
232 | 3 | gInitialized = true; |
233 | 3 | |
234 | 3 | nsresult rv; |
235 | 3 | rv = xpcModuleCtor(); |
236 | 3 | if (NS_FAILED(rv)) |
237 | 3 | return rv; |
238 | 3 | |
239 | 3 | rv = nsLayoutStatics::Initialize(); |
240 | 3 | if (NS_FAILED(rv)) { |
241 | 0 | Shutdown(); |
242 | 0 | return rv; |
243 | 0 | } |
244 | 3 | |
245 | 3 | return NS_OK; |
246 | 3 | } |
247 | | |
248 | | // Shutdown this module, releasing all of the module resources |
249 | | |
250 | | // static |
251 | | void |
252 | | Shutdown() |
253 | 0 | { |
254 | 0 | MOZ_ASSERT(gInitialized, "module not initialized"); |
255 | 0 | if (!gInitialized) |
256 | 0 | return; |
257 | 0 | |
258 | 0 | gInitialized = false; |
259 | 0 |
|
260 | 0 | nsLayoutStatics::Release(); |
261 | 0 | } |
262 | | |
263 | | #ifdef DEBUG |
264 | | nsresult NS_NewLayoutDebugger(nsILayoutDebugger** aResult); |
265 | | #endif |
266 | | |
267 | | nsresult NS_CreateFrameTraversal(nsIFrameTraversal** aResult); |
268 | | |
269 | | already_AddRefed<nsIContentViewer> NS_NewContentViewer(); |
270 | | nsresult NS_NewContentDocumentLoaderFactory(nsIDocumentLoaderFactory** aResult); |
271 | | nsresult NS_NewHTMLCopyTextEncoder(nsIDocumentEncoder** aResult); |
272 | | nsresult NS_NewTextEncoder(nsIDocumentEncoder** aResult); |
273 | | nsresult NS_NewContentPolicy(nsIContentPolicy** aResult); |
274 | | |
275 | | nsresult NS_NewEventListenerService(nsIEventListenerService** aResult); |
276 | | nsresult NS_NewGlobalMessageManager(nsISupports** aResult); |
277 | | nsresult NS_NewParentProcessMessageManager(nsISupports** aResult); |
278 | | nsresult NS_NewChildProcessMessageManager(nsISupports** aResult); |
279 | | |
280 | | #define MAKE_CTOR(ctor_, iface_, func_) \ |
281 | | static nsresult \ |
282 | 1 | ctor_(nsISupports* aOuter, REFNSIID aIID, void** aResult) \ |
283 | 1 | { \ |
284 | 1 | *aResult = nullptr; \ |
285 | 1 | if (aOuter) \ |
286 | 1 | return NS_ERROR_NO_AGGREGATION; \ |
287 | 1 | iface_* inst; \ |
288 | 1 | nsresult rv = func_(&inst); \ |
289 | 1 | if (NS_SUCCEEDED(rv)) { \ |
290 | 1 | rv = inst->QueryInterface(aIID, aResult); \ |
291 | 1 | NS_RELEASE(inst); \ |
292 | 1 | } \ |
293 | 1 | return rv; \ |
294 | 1 | } Unexecuted instantiation: Unified_cpp_layout_build0.cpp:CreateNewFrameTraversal(nsISupports*, nsID const&, void**) Unexecuted instantiation: Unified_cpp_layout_build0.cpp:CreateTextEncoder(nsISupports*, nsID const&, void**) Unexecuted instantiation: Unified_cpp_layout_build0.cpp:CreateHTMLCopyTextEncoder(nsISupports*, nsID const&, void**) Unexecuted instantiation: Unified_cpp_layout_build0.cpp:CreateXMLContentSerializer(nsISupports*, nsID const&, void**) Unexecuted instantiation: Unified_cpp_layout_build0.cpp:CreateHTMLContentSerializer(nsISupports*, nsID const&, void**) Unexecuted instantiation: Unified_cpp_layout_build0.cpp:CreateXHTMLContentSerializer(nsISupports*, nsID const&, void**) Unexecuted instantiation: Unified_cpp_layout_build0.cpp:CreatePlainTextSerializer(nsISupports*, nsID const&, void**) Unified_cpp_layout_build0.cpp:CreateContentPolicy(nsISupports*, nsID const&, void**) Line | Count | Source | 282 | 1 | ctor_(nsISupports* aOuter, REFNSIID aIID, void** aResult) \ | 283 | 1 | { \ | 284 | 1 | *aResult = nullptr; \ | 285 | 1 | if (aOuter) \ | 286 | 1 | return NS_ERROR_NO_AGGREGATION; \ | 287 | 1 | iface_* inst; \ | 288 | 1 | nsresult rv = func_(&inst); \ | 289 | 1 | if (NS_SUCCEEDED(rv)) { \ | 290 | 1 | rv = inst->QueryInterface(aIID, aResult); \ | 291 | 1 | NS_RELEASE(inst); \ | 292 | 1 | } \ | 293 | 1 | return rv; \ | 294 | 1 | } |
Unexecuted instantiation: Unified_cpp_layout_build0.cpp:CreateContentDLF(nsISupports*, nsID const&, void**) Unexecuted instantiation: Unified_cpp_layout_build0.cpp:CreateFocusManager(nsISupports*, nsID const&, void**) Unexecuted instantiation: Unified_cpp_layout_build0.cpp:CreateEventListenerService(nsISupports*, nsID const&, void**) Unexecuted instantiation: Unified_cpp_layout_build0.cpp:CreateGlobalMessageManager(nsISupports*, nsID const&, void**) Unexecuted instantiation: Unified_cpp_layout_build0.cpp:CreateParentMessageManager(nsISupports*, nsID const&, void**) Unexecuted instantiation: Unified_cpp_layout_build0.cpp:CreateChildMessageManager(nsISupports*, nsID const&, void**) Unexecuted instantiation: Unified_cpp_layout_build0.cpp:CreateA11yService(nsISupports*, nsID const&, void**) |
295 | | |
296 | | // As above, but expects |
297 | | // already_AddRefed<nsIFoo> NS_NewFoo(); |
298 | | // instead of |
299 | | // nsresult NS_NewFoo(nsIFoo**); |
300 | | #define MAKE_CTOR2(ctor_, iface_, func_) \ |
301 | | static nsresult \ |
302 | 0 | ctor_(nsISupports* aOuter, REFNSIID aIID, void** aResult) \ |
303 | 0 | { \ |
304 | 0 | *aResult = nullptr; \ |
305 | 0 | if (aOuter) { \ |
306 | 0 | return NS_ERROR_NO_AGGREGATION; \ |
307 | 0 | } \ |
308 | 0 | nsCOMPtr<iface_> inst = func_(); \ |
309 | 0 | inst.forget(aResult); \ |
310 | 0 | return NS_OK; \ |
311 | 0 | } |
312 | | |
313 | | #ifdef DEBUG |
314 | | MAKE_CTOR(CreateNewLayoutDebugger, nsILayoutDebugger, NS_NewLayoutDebugger) |
315 | | #endif |
316 | | |
317 | | MAKE_CTOR(CreateNewFrameTraversal, nsIFrameTraversal, NS_CreateFrameTraversal) |
318 | | |
319 | | NS_GENERIC_FACTORY_CONSTRUCTOR(inDeepTreeWalker) |
320 | | |
321 | | MAKE_CTOR2(CreateContentViewer, nsIContentViewer, NS_NewContentViewer) |
322 | | MAKE_CTOR(CreateTextEncoder, nsIDocumentEncoder, NS_NewTextEncoder) |
323 | | MAKE_CTOR(CreateHTMLCopyTextEncoder, nsIDocumentEncoder, NS_NewHTMLCopyTextEncoder) |
324 | | MAKE_CTOR(CreateXMLContentSerializer, nsIContentSerializer, NS_NewXMLContentSerializer) |
325 | | MAKE_CTOR(CreateHTMLContentSerializer, nsIContentSerializer, NS_NewHTMLContentSerializer) |
326 | | MAKE_CTOR(CreateXHTMLContentSerializer, nsIContentSerializer, NS_NewXHTMLContentSerializer) |
327 | | MAKE_CTOR(CreatePlainTextSerializer, nsIContentSerializer, NS_NewPlainTextSerializer) |
328 | | MAKE_CTOR(CreateContentPolicy, nsIContentPolicy, NS_NewContentPolicy) |
329 | | MAKE_CTOR(CreateContentDLF, nsIDocumentLoaderFactory, NS_NewContentDocumentLoaderFactory) |
330 | | MAKE_CTOR(CreateEventListenerService, nsIEventListenerService, NS_NewEventListenerService) |
331 | | MAKE_CTOR(CreateGlobalMessageManager, nsISupports, NS_NewGlobalMessageManager) |
332 | | MAKE_CTOR(CreateParentMessageManager, nsISupports, NS_NewParentProcessMessageManager) |
333 | | MAKE_CTOR(CreateChildMessageManager, nsISupports, NS_NewChildProcessMessageManager) |
334 | | NS_GENERIC_FACTORY_CONSTRUCTOR(nsDataDocumentContentPolicy) |
335 | | NS_GENERIC_FACTORY_CONSTRUCTOR(nsNoDataProtocolContentPolicy) |
336 | | MAKE_CTOR(CreateFocusManager, nsIFocusManager, NS_NewFocusManager) |
337 | | |
338 | | NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsStyleSheetService, Init) |
339 | | |
340 | | typedef nsJSURI::Mutator nsJSURIMutator; |
341 | | NS_GENERIC_FACTORY_CONSTRUCTOR(nsJSURIMutator) |
342 | | |
343 | | // views are not refcounted, so this is the same as |
344 | | // NS_GENERIC_FACTORY_CONSTRUCTOR without the NS_ADDREF/NS_RELEASE |
345 | | #define NS_GENERIC_FACTORY_CONSTRUCTOR_NOREFS(_InstanceClass) \ |
346 | | static nsresult \ |
347 | | _InstanceClass##Constructor(nsISupports *aOuter, REFNSIID aIID, \ |
348 | | void **aResult) \ |
349 | | { \ |
350 | | nsresult rv; \ |
351 | | \ |
352 | | *aResult = nullptr; \ |
353 | | if (nullptr != aOuter) { \ |
354 | | rv = NS_ERROR_NO_AGGREGATION; \ |
355 | | return rv; \ |
356 | | } \ |
357 | | \ |
358 | | _InstanceClass * inst = new _InstanceClass(); \ |
359 | | if (nullptr == inst) { \ |
360 | | rv = NS_ERROR_OUT_OF_MEMORY; \ |
361 | | return rv; \ |
362 | | } \ |
363 | | rv = inst->QueryInterface(aIID, aResult); \ |
364 | | \ |
365 | | return rv; \ |
366 | | } \ |
367 | | |
368 | | #define NS_GEOLOCATION_CID \ |
369 | | { 0x1E1C3FF, 0x94A, 0xD048, { 0x44, 0xB4, 0x62, 0xD2, 0x9C, 0x7B, 0x4F, 0x39 } } |
370 | | |
371 | | NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(Geolocation, Geolocation::NonWindowSingleton) |
372 | | |
373 | | #define NS_WEBSOCKETEVENT_SERVICE_CID \ |
374 | | { 0x31689828, 0xda66, 0x49a6, { 0x87, 0x0c, 0xdf, 0x62, 0xb8, 0x3f, 0xe7, 0x89 }} |
375 | | |
376 | | NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(WebSocketEventService, WebSocketEventService::GetOrCreate) |
377 | | |
378 | | #ifdef MOZ_WEBSPEECH_TEST_BACKEND |
379 | | NS_GENERIC_FACTORY_CONSTRUCTOR(FakeSpeechRecognitionService) |
380 | | #endif |
381 | | |
382 | | NS_GENERIC_FACTORY_CONSTRUCTOR(nsContentSecurityManager) |
383 | | NS_GENERIC_FACTORY_CONSTRUCTOR(nsCSPContext) |
384 | | NS_GENERIC_FACTORY_CONSTRUCTOR(CSPService) |
385 | | NS_GENERIC_FACTORY_CONSTRUCTOR(nsMixedContentBlocker) |
386 | | |
387 | | NS_GENERIC_FACTORY_CONSTRUCTOR(ContentPrincipal) |
388 | | NS_GENERIC_FACTORY_CONSTRUCTOR(ExpandedPrincipal) |
389 | | NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(SystemPrincipal, |
390 | | nsScriptSecurityManager::SystemPrincipalSingletonConstructor) |
391 | | NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(NullPrincipal, Init) |
392 | | NS_GENERIC_FACTORY_CONSTRUCTOR(nsStructuredCloneContainer) |
393 | | |
394 | | NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(OSFileConstantsService, |
395 | | OSFileConstantsService::GetOrCreate); |
396 | | |
397 | | NS_GENERIC_FACTORY_CONSTRUCTOR(UDPSocketChild) |
398 | | |
399 | | NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(GeckoMediaPluginService, GeckoMediaPluginService::GetGeckoMediaPluginService) |
400 | | |
401 | | NS_GENERIC_FACTORY_CONSTRUCTOR(nsScriptError) |
402 | | |
403 | | #ifdef ACCESSIBILITY |
404 | | #include "xpcAccessibilityService.h" |
405 | | |
406 | | MAKE_CTOR(CreateA11yService, nsIAccessibilityService, NS_GetAccessibilityService) |
407 | | #endif |
408 | | |
409 | | static nsresult |
410 | | Construct_nsIScriptSecurityManager(nsISupports *aOuter, REFNSIID aIID, |
411 | | void **aResult) |
412 | 0 | { |
413 | 0 | if (!aResult) |
414 | 0 | return NS_ERROR_NULL_POINTER; |
415 | 0 | *aResult = nullptr; |
416 | 0 | if (aOuter) |
417 | 0 | return NS_ERROR_NO_AGGREGATION; |
418 | 0 | nsScriptSecurityManager *obj = nsScriptSecurityManager::GetScriptSecurityManager(); |
419 | 0 | if (!obj) |
420 | 0 | return NS_ERROR_OUT_OF_MEMORY; |
421 | 0 | if (NS_FAILED(obj->QueryInterface(aIID, aResult))) |
422 | 0 | return NS_ERROR_FAILURE; |
423 | 0 | return NS_OK; |
424 | 0 | } |
425 | | |
426 | | #ifdef DEBUG |
427 | | NS_DEFINE_NAMED_CID(NS_LAYOUT_DEBUGGER_CID); |
428 | | #endif |
429 | | NS_DEFINE_NAMED_CID(NS_FRAMETRAVERSAL_CID); |
430 | | NS_DEFINE_NAMED_CID(IN_DEEPTREEWALKER_CID); |
431 | | NS_DEFINE_NAMED_CID(NS_CONTENT_VIEWER_CID); |
432 | | NS_DEFINE_NAMED_CID(NS_TEXT_ENCODER_CID); |
433 | | NS_DEFINE_NAMED_CID(NS_HTMLCOPY_TEXT_ENCODER_CID); |
434 | | NS_DEFINE_NAMED_CID(NS_XMLCONTENTSERIALIZER_CID); |
435 | | NS_DEFINE_NAMED_CID(NS_XHTMLCONTENTSERIALIZER_CID); |
436 | | NS_DEFINE_NAMED_CID(NS_HTMLCONTENTSERIALIZER_CID); |
437 | | NS_DEFINE_NAMED_CID(NS_PLAINTEXTSERIALIZER_CID); |
438 | | NS_DEFINE_NAMED_CID(NS_PARSERUTILS_CID); |
439 | | NS_DEFINE_NAMED_CID(NS_SCRIPTABLEUNESCAPEHTML_CID); |
440 | | NS_DEFINE_NAMED_CID(NS_CONTENTPOLICY_CID); |
441 | | NS_DEFINE_NAMED_CID(NS_DATADOCUMENTCONTENTPOLICY_CID); |
442 | | NS_DEFINE_NAMED_CID(NS_NODATAPROTOCOLCONTENTPOLICY_CID); |
443 | | NS_DEFINE_NAMED_CID(NS_CONTENT_DOCUMENT_LOADER_FACTORY_CID); |
444 | | NS_DEFINE_NAMED_CID(NS_JSPROTOCOLHANDLER_CID); |
445 | | NS_DEFINE_NAMED_CID(NS_JSURI_CID); |
446 | | NS_DEFINE_NAMED_CID(NS_JSURIMUTATOR_CID); |
447 | | NS_DEFINE_NAMED_CID(NS_PLUGINDOCLOADERFACTORY_CID); |
448 | | NS_DEFINE_NAMED_CID(NS_STYLESHEETSERVICE_CID); |
449 | | NS_DEFINE_NAMED_CID(NS_HOSTOBJECTURI_CID); |
450 | | NS_DEFINE_NAMED_CID(NS_HOSTOBJECTURIMUTATOR_CID); |
451 | | NS_DEFINE_NAMED_CID(NS_SDBCONNECTION_CID); |
452 | | NS_DEFINE_NAMED_CID(NS_DOMLOCALSTORAGEMANAGER_CID); |
453 | | NS_DEFINE_NAMED_CID(DOMREQUEST_SERVICE_CID); |
454 | | NS_DEFINE_NAMED_CID(QUOTAMANAGER_SERVICE_CID); |
455 | | NS_DEFINE_NAMED_CID(SERVICEWORKERMANAGER_CID); |
456 | | NS_DEFINE_NAMED_CID(STORAGEACTIVITYSERVICE_CID); |
457 | | NS_DEFINE_NAMED_CID(NOTIFICATIONTELEMETRYSERVICE_CID); |
458 | | NS_DEFINE_NAMED_CID(PUSHNOTIFIER_CID); |
459 | | NS_DEFINE_NAMED_CID(WORKERDEBUGGERMANAGER_CID); |
460 | | NS_DEFINE_NAMED_CID(NS_GEOLOCATION_CID); |
461 | | NS_DEFINE_NAMED_CID(NS_WEBSOCKETEVENT_SERVICE_CID); |
462 | | NS_DEFINE_NAMED_CID(NS_FOCUSMANAGER_CID); |
463 | | NS_DEFINE_NAMED_CID(NS_CONTENTSECURITYMANAGER_CID); |
464 | | NS_DEFINE_NAMED_CID(CSPSERVICE_CID); |
465 | | NS_DEFINE_NAMED_CID(NS_CSPCONTEXT_CID); |
466 | | NS_DEFINE_NAMED_CID(NS_MIXEDCONTENTBLOCKER_CID); |
467 | | NS_DEFINE_NAMED_CID(NS_EVENTLISTENERSERVICE_CID); |
468 | | NS_DEFINE_NAMED_CID(NS_GLOBALMESSAGEMANAGER_CID); |
469 | | NS_DEFINE_NAMED_CID(NS_PARENTPROCESSMESSAGEMANAGER_CID); |
470 | | NS_DEFINE_NAMED_CID(NS_CHILDPROCESSMESSAGEMANAGER_CID); |
471 | | NS_DEFINE_NAMED_CID(NS_SCRIPTSECURITYMANAGER_CID); |
472 | | NS_DEFINE_NAMED_CID(NS_PRINCIPAL_CID); |
473 | | NS_DEFINE_NAMED_CID(NS_EXPANDEDPRINCIPAL_CID); |
474 | | NS_DEFINE_NAMED_CID(NS_SYSTEMPRINCIPAL_CID); |
475 | | NS_DEFINE_NAMED_CID(NS_NULLPRINCIPAL_CID); |
476 | | NS_DEFINE_NAMED_CID(THIRDPARTYUTIL_CID); |
477 | | NS_DEFINE_NAMED_CID(NS_STRUCTUREDCLONECONTAINER_CID); |
478 | | NS_DEFINE_NAMED_CID(NS_DEVICE_SENSORS_CID); |
479 | | #if defined(ANDROID) |
480 | | NS_DEFINE_NAMED_CID(NS_HAPTICFEEDBACK_CID); |
481 | | #endif |
482 | | NS_DEFINE_NAMED_CID(NS_POWERMANAGERSERVICE_CID); |
483 | | NS_DEFINE_NAMED_CID(OSFILECONSTANTSSERVICE_CID); |
484 | | NS_DEFINE_NAMED_CID(UDPSOCKETCHILD_CID); |
485 | | NS_DEFINE_NAMED_CID(NS_MEDIAMANAGERSERVICE_CID); |
486 | | #ifdef MOZ_WEBSPEECH_TEST_BACKEND |
487 | | NS_DEFINE_NAMED_CID(NS_FAKE_SPEECH_RECOGNITION_SERVICE_CID); |
488 | | #endif |
489 | | #ifdef MOZ_WEBSPEECH |
490 | | NS_DEFINE_NAMED_CID(NS_SYNTHVOICEREGISTRY_CID); |
491 | | #endif |
492 | | |
493 | | #ifdef ACCESSIBILITY |
494 | | NS_DEFINE_NAMED_CID(NS_ACCESSIBILITY_SERVICE_CID); |
495 | | #endif |
496 | | |
497 | | NS_DEFINE_NAMED_CID(GECKO_MEDIA_PLUGIN_SERVICE_CID); |
498 | | |
499 | | NS_DEFINE_NAMED_CID(PRESENTATION_SERVICE_CID); |
500 | | NS_DEFINE_NAMED_CID(PRESENTATION_DEVICE_MANAGER_CID); |
501 | | NS_DEFINE_NAMED_CID(PRESENTATION_TCP_SESSION_TRANSPORT_CID); |
502 | | |
503 | | NS_DEFINE_NAMED_CID(TEXT_INPUT_PROCESSOR_CID); |
504 | | |
505 | | NS_DEFINE_NAMED_CID(NS_SCRIPTERROR_CID); |
506 | | |
507 | | static const mozilla::Module::CIDEntry kLayoutCIDs[] = { |
508 | | XPCONNECT_CIDENTRIES |
509 | | #ifdef DEBUG |
510 | | { &kNS_LAYOUT_DEBUGGER_CID, false, nullptr, CreateNewLayoutDebugger }, |
511 | | #endif |
512 | | { &kNS_FRAMETRAVERSAL_CID, false, nullptr, CreateNewFrameTraversal }, |
513 | | { &kIN_DEEPTREEWALKER_CID, false, nullptr, inDeepTreeWalkerConstructor }, |
514 | | { &kNS_CONTENT_VIEWER_CID, false, nullptr, CreateContentViewer }, |
515 | | { &kNS_TEXT_ENCODER_CID, false, nullptr, CreateTextEncoder }, |
516 | | { &kNS_HTMLCOPY_TEXT_ENCODER_CID, false, nullptr, CreateHTMLCopyTextEncoder }, |
517 | | { &kNS_XMLCONTENTSERIALIZER_CID, false, nullptr, CreateXMLContentSerializer }, |
518 | | { &kNS_HTMLCONTENTSERIALIZER_CID, false, nullptr, CreateHTMLContentSerializer }, |
519 | | { &kNS_XHTMLCONTENTSERIALIZER_CID, false, nullptr, CreateXHTMLContentSerializer }, |
520 | | { &kNS_PLAINTEXTSERIALIZER_CID, false, nullptr, CreatePlainTextSerializer }, |
521 | | { &kNS_PARSERUTILS_CID, false, nullptr, nsParserUtilsConstructor }, |
522 | | { &kNS_SCRIPTABLEUNESCAPEHTML_CID, false, nullptr, nsParserUtilsConstructor }, |
523 | | { &kNS_CONTENTPOLICY_CID, false, nullptr, CreateContentPolicy }, |
524 | | { &kNS_DATADOCUMENTCONTENTPOLICY_CID, false, nullptr, nsDataDocumentContentPolicyConstructor }, |
525 | | { &kNS_NODATAPROTOCOLCONTENTPOLICY_CID, false, nullptr, nsNoDataProtocolContentPolicyConstructor }, |
526 | | { &kNS_CONTENT_DOCUMENT_LOADER_FACTORY_CID, false, nullptr, CreateContentDLF }, |
527 | | { &kNS_JSPROTOCOLHANDLER_CID, false, nullptr, nsJSProtocolHandler::Create }, |
528 | | { &kNS_JSURI_CID, false, nullptr, nsJSURIMutatorConstructor }, // do_CreateInstance returns mutator |
529 | | { &kNS_JSURIMUTATOR_CID, false, nullptr, nsJSURIMutatorConstructor }, |
530 | | { &kNS_PLUGINDOCLOADERFACTORY_CID, false, nullptr, CreateContentDLF }, |
531 | | { &kNS_STYLESHEETSERVICE_CID, false, nullptr, nsStyleSheetServiceConstructor }, |
532 | | { &kNS_HOSTOBJECTURI_CID, false, nullptr, BlobURLMutatorConstructor }, // do_CreateInstance returns mutator |
533 | | { &kNS_HOSTOBJECTURIMUTATOR_CID, false, nullptr, BlobURLMutatorConstructor }, |
534 | | { &kNS_SDBCONNECTION_CID, false, nullptr, SDBConnection::Create }, |
535 | | { &kNS_DOMLOCALSTORAGEMANAGER_CID, false, nullptr, LocalStorageManagerConstructor }, |
536 | | { &kDOMREQUEST_SERVICE_CID, false, nullptr, DOMRequestServiceConstructor }, |
537 | | { &kQUOTAMANAGER_SERVICE_CID, false, nullptr, QuotaManagerServiceConstructor }, |
538 | | { &kSERVICEWORKERMANAGER_CID, false, nullptr, ServiceWorkerManagerConstructor }, |
539 | | { &kSTORAGEACTIVITYSERVICE_CID, false, nullptr, StorageActivityServiceConstructor }, |
540 | | { &kNOTIFICATIONTELEMETRYSERVICE_CID, false, nullptr, NotificationTelemetryServiceConstructor }, |
541 | | { &kPUSHNOTIFIER_CID, false, nullptr, PushNotifierConstructor }, |
542 | | { &kWORKERDEBUGGERMANAGER_CID, true, nullptr, WorkerDebuggerManagerConstructor }, |
543 | | { &kNS_GEOLOCATION_CID, false, nullptr, GeolocationConstructor }, |
544 | | { &kNS_WEBSOCKETEVENT_SERVICE_CID, false, nullptr, WebSocketEventServiceConstructor }, |
545 | | { &kNS_FOCUSMANAGER_CID, false, nullptr, CreateFocusManager }, |
546 | | #ifdef MOZ_WEBSPEECH_TEST_BACKEND |
547 | | { &kNS_FAKE_SPEECH_RECOGNITION_SERVICE_CID, false, nullptr, FakeSpeechRecognitionServiceConstructor }, |
548 | | #endif |
549 | | #ifdef MOZ_WEBSPEECH |
550 | | { &kNS_SYNTHVOICEREGISTRY_CID, true, nullptr, nsSynthVoiceRegistryConstructor }, |
551 | | #endif |
552 | | { &kNS_CONTENTSECURITYMANAGER_CID, false, nullptr, nsContentSecurityManagerConstructor }, |
553 | | { &kCSPSERVICE_CID, false, nullptr, CSPServiceConstructor }, |
554 | | { &kNS_CSPCONTEXT_CID, false, nullptr, nsCSPContextConstructor }, |
555 | | { &kNS_MIXEDCONTENTBLOCKER_CID, false, nullptr, nsMixedContentBlockerConstructor }, |
556 | | { &kNS_EVENTLISTENERSERVICE_CID, false, nullptr, CreateEventListenerService }, |
557 | | { &kNS_GLOBALMESSAGEMANAGER_CID, false, nullptr, CreateGlobalMessageManager }, |
558 | | { &kNS_PARENTPROCESSMESSAGEMANAGER_CID, false, nullptr, CreateParentMessageManager }, |
559 | | { &kNS_CHILDPROCESSMESSAGEMANAGER_CID, false, nullptr, CreateChildMessageManager }, |
560 | | { &kNS_SCRIPTSECURITYMANAGER_CID, false, nullptr, Construct_nsIScriptSecurityManager }, |
561 | | { &kNS_PRINCIPAL_CID, false, nullptr, ContentPrincipalConstructor }, |
562 | | { &kNS_EXPANDEDPRINCIPAL_CID, false, nullptr, ExpandedPrincipalConstructor }, |
563 | | { &kNS_SYSTEMPRINCIPAL_CID, false, nullptr, SystemPrincipalConstructor }, |
564 | | { &kNS_NULLPRINCIPAL_CID, false, nullptr, NullPrincipalConstructor }, |
565 | | { &kNS_DEVICE_SENSORS_CID, false, nullptr, nsDeviceSensorsConstructor }, |
566 | | #if defined(ANDROID) |
567 | | { &kNS_HAPTICFEEDBACK_CID, false, nullptr, nsHapticFeedbackConstructor }, |
568 | | #endif |
569 | | { &kTHIRDPARTYUTIL_CID, false, nullptr, ThirdPartyUtilConstructor }, |
570 | | { &kNS_STRUCTUREDCLONECONTAINER_CID, false, nullptr, nsStructuredCloneContainerConstructor }, |
571 | | { &kNS_POWERMANAGERSERVICE_CID, false, nullptr, nsIPowerManagerServiceConstructor, Module::ALLOW_IN_GPU_PROCESS }, |
572 | | { &kOSFILECONSTANTSSERVICE_CID, true, nullptr, OSFileConstantsServiceConstructor }, |
573 | | { &kUDPSOCKETCHILD_CID, false, nullptr, UDPSocketChildConstructor }, |
574 | | { &kGECKO_MEDIA_PLUGIN_SERVICE_CID, true, nullptr, GeckoMediaPluginServiceConstructor }, |
575 | | { &kNS_MEDIAMANAGERSERVICE_CID, false, nullptr, nsIMediaManagerServiceConstructor }, |
576 | | #ifdef ACCESSIBILITY |
577 | | { &kNS_ACCESSIBILITY_SERVICE_CID, false, nullptr, CreateA11yService }, |
578 | | #endif |
579 | | { &kPRESENTATION_SERVICE_CID, false, nullptr, nsIPresentationServiceConstructor }, |
580 | | { &kPRESENTATION_DEVICE_MANAGER_CID, false, nullptr, PresentationDeviceManagerConstructor }, |
581 | | { &kPRESENTATION_TCP_SESSION_TRANSPORT_CID, false, nullptr, PresentationTCPSessionTransportConstructor }, |
582 | | { &kTEXT_INPUT_PROCESSOR_CID, false, nullptr, TextInputProcessorConstructor }, |
583 | | { &kNS_SCRIPTERROR_CID, false, nullptr, nsScriptErrorConstructor }, |
584 | | { nullptr } |
585 | | }; |
586 | | |
587 | | static const mozilla::Module::ContractIDEntry kLayoutContracts[] = { |
588 | | XPCONNECT_CONTRACTS |
589 | | { "@mozilla.org/inspector/deep-tree-walker;1", &kIN_DEEPTREEWALKER_CID }, |
590 | | { NS_DOC_ENCODER_CONTRACTID_BASE "text/xml", &kNS_TEXT_ENCODER_CID }, |
591 | | { NS_DOC_ENCODER_CONTRACTID_BASE "application/xml", &kNS_TEXT_ENCODER_CID }, |
592 | | { NS_DOC_ENCODER_CONTRACTID_BASE "application/xhtml+xml", &kNS_TEXT_ENCODER_CID }, |
593 | | { NS_DOC_ENCODER_CONTRACTID_BASE "image/svg+xml", &kNS_TEXT_ENCODER_CID }, |
594 | | { NS_DOC_ENCODER_CONTRACTID_BASE "text/html", &kNS_TEXT_ENCODER_CID }, |
595 | | { NS_DOC_ENCODER_CONTRACTID_BASE "text/plain", &kNS_TEXT_ENCODER_CID }, |
596 | | { NS_HTMLCOPY_ENCODER_CONTRACTID, &kNS_HTMLCOPY_TEXT_ENCODER_CID }, |
597 | | { NS_CONTENTSERIALIZER_CONTRACTID_PREFIX "text/xml", &kNS_XMLCONTENTSERIALIZER_CID }, |
598 | | { NS_CONTENTSERIALIZER_CONTRACTID_PREFIX "application/xml", &kNS_XMLCONTENTSERIALIZER_CID }, |
599 | | { NS_CONTENTSERIALIZER_CONTRACTID_PREFIX "application/xhtml+xml", &kNS_XHTMLCONTENTSERIALIZER_CID }, |
600 | | { NS_CONTENTSERIALIZER_CONTRACTID_PREFIX "image/svg+xml", &kNS_XMLCONTENTSERIALIZER_CID }, |
601 | | { NS_CONTENTSERIALIZER_CONTRACTID_PREFIX "text/html", &kNS_HTMLCONTENTSERIALIZER_CID }, |
602 | | { NS_CONTENTSERIALIZER_CONTRACTID_PREFIX "application/vnd.mozilla.xul+xml", &kNS_XMLCONTENTSERIALIZER_CID }, |
603 | | { NS_CONTENTSERIALIZER_CONTRACTID_PREFIX "text/plain", &kNS_PLAINTEXTSERIALIZER_CID }, |
604 | | { NS_PARSERUTILS_CONTRACTID, &kNS_PARSERUTILS_CID }, |
605 | | { NS_SCRIPTABLEUNESCAPEHTML_CONTRACTID, &kNS_SCRIPTABLEUNESCAPEHTML_CID }, |
606 | | { NS_CONTENTPOLICY_CONTRACTID, &kNS_CONTENTPOLICY_CID }, |
607 | | { NS_DATADOCUMENTCONTENTPOLICY_CONTRACTID, &kNS_DATADOCUMENTCONTENTPOLICY_CID }, |
608 | | { NS_NODATAPROTOCOLCONTENTPOLICY_CONTRACTID, &kNS_NODATAPROTOCOLCONTENTPOLICY_CID }, |
609 | | { CONTENT_DLF_CONTRACTID, &kNS_CONTENT_DOCUMENT_LOADER_FACTORY_CID }, |
610 | | { NS_JSPROTOCOLHANDLER_CONTRACTID, &kNS_JSPROTOCOLHANDLER_CID }, |
611 | | { PLUGIN_DLF_CONTRACTID, &kNS_PLUGINDOCLOADERFACTORY_CID }, |
612 | | { NS_STYLESHEETSERVICE_CONTRACTID, &kNS_STYLESHEETSERVICE_CID }, |
613 | | { NS_SDBCONNECTION_CONTRACTID, &kNS_SDBCONNECTION_CID }, |
614 | | { "@mozilla.org/dom/localStorage-manager;1", &kNS_DOMLOCALSTORAGEMANAGER_CID }, |
615 | | { DOMREQUEST_SERVICE_CONTRACTID, &kDOMREQUEST_SERVICE_CID }, |
616 | | { QUOTAMANAGER_SERVICE_CONTRACTID, &kQUOTAMANAGER_SERVICE_CID }, |
617 | | { SERVICEWORKERMANAGER_CONTRACTID, &kSERVICEWORKERMANAGER_CID }, |
618 | | { STORAGE_ACTIVITY_SERVICE_CONTRACTID, &kSTORAGEACTIVITYSERVICE_CID }, |
619 | | { NOTIFICATIONTELEMETRYSERVICE_CONTRACTID, &kNOTIFICATIONTELEMETRYSERVICE_CID }, |
620 | | { PUSHNOTIFIER_CONTRACTID, &kPUSHNOTIFIER_CID }, |
621 | | { WORKERDEBUGGERMANAGER_CONTRACTID, &kWORKERDEBUGGERMANAGER_CID }, |
622 | | { "@mozilla.org/geolocation;1", &kNS_GEOLOCATION_CID }, |
623 | | { "@mozilla.org/websocketevent/service;1", &kNS_WEBSOCKETEVENT_SERVICE_CID }, |
624 | | { "@mozilla.org/focus-manager;1", &kNS_FOCUSMANAGER_CID }, |
625 | | #ifdef MOZ_WEBSPEECH_TEST_BACKEND |
626 | | { NS_SPEECH_RECOGNITION_SERVICE_CONTRACTID_PREFIX "fake", &kNS_FAKE_SPEECH_RECOGNITION_SERVICE_CID }, |
627 | | #endif |
628 | | #ifdef MOZ_WEBSPEECH |
629 | | { NS_SYNTHVOICEREGISTRY_CONTRACTID, &kNS_SYNTHVOICEREGISTRY_CID }, |
630 | | #endif |
631 | | { NS_CONTENTSECURITYMANAGER_CONTRACTID, &kNS_CONTENTSECURITYMANAGER_CID }, |
632 | | { CSPSERVICE_CONTRACTID, &kCSPSERVICE_CID }, |
633 | | { NS_CSPCONTEXT_CONTRACTID, &kNS_CSPCONTEXT_CID }, |
634 | | { NS_MIXEDCONTENTBLOCKER_CONTRACTID, &kNS_MIXEDCONTENTBLOCKER_CID }, |
635 | | { NS_EVENTLISTENERSERVICE_CONTRACTID, &kNS_EVENTLISTENERSERVICE_CID }, |
636 | | { NS_GLOBALMESSAGEMANAGER_CONTRACTID, &kNS_GLOBALMESSAGEMANAGER_CID }, |
637 | | { NS_PARENTPROCESSMESSAGEMANAGER_CONTRACTID, &kNS_PARENTPROCESSMESSAGEMANAGER_CID }, |
638 | | { NS_CHILDPROCESSMESSAGEMANAGER_CONTRACTID, &kNS_CHILDPROCESSMESSAGEMANAGER_CID }, |
639 | | { NS_SCRIPTSECURITYMANAGER_CONTRACTID, &kNS_SCRIPTSECURITYMANAGER_CID }, |
640 | | { NS_PRINCIPAL_CONTRACTID, &kNS_PRINCIPAL_CID }, |
641 | | { NS_EXPANDEDPRINCIPAL_CONTRACTID, &kNS_EXPANDEDPRINCIPAL_CID }, |
642 | | { NS_SYSTEMPRINCIPAL_CONTRACTID, &kNS_SYSTEMPRINCIPAL_CID }, |
643 | | { NS_NULLPRINCIPAL_CONTRACTID, &kNS_NULLPRINCIPAL_CID }, |
644 | | { NS_DEVICE_SENSORS_CONTRACTID, &kNS_DEVICE_SENSORS_CID }, |
645 | | #if defined(ANDROID) |
646 | | { "@mozilla.org/widget/hapticfeedback;1", &kNS_HAPTICFEEDBACK_CID }, |
647 | | #endif |
648 | | { THIRDPARTYUTIL_CONTRACTID, &kTHIRDPARTYUTIL_CID }, |
649 | | { NS_STRUCTUREDCLONECONTAINER_CONTRACTID, &kNS_STRUCTUREDCLONECONTAINER_CID }, |
650 | | { POWERMANAGERSERVICE_CONTRACTID, &kNS_POWERMANAGERSERVICE_CID, Module::ALLOW_IN_GPU_PROCESS }, |
651 | | { OSFILECONSTANTSSERVICE_CONTRACTID, &kOSFILECONSTANTSSERVICE_CID }, |
652 | | { "@mozilla.org/udp-socket-child;1", &kUDPSOCKETCHILD_CID }, |
653 | | { MEDIAMANAGERSERVICE_CONTRACTID, &kNS_MEDIAMANAGERSERVICE_CID }, |
654 | | #ifdef ACCESSIBILITY |
655 | | { "@mozilla.org/accessibilityService;1", &kNS_ACCESSIBILITY_SERVICE_CID }, |
656 | | { "@mozilla.org/accessibleRetrieval;1", &kNS_ACCESSIBILITY_SERVICE_CID }, |
657 | | #endif |
658 | | { "@mozilla.org/gecko-media-plugin-service;1", &kGECKO_MEDIA_PLUGIN_SERVICE_CID }, |
659 | | { PRESENTATION_SERVICE_CONTRACTID, &kPRESENTATION_SERVICE_CID }, |
660 | | { PRESENTATION_DEVICE_MANAGER_CONTRACTID, &kPRESENTATION_DEVICE_MANAGER_CID }, |
661 | | { PRESENTATION_TCP_SESSION_TRANSPORT_CONTRACTID, &kPRESENTATION_TCP_SESSION_TRANSPORT_CID }, |
662 | | { "@mozilla.org/text-input-processor;1", &kTEXT_INPUT_PROCESSOR_CID }, |
663 | | { NS_SCRIPTERROR_CONTRACTID, &kNS_SCRIPTERROR_CID }, |
664 | | { nullptr } |
665 | | }; |
666 | | |
667 | | static const mozilla::Module::CategoryEntry kLayoutCategories[] = { |
668 | | XPCONNECT_CATEGORIES |
669 | | { "content-policy", NS_DATADOCUMENTCONTENTPOLICY_CONTRACTID, NS_DATADOCUMENTCONTENTPOLICY_CONTRACTID }, |
670 | | { "content-policy", NS_NODATAPROTOCOLCONTENTPOLICY_CONTRACTID, NS_NODATAPROTOCOLCONTENTPOLICY_CONTRACTID }, |
671 | | { "content-policy", "CSPService", CSPSERVICE_CONTRACTID }, |
672 | | { "content-policy", NS_MIXEDCONTENTBLOCKER_CONTRACTID, NS_MIXEDCONTENTBLOCKER_CONTRACTID }, |
673 | | { "net-channel-event-sinks", "CSPService", CSPSERVICE_CONTRACTID }, |
674 | | { "net-channel-event-sinks", NS_MIXEDCONTENTBLOCKER_CONTRACTID, NS_MIXEDCONTENTBLOCKER_CONTRACTID }, |
675 | | { "app-startup", "Script Security Manager", "service," NS_SCRIPTSECURITYMANAGER_CONTRACTID }, |
676 | | { "app-startup", "Push Notifier", "service," PUSHNOTIFIER_CONTRACTID }, |
677 | | { "clear-origin-attributes-data", "QuotaManagerService", "service," QUOTAMANAGER_SERVICE_CONTRACTID }, |
678 | | { OBSERVER_TOPIC_IDLE_DAILY, "QuotaManagerService", QUOTAMANAGER_SERVICE_CONTRACTID }, |
679 | | CONTENTDLF_CATEGORIES |
680 | | { "profile-after-change", "PresentationDeviceManager", PRESENTATION_DEVICE_MANAGER_CONTRACTID }, |
681 | | { "profile-after-change", "PresentationService", PRESENTATION_SERVICE_CONTRACTID }, |
682 | | { "profile-after-change", "Notification Telemetry Service", NOTIFICATIONTELEMETRYSERVICE_CONTRACTID }, |
683 | | { nullptr } |
684 | | }; |
685 | | |
686 | | static void |
687 | | LayoutModuleDtor() |
688 | 0 | { |
689 | 0 | if (XRE_GetProcessType() == GeckoProcessType_GPU) { |
690 | 0 | return; |
691 | 0 | } |
692 | 0 | |
693 | 0 | Shutdown(); |
694 | 0 | nsContentUtils::XPCOMShutdown(); |
695 | 0 |
|
696 | 0 | // Layout depends heavily on gfx and imagelib, so we want to make sure that |
697 | 0 | // these modules are shut down after all the layout cleanup runs. |
698 | 0 | mozilla::image::ShutdownModule(); |
699 | 0 | gfxPlatform::Shutdown(); |
700 | 0 | gfx::gfxVars::Shutdown(); |
701 | 0 |
|
702 | 0 | nsScriptSecurityManager::Shutdown(); |
703 | 0 | xpcModuleDtor(); |
704 | 0 | } |
705 | | |
706 | | static const mozilla::Module kLayoutModule = { |
707 | | mozilla::Module::kVersion, |
708 | | kLayoutCIDs, |
709 | | kLayoutContracts, |
710 | | kLayoutCategories, |
711 | | nullptr, |
712 | | Initialize, |
713 | | LayoutModuleDtor, |
714 | | Module::ALLOW_IN_GPU_PROCESS |
715 | | }; |
716 | | |
717 | | NSMODULE_DEFN(nsLayoutModule) = &kLayoutModule; |