|
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ |
|
2 /* This Source Code Form is subject to the terms of the Mozilla Public |
|
3 * License, v. 2.0. If a copy of the MPL was not distributed with this |
|
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
|
5 |
|
6 #include "base/basictypes.h" |
|
7 |
|
8 #include "XPCModule.h" |
|
9 #include "mozilla/ModuleUtils.h" |
|
10 #include "nsImageModule.h" |
|
11 #include "nsLayoutStatics.h" |
|
12 #include "nsContentCID.h" |
|
13 #include "nsContentDLF.h" |
|
14 #include "nsContentPolicyUtils.h" |
|
15 #include "nsDataDocumentContentPolicy.h" |
|
16 #include "nsNoDataProtocolContentPolicy.h" |
|
17 #include "nsDOMCID.h" |
|
18 #include "nsHTMLContentSerializer.h" |
|
19 #include "nsHTMLParts.h" |
|
20 #include "nsIComponentManager.h" |
|
21 #include "nsIContentIterator.h" |
|
22 #include "nsIContentSerializer.h" |
|
23 #include "nsIContentViewer.h" |
|
24 #include "nsIController.h" |
|
25 #include "nsIControllers.h" |
|
26 #include "nsIDOMDOMImplementation.h" |
|
27 #include "nsIDocument.h" |
|
28 #include "nsIDocumentEncoder.h" |
|
29 #include "nsIFactory.h" |
|
30 #include "nsIFrameUtil.h" |
|
31 #include "nsHTMLStyleSheet.h" |
|
32 #include "nsILayoutDebugger.h" |
|
33 #include "nsNameSpaceManager.h" |
|
34 #include "nsINodeInfo.h" |
|
35 #include "nsIObserver.h" |
|
36 #include "nsIObserverService.h" |
|
37 #include "nsIScriptNameSpaceManager.h" |
|
38 #include "nsISelection.h" |
|
39 #include "nsCaret.h" |
|
40 #include "nsPlainTextSerializer.h" |
|
41 #include "nsXMLContentSerializer.h" |
|
42 #include "nsXHTMLContentSerializer.h" |
|
43 #include "nsRuleNode.h" |
|
44 #include "nsContentAreaDragDrop.h" |
|
45 #include "nsContentList.h" |
|
46 #include "nsBox.h" |
|
47 #include "nsIFrameTraversal.h" |
|
48 #include "nsLayoutCID.h" |
|
49 #include "nsStyleSheetService.h" |
|
50 #include "nsFocusManager.h" |
|
51 #include "ThirdPartyUtil.h" |
|
52 #include "nsStructuredCloneContainer.h" |
|
53 |
|
54 #include "nsIEventListenerService.h" |
|
55 #include "nsIMessageManager.h" |
|
56 |
|
57 // Transformiix stuff |
|
58 #include "mozilla/dom/XPathEvaluator.h" |
|
59 #include "txMozillaXSLTProcessor.h" |
|
60 #include "txNodeSetAdaptor.h" |
|
61 |
|
62 #include "mozilla/dom/DOMParser.h" |
|
63 #include "nsDOMSerializer.h" |
|
64 #include "nsXMLHttpRequest.h" |
|
65 #include "nsChannelPolicy.h" |
|
66 |
|
67 // view stuff |
|
68 #include "nsContentCreatorFunctions.h" |
|
69 |
|
70 // DOM includes |
|
71 #include "nsDOMBlobBuilder.h" |
|
72 #include "nsDOMFileReader.h" |
|
73 |
|
74 #include "gfxPlatform.h" |
|
75 #include "nsFormData.h" |
|
76 #include "nsHostObjectProtocolHandler.h" |
|
77 #include "nsHostObjectURI.h" |
|
78 #include "nsGlobalWindowCommands.h" |
|
79 #include "nsIControllerCommandTable.h" |
|
80 #include "nsJSProtocolHandler.h" |
|
81 #include "nsScriptNameSpaceManager.h" |
|
82 #include "nsIControllerContext.h" |
|
83 #include "nsDOMScriptObjectFactory.h" |
|
84 #include "DOMStorageManager.h" |
|
85 #include "nsJSON.h" |
|
86 #include "nsZipArchive.h" |
|
87 #include "mozIApplicationClearPrivateDataParams.h" |
|
88 #include "mozilla/Attributes.h" |
|
89 #include "mozilla/dom/DOMException.h" |
|
90 #include "mozilla/dom/DOMRequest.h" |
|
91 #include "mozilla/dom/indexedDB/IndexedDatabaseManager.h" |
|
92 #include "mozilla/dom/network/TCPSocketChild.h" |
|
93 #include "mozilla/dom/network/TCPSocketParent.h" |
|
94 #include "mozilla/dom/network/TCPServerSocketChild.h" |
|
95 #include "mozilla/dom/network/UDPSocketChild.h" |
|
96 #include "mozilla/dom/quota/QuotaManager.h" |
|
97 #include "mozilla/OSFileConstants.h" |
|
98 #include "mozilla/Services.h" |
|
99 |
|
100 #ifdef MOZ_WEBSPEECH |
|
101 #include "mozilla/dom/FakeSpeechRecognitionService.h" |
|
102 #include "mozilla/dom/nsSynthVoiceRegistry.h" |
|
103 #endif |
|
104 |
|
105 #ifdef MOZ_WIDGET_GONK |
|
106 #include "SystemWorkerManager.h" |
|
107 using mozilla::dom::gonk::SystemWorkerManager; |
|
108 #define SYSTEMWORKERMANAGER_CID \ |
|
109 {0xd53b6524, 0x6ac3, 0x42b0, {0xae, 0xca, 0x62, 0xb3, 0xc4, 0xe5, 0x2b, 0x04}} |
|
110 #define SYSTEMWORKERMANAGER_CONTRACTID \ |
|
111 "@mozilla.org/telephony/system-worker-manager;1" |
|
112 #endif |
|
113 |
|
114 #ifdef MOZ_B2G_BT |
|
115 #include "BluetoothService.h" |
|
116 using mozilla::dom::bluetooth::BluetoothService; |
|
117 #define BLUETOOTHSERVICE_CID \ |
|
118 {0xa753b487, 0x3344, 0x4de4, {0xad, 0x5f, 0x06, 0x36, 0x76, 0xa7, 0xc1, 0x04}} |
|
119 #define BLUETOOTHSERVICE_CONTRACTID \ |
|
120 "@mozilla.org/bluetooth/service;1" |
|
121 #endif |
|
122 |
|
123 #ifdef MOZ_WIDGET_GONK |
|
124 #include "AudioManager.h" |
|
125 using mozilla::dom::gonk::AudioManager; |
|
126 #include "nsVolumeService.h" |
|
127 using mozilla::system::nsVolumeService; |
|
128 #endif |
|
129 |
|
130 #include "AudioChannelAgent.h" |
|
131 using mozilla::dom::AudioChannelAgent; |
|
132 |
|
133 // Editor stuff |
|
134 #include "nsEditorCID.h" |
|
135 #include "nsEditor.h" |
|
136 #include "nsPlaintextEditor.h" |
|
137 #include "nsEditorController.h" //CID |
|
138 |
|
139 #include "nsHTMLEditor.h" |
|
140 #include "nsTextServicesDocument.h" |
|
141 #include "nsTextServicesCID.h" |
|
142 |
|
143 #include "nsScriptSecurityManager.h" |
|
144 #include "nsPrincipal.h" |
|
145 #include "nsSystemPrincipal.h" |
|
146 #include "nsNullPrincipal.h" |
|
147 #include "nsNetCID.h" |
|
148 #ifndef MOZ_WIDGET_GONK |
|
149 #if defined(MOZ_WIDGET_ANDROID) |
|
150 #include "nsHapticFeedback.h" |
|
151 #endif |
|
152 #endif |
|
153 #include "nsParserUtils.h" |
|
154 |
|
155 #define NS_EDITORCOMMANDTABLE_CID \ |
|
156 { 0x4f5e62b8, 0xd659, 0x4156, { 0x84, 0xfc, 0x2f, 0x60, 0x99, 0x40, 0x03, 0x69 }} |
|
157 |
|
158 #define NS_EDITINGCOMMANDTABLE_CID \ |
|
159 { 0xcb38a746, 0xbeb8, 0x43f3, { 0x94, 0x29, 0x77, 0x96, 0xe1, 0xa9, 0x3f, 0xb4 }} |
|
160 |
|
161 #define NS_HAPTICFEEDBACK_CID \ |
|
162 { 0x1f15dbc8, 0xbfaa, 0x45de, \ |
|
163 { 0x8a, 0x46, 0x08, 0xe2, 0xe2, 0x63, 0x26, 0xb0 } } |
|
164 |
|
165 NS_GENERIC_FACTORY_CONSTRUCTOR(nsPlaintextEditor) |
|
166 |
|
167 NS_GENERIC_FACTORY_CONSTRUCTOR(nsParserUtils) |
|
168 |
|
169 NS_GENERIC_FACTORY_CONSTRUCTOR(nsTextServicesDocument) |
|
170 NS_GENERIC_FACTORY_CONSTRUCTOR(nsHTMLEditor) |
|
171 |
|
172 #include "nsHTMLCanvasFrame.h" |
|
173 |
|
174 #include "nsIDOMWebGLRenderingContext.h" |
|
175 |
|
176 class nsIDocumentLoaderFactory; |
|
177 |
|
178 #define PRODUCT_NAME "Gecko" |
|
179 |
|
180 /* 0ddf4df8-4dbb-4133-8b79-9afb966514f5 */ |
|
181 #define NS_PLUGINDOCLOADERFACTORY_CID \ |
|
182 { 0x0ddf4df8, 0x4dbb, 0x4133, { 0x8b, 0x79, 0x9a, 0xfb, 0x96, 0x65, 0x14, 0xf5 } } |
|
183 |
|
184 #define NS_WINDOWCOMMANDTABLE_CID \ |
|
185 { /* 0DE2FBFA-6B7F-11D7-BBBA-0003938A9D96 */ \ |
|
186 0x0DE2FBFA, 0x6B7F, 0x11D7, {0xBB, 0xBA, 0x00, 0x03, 0x93, 0x8A, 0x9D, 0x96} } |
|
187 |
|
188 #include "nsIBoxObject.h" |
|
189 |
|
190 #ifdef MOZ_XUL |
|
191 #include "inDOMView.h" |
|
192 #endif /* MOZ_XUL */ |
|
193 |
|
194 #include "inDeepTreeWalker.h" |
|
195 #include "inFlasher.h" |
|
196 #include "inCSSValueSearch.h" |
|
197 #include "inDOMUtils.h" |
|
198 |
|
199 #ifdef MOZ_XUL |
|
200 #include "nsIXULDocument.h" |
|
201 #include "nsIXULSortService.h" |
|
202 |
|
203 nsresult |
|
204 NS_NewXULContentBuilder(nsISupports* aOuter, REFNSIID aIID, void** aResult); |
|
205 |
|
206 nsresult |
|
207 NS_NewXULTreeBuilder(nsISupports* aOuter, REFNSIID aIID, void** aResult); |
|
208 #endif |
|
209 |
|
210 static void Shutdown(); |
|
211 |
|
212 #include "nsGeolocation.h" |
|
213 #include "nsDeviceSensors.h" |
|
214 #ifdef MOZ_GAMEPAD |
|
215 #include "mozilla/dom/GamepadService.h" |
|
216 #endif |
|
217 #include "nsCSPService.h" |
|
218 #include "nsISmsService.h" |
|
219 #include "nsIMmsService.h" |
|
220 #include "nsIMobileMessageService.h" |
|
221 #include "nsIMobileMessageDatabaseService.h" |
|
222 #include "mozilla/dom/mobilemessage/MobileMessageService.h" |
|
223 #include "mozilla/dom/mobilemessage/SmsServicesFactory.h" |
|
224 #include "nsIPowerManagerService.h" |
|
225 #include "nsIAlarmHalService.h" |
|
226 #include "nsIMediaManager.h" |
|
227 #include "nsMixedContentBlocker.h" |
|
228 |
|
229 #include "AudioChannelService.h" |
|
230 |
|
231 #include "mozilla/dom/power/PowerManagerService.h" |
|
232 #include "mozilla/dom/alarm/AlarmHalService.h" |
|
233 #include "mozilla/dom/time/TimeService.h" |
|
234 #include "StreamingProtocolService.h" |
|
235 |
|
236 #include "mozilla/dom/telephony/TelephonyFactory.h" |
|
237 #include "nsITelephonyProvider.h" |
|
238 |
|
239 #ifdef MOZ_WIDGET_GONK |
|
240 #include "GonkGPSGeolocationProvider.h" |
|
241 #endif |
|
242 #include "MediaManager.h" |
|
243 |
|
244 using namespace mozilla; |
|
245 using namespace mozilla::dom; |
|
246 using namespace mozilla::dom::mobilemessage; |
|
247 using namespace mozilla::dom::telephony; |
|
248 using mozilla::dom::alarm::AlarmHalService; |
|
249 using mozilla::dom::indexedDB::IndexedDatabaseManager; |
|
250 using mozilla::dom::power::PowerManagerService; |
|
251 using mozilla::dom::quota::QuotaManager; |
|
252 using mozilla::dom::TCPSocketChild; |
|
253 using mozilla::dom::TCPSocketParent; |
|
254 using mozilla::dom::TCPServerSocketChild; |
|
255 using mozilla::dom::UDPSocketChild; |
|
256 using mozilla::dom::time::TimeService; |
|
257 using mozilla::net::StreamingProtocolControllerService; |
|
258 |
|
259 // Transformiix |
|
260 /* 5d5d92cd-6bf8-11d9-bf4a-000a95dc234c */ |
|
261 #define TRANSFORMIIX_NODESET_CID \ |
|
262 { 0x5d5d92cd, 0x6bf8, 0x11d9, { 0xbf, 0x4a, 0x0, 0x0a, 0x95, 0xdc, 0x23, 0x4c } } |
|
263 |
|
264 #define TRANSFORMIIX_NODESET_CONTRACTID \ |
|
265 "@mozilla.org/transformiix-nodeset;1" |
|
266 |
|
267 // Factory Constructor |
|
268 NS_GENERIC_FACTORY_CONSTRUCTOR(txMozillaXSLTProcessor) |
|
269 NS_GENERIC_FACTORY_CONSTRUCTOR(XPathEvaluator) |
|
270 NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(txNodeSetAdaptor, Init) |
|
271 NS_GENERIC_FACTORY_CONSTRUCTOR(nsDOMSerializer) |
|
272 NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsXMLHttpRequest, Init) |
|
273 NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsDOMFileReader, Init) |
|
274 NS_GENERIC_FACTORY_CONSTRUCTOR(nsFormData) |
|
275 NS_GENERIC_FACTORY_CONSTRUCTOR(nsBlobProtocolHandler) |
|
276 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMediaStreamProtocolHandler) |
|
277 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMediaSourceProtocolHandler) |
|
278 NS_GENERIC_FACTORY_CONSTRUCTOR(nsFontTableProtocolHandler) |
|
279 NS_GENERIC_FACTORY_CONSTRUCTOR(nsHostObjectURI) |
|
280 NS_GENERIC_FACTORY_CONSTRUCTOR(DOMParser) |
|
281 NS_GENERIC_FACTORY_CONSTRUCTOR(Exception) |
|
282 NS_GENERIC_FACTORY_CONSTRUCTOR(DOMSessionStorageManager) |
|
283 NS_GENERIC_FACTORY_CONSTRUCTOR(DOMLocalStorageManager) |
|
284 NS_GENERIC_FACTORY_CONSTRUCTOR(nsChannelPolicy) |
|
285 NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(IndexedDatabaseManager, |
|
286 IndexedDatabaseManager::FactoryCreate) |
|
287 NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(DOMRequestService, |
|
288 DOMRequestService::FactoryCreate) |
|
289 NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(QuotaManager, |
|
290 QuotaManager::FactoryCreate) |
|
291 #ifdef MOZ_WIDGET_GONK |
|
292 NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(SystemWorkerManager, |
|
293 SystemWorkerManager::FactoryCreate) |
|
294 #endif |
|
295 #ifdef MOZ_B2G_BT |
|
296 NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(BluetoothService, |
|
297 BluetoothService::FactoryCreate) |
|
298 #endif |
|
299 |
|
300 #ifdef MOZ_WEBSPEECH |
|
301 NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsSynthVoiceRegistry, |
|
302 nsSynthVoiceRegistry::GetInstanceForService) |
|
303 #endif |
|
304 |
|
305 #ifdef MOZ_WIDGET_GONK |
|
306 NS_GENERIC_FACTORY_CONSTRUCTOR(AudioManager) |
|
307 #endif |
|
308 |
|
309 NS_GENERIC_FACTORY_CONSTRUCTOR(AudioChannelAgent) |
|
310 |
|
311 NS_GENERIC_FACTORY_CONSTRUCTOR(nsDeviceSensors) |
|
312 |
|
313 #ifndef MOZ_WIDGET_GONK |
|
314 #if defined(ANDROID) |
|
315 NS_GENERIC_FACTORY_CONSTRUCTOR(nsHapticFeedback) |
|
316 #endif |
|
317 #endif |
|
318 NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(ThirdPartyUtil, Init) |
|
319 NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsISmsService, |
|
320 SmsServicesFactory::CreateSmsService) |
|
321 NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsIMmsService, |
|
322 SmsServicesFactory::CreateMmsService) |
|
323 NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsIMobileMessageService, |
|
324 MobileMessageService::GetInstance) |
|
325 NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsIMobileMessageDatabaseService, |
|
326 SmsServicesFactory::CreateMobileMessageDatabaseService) |
|
327 NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsIPowerManagerService, |
|
328 PowerManagerService::GetInstance) |
|
329 NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsIAlarmHalService, |
|
330 AlarmHalService::GetInstance) |
|
331 NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsITimeService, |
|
332 TimeService::GetInstance) |
|
333 NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsIStreamingProtocolControllerService, |
|
334 StreamingProtocolControllerService::GetInstance) |
|
335 |
|
336 #ifdef MOZ_GAMEPAD |
|
337 using mozilla::dom::GamepadServiceTest; |
|
338 NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(GamepadServiceTest, |
|
339 GamepadServiceTest::CreateService) |
|
340 #endif |
|
341 |
|
342 #ifdef MOZ_WIDGET_GONK |
|
343 NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsIGeolocationProvider, |
|
344 GonkGPSGeolocationProvider::GetSingleton) |
|
345 // Since the nsVolumeService constructor calls into nsIPowerManagerService, |
|
346 // we need it to be constructed sometime after nsIPowerManagerService. |
|
347 NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsVolumeService, |
|
348 nsVolumeService::GetSingleton) |
|
349 #endif |
|
350 NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsIMediaManagerService, |
|
351 MediaManager::GetInstance) |
|
352 NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsITelephonyProvider, |
|
353 TelephonyFactory::CreateTelephonyProvider) |
|
354 |
|
355 //----------------------------------------------------------------------------- |
|
356 |
|
357 static bool gInitialized = false; |
|
358 |
|
359 // Perform our one-time intialization for this module |
|
360 |
|
361 // static |
|
362 nsresult |
|
363 Initialize() |
|
364 { |
|
365 if (gInitialized) { |
|
366 NS_RUNTIMEABORT("Recursive layout module initialization"); |
|
367 return NS_ERROR_FAILURE; |
|
368 } |
|
369 |
|
370 static_assert(sizeof(uintptr_t) == sizeof(void*), |
|
371 "Eeek! You'll need to adjust the size of uintptr_t to the " |
|
372 "size of a pointer on your platform."); |
|
373 |
|
374 gInitialized = true; |
|
375 |
|
376 nsresult rv; |
|
377 rv = xpcModuleCtor(); |
|
378 if (NS_FAILED(rv)) |
|
379 return rv; |
|
380 |
|
381 rv = nsLayoutStatics::Initialize(); |
|
382 if (NS_FAILED(rv)) { |
|
383 Shutdown(); |
|
384 return rv; |
|
385 } |
|
386 |
|
387 #ifdef DEBUG |
|
388 nsStyleContext::AssertStyleStructMaxDifferenceValid(); |
|
389 #endif |
|
390 |
|
391 return NS_OK; |
|
392 } |
|
393 |
|
394 // Shutdown this module, releasing all of the module resources |
|
395 |
|
396 // static |
|
397 void |
|
398 Shutdown() |
|
399 { |
|
400 NS_PRECONDITION(gInitialized, "module not initialized"); |
|
401 if (!gInitialized) |
|
402 return; |
|
403 |
|
404 gInitialized = false; |
|
405 |
|
406 nsLayoutStatics::Release(); |
|
407 } |
|
408 |
|
409 #ifdef DEBUG |
|
410 nsresult NS_NewFrameUtil(nsIFrameUtil** aResult); |
|
411 nsresult NS_NewLayoutDebugger(nsILayoutDebugger** aResult); |
|
412 #endif |
|
413 |
|
414 nsresult NS_NewBoxObject(nsIBoxObject** aResult); |
|
415 |
|
416 #ifdef MOZ_XUL |
|
417 nsresult NS_NewListBoxObject(nsIBoxObject** aResult); |
|
418 nsresult NS_NewScrollBoxObject(nsIBoxObject** aResult); |
|
419 nsresult NS_NewMenuBoxObject(nsIBoxObject** aResult); |
|
420 nsresult NS_NewPopupBoxObject(nsIBoxObject** aResult); |
|
421 nsresult NS_NewContainerBoxObject(nsIBoxObject** aResult); |
|
422 nsresult NS_NewTreeBoxObject(nsIBoxObject** aResult); |
|
423 #endif |
|
424 |
|
425 nsresult NS_NewCanvasRenderingContextWebGL(nsIDOMWebGLRenderingContext** aResult); |
|
426 |
|
427 nsresult NS_CreateFrameTraversal(nsIFrameTraversal** aResult); |
|
428 |
|
429 nsresult NS_NewDomSelection(nsISelection** aResult); |
|
430 already_AddRefed<nsIContentViewer> NS_NewContentViewer(); |
|
431 nsresult NS_NewGenRegularIterator(nsIContentIterator** aResult); |
|
432 nsresult NS_NewGenSubtreeIterator(nsIContentIterator** aInstancePtrResult); |
|
433 nsresult NS_NewContentDocumentLoaderFactory(nsIDocumentLoaderFactory** aResult); |
|
434 nsresult NS_NewHTMLCopyTextEncoder(nsIDocumentEncoder** aResult); |
|
435 nsresult NS_NewTextEncoder(nsIDocumentEncoder** aResult); |
|
436 nsresult NS_NewContentPolicy(nsIContentPolicy** aResult); |
|
437 |
|
438 nsresult NS_NewEventListenerService(nsIEventListenerService** aResult); |
|
439 nsresult NS_NewGlobalMessageManager(nsIMessageBroadcaster** aResult); |
|
440 nsresult NS_NewParentProcessMessageManager(nsIMessageBroadcaster** aResult); |
|
441 nsresult NS_NewChildProcessMessageManager(nsISyncMessageSender** aResult); |
|
442 |
|
443 nsresult NS_NewXULControllers(nsISupports* aOuter, REFNSIID aIID, void** aResult); |
|
444 |
|
445 #define MAKE_CTOR(ctor_, iface_, func_) \ |
|
446 static nsresult \ |
|
447 ctor_(nsISupports* aOuter, REFNSIID aIID, void** aResult) \ |
|
448 { \ |
|
449 *aResult = nullptr; \ |
|
450 if (aOuter) \ |
|
451 return NS_ERROR_NO_AGGREGATION; \ |
|
452 iface_* inst; \ |
|
453 nsresult rv = func_(&inst); \ |
|
454 if (NS_SUCCEEDED(rv)) { \ |
|
455 rv = inst->QueryInterface(aIID, aResult); \ |
|
456 NS_RELEASE(inst); \ |
|
457 } \ |
|
458 return rv; \ |
|
459 } |
|
460 |
|
461 // As above, but expects |
|
462 // already_AddRefed<nsIFoo> NS_NewFoo(); |
|
463 // instead of |
|
464 // nsresult NS_NewFoo(nsIFoo**); |
|
465 #define MAKE_CTOR2(ctor_, iface_, func_) \ |
|
466 static nsresult \ |
|
467 ctor_(nsISupports* aOuter, REFNSIID aIID, void** aResult) \ |
|
468 { \ |
|
469 *aResult = nullptr; \ |
|
470 if (aOuter) { \ |
|
471 return NS_ERROR_NO_AGGREGATION; \ |
|
472 } \ |
|
473 nsCOMPtr<iface_> inst = func_(); \ |
|
474 inst.forget(aResult); \ |
|
475 return NS_OK; \ |
|
476 } |
|
477 |
|
478 #ifdef DEBUG |
|
479 MAKE_CTOR(CreateNewFrameUtil, nsIFrameUtil, NS_NewFrameUtil) |
|
480 MAKE_CTOR(CreateNewLayoutDebugger, nsILayoutDebugger, NS_NewLayoutDebugger) |
|
481 #endif |
|
482 |
|
483 MAKE_CTOR(CreateNewFrameTraversal, nsIFrameTraversal, NS_CreateFrameTraversal) |
|
484 MAKE_CTOR(CreateNewBoxObject, nsIBoxObject, NS_NewBoxObject) |
|
485 |
|
486 #ifdef MOZ_XUL |
|
487 MAKE_CTOR(CreateNewListBoxObject, nsIBoxObject, NS_NewListBoxObject) |
|
488 MAKE_CTOR(CreateNewMenuBoxObject, nsIBoxObject, NS_NewMenuBoxObject) |
|
489 MAKE_CTOR(CreateNewPopupBoxObject, nsIBoxObject, NS_NewPopupBoxObject) |
|
490 MAKE_CTOR(CreateNewScrollBoxObject, nsIBoxObject, NS_NewScrollBoxObject) |
|
491 MAKE_CTOR(CreateNewTreeBoxObject, nsIBoxObject, NS_NewTreeBoxObject) |
|
492 MAKE_CTOR(CreateNewContainerBoxObject, nsIBoxObject, NS_NewContainerBoxObject) |
|
493 #endif // MOZ_XUL |
|
494 |
|
495 #ifdef MOZ_XUL |
|
496 NS_GENERIC_FACTORY_CONSTRUCTOR(inDOMView) |
|
497 #endif |
|
498 NS_GENERIC_FACTORY_CONSTRUCTOR(inDeepTreeWalker) |
|
499 NS_GENERIC_FACTORY_CONSTRUCTOR(inFlasher) |
|
500 NS_GENERIC_FACTORY_CONSTRUCTOR(inCSSValueSearch) |
|
501 NS_GENERIC_FACTORY_CONSTRUCTOR(inDOMUtils) |
|
502 |
|
503 MAKE_CTOR2(CreateContentViewer, nsIContentViewer, NS_NewContentViewer) |
|
504 MAKE_CTOR(CreateHTMLDocument, nsIDocument, NS_NewHTMLDocument) |
|
505 MAKE_CTOR(CreateXMLDocument, nsIDocument, NS_NewXMLDocument) |
|
506 MAKE_CTOR(CreateSVGDocument, nsIDocument, NS_NewSVGDocument) |
|
507 MAKE_CTOR(CreateImageDocument, nsIDocument, NS_NewImageDocument) |
|
508 MAKE_CTOR(CreateDOMBlob, nsISupports, nsDOMMultipartFile::NewBlob) |
|
509 MAKE_CTOR(CreateDOMFile, nsISupports, nsDOMMultipartFile::NewFile) |
|
510 MAKE_CTOR(CreateDOMSelection, nsISelection, NS_NewDomSelection) |
|
511 MAKE_CTOR2(CreateContentIterator, nsIContentIterator, NS_NewContentIterator) |
|
512 MAKE_CTOR2(CreatePreContentIterator, nsIContentIterator, NS_NewPreContentIterator) |
|
513 MAKE_CTOR2(CreateSubtreeIterator, nsIContentIterator, NS_NewContentSubtreeIterator) |
|
514 MAKE_CTOR(CreateTextEncoder, nsIDocumentEncoder, NS_NewTextEncoder) |
|
515 MAKE_CTOR(CreateHTMLCopyTextEncoder, nsIDocumentEncoder, NS_NewHTMLCopyTextEncoder) |
|
516 MAKE_CTOR(CreateXMLContentSerializer, nsIContentSerializer, NS_NewXMLContentSerializer) |
|
517 MAKE_CTOR(CreateHTMLContentSerializer, nsIContentSerializer, NS_NewHTMLContentSerializer) |
|
518 MAKE_CTOR(CreateXHTMLContentSerializer, nsIContentSerializer, NS_NewXHTMLContentSerializer) |
|
519 MAKE_CTOR(CreatePlainTextSerializer, nsIContentSerializer, NS_NewPlainTextSerializer) |
|
520 MAKE_CTOR(CreateContentPolicy, nsIContentPolicy, NS_NewContentPolicy) |
|
521 #ifdef MOZ_XUL |
|
522 MAKE_CTOR(CreateXULSortService, nsIXULSortService, NS_NewXULSortService) |
|
523 // NS_NewXULContentBuilder |
|
524 // NS_NewXULTreeBuilder |
|
525 MAKE_CTOR(CreateXULDocument, nsIXULDocument, NS_NewXULDocument) |
|
526 // NS_NewXULControllers |
|
527 #endif |
|
528 MAKE_CTOR(CreateContentDLF, nsIDocumentLoaderFactory, NS_NewContentDocumentLoaderFactory) |
|
529 MAKE_CTOR(CreateEventListenerService, nsIEventListenerService, NS_NewEventListenerService) |
|
530 MAKE_CTOR(CreateGlobalMessageManager, nsIMessageBroadcaster, NS_NewGlobalMessageManager) |
|
531 MAKE_CTOR(CreateParentMessageManager, nsIMessageBroadcaster, NS_NewParentProcessMessageManager) |
|
532 MAKE_CTOR(CreateChildMessageManager, nsISyncMessageSender, NS_NewChildProcessMessageManager) |
|
533 NS_GENERIC_FACTORY_CONSTRUCTOR(nsDataDocumentContentPolicy) |
|
534 NS_GENERIC_FACTORY_CONSTRUCTOR(nsNoDataProtocolContentPolicy) |
|
535 MAKE_CTOR(CreatePluginDocument, nsIDocument, NS_NewPluginDocument) |
|
536 MAKE_CTOR(CreateVideoDocument, nsIDocument, NS_NewVideoDocument) |
|
537 MAKE_CTOR(CreateFocusManager, nsIFocusManager, NS_NewFocusManager) |
|
538 |
|
539 MAKE_CTOR(CreateCanvasRenderingContextWebGL, nsIDOMWebGLRenderingContext, NS_NewCanvasRenderingContextWebGL) |
|
540 |
|
541 NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsStyleSheetService, Init) |
|
542 |
|
543 NS_GENERIC_FACTORY_CONSTRUCTOR(nsJSURI) |
|
544 |
|
545 // views are not refcounted, so this is the same as |
|
546 // NS_GENERIC_FACTORY_CONSTRUCTOR without the NS_ADDREF/NS_RELEASE |
|
547 #define NS_GENERIC_FACTORY_CONSTRUCTOR_NOREFS(_InstanceClass) \ |
|
548 static nsresult \ |
|
549 _InstanceClass##Constructor(nsISupports *aOuter, REFNSIID aIID, \ |
|
550 void **aResult) \ |
|
551 { \ |
|
552 nsresult rv; \ |
|
553 \ |
|
554 *aResult = nullptr; \ |
|
555 if (nullptr != aOuter) { \ |
|
556 rv = NS_ERROR_NO_AGGREGATION; \ |
|
557 return rv; \ |
|
558 } \ |
|
559 \ |
|
560 _InstanceClass * inst = new _InstanceClass(); \ |
|
561 if (nullptr == inst) { \ |
|
562 rv = NS_ERROR_OUT_OF_MEMORY; \ |
|
563 return rv; \ |
|
564 } \ |
|
565 rv = inst->QueryInterface(aIID, aResult); \ |
|
566 \ |
|
567 return rv; \ |
|
568 } \ |
|
569 |
|
570 NS_GENERIC_FACTORY_CONSTRUCTOR(nsDOMScriptObjectFactory) |
|
571 |
|
572 #define NS_GEOLOCATION_CID \ |
|
573 { 0x1E1C3FF, 0x94A, 0xD048, { 0x44, 0xB4, 0x62, 0xD2, 0x9C, 0x7B, 0x4F, 0x39 } } |
|
574 |
|
575 NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(Geolocation, Init) |
|
576 |
|
577 #define NS_GEOLOCATION_SERVICE_CID \ |
|
578 { 0x404d02a, 0x1CA, 0xAAAB, { 0x47, 0x62, 0x94, 0x4b, 0x1b, 0xf2, 0xf7, 0xb5 } } |
|
579 |
|
580 #define NS_AUDIOCHANNEL_SERVICE_CID \ |
|
581 { 0xf712e983, 0x048a, 0x443f, { 0x88, 0x02, 0xfc, 0xc3, 0xd9, 0x27, 0xce, 0xac }} |
|
582 |
|
583 NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsGeolocationService, nsGeolocationService::GetGeolocationService) |
|
584 |
|
585 NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(AudioChannelService, AudioChannelService::GetAudioChannelService) |
|
586 |
|
587 #ifdef MOZ_WEBSPEECH |
|
588 NS_GENERIC_FACTORY_CONSTRUCTOR(FakeSpeechRecognitionService) |
|
589 #endif |
|
590 |
|
591 NS_GENERIC_FACTORY_CONSTRUCTOR(CSPService) |
|
592 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMixedContentBlocker) |
|
593 |
|
594 NS_GENERIC_FACTORY_CONSTRUCTOR(nsPrincipal) |
|
595 NS_GENERIC_FACTORY_CONSTRUCTOR(nsSecurityNameSet) |
|
596 NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsSystemPrincipal, |
|
597 nsScriptSecurityManager::SystemPrincipalSingletonConstructor) |
|
598 NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsNullPrincipal, Init) |
|
599 NS_GENERIC_FACTORY_CONSTRUCTOR(nsStructuredCloneContainer) |
|
600 |
|
601 NS_GENERIC_FACTORY_CONSTRUCTOR(OSFileConstantsService) |
|
602 NS_GENERIC_FACTORY_CONSTRUCTOR(TCPSocketChild) |
|
603 NS_GENERIC_FACTORY_CONSTRUCTOR(TCPSocketParent) |
|
604 NS_GENERIC_FACTORY_CONSTRUCTOR(TCPServerSocketChild) |
|
605 NS_GENERIC_FACTORY_CONSTRUCTOR(UDPSocketChild) |
|
606 |
|
607 #ifdef ACCESSIBILITY |
|
608 #include "nsAccessibilityService.h" |
|
609 |
|
610 MAKE_CTOR(CreateA11yService, nsIAccessibilityService, NS_GetAccessibilityService) |
|
611 #endif |
|
612 |
|
613 static nsresult |
|
614 Construct_nsIScriptSecurityManager(nsISupports *aOuter, REFNSIID aIID, |
|
615 void **aResult) |
|
616 { |
|
617 if (!aResult) |
|
618 return NS_ERROR_NULL_POINTER; |
|
619 *aResult = nullptr; |
|
620 if (aOuter) |
|
621 return NS_ERROR_NO_AGGREGATION; |
|
622 nsScriptSecurityManager *obj = nsScriptSecurityManager::GetScriptSecurityManager(); |
|
623 if (!obj) |
|
624 return NS_ERROR_OUT_OF_MEMORY; |
|
625 if (NS_FAILED(obj->QueryInterface(aIID, aResult))) |
|
626 return NS_ERROR_FAILURE; |
|
627 return NS_OK; |
|
628 } |
|
629 |
|
630 #ifdef DEBUG |
|
631 NS_DEFINE_NAMED_CID(NS_FRAME_UTIL_CID); |
|
632 NS_DEFINE_NAMED_CID(NS_LAYOUT_DEBUGGER_CID); |
|
633 #endif |
|
634 NS_DEFINE_NAMED_CID(NS_FRAMETRAVERSAL_CID); |
|
635 NS_DEFINE_NAMED_CID(NS_BOXOBJECT_CID); |
|
636 #ifdef MOZ_XUL |
|
637 NS_DEFINE_NAMED_CID(NS_LISTBOXOBJECT_CID); |
|
638 NS_DEFINE_NAMED_CID(NS_MENUBOXOBJECT_CID); |
|
639 NS_DEFINE_NAMED_CID(NS_POPUPBOXOBJECT_CID); |
|
640 NS_DEFINE_NAMED_CID(NS_CONTAINERBOXOBJECT_CID); |
|
641 NS_DEFINE_NAMED_CID(NS_SCROLLBOXOBJECT_CID); |
|
642 NS_DEFINE_NAMED_CID(NS_TREEBOXOBJECT_CID); |
|
643 #endif // MOZ_XUL |
|
644 #ifdef MOZ_XUL |
|
645 NS_DEFINE_NAMED_CID(IN_DOMVIEW_CID); |
|
646 #endif |
|
647 NS_DEFINE_NAMED_CID(IN_DEEPTREEWALKER_CID); |
|
648 NS_DEFINE_NAMED_CID(IN_FLASHER_CID); |
|
649 NS_DEFINE_NAMED_CID(IN_CSSVALUESEARCH_CID); |
|
650 NS_DEFINE_NAMED_CID(IN_DOMUTILS_CID); |
|
651 NS_DEFINE_NAMED_CID(NS_CONTENT_VIEWER_CID); |
|
652 NS_DEFINE_NAMED_CID(NS_HTMLDOCUMENT_CID); |
|
653 NS_DEFINE_NAMED_CID(NS_XMLDOCUMENT_CID); |
|
654 NS_DEFINE_NAMED_CID(NS_SVGDOCUMENT_CID); |
|
655 NS_DEFINE_NAMED_CID(NS_IMAGEDOCUMENT_CID); |
|
656 NS_DEFINE_NAMED_CID(NS_DOMMULTIPARTBLOB_CID); |
|
657 NS_DEFINE_NAMED_CID(NS_DOMMULTIPARTFILE_CID); |
|
658 NS_DEFINE_NAMED_CID(NS_DOMSELECTION_CID); |
|
659 NS_DEFINE_NAMED_CID(NS_CONTENTITERATOR_CID); |
|
660 NS_DEFINE_NAMED_CID(NS_PRECONTENTITERATOR_CID); |
|
661 NS_DEFINE_NAMED_CID(NS_SUBTREEITERATOR_CID); |
|
662 NS_DEFINE_NAMED_CID(NS_CANVASRENDERINGCONTEXTWEBGL_CID); |
|
663 NS_DEFINE_NAMED_CID(NS_TEXT_ENCODER_CID); |
|
664 NS_DEFINE_NAMED_CID(NS_HTMLCOPY_TEXT_ENCODER_CID); |
|
665 NS_DEFINE_NAMED_CID(NS_XMLCONTENTSERIALIZER_CID); |
|
666 NS_DEFINE_NAMED_CID(NS_XHTMLCONTENTSERIALIZER_CID); |
|
667 NS_DEFINE_NAMED_CID(NS_HTMLCONTENTSERIALIZER_CID); |
|
668 NS_DEFINE_NAMED_CID(NS_PLAINTEXTSERIALIZER_CID); |
|
669 NS_DEFINE_NAMED_CID(NS_PARSERUTILS_CID); |
|
670 NS_DEFINE_NAMED_CID(NS_SCRIPTABLEUNESCAPEHTML_CID); |
|
671 NS_DEFINE_NAMED_CID(NS_CONTENTPOLICY_CID); |
|
672 NS_DEFINE_NAMED_CID(NS_DATADOCUMENTCONTENTPOLICY_CID); |
|
673 NS_DEFINE_NAMED_CID(NS_NODATAPROTOCOLCONTENTPOLICY_CID); |
|
674 NS_DEFINE_NAMED_CID(NS_XULCONTROLLERS_CID); |
|
675 #ifdef MOZ_XUL |
|
676 NS_DEFINE_NAMED_CID(NS_XULSORTSERVICE_CID); |
|
677 NS_DEFINE_NAMED_CID(NS_XULTEMPLATEBUILDER_CID); |
|
678 NS_DEFINE_NAMED_CID(NS_XULTREEBUILDER_CID); |
|
679 NS_DEFINE_NAMED_CID(NS_XULDOCUMENT_CID); |
|
680 #endif |
|
681 NS_DEFINE_NAMED_CID(NS_CONTENT_DOCUMENT_LOADER_FACTORY_CID); |
|
682 NS_DEFINE_NAMED_CID(NS_DOM_SCRIPT_OBJECT_FACTORY_CID); |
|
683 NS_DEFINE_NAMED_CID(NS_JSPROTOCOLHANDLER_CID); |
|
684 NS_DEFINE_NAMED_CID(NS_JSURI_CID); |
|
685 NS_DEFINE_NAMED_CID(NS_WINDOWCOMMANDTABLE_CID); |
|
686 NS_DEFINE_NAMED_CID(NS_WINDOWCONTROLLER_CID); |
|
687 NS_DEFINE_NAMED_CID(NS_PLUGINDOCLOADERFACTORY_CID); |
|
688 NS_DEFINE_NAMED_CID(NS_PLUGINDOCUMENT_CID); |
|
689 NS_DEFINE_NAMED_CID(NS_VIDEODOCUMENT_CID); |
|
690 NS_DEFINE_NAMED_CID(NS_STYLESHEETSERVICE_CID); |
|
691 NS_DEFINE_NAMED_CID(TRANSFORMIIX_XSLT_PROCESSOR_CID); |
|
692 NS_DEFINE_NAMED_CID(TRANSFORMIIX_XPATH_EVALUATOR_CID); |
|
693 NS_DEFINE_NAMED_CID(TRANSFORMIIX_NODESET_CID); |
|
694 NS_DEFINE_NAMED_CID(NS_XMLSERIALIZER_CID); |
|
695 NS_DEFINE_NAMED_CID(NS_FILEREADER_CID); |
|
696 NS_DEFINE_NAMED_CID(NS_FORMDATA_CID); |
|
697 NS_DEFINE_NAMED_CID(NS_BLOBPROTOCOLHANDLER_CID); |
|
698 NS_DEFINE_NAMED_CID(NS_MEDIASTREAMPROTOCOLHANDLER_CID); |
|
699 NS_DEFINE_NAMED_CID(NS_MEDIASOURCEPROTOCOLHANDLER_CID); |
|
700 NS_DEFINE_NAMED_CID(NS_FONTTABLEPROTOCOLHANDLER_CID); |
|
701 NS_DEFINE_NAMED_CID(NS_HOSTOBJECTURI_CID); |
|
702 NS_DEFINE_NAMED_CID(NS_XMLHTTPREQUEST_CID); |
|
703 NS_DEFINE_NAMED_CID(NS_DOMPARSER_CID); |
|
704 NS_DEFINE_NAMED_CID(NS_DOMSESSIONSTORAGEMANAGER_CID); |
|
705 NS_DEFINE_NAMED_CID(NS_DOMLOCALSTORAGEMANAGER_CID); |
|
706 NS_DEFINE_NAMED_CID(NS_DOMJSON_CID); |
|
707 NS_DEFINE_NAMED_CID(NS_TEXTEDITOR_CID); |
|
708 NS_DEFINE_NAMED_CID(INDEXEDDB_MANAGER_CID); |
|
709 NS_DEFINE_NAMED_CID(DOMREQUEST_SERVICE_CID); |
|
710 NS_DEFINE_NAMED_CID(QUOTA_MANAGER_CID); |
|
711 #ifdef MOZ_WIDGET_GONK |
|
712 NS_DEFINE_NAMED_CID(SYSTEMWORKERMANAGER_CID); |
|
713 #endif |
|
714 #ifdef MOZ_B2G_BT |
|
715 NS_DEFINE_NAMED_CID(BLUETOOTHSERVICE_CID); |
|
716 #endif |
|
717 #ifdef MOZ_WIDGET_GONK |
|
718 NS_DEFINE_NAMED_CID(NS_AUDIOMANAGER_CID); |
|
719 NS_DEFINE_NAMED_CID(NS_VOLUMESERVICE_CID); |
|
720 #endif |
|
721 |
|
722 NS_DEFINE_NAMED_CID(NS_AUDIOCHANNELAGENT_CID); |
|
723 |
|
724 NS_DEFINE_NAMED_CID(NS_HTMLEDITOR_CID); |
|
725 NS_DEFINE_NAMED_CID(NS_EDITORCONTROLLER_CID); |
|
726 NS_DEFINE_NAMED_CID(NS_EDITINGCONTROLLER_CID); |
|
727 NS_DEFINE_NAMED_CID(NS_EDITORCOMMANDTABLE_CID); |
|
728 NS_DEFINE_NAMED_CID(NS_EDITINGCOMMANDTABLE_CID); |
|
729 NS_DEFINE_NAMED_CID(NS_TEXTSERVICESDOCUMENT_CID); |
|
730 NS_DEFINE_NAMED_CID(NS_GEOLOCATION_SERVICE_CID); |
|
731 NS_DEFINE_NAMED_CID(NS_GEOLOCATION_CID); |
|
732 NS_DEFINE_NAMED_CID(NS_AUDIOCHANNEL_SERVICE_CID); |
|
733 NS_DEFINE_NAMED_CID(NS_FOCUSMANAGER_CID); |
|
734 NS_DEFINE_NAMED_CID(CSPSERVICE_CID); |
|
735 NS_DEFINE_NAMED_CID(NS_MIXEDCONTENTBLOCKER_CID); |
|
736 NS_DEFINE_NAMED_CID(NS_EVENTLISTENERSERVICE_CID); |
|
737 NS_DEFINE_NAMED_CID(NS_GLOBALMESSAGEMANAGER_CID); |
|
738 NS_DEFINE_NAMED_CID(NS_PARENTPROCESSMESSAGEMANAGER_CID); |
|
739 NS_DEFINE_NAMED_CID(NS_CHILDPROCESSMESSAGEMANAGER_CID); |
|
740 NS_DEFINE_NAMED_CID(NSCHANNELPOLICY_CID); |
|
741 NS_DEFINE_NAMED_CID(NS_SCRIPTSECURITYMANAGER_CID); |
|
742 NS_DEFINE_NAMED_CID(NS_PRINCIPAL_CID); |
|
743 NS_DEFINE_NAMED_CID(NS_SYSTEMPRINCIPAL_CID); |
|
744 NS_DEFINE_NAMED_CID(NS_NULLPRINCIPAL_CID); |
|
745 NS_DEFINE_NAMED_CID(NS_SECURITYNAMESET_CID); |
|
746 NS_DEFINE_NAMED_CID(THIRDPARTYUTIL_CID); |
|
747 NS_DEFINE_NAMED_CID(NS_STRUCTUREDCLONECONTAINER_CID); |
|
748 NS_DEFINE_NAMED_CID(NS_DEVICE_SENSORS_CID); |
|
749 |
|
750 #ifndef MOZ_WIDGET_GONK |
|
751 #if defined(ANDROID) |
|
752 NS_DEFINE_NAMED_CID(NS_HAPTICFEEDBACK_CID); |
|
753 #endif |
|
754 #endif |
|
755 NS_DEFINE_NAMED_CID(SMS_SERVICE_CID); |
|
756 NS_DEFINE_NAMED_CID(MMS_SERVICE_CID); |
|
757 NS_DEFINE_NAMED_CID(MOBILE_MESSAGE_SERVICE_CID); |
|
758 NS_DEFINE_NAMED_CID(MOBILE_MESSAGE_DATABASE_SERVICE_CID); |
|
759 NS_DEFINE_NAMED_CID(NS_POWERMANAGERSERVICE_CID); |
|
760 NS_DEFINE_NAMED_CID(OSFILECONSTANTSSERVICE_CID); |
|
761 NS_DEFINE_NAMED_CID(NS_ALARMHALSERVICE_CID); |
|
762 NS_DEFINE_NAMED_CID(TCPSOCKETCHILD_CID); |
|
763 NS_DEFINE_NAMED_CID(TCPSOCKETPARENT_CID); |
|
764 NS_DEFINE_NAMED_CID(TCPSERVERSOCKETCHILD_CID); |
|
765 NS_DEFINE_NAMED_CID(UDPSOCKETCHILD_CID); |
|
766 NS_DEFINE_NAMED_CID(NS_TIMESERVICE_CID); |
|
767 NS_DEFINE_NAMED_CID(NS_MEDIASTREAMCONTROLLERSERVICE_CID); |
|
768 #ifdef MOZ_WIDGET_GONK |
|
769 NS_DEFINE_NAMED_CID(GONK_GPS_GEOLOCATION_PROVIDER_CID); |
|
770 #endif |
|
771 NS_DEFINE_NAMED_CID(NS_MEDIAMANAGERSERVICE_CID); |
|
772 #ifdef MOZ_GAMEPAD |
|
773 NS_DEFINE_NAMED_CID(NS_GAMEPAD_TEST_CID); |
|
774 #endif |
|
775 #ifdef MOZ_WEBSPEECH |
|
776 NS_DEFINE_NAMED_CID(NS_FAKE_SPEECH_RECOGNITION_SERVICE_CID); |
|
777 NS_DEFINE_NAMED_CID(NS_SYNTHVOICEREGISTRY_CID); |
|
778 #endif |
|
779 |
|
780 #ifdef ACCESSIBILITY |
|
781 NS_DEFINE_NAMED_CID(NS_ACCESSIBILITY_SERVICE_CID); |
|
782 #endif |
|
783 NS_DEFINE_NAMED_CID(TELEPHONY_PROVIDER_CID); |
|
784 |
|
785 static nsresult |
|
786 CreateWindowCommandTableConstructor(nsISupports *aOuter, |
|
787 REFNSIID aIID, void **aResult) |
|
788 { |
|
789 nsresult rv; |
|
790 nsCOMPtr<nsIControllerCommandTable> commandTable = |
|
791 do_CreateInstance(NS_CONTROLLERCOMMANDTABLE_CONTRACTID, &rv); |
|
792 if (NS_FAILED(rv)) return rv; |
|
793 |
|
794 rv = nsWindowCommandRegistration::RegisterWindowCommands(commandTable); |
|
795 if (NS_FAILED(rv)) return rv; |
|
796 |
|
797 return commandTable->QueryInterface(aIID, aResult); |
|
798 } |
|
799 |
|
800 static nsresult |
|
801 CreateWindowControllerWithSingletonCommandTable(nsISupports *aOuter, |
|
802 REFNSIID aIID, void **aResult) |
|
803 { |
|
804 nsresult rv; |
|
805 nsCOMPtr<nsIController> controller = |
|
806 do_CreateInstance("@mozilla.org/embedcomp/base-command-controller;1", &rv); |
|
807 |
|
808 if (NS_FAILED(rv)) return rv; |
|
809 |
|
810 nsCOMPtr<nsIControllerCommandTable> windowCommandTable = do_GetService(kNS_WINDOWCOMMANDTABLE_CID, &rv); |
|
811 if (NS_FAILED(rv)) return rv; |
|
812 |
|
813 // this is a singleton; make it immutable |
|
814 windowCommandTable->MakeImmutable(); |
|
815 |
|
816 nsCOMPtr<nsIControllerContext> controllerContext = do_QueryInterface(controller, &rv); |
|
817 if (NS_FAILED(rv)) return rv; |
|
818 |
|
819 controllerContext->Init(windowCommandTable); |
|
820 if (NS_FAILED(rv)) return rv; |
|
821 |
|
822 return controller->QueryInterface(aIID, aResult); |
|
823 } |
|
824 |
|
825 // Constructor of a controller which is set up to use, internally, a |
|
826 // singleton command-table pre-filled with editor commands. |
|
827 static nsresult |
|
828 nsEditorControllerConstructor(nsISupports *aOuter, REFNSIID aIID, |
|
829 void **aResult) |
|
830 { |
|
831 nsresult rv; |
|
832 nsCOMPtr<nsIController> controller = do_CreateInstance("@mozilla.org/embedcomp/base-command-controller;1", &rv); |
|
833 if (NS_FAILED(rv)) return rv; |
|
834 |
|
835 nsCOMPtr<nsIControllerCommandTable> editorCommandTable = do_GetService(kNS_EDITORCOMMANDTABLE_CID, &rv); |
|
836 if (NS_FAILED(rv)) return rv; |
|
837 |
|
838 // this guy is a singleton, so make it immutable |
|
839 editorCommandTable->MakeImmutable(); |
|
840 |
|
841 nsCOMPtr<nsIControllerContext> controllerContext = do_QueryInterface(controller, &rv); |
|
842 if (NS_FAILED(rv)) return rv; |
|
843 |
|
844 rv = controllerContext->Init(editorCommandTable); |
|
845 if (NS_FAILED(rv)) return rv; |
|
846 |
|
847 return controller->QueryInterface(aIID, aResult); |
|
848 } |
|
849 |
|
850 // Constructor of a controller which is set up to use, internally, a |
|
851 // singleton command-table pre-filled with editing commands. |
|
852 static nsresult |
|
853 nsEditingControllerConstructor(nsISupports *aOuter, REFNSIID aIID, |
|
854 void **aResult) |
|
855 { |
|
856 nsresult rv; |
|
857 nsCOMPtr<nsIController> controller = do_CreateInstance("@mozilla.org/embedcomp/base-command-controller;1", &rv); |
|
858 if (NS_FAILED(rv)) return rv; |
|
859 |
|
860 nsCOMPtr<nsIControllerCommandTable> editingCommandTable = do_GetService(kNS_EDITINGCOMMANDTABLE_CID, &rv); |
|
861 if (NS_FAILED(rv)) return rv; |
|
862 |
|
863 // this guy is a singleton, so make it immutable |
|
864 editingCommandTable->MakeImmutable(); |
|
865 |
|
866 nsCOMPtr<nsIControllerContext> controllerContext = do_QueryInterface(controller, &rv); |
|
867 if (NS_FAILED(rv)) return rv; |
|
868 |
|
869 rv = controllerContext->Init(editingCommandTable); |
|
870 if (NS_FAILED(rv)) return rv; |
|
871 |
|
872 return controller->QueryInterface(aIID, aResult); |
|
873 } |
|
874 |
|
875 // Constructor for a command-table pre-filled with editor commands |
|
876 static nsresult |
|
877 nsEditorCommandTableConstructor(nsISupports *aOuter, REFNSIID aIID, |
|
878 void **aResult) |
|
879 { |
|
880 nsresult rv; |
|
881 nsCOMPtr<nsIControllerCommandTable> commandTable = |
|
882 do_CreateInstance(NS_CONTROLLERCOMMANDTABLE_CONTRACTID, &rv); |
|
883 if (NS_FAILED(rv)) return rv; |
|
884 |
|
885 rv = nsEditorController::RegisterEditorCommands(commandTable); |
|
886 if (NS_FAILED(rv)) return rv; |
|
887 |
|
888 // we don't know here whether we're being created as an instance, |
|
889 // or a service, so we can't become immutable |
|
890 |
|
891 return commandTable->QueryInterface(aIID, aResult); |
|
892 } |
|
893 |
|
894 // Constructor for a command-table pre-filled with editing commands |
|
895 static nsresult |
|
896 nsEditingCommandTableConstructor(nsISupports *aOuter, REFNSIID aIID, |
|
897 void **aResult) |
|
898 { |
|
899 nsresult rv; |
|
900 nsCOMPtr<nsIControllerCommandTable> commandTable = |
|
901 do_CreateInstance(NS_CONTROLLERCOMMANDTABLE_CONTRACTID, &rv); |
|
902 if (NS_FAILED(rv)) return rv; |
|
903 |
|
904 rv = nsEditorController::RegisterEditingCommands(commandTable); |
|
905 if (NS_FAILED(rv)) return rv; |
|
906 |
|
907 // we don't know here whether we're being created as an instance, |
|
908 // or a service, so we can't become immutable |
|
909 |
|
910 return commandTable->QueryInterface(aIID, aResult); |
|
911 } |
|
912 |
|
913 |
|
914 static const mozilla::Module::CIDEntry kLayoutCIDs[] = { |
|
915 XPCONNECT_CIDENTRIES |
|
916 #ifdef DEBUG |
|
917 { &kNS_FRAME_UTIL_CID, false, nullptr, CreateNewFrameUtil }, |
|
918 { &kNS_LAYOUT_DEBUGGER_CID, false, nullptr, CreateNewLayoutDebugger }, |
|
919 #endif |
|
920 { &kNS_FRAMETRAVERSAL_CID, false, nullptr, CreateNewFrameTraversal }, |
|
921 { &kNS_BOXOBJECT_CID, false, nullptr, CreateNewBoxObject }, |
|
922 #ifdef MOZ_XUL |
|
923 { &kNS_LISTBOXOBJECT_CID, false, nullptr, CreateNewListBoxObject }, |
|
924 { &kNS_MENUBOXOBJECT_CID, false, nullptr, CreateNewMenuBoxObject }, |
|
925 { &kNS_POPUPBOXOBJECT_CID, false, nullptr, CreateNewPopupBoxObject }, |
|
926 { &kNS_CONTAINERBOXOBJECT_CID, false, nullptr, CreateNewContainerBoxObject }, |
|
927 { &kNS_SCROLLBOXOBJECT_CID, false, nullptr, CreateNewScrollBoxObject }, |
|
928 { &kNS_TREEBOXOBJECT_CID, false, nullptr, CreateNewTreeBoxObject }, |
|
929 #endif // MOZ_XUL |
|
930 #ifdef MOZ_XUL |
|
931 { &kIN_DOMVIEW_CID, false, nullptr, inDOMViewConstructor }, |
|
932 #endif |
|
933 { &kIN_DEEPTREEWALKER_CID, false, nullptr, inDeepTreeWalkerConstructor }, |
|
934 { &kIN_FLASHER_CID, false, nullptr, inFlasherConstructor }, |
|
935 { &kIN_CSSVALUESEARCH_CID, false, nullptr, inCSSValueSearchConstructor }, |
|
936 { &kIN_DOMUTILS_CID, false, nullptr, inDOMUtilsConstructor }, |
|
937 { &kNS_CONTENT_VIEWER_CID, false, nullptr, CreateContentViewer }, |
|
938 { &kNS_HTMLDOCUMENT_CID, false, nullptr, CreateHTMLDocument }, |
|
939 { &kNS_XMLDOCUMENT_CID, false, nullptr, CreateXMLDocument }, |
|
940 { &kNS_SVGDOCUMENT_CID, false, nullptr, CreateSVGDocument }, |
|
941 { &kNS_IMAGEDOCUMENT_CID, false, nullptr, CreateImageDocument }, |
|
942 { &kNS_DOMMULTIPARTBLOB_CID, false, nullptr, CreateDOMBlob }, |
|
943 { &kNS_DOMMULTIPARTFILE_CID, false, nullptr, CreateDOMFile }, |
|
944 { &kNS_DOMSELECTION_CID, false, nullptr, CreateDOMSelection }, |
|
945 { &kNS_CONTENTITERATOR_CID, false, nullptr, CreateContentIterator }, |
|
946 { &kNS_PRECONTENTITERATOR_CID, false, nullptr, CreatePreContentIterator }, |
|
947 { &kNS_SUBTREEITERATOR_CID, false, nullptr, CreateSubtreeIterator }, |
|
948 { &kNS_CANVASRENDERINGCONTEXTWEBGL_CID, false, nullptr, CreateCanvasRenderingContextWebGL }, |
|
949 { &kNS_TEXT_ENCODER_CID, false, nullptr, CreateTextEncoder }, |
|
950 { &kNS_HTMLCOPY_TEXT_ENCODER_CID, false, nullptr, CreateHTMLCopyTextEncoder }, |
|
951 { &kNS_XMLCONTENTSERIALIZER_CID, false, nullptr, CreateXMLContentSerializer }, |
|
952 { &kNS_HTMLCONTENTSERIALIZER_CID, false, nullptr, CreateHTMLContentSerializer }, |
|
953 { &kNS_XHTMLCONTENTSERIALIZER_CID, false, nullptr, CreateXHTMLContentSerializer }, |
|
954 { &kNS_PLAINTEXTSERIALIZER_CID, false, nullptr, CreatePlainTextSerializer }, |
|
955 { &kNS_PARSERUTILS_CID, false, nullptr, nsParserUtilsConstructor }, |
|
956 { &kNS_SCRIPTABLEUNESCAPEHTML_CID, false, nullptr, nsParserUtilsConstructor }, |
|
957 { &kNS_CONTENTPOLICY_CID, false, nullptr, CreateContentPolicy }, |
|
958 { &kNS_DATADOCUMENTCONTENTPOLICY_CID, false, nullptr, nsDataDocumentContentPolicyConstructor }, |
|
959 { &kNS_NODATAPROTOCOLCONTENTPOLICY_CID, false, nullptr, nsNoDataProtocolContentPolicyConstructor }, |
|
960 { &kNS_XULCONTROLLERS_CID, false, nullptr, NS_NewXULControllers }, |
|
961 #ifdef MOZ_XUL |
|
962 { &kNS_XULSORTSERVICE_CID, false, nullptr, CreateXULSortService }, |
|
963 { &kNS_XULTEMPLATEBUILDER_CID, false, nullptr, NS_NewXULContentBuilder }, |
|
964 { &kNS_XULTREEBUILDER_CID, false, nullptr, NS_NewXULTreeBuilder }, |
|
965 { &kNS_XULDOCUMENT_CID, false, nullptr, CreateXULDocument }, |
|
966 #endif |
|
967 { &kNS_CONTENT_DOCUMENT_LOADER_FACTORY_CID, false, nullptr, CreateContentDLF }, |
|
968 { &kNS_DOM_SCRIPT_OBJECT_FACTORY_CID, false, nullptr, nsDOMScriptObjectFactoryConstructor }, |
|
969 { &kNS_JSPROTOCOLHANDLER_CID, false, nullptr, nsJSProtocolHandler::Create }, |
|
970 { &kNS_JSURI_CID, false, nullptr, nsJSURIConstructor }, |
|
971 { &kNS_WINDOWCOMMANDTABLE_CID, false, nullptr, CreateWindowCommandTableConstructor }, |
|
972 { &kNS_WINDOWCONTROLLER_CID, false, nullptr, CreateWindowControllerWithSingletonCommandTable }, |
|
973 { &kNS_PLUGINDOCLOADERFACTORY_CID, false, nullptr, CreateContentDLF }, |
|
974 { &kNS_PLUGINDOCUMENT_CID, false, nullptr, CreatePluginDocument }, |
|
975 { &kNS_VIDEODOCUMENT_CID, false, nullptr, CreateVideoDocument }, |
|
976 { &kNS_STYLESHEETSERVICE_CID, false, nullptr, nsStyleSheetServiceConstructor }, |
|
977 { &kTRANSFORMIIX_XSLT_PROCESSOR_CID, false, nullptr, txMozillaXSLTProcessorConstructor }, |
|
978 { &kTRANSFORMIIX_XPATH_EVALUATOR_CID, false, nullptr, XPathEvaluatorConstructor }, |
|
979 { &kTRANSFORMIIX_NODESET_CID, false, nullptr, txNodeSetAdaptorConstructor }, |
|
980 { &kNS_XMLSERIALIZER_CID, false, nullptr, nsDOMSerializerConstructor }, |
|
981 { &kNS_FILEREADER_CID, false, nullptr, nsDOMFileReaderConstructor }, |
|
982 { &kNS_FORMDATA_CID, false, nullptr, nsFormDataConstructor }, |
|
983 { &kNS_BLOBPROTOCOLHANDLER_CID, false, nullptr, nsBlobProtocolHandlerConstructor }, |
|
984 { &kNS_MEDIASTREAMPROTOCOLHANDLER_CID, false, nullptr, nsMediaStreamProtocolHandlerConstructor }, |
|
985 { &kNS_MEDIASOURCEPROTOCOLHANDLER_CID, false, nullptr, nsMediaSourceProtocolHandlerConstructor }, |
|
986 { &kNS_FONTTABLEPROTOCOLHANDLER_CID, false, nullptr, nsFontTableProtocolHandlerConstructor }, |
|
987 { &kNS_HOSTOBJECTURI_CID, false, nullptr, nsHostObjectURIConstructor }, |
|
988 { &kNS_XMLHTTPREQUEST_CID, false, nullptr, nsXMLHttpRequestConstructor }, |
|
989 { &kNS_DOMPARSER_CID, false, nullptr, DOMParserConstructor }, |
|
990 { &kNS_XPCEXCEPTION_CID, false, nullptr, ExceptionConstructor }, |
|
991 { &kNS_DOMSESSIONSTORAGEMANAGER_CID, false, nullptr, DOMSessionStorageManagerConstructor }, |
|
992 { &kNS_DOMLOCALSTORAGEMANAGER_CID, false, nullptr, DOMLocalStorageManagerConstructor }, |
|
993 { &kNS_DOMJSON_CID, false, nullptr, NS_NewJSON }, |
|
994 { &kNS_TEXTEDITOR_CID, false, nullptr, nsPlaintextEditorConstructor }, |
|
995 { &kINDEXEDDB_MANAGER_CID, false, nullptr, IndexedDatabaseManagerConstructor }, |
|
996 { &kDOMREQUEST_SERVICE_CID, false, nullptr, DOMRequestServiceConstructor }, |
|
997 { &kQUOTA_MANAGER_CID, false, nullptr, QuotaManagerConstructor }, |
|
998 #ifdef MOZ_WIDGET_GONK |
|
999 { &kSYSTEMWORKERMANAGER_CID, true, nullptr, SystemWorkerManagerConstructor }, |
|
1000 #endif |
|
1001 #ifdef MOZ_B2G_BT |
|
1002 { &kBLUETOOTHSERVICE_CID, true, nullptr, BluetoothServiceConstructor }, |
|
1003 #endif |
|
1004 #ifdef MOZ_WIDGET_GONK |
|
1005 { &kNS_AUDIOMANAGER_CID, true, nullptr, AudioManagerConstructor }, |
|
1006 { &kNS_VOLUMESERVICE_CID, true, nullptr, nsVolumeServiceConstructor }, |
|
1007 #endif |
|
1008 { &kNS_AUDIOCHANNELAGENT_CID, true, nullptr, AudioChannelAgentConstructor }, |
|
1009 { &kNS_HTMLEDITOR_CID, false, nullptr, nsHTMLEditorConstructor }, |
|
1010 { &kNS_EDITORCONTROLLER_CID, false, nullptr, nsEditorControllerConstructor }, |
|
1011 { &kNS_EDITINGCONTROLLER_CID, false, nullptr, nsEditingControllerConstructor }, |
|
1012 { &kNS_EDITORCOMMANDTABLE_CID, false, nullptr, nsEditorCommandTableConstructor }, |
|
1013 { &kNS_EDITINGCOMMANDTABLE_CID, false, nullptr, nsEditingCommandTableConstructor }, |
|
1014 { &kNS_TEXTSERVICESDOCUMENT_CID, false, nullptr, nsTextServicesDocumentConstructor }, |
|
1015 { &kNS_GEOLOCATION_SERVICE_CID, false, nullptr, nsGeolocationServiceConstructor }, |
|
1016 { &kNS_GEOLOCATION_CID, false, nullptr, GeolocationConstructor }, |
|
1017 { &kNS_AUDIOCHANNEL_SERVICE_CID, false, nullptr, AudioChannelServiceConstructor }, |
|
1018 { &kNS_FOCUSMANAGER_CID, false, nullptr, CreateFocusManager }, |
|
1019 #ifdef MOZ_WEBSPEECH |
|
1020 { &kNS_FAKE_SPEECH_RECOGNITION_SERVICE_CID, false, nullptr, FakeSpeechRecognitionServiceConstructor }, |
|
1021 { &kNS_SYNTHVOICEREGISTRY_CID, true, nullptr, nsSynthVoiceRegistryConstructor }, |
|
1022 #endif |
|
1023 { &kCSPSERVICE_CID, false, nullptr, CSPServiceConstructor }, |
|
1024 { &kNS_MIXEDCONTENTBLOCKER_CID, false, nullptr, nsMixedContentBlockerConstructor }, |
|
1025 { &kNS_EVENTLISTENERSERVICE_CID, false, nullptr, CreateEventListenerService }, |
|
1026 { &kNS_GLOBALMESSAGEMANAGER_CID, false, nullptr, CreateGlobalMessageManager }, |
|
1027 { &kNS_PARENTPROCESSMESSAGEMANAGER_CID, false, nullptr, CreateParentMessageManager }, |
|
1028 { &kNS_CHILDPROCESSMESSAGEMANAGER_CID, false, nullptr, CreateChildMessageManager }, |
|
1029 { &kNSCHANNELPOLICY_CID, false, nullptr, nsChannelPolicyConstructor }, |
|
1030 { &kNS_SCRIPTSECURITYMANAGER_CID, false, nullptr, Construct_nsIScriptSecurityManager }, |
|
1031 { &kNS_PRINCIPAL_CID, false, nullptr, nsPrincipalConstructor }, |
|
1032 { &kNS_SYSTEMPRINCIPAL_CID, false, nullptr, nsSystemPrincipalConstructor }, |
|
1033 { &kNS_NULLPRINCIPAL_CID, false, nullptr, nsNullPrincipalConstructor }, |
|
1034 { &kNS_SECURITYNAMESET_CID, false, nullptr, nsSecurityNameSetConstructor }, |
|
1035 { &kNS_DEVICE_SENSORS_CID, false, nullptr, nsDeviceSensorsConstructor }, |
|
1036 #ifndef MOZ_WIDGET_GONK |
|
1037 #if defined(ANDROID) |
|
1038 { &kNS_HAPTICFEEDBACK_CID, false, nullptr, nsHapticFeedbackConstructor }, |
|
1039 #endif |
|
1040 #endif |
|
1041 { &kTHIRDPARTYUTIL_CID, false, nullptr, ThirdPartyUtilConstructor }, |
|
1042 { &kNS_STRUCTUREDCLONECONTAINER_CID, false, nullptr, nsStructuredCloneContainerConstructor }, |
|
1043 { &kSMS_SERVICE_CID, false, nullptr, nsISmsServiceConstructor }, |
|
1044 { &kMMS_SERVICE_CID, false, nullptr, nsIMmsServiceConstructor }, |
|
1045 { &kMOBILE_MESSAGE_SERVICE_CID, false, nullptr, nsIMobileMessageServiceConstructor }, |
|
1046 { &kMOBILE_MESSAGE_DATABASE_SERVICE_CID, false, nullptr, nsIMobileMessageDatabaseServiceConstructor }, |
|
1047 { &kNS_POWERMANAGERSERVICE_CID, false, nullptr, nsIPowerManagerServiceConstructor }, |
|
1048 { &kOSFILECONSTANTSSERVICE_CID, true, nullptr, OSFileConstantsServiceConstructor }, |
|
1049 { &kNS_ALARMHALSERVICE_CID, false, nullptr, nsIAlarmHalServiceConstructor }, |
|
1050 { &kTCPSOCKETCHILD_CID, false, nullptr, TCPSocketChildConstructor }, |
|
1051 { &kTCPSOCKETPARENT_CID, false, nullptr, TCPSocketParentConstructor }, |
|
1052 { &kTCPSERVERSOCKETCHILD_CID, false, nullptr, TCPServerSocketChildConstructor }, |
|
1053 { &kUDPSOCKETCHILD_CID, false, nullptr, UDPSocketChildConstructor }, |
|
1054 { &kNS_TIMESERVICE_CID, false, nullptr, nsITimeServiceConstructor }, |
|
1055 { &kNS_MEDIASTREAMCONTROLLERSERVICE_CID, false, nullptr, nsIStreamingProtocolControllerServiceConstructor }, |
|
1056 #ifdef MOZ_WIDGET_GONK |
|
1057 { &kGONK_GPS_GEOLOCATION_PROVIDER_CID, false, nullptr, nsIGeolocationProviderConstructor }, |
|
1058 #endif |
|
1059 { &kNS_MEDIAMANAGERSERVICE_CID, false, nullptr, nsIMediaManagerServiceConstructor }, |
|
1060 #ifdef MOZ_GAMEPAD |
|
1061 { &kNS_GAMEPAD_TEST_CID, false, nullptr, GamepadServiceTestConstructor }, |
|
1062 #endif |
|
1063 #ifdef ACCESSIBILITY |
|
1064 { &kNS_ACCESSIBILITY_SERVICE_CID, false, nullptr, CreateA11yService }, |
|
1065 #endif |
|
1066 { &kTELEPHONY_PROVIDER_CID, false, nullptr, nsITelephonyProviderConstructor }, |
|
1067 { nullptr } |
|
1068 }; |
|
1069 |
|
1070 static const mozilla::Module::ContractIDEntry kLayoutContracts[] = { |
|
1071 XPCONNECT_CONTRACTS |
|
1072 { "@mozilla.org/layout/xul-boxobject;1", &kNS_BOXOBJECT_CID }, |
|
1073 #ifdef MOZ_XUL |
|
1074 { "@mozilla.org/layout/xul-boxobject-listbox;1", &kNS_LISTBOXOBJECT_CID }, |
|
1075 { "@mozilla.org/layout/xul-boxobject-menu;1", &kNS_MENUBOXOBJECT_CID }, |
|
1076 { "@mozilla.org/layout/xul-boxobject-popup;1", &kNS_POPUPBOXOBJECT_CID }, |
|
1077 { "@mozilla.org/layout/xul-boxobject-container;1", &kNS_CONTAINERBOXOBJECT_CID }, |
|
1078 { "@mozilla.org/layout/xul-boxobject-scrollbox;1", &kNS_SCROLLBOXOBJECT_CID }, |
|
1079 { "@mozilla.org/layout/xul-boxobject-tree;1", &kNS_TREEBOXOBJECT_CID }, |
|
1080 #endif // MOZ_XUL |
|
1081 #ifdef MOZ_XUL |
|
1082 { "@mozilla.org/inspector/dom-view;1", &kIN_DOMVIEW_CID }, |
|
1083 #endif |
|
1084 { "@mozilla.org/inspector/deep-tree-walker;1", &kIN_DEEPTREEWALKER_CID }, |
|
1085 { "@mozilla.org/inspector/flasher;1", &kIN_FLASHER_CID }, |
|
1086 { "@mozilla.org/inspector/search;1?type=cssvalue", &kIN_CSSVALUESEARCH_CID }, |
|
1087 { IN_DOMUTILS_CONTRACTID, &kIN_DOMUTILS_CID }, |
|
1088 { "@mozilla.org/xml/xml-document;1", &kNS_XMLDOCUMENT_CID }, |
|
1089 { "@mozilla.org/svg/svg-document;1", &kNS_SVGDOCUMENT_CID }, |
|
1090 { NS_DOMMULTIPARTBLOB_CONTRACTID, &kNS_DOMMULTIPARTBLOB_CID }, |
|
1091 { NS_DOMMULTIPARTFILE_CONTRACTID, &kNS_DOMMULTIPARTFILE_CID }, |
|
1092 { "@mozilla.org/content/dom-selection;1", &kNS_DOMSELECTION_CID }, |
|
1093 { "@mozilla.org/content/post-content-iterator;1", &kNS_CONTENTITERATOR_CID }, |
|
1094 { "@mozilla.org/content/pre-content-iterator;1", &kNS_PRECONTENTITERATOR_CID }, |
|
1095 { "@mozilla.org/content/subtree-content-iterator;1", &kNS_SUBTREEITERATOR_CID }, |
|
1096 { "@mozilla.org/content/canvas-rendering-context;1?id=experimental-webgl", &kNS_CANVASRENDERINGCONTEXTWEBGL_CID }, |
|
1097 #ifdef MOZ_WEBGL_CONFORMANT |
|
1098 { "@mozilla.org/content/canvas-rendering-context;1?id=webgl", &kNS_CANVASRENDERINGCONTEXTWEBGL_CID }, |
|
1099 #endif |
|
1100 { NS_DOC_ENCODER_CONTRACTID_BASE "text/xml", &kNS_TEXT_ENCODER_CID }, |
|
1101 { NS_DOC_ENCODER_CONTRACTID_BASE "application/xml", &kNS_TEXT_ENCODER_CID }, |
|
1102 { NS_DOC_ENCODER_CONTRACTID_BASE "application/xhtml+xml", &kNS_TEXT_ENCODER_CID }, |
|
1103 { NS_DOC_ENCODER_CONTRACTID_BASE "image/svg+xml", &kNS_TEXT_ENCODER_CID }, |
|
1104 { NS_DOC_ENCODER_CONTRACTID_BASE "text/html", &kNS_TEXT_ENCODER_CID }, |
|
1105 { NS_DOC_ENCODER_CONTRACTID_BASE "text/plain", &kNS_TEXT_ENCODER_CID }, |
|
1106 { NS_HTMLCOPY_ENCODER_CONTRACTID, &kNS_HTMLCOPY_TEXT_ENCODER_CID }, |
|
1107 { NS_CONTENTSERIALIZER_CONTRACTID_PREFIX "text/xml", &kNS_XMLCONTENTSERIALIZER_CID }, |
|
1108 { NS_CONTENTSERIALIZER_CONTRACTID_PREFIX "application/xml", &kNS_XMLCONTENTSERIALIZER_CID }, |
|
1109 { NS_CONTENTSERIALIZER_CONTRACTID_PREFIX "application/xhtml+xml", &kNS_XHTMLCONTENTSERIALIZER_CID }, |
|
1110 { NS_CONTENTSERIALIZER_CONTRACTID_PREFIX "image/svg+xml", &kNS_XMLCONTENTSERIALIZER_CID }, |
|
1111 { NS_CONTENTSERIALIZER_CONTRACTID_PREFIX "text/html", &kNS_HTMLCONTENTSERIALIZER_CID }, |
|
1112 { NS_CONTENTSERIALIZER_CONTRACTID_PREFIX "application/vnd.mozilla.xul+xml", &kNS_XMLCONTENTSERIALIZER_CID }, |
|
1113 { NS_CONTENTSERIALIZER_CONTRACTID_PREFIX "text/plain", &kNS_PLAINTEXTSERIALIZER_CID }, |
|
1114 { NS_PARSERUTILS_CONTRACTID, &kNS_PARSERUTILS_CID }, |
|
1115 { NS_SCRIPTABLEUNESCAPEHTML_CONTRACTID, &kNS_SCRIPTABLEUNESCAPEHTML_CID }, |
|
1116 { NS_CONTENTPOLICY_CONTRACTID, &kNS_CONTENTPOLICY_CID }, |
|
1117 { NS_DATADOCUMENTCONTENTPOLICY_CONTRACTID, &kNS_DATADOCUMENTCONTENTPOLICY_CID }, |
|
1118 { NS_NODATAPROTOCOLCONTENTPOLICY_CONTRACTID, &kNS_NODATAPROTOCOLCONTENTPOLICY_CID }, |
|
1119 { "@mozilla.org/xul/xul-controllers;1", &kNS_XULCONTROLLERS_CID }, |
|
1120 #ifdef MOZ_XUL |
|
1121 { "@mozilla.org/xul/xul-sort-service;1", &kNS_XULSORTSERVICE_CID }, |
|
1122 { "@mozilla.org/xul/xul-template-builder;1", &kNS_XULTEMPLATEBUILDER_CID }, |
|
1123 { "@mozilla.org/xul/xul-tree-builder;1", &kNS_XULTREEBUILDER_CID }, |
|
1124 { "@mozilla.org/xul/xul-document;1", &kNS_XULDOCUMENT_CID }, |
|
1125 #endif |
|
1126 { CONTENT_DLF_CONTRACTID, &kNS_CONTENT_DOCUMENT_LOADER_FACTORY_CID }, |
|
1127 { NS_JSPROTOCOLHANDLER_CONTRACTID, &kNS_JSPROTOCOLHANDLER_CID }, |
|
1128 { NS_WINDOWCONTROLLER_CONTRACTID, &kNS_WINDOWCONTROLLER_CID }, |
|
1129 { PLUGIN_DLF_CONTRACTID, &kNS_PLUGINDOCLOADERFACTORY_CID }, |
|
1130 { NS_STYLESHEETSERVICE_CONTRACTID, &kNS_STYLESHEETSERVICE_CID }, |
|
1131 { TRANSFORMIIX_XSLT_PROCESSOR_CONTRACTID, &kTRANSFORMIIX_XSLT_PROCESSOR_CID }, |
|
1132 { NS_XPATH_EVALUATOR_CONTRACTID, &kTRANSFORMIIX_XPATH_EVALUATOR_CID }, |
|
1133 { TRANSFORMIIX_NODESET_CONTRACTID, &kTRANSFORMIIX_NODESET_CID }, |
|
1134 { NS_XMLSERIALIZER_CONTRACTID, &kNS_XMLSERIALIZER_CID }, |
|
1135 { NS_FILEREADER_CONTRACTID, &kNS_FILEREADER_CID }, |
|
1136 { NS_FORMDATA_CONTRACTID, &kNS_FORMDATA_CID }, |
|
1137 { NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX BLOBURI_SCHEME, &kNS_BLOBPROTOCOLHANDLER_CID }, |
|
1138 { NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX MEDIASTREAMURI_SCHEME, &kNS_MEDIASTREAMPROTOCOLHANDLER_CID }, |
|
1139 { NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX MEDIASOURCEURI_SCHEME, &kNS_MEDIASOURCEPROTOCOLHANDLER_CID }, |
|
1140 { NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX FONTTABLEURI_SCHEME, &kNS_FONTTABLEPROTOCOLHANDLER_CID }, |
|
1141 { NS_XMLHTTPREQUEST_CONTRACTID, &kNS_XMLHTTPREQUEST_CID }, |
|
1142 { NS_DOMPARSER_CONTRACTID, &kNS_DOMPARSER_CID }, |
|
1143 { XPC_EXCEPTION_CONTRACTID, &kNS_XPCEXCEPTION_CID }, |
|
1144 { "@mozilla.org/dom/localStorage-manager;1", &kNS_DOMLOCALSTORAGEMANAGER_CID }, |
|
1145 // Keeping the old ContractID for backward compatibility |
|
1146 { "@mozilla.org/dom/storagemanager;1", &kNS_DOMLOCALSTORAGEMANAGER_CID }, |
|
1147 { "@mozilla.org/dom/sessionStorage-manager;1", &kNS_DOMSESSIONSTORAGEMANAGER_CID }, |
|
1148 { "@mozilla.org/dom/json;1", &kNS_DOMJSON_CID }, |
|
1149 { "@mozilla.org/editor/texteditor;1", &kNS_TEXTEDITOR_CID }, |
|
1150 { INDEXEDDB_MANAGER_CONTRACTID, &kINDEXEDDB_MANAGER_CID }, |
|
1151 { DOMREQUEST_SERVICE_CONTRACTID, &kDOMREQUEST_SERVICE_CID }, |
|
1152 { QUOTA_MANAGER_CONTRACTID, &kQUOTA_MANAGER_CID }, |
|
1153 #ifdef MOZ_WIDGET_GONK |
|
1154 { SYSTEMWORKERMANAGER_CONTRACTID, &kSYSTEMWORKERMANAGER_CID }, |
|
1155 #endif |
|
1156 #ifdef MOZ_B2G_BT |
|
1157 { BLUETOOTHSERVICE_CONTRACTID, &kBLUETOOTHSERVICE_CID }, |
|
1158 #endif |
|
1159 #ifdef MOZ_WIDGET_GONK |
|
1160 { NS_AUDIOMANAGER_CONTRACTID, &kNS_AUDIOMANAGER_CID }, |
|
1161 { NS_VOLUMESERVICE_CONTRACTID, &kNS_VOLUMESERVICE_CID }, |
|
1162 #endif |
|
1163 { NS_AUDIOCHANNELAGENT_CONTRACTID, &kNS_AUDIOCHANNELAGENT_CID }, |
|
1164 { "@mozilla.org/editor/htmleditor;1", &kNS_HTMLEDITOR_CID }, |
|
1165 { "@mozilla.org/editor/editorcontroller;1", &kNS_EDITORCONTROLLER_CID }, |
|
1166 { "@mozilla.org/editor/editingcontroller;1", &kNS_EDITINGCONTROLLER_CID }, |
|
1167 { "@mozilla.org/textservices/textservicesdocument;1", &kNS_TEXTSERVICESDOCUMENT_CID }, |
|
1168 { "@mozilla.org/geolocation/service;1", &kNS_GEOLOCATION_SERVICE_CID }, |
|
1169 { "@mozilla.org/geolocation;1", &kNS_GEOLOCATION_CID }, |
|
1170 { "@mozilla.org/audiochannel/service;1", &kNS_AUDIOCHANNEL_SERVICE_CID }, |
|
1171 { "@mozilla.org/focus-manager;1", &kNS_FOCUSMANAGER_CID }, |
|
1172 #ifdef MOZ_WEBSPEECH |
|
1173 { NS_SPEECH_RECOGNITION_SERVICE_CONTRACTID_PREFIX "fake", &kNS_FAKE_SPEECH_RECOGNITION_SERVICE_CID }, |
|
1174 { NS_SYNTHVOICEREGISTRY_CONTRACTID, &kNS_SYNTHVOICEREGISTRY_CID }, |
|
1175 #endif |
|
1176 { CSPSERVICE_CONTRACTID, &kCSPSERVICE_CID }, |
|
1177 { NS_MIXEDCONTENTBLOCKER_CONTRACTID, &kNS_MIXEDCONTENTBLOCKER_CID }, |
|
1178 { NS_EVENTLISTENERSERVICE_CONTRACTID, &kNS_EVENTLISTENERSERVICE_CID }, |
|
1179 { NS_GLOBALMESSAGEMANAGER_CONTRACTID, &kNS_GLOBALMESSAGEMANAGER_CID }, |
|
1180 { NS_PARENTPROCESSMESSAGEMANAGER_CONTRACTID, &kNS_PARENTPROCESSMESSAGEMANAGER_CID }, |
|
1181 { NS_CHILDPROCESSMESSAGEMANAGER_CONTRACTID, &kNS_CHILDPROCESSMESSAGEMANAGER_CID }, |
|
1182 { NSCHANNELPOLICY_CONTRACTID, &kNSCHANNELPOLICY_CID }, |
|
1183 { NS_SCRIPTSECURITYMANAGER_CONTRACTID, &kNS_SCRIPTSECURITYMANAGER_CID }, |
|
1184 { NS_GLOBAL_CHANNELEVENTSINK_CONTRACTID, &kNS_SCRIPTSECURITYMANAGER_CID }, |
|
1185 { NS_PRINCIPAL_CONTRACTID, &kNS_PRINCIPAL_CID }, |
|
1186 { NS_SYSTEMPRINCIPAL_CONTRACTID, &kNS_SYSTEMPRINCIPAL_CID }, |
|
1187 { NS_NULLPRINCIPAL_CONTRACTID, &kNS_NULLPRINCIPAL_CID }, |
|
1188 { NS_SECURITYNAMESET_CONTRACTID, &kNS_SECURITYNAMESET_CID }, |
|
1189 { NS_DEVICE_SENSORS_CONTRACTID, &kNS_DEVICE_SENSORS_CID }, |
|
1190 #ifndef MOZ_WIDGET_GONK |
|
1191 #if defined(ANDROID) |
|
1192 { "@mozilla.org/widget/hapticfeedback;1", &kNS_HAPTICFEEDBACK_CID }, |
|
1193 #endif |
|
1194 #endif |
|
1195 { THIRDPARTYUTIL_CONTRACTID, &kTHIRDPARTYUTIL_CID }, |
|
1196 { NS_STRUCTUREDCLONECONTAINER_CONTRACTID, &kNS_STRUCTUREDCLONECONTAINER_CID }, |
|
1197 { SMS_SERVICE_CONTRACTID, &kSMS_SERVICE_CID }, |
|
1198 { MMS_SERVICE_CONTRACTID, &kMMS_SERVICE_CID }, |
|
1199 { MOBILE_MESSAGE_SERVICE_CONTRACTID, &kMOBILE_MESSAGE_SERVICE_CID }, |
|
1200 { MOBILE_MESSAGE_DATABASE_SERVICE_CONTRACTID, &kMOBILE_MESSAGE_DATABASE_SERVICE_CID }, |
|
1201 { POWERMANAGERSERVICE_CONTRACTID, &kNS_POWERMANAGERSERVICE_CID }, |
|
1202 { OSFILECONSTANTSSERVICE_CONTRACTID, &kOSFILECONSTANTSSERVICE_CID }, |
|
1203 { ALARMHALSERVICE_CONTRACTID, &kNS_ALARMHALSERVICE_CID }, |
|
1204 { "@mozilla.org/tcp-socket-child;1", &kTCPSOCKETCHILD_CID }, |
|
1205 { "@mozilla.org/tcp-socket-parent;1", &kTCPSOCKETPARENT_CID }, |
|
1206 { "@mozilla.org/tcp-server-socket-child;1", &kTCPSERVERSOCKETCHILD_CID }, |
|
1207 { "@mozilla.org/udp-socket-child;1", &kUDPSOCKETCHILD_CID }, |
|
1208 { TIMESERVICE_CONTRACTID, &kNS_TIMESERVICE_CID }, |
|
1209 { MEDIASTREAMCONTROLLERSERVICE_CONTRACTID, &kNS_MEDIASTREAMCONTROLLERSERVICE_CID }, |
|
1210 #ifdef MOZ_WIDGET_GONK |
|
1211 { GONK_GPS_GEOLOCATION_PROVIDER_CONTRACTID, &kGONK_GPS_GEOLOCATION_PROVIDER_CID }, |
|
1212 #endif |
|
1213 #ifdef MOZ_GAMEPAD |
|
1214 { NS_GAMEPAD_TEST_CONTRACTID, &kNS_GAMEPAD_TEST_CID }, |
|
1215 #endif |
|
1216 { MEDIAMANAGERSERVICE_CONTRACTID, &kNS_MEDIAMANAGERSERVICE_CID }, |
|
1217 #ifdef ACCESSIBILITY |
|
1218 { "@mozilla.org/accessibilityService;1", &kNS_ACCESSIBILITY_SERVICE_CID }, |
|
1219 { "@mozilla.org/accessibleRetrieval;1", &kNS_ACCESSIBILITY_SERVICE_CID }, |
|
1220 #endif |
|
1221 { TELEPHONY_PROVIDER_CONTRACTID, &kTELEPHONY_PROVIDER_CID }, |
|
1222 { nullptr } |
|
1223 }; |
|
1224 |
|
1225 static const mozilla::Module::CategoryEntry kLayoutCategories[] = { |
|
1226 XPCONNECT_CATEGORIES |
|
1227 { "content-policy", NS_DATADOCUMENTCONTENTPOLICY_CONTRACTID, NS_DATADOCUMENTCONTENTPOLICY_CONTRACTID }, |
|
1228 { "content-policy", NS_NODATAPROTOCOLCONTENTPOLICY_CONTRACTID, NS_NODATAPROTOCOLCONTENTPOLICY_CONTRACTID }, |
|
1229 { "content-policy", "CSPService", CSPSERVICE_CONTRACTID }, |
|
1230 { "content-policy", NS_MIXEDCONTENTBLOCKER_CONTRACTID, NS_MIXEDCONTENTBLOCKER_CONTRACTID }, |
|
1231 { "net-channel-event-sinks", "CSPService", CSPSERVICE_CONTRACTID }, |
|
1232 { JAVASCRIPT_GLOBAL_STATIC_NAMESET_CATEGORY, "PrivilegeManager", NS_SECURITYNAMESET_CONTRACTID }, |
|
1233 { "app-startup", "Script Security Manager", "service," NS_SCRIPTSECURITYMANAGER_CONTRACTID }, |
|
1234 { TOPIC_WEB_APP_CLEAR_DATA, "QuotaManager", "service," QUOTA_MANAGER_CONTRACTID }, |
|
1235 #ifdef MOZ_WIDGET_GONK |
|
1236 { "app-startup", "Volume Service", "service," NS_VOLUMESERVICE_CONTRACTID }, |
|
1237 #endif |
|
1238 CONTENTDLF_CATEGORIES |
|
1239 #ifdef MOZ_WIDGET_GONK |
|
1240 { "profile-after-change", "Gonk System Worker Manager", SYSTEMWORKERMANAGER_CONTRACTID }, |
|
1241 #endif |
|
1242 #ifdef MOZ_B2G_BT |
|
1243 { "profile-after-change", "Bluetooth Service", BLUETOOTHSERVICE_CONTRACTID }, |
|
1244 #endif |
|
1245 { nullptr } |
|
1246 }; |
|
1247 |
|
1248 static void |
|
1249 LayoutModuleDtor() |
|
1250 { |
|
1251 Shutdown(); |
|
1252 nsContentUtils::XPCOMShutdown(); |
|
1253 |
|
1254 // Layout depends heavily on gfx and imagelib, so we want to make sure that |
|
1255 // these modules are shut down after all the layout cleanup runs. |
|
1256 mozilla::image::ShutdownModule(); |
|
1257 gfxPlatform::Shutdown(); |
|
1258 |
|
1259 nsScriptSecurityManager::Shutdown(); |
|
1260 xpcModuleDtor(); |
|
1261 } |
|
1262 |
|
1263 static const mozilla::Module kLayoutModule = { |
|
1264 mozilla::Module::kVersion, |
|
1265 kLayoutCIDs, |
|
1266 kLayoutContracts, |
|
1267 kLayoutCategories, |
|
1268 nullptr, |
|
1269 Initialize, |
|
1270 LayoutModuleDtor |
|
1271 }; |
|
1272 |
|
1273 NSMODULE_DEFN(nsLayoutModule) = &kLayoutModule; |