12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085 |
- /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
- /* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
- #include "base/basictypes.h"
- #include "XPCModule.h"
- #include "mozilla/ModuleUtils.h"
- #include "nsImageModule.h"
- #include "nsLayoutStatics.h"
- #include "nsContentCID.h"
- #include "nsContentDLF.h"
- #include "nsContentPolicyUtils.h"
- #include "nsDataDocumentContentPolicy.h"
- #include "nsNoDataProtocolContentPolicy.h"
- #include "nsDOMCID.h"
- #include "nsHTMLContentSerializer.h"
- #include "nsHTMLParts.h"
- #include "nsIComponentManager.h"
- #include "nsIContentIterator.h"
- #include "nsIContentSerializer.h"
- #include "nsIContentViewer.h"
- #include "nsIController.h"
- #include "nsIControllers.h"
- #include "nsIDOMDOMImplementation.h"
- #include "nsIDocument.h"
- #include "nsIDocumentEncoder.h"
- #include "nsIFactory.h"
- #include "nsIFrameUtil.h"
- #include "nsIIdleService.h"
- #include "nsHTMLStyleSheet.h"
- #include "nsILayoutDebugger.h"
- #include "nsNameSpaceManager.h"
- #include "nsIObserver.h"
- #include "nsIObserverService.h"
- #include "nsIScriptNameSpaceManager.h"
- #include "nsIScriptError.h"
- #include "nsISelection.h"
- #include "nsCaret.h"
- #include "nsPlainTextSerializer.h"
- #include "nsXMLContentSerializer.h"
- #include "nsXHTMLContentSerializer.h"
- #include "nsRuleNode.h"
- #include "nsContentAreaDragDrop.h"
- #include "nsContentList.h"
- #include "nsBox.h"
- #include "nsIFrameTraversal.h"
- #include "nsLayoutCID.h"
- #include "nsStyleSheetService.h"
- #include "nsFocusManager.h"
- #include "ThirdPartyUtil.h"
- #include "nsStructuredCloneContainer.h"
- #include "gfxPlatform.h"
- #include "mozilla/gfx/gfxVars.h"
- #include "nsIEventListenerService.h"
- #include "nsIMessageManager.h"
- // Transformiix stuff
- #include "mozilla/dom/XPathEvaluator.h"
- #include "txMozillaXSLTProcessor.h"
- #include "txNodeSetAdaptor.h"
- #include "mozilla/dom/DOMParser.h"
- #include "mozilla/dom/XMLHttpRequestMainThread.h"
- #include "nsDOMSerializer.h"
- // view stuff
- #include "nsContentCreatorFunctions.h"
- #include "mozilla/dom/FormData.h"
- #include "nsHostObjectURI.h"
- #include "nsGlobalWindowCommands.h"
- #include "nsIControllerCommandTable.h"
- #include "nsJSProtocolHandler.h"
- #include "nsScriptNameSpaceManager.h"
- #include "nsIControllerContext.h"
- #include "DOMStorageManager.h"
- #include "nsJSON.h"
- #include "nsZipArchive.h"
- #include "mozIApplicationClearPrivateDataParams.h"
- #include "mozilla/Attributes.h"
- #include "mozilla/dom/DOMException.h"
- #include "mozilla/dom/DOMRequest.h"
- #include "mozilla/dom/network/UDPSocketChild.h"
- #include "mozilla/dom/quota/QuotaManagerService.h"
- #include "mozilla/dom/workers/ServiceWorkerManager.h"
- #include "mozilla/dom/workers/WorkerDebuggerManager.h"
- #include "mozilla/dom/Notification.h"
- #include "mozilla/OSFileConstants.h"
- #include "mozilla/Services.h"
- #ifdef MOZ_WEBSPEECH
- #include "mozilla/dom/nsSynthVoiceRegistry.h"
- #endif
- #include "mozilla/dom/PushNotifier.h"
- using mozilla::dom::PushNotifier;
- #define PUSHNOTIFIER_CID \
- { 0x2fc2d3e3, 0x020f, 0x404e, { 0xb0, 0x6a, 0x6e, 0xcf, 0x3e, 0xa2, 0x33, 0x4a } }
- #include "AudioChannelAgent.h"
- using mozilla::dom::AudioChannelAgent;
- // Editor stuff
- #include "nsEditorCID.h"
- #include "mozilla/EditorController.h" //CID
- #include "mozilla/HTMLEditor.h"
- #include "nsTextServicesDocument.h"
- #include "nsTextServicesCID.h"
- #include "nsScriptSecurityManager.h"
- #include "nsPrincipal.h"
- #include "nsSystemPrincipal.h"
- #include "nsNullPrincipal.h"
- #include "nsNetCID.h"
- #include "nsParserUtils.h"
- #include "nsHTMLCanvasFrame.h"
- #include "nsIDOMWebGLRenderingContext.h"
- class nsIDocumentLoaderFactory;
- #define PRODUCT_NAME "Gecko"
- /* 0ddf4df8-4dbb-4133-8b79-9afb966514f5 */
- #define NS_PLUGINDOCLOADERFACTORY_CID \
- { 0x0ddf4df8, 0x4dbb, 0x4133, { 0x8b, 0x79, 0x9a, 0xfb, 0x96, 0x65, 0x14, 0xf5 } }
- #define NS_WINDOWCOMMANDTABLE_CID \
- { /* 0DE2FBFA-6B7F-11D7-BBBA-0003938A9D96 */ \
- 0x0DE2FBFA, 0x6B7F, 0x11D7, {0xBB, 0xBA, 0x00, 0x03, 0x93, 0x8A, 0x9D, 0x96} }
- #include "nsIBoxObject.h"
- #ifdef MOZ_XUL
- #include "inDOMView.h"
- #endif /* MOZ_XUL */
- #include "inDeepTreeWalker.h"
- #include "inCSSValueSearch.h"
- #include "inDOMUtils.h"
- #ifdef MOZ_XUL
- #include "nsIXULDocument.h"
- #include "nsIXULSortService.h"
- nsresult
- NS_NewXULContentBuilder(nsISupports* aOuter, REFNSIID aIID, void** aResult);
- nsresult
- NS_NewXULTreeBuilder(nsISupports* aOuter, REFNSIID aIID, void** aResult);
- #endif
- static void Shutdown();
- #include "nsGeolocation.h"
- #include "nsDeviceSensors.h"
- #include "mozilla/dom/nsContentSecurityManager.h"
- #include "mozilla/dom/nsCSPService.h"
- #include "mozilla/dom/nsCSPContext.h"
- #include "nsIPowerManagerService.h"
- #include "nsIMediaManager.h"
- #include "mozilla/dom/nsMixedContentBlocker.h"
- #include "AudioChannelService.h"
- #include "mozilla/net/WebSocketEventService.h"
- #include "mozilla/dom/power/PowerManagerService.h"
- #include "mozilla/dom/time/TimeService.h"
- #include "StreamingProtocolService.h"
- #include "MediaManager.h"
- #include "GMPService.h"
- #include "nsScriptError.h"
- #include "mozilla/TextInputProcessor.h"
- using namespace mozilla;
- using namespace mozilla::dom;
- using mozilla::dom::power::PowerManagerService;
- using mozilla::dom::quota::QuotaManagerService;
- using mozilla::dom::workers::ServiceWorkerManager;
- using mozilla::dom::workers::WorkerDebuggerManager;
- using mozilla::dom::UDPSocketChild;
- using mozilla::dom::time::TimeService;
- using mozilla::net::StreamingProtocolControllerService;
- using mozilla::gmp::GeckoMediaPluginService;
- #define NS_EDITORCOMMANDTABLE_CID \
- { 0x4f5e62b8, 0xd659, 0x4156, \
- { 0x84, 0xfc, 0x2f, 0x60, 0x99, 0x40, 0x03, 0x69 } }
- #define NS_EDITINGCOMMANDTABLE_CID \
- { 0xcb38a746, 0xbeb8, 0x43f3, \
- { 0x94, 0x29, 0x77, 0x96, 0xe1, 0xa9, 0x3f, 0xb4 } }
- #define NS_HAPTICFEEDBACK_CID \
- { 0x1f15dbc8, 0xbfaa, 0x45de, \
- { 0x8a, 0x46, 0x08, 0xe2, 0xe2, 0x63, 0x26, 0xb0 } }
- NS_GENERIC_FACTORY_CONSTRUCTOR(TextEditor)
- NS_GENERIC_FACTORY_CONSTRUCTOR(nsParserUtils)
- NS_GENERIC_FACTORY_CONSTRUCTOR(nsTextServicesDocument)
- NS_GENERIC_FACTORY_CONSTRUCTOR(HTMLEditor)
- // Transformiix
- /* 5d5d92cd-6bf8-11d9-bf4a-000a95dc234c */
- #define TRANSFORMIIX_NODESET_CID \
- { 0x5d5d92cd, 0x6bf8, 0x11d9, { 0xbf, 0x4a, 0x0, 0x0a, 0x95, 0xdc, 0x23, 0x4c } }
- #define TRANSFORMIIX_NODESET_CONTRACTID \
- "@mozilla.org/transformiix-nodeset;1"
- // Factory Constructor
- NS_GENERIC_FACTORY_CONSTRUCTOR(txMozillaXSLTProcessor)
- NS_GENERIC_FACTORY_CONSTRUCTOR(XPathEvaluator)
- NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(txNodeSetAdaptor, Init)
- NS_GENERIC_FACTORY_CONSTRUCTOR(nsDOMSerializer)
- NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(XMLHttpRequestMainThread, Init)
- NS_GENERIC_FACTORY_CONSTRUCTOR(FormData)
- NS_GENERIC_FACTORY_CONSTRUCTOR(nsHostObjectURI)
- NS_GENERIC_FACTORY_CONSTRUCTOR(DOMParser)
- NS_GENERIC_FACTORY_CONSTRUCTOR(Exception)
- NS_GENERIC_FACTORY_CONSTRUCTOR(DOMSessionStorageManager)
- NS_GENERIC_FACTORY_CONSTRUCTOR(DOMLocalStorageManager)
- NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(DOMRequestService,
- DOMRequestService::FactoryCreate)
- NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(QuotaManagerService,
- QuotaManagerService::FactoryCreate)
- NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(ServiceWorkerManager,
- ServiceWorkerManager::GetInstance)
- NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(WorkerDebuggerManager,
- WorkerDebuggerManager::GetInstance)
- #ifdef MOZ_WEBSPEECH
- NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsSynthVoiceRegistry,
- nsSynthVoiceRegistry::GetInstanceForService)
- #endif
- NS_GENERIC_FACTORY_CONSTRUCTOR(AudioChannelAgent)
- NS_GENERIC_FACTORY_CONSTRUCTOR(nsDeviceSensors)
- NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(ThirdPartyUtil, Init)
- NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsIPowerManagerService,
- PowerManagerService::GetInstance)
- NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsITimeService,
- TimeService::GetInstance)
- NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsIStreamingProtocolControllerService,
- StreamingProtocolControllerService::GetInstance)
- NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsIMediaManagerService,
- MediaManager::GetInstance)
- NS_GENERIC_FACTORY_CONSTRUCTOR(TextInputProcessor)
- NS_GENERIC_FACTORY_CONSTRUCTOR(PushNotifier)
- //-----------------------------------------------------------------------------
- static bool gInitialized = false;
- // Perform our one-time intialization for this module
- // static
- nsresult
- Initialize()
- {
- if (gInitialized) {
- NS_RUNTIMEABORT("Recursive layout module initialization");
- return NS_ERROR_FAILURE;
- }
- if (XRE_GetProcessType() == GeckoProcessType_GPU) {
- // We mark the layout module as being available in the GPU process so that
- // XPCOM's component manager initializes the power manager service, which
- // is needed for nsAppShell. However, we don't actually need anything in
- // the layout module itself.
- return NS_OK;
- }
- static_assert(sizeof(uintptr_t) == sizeof(void*),
- "Eeek! You'll need to adjust the size of uintptr_t to the "
- "size of a pointer on your platform.");
- gInitialized = true;
- nsresult rv;
- rv = xpcModuleCtor();
- if (NS_FAILED(rv))
- return rv;
- rv = nsLayoutStatics::Initialize();
- if (NS_FAILED(rv)) {
- Shutdown();
- return rv;
- }
- #ifdef DEBUG
- nsStyleContext::AssertStyleStructMaxDifferenceValid();
- #endif
- return NS_OK;
- }
- // Shutdown this module, releasing all of the module resources
- // static
- void
- Shutdown()
- {
- NS_PRECONDITION(gInitialized, "module not initialized");
- if (!gInitialized)
- return;
- gInitialized = false;
- nsLayoutStatics::Release();
- }
- #ifdef DEBUG
- nsresult NS_NewFrameUtil(nsIFrameUtil** aResult);
- nsresult NS_NewLayoutDebugger(nsILayoutDebugger** aResult);
- #endif
- nsresult NS_NewBoxObject(nsIBoxObject** aResult);
- #ifdef MOZ_XUL
- nsresult NS_NewListBoxObject(nsIBoxObject** aResult);
- nsresult NS_NewScrollBoxObject(nsIBoxObject** aResult);
- nsresult NS_NewMenuBoxObject(nsIBoxObject** aResult);
- nsresult NS_NewPopupBoxObject(nsIBoxObject** aResult);
- nsresult NS_NewContainerBoxObject(nsIBoxObject** aResult);
- nsresult NS_NewTreeBoxObject(nsIBoxObject** aResult);
- #endif
- nsresult NS_NewCanvasRenderingContextWebGL(nsIDOMWebGLRenderingContext** aResult);
- nsresult NS_CreateFrameTraversal(nsIFrameTraversal** aResult);
- nsresult NS_NewDomSelection(nsISelection** aResult);
- already_AddRefed<nsIContentViewer> NS_NewContentViewer();
- nsresult NS_NewGenRegularIterator(nsIContentIterator** aResult);
- nsresult NS_NewGenSubtreeIterator(nsIContentIterator** aInstancePtrResult);
- nsresult NS_NewContentDocumentLoaderFactory(nsIDocumentLoaderFactory** aResult);
- nsresult NS_NewHTMLCopyTextEncoder(nsIDocumentEncoder** aResult);
- nsresult NS_NewTextEncoder(nsIDocumentEncoder** aResult);
- nsresult NS_NewContentPolicy(nsIContentPolicy** aResult);
- nsresult NS_NewEventListenerService(nsIEventListenerService** aResult);
- nsresult NS_NewGlobalMessageManager(nsIMessageBroadcaster** aResult);
- nsresult NS_NewParentProcessMessageManager(nsIMessageBroadcaster** aResult);
- nsresult NS_NewChildProcessMessageManager(nsISyncMessageSender** aResult);
- nsresult NS_NewXULControllers(nsISupports* aOuter, REFNSIID aIID, void** aResult);
- #define MAKE_CTOR(ctor_, iface_, func_) \
- static nsresult \
- ctor_(nsISupports* aOuter, REFNSIID aIID, void** aResult) \
- { \
- *aResult = nullptr; \
- if (aOuter) \
- return NS_ERROR_NO_AGGREGATION; \
- iface_* inst; \
- nsresult rv = func_(&inst); \
- if (NS_SUCCEEDED(rv)) { \
- rv = inst->QueryInterface(aIID, aResult); \
- NS_RELEASE(inst); \
- } \
- return rv; \
- }
- // As above, but expects
- // already_AddRefed<nsIFoo> NS_NewFoo();
- // instead of
- // nsresult NS_NewFoo(nsIFoo**);
- #define MAKE_CTOR2(ctor_, iface_, func_) \
- static nsresult \
- ctor_(nsISupports* aOuter, REFNSIID aIID, void** aResult) \
- { \
- *aResult = nullptr; \
- if (aOuter) { \
- return NS_ERROR_NO_AGGREGATION; \
- } \
- nsCOMPtr<iface_> inst = func_(); \
- inst.forget(aResult); \
- return NS_OK; \
- }
- #ifdef DEBUG
- MAKE_CTOR(CreateNewFrameUtil, nsIFrameUtil, NS_NewFrameUtil)
- MAKE_CTOR(CreateNewLayoutDebugger, nsILayoutDebugger, NS_NewLayoutDebugger)
- #endif
- MAKE_CTOR(CreateNewFrameTraversal, nsIFrameTraversal, NS_CreateFrameTraversal)
- MAKE_CTOR(CreateNewBoxObject, nsIBoxObject, NS_NewBoxObject)
- #ifdef MOZ_XUL
- MAKE_CTOR(CreateNewListBoxObject, nsIBoxObject, NS_NewListBoxObject)
- MAKE_CTOR(CreateNewMenuBoxObject, nsIBoxObject, NS_NewMenuBoxObject)
- MAKE_CTOR(CreateNewPopupBoxObject, nsIBoxObject, NS_NewPopupBoxObject)
- MAKE_CTOR(CreateNewScrollBoxObject, nsIBoxObject, NS_NewScrollBoxObject)
- MAKE_CTOR(CreateNewTreeBoxObject, nsIBoxObject, NS_NewTreeBoxObject)
- MAKE_CTOR(CreateNewContainerBoxObject, nsIBoxObject, NS_NewContainerBoxObject)
- #endif // MOZ_XUL
- #ifdef MOZ_XUL
- NS_GENERIC_FACTORY_CONSTRUCTOR(inDOMView)
- #endif
- NS_GENERIC_FACTORY_CONSTRUCTOR(inDeepTreeWalker)
- NS_GENERIC_FACTORY_CONSTRUCTOR(inCSSValueSearch)
- NS_GENERIC_FACTORY_CONSTRUCTOR(inDOMUtils)
- MAKE_CTOR2(CreateContentViewer, nsIContentViewer, NS_NewContentViewer)
- MAKE_CTOR(CreateHTMLDocument, nsIDocument, NS_NewHTMLDocument)
- MAKE_CTOR(CreateXMLDocument, nsIDocument, NS_NewXMLDocument)
- MAKE_CTOR(CreateSVGDocument, nsIDocument, NS_NewSVGDocument)
- MAKE_CTOR(CreateImageDocument, nsIDocument, NS_NewImageDocument)
- MAKE_CTOR(CreateDOMSelection, nsISelection, NS_NewDomSelection)
- MAKE_CTOR2(CreateContentIterator, nsIContentIterator, NS_NewContentIterator)
- MAKE_CTOR2(CreatePreContentIterator, nsIContentIterator, NS_NewPreContentIterator)
- MAKE_CTOR2(CreateSubtreeIterator, nsIContentIterator, NS_NewContentSubtreeIterator)
- MAKE_CTOR(CreateTextEncoder, nsIDocumentEncoder, NS_NewTextEncoder)
- MAKE_CTOR(CreateHTMLCopyTextEncoder, nsIDocumentEncoder, NS_NewHTMLCopyTextEncoder)
- MAKE_CTOR(CreateXMLContentSerializer, nsIContentSerializer, NS_NewXMLContentSerializer)
- MAKE_CTOR(CreateHTMLContentSerializer, nsIContentSerializer, NS_NewHTMLContentSerializer)
- MAKE_CTOR(CreateXHTMLContentSerializer, nsIContentSerializer, NS_NewXHTMLContentSerializer)
- MAKE_CTOR(CreatePlainTextSerializer, nsIContentSerializer, NS_NewPlainTextSerializer)
- MAKE_CTOR(CreateContentPolicy, nsIContentPolicy, NS_NewContentPolicy)
- #ifdef MOZ_XUL
- MAKE_CTOR(CreateXULSortService, nsIXULSortService, NS_NewXULSortService)
- // NS_NewXULContentBuilder
- // NS_NewXULTreeBuilder
- MAKE_CTOR(CreateXULDocument, nsIXULDocument, NS_NewXULDocument)
- // NS_NewXULControllers
- #endif
- MAKE_CTOR(CreateContentDLF, nsIDocumentLoaderFactory, NS_NewContentDocumentLoaderFactory)
- MAKE_CTOR(CreateEventListenerService, nsIEventListenerService, NS_NewEventListenerService)
- MAKE_CTOR(CreateGlobalMessageManager, nsIMessageBroadcaster, NS_NewGlobalMessageManager)
- MAKE_CTOR(CreateParentMessageManager, nsIMessageBroadcaster, NS_NewParentProcessMessageManager)
- MAKE_CTOR(CreateChildMessageManager, nsISyncMessageSender, NS_NewChildProcessMessageManager)
- NS_GENERIC_FACTORY_CONSTRUCTOR(nsDataDocumentContentPolicy)
- NS_GENERIC_FACTORY_CONSTRUCTOR(nsNoDataProtocolContentPolicy)
- MAKE_CTOR(CreatePluginDocument, nsIDocument, NS_NewPluginDocument)
- MAKE_CTOR(CreateVideoDocument, nsIDocument, NS_NewVideoDocument)
- MAKE_CTOR(CreateFocusManager, nsIFocusManager, NS_NewFocusManager)
- MAKE_CTOR(CreateCanvasRenderingContextWebGL, nsIDOMWebGLRenderingContext, NS_NewCanvasRenderingContextWebGL)
- NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsStyleSheetService, Init)
- NS_GENERIC_FACTORY_CONSTRUCTOR(nsJSURI)
- // views are not refcounted, so this is the same as
- // NS_GENERIC_FACTORY_CONSTRUCTOR without the NS_ADDREF/NS_RELEASE
- #define NS_GENERIC_FACTORY_CONSTRUCTOR_NOREFS(_InstanceClass) \
- static nsresult \
- _InstanceClass##Constructor(nsISupports *aOuter, REFNSIID aIID, \
- void **aResult) \
- { \
- nsresult rv; \
- \
- *aResult = nullptr; \
- if (nullptr != aOuter) { \
- rv = NS_ERROR_NO_AGGREGATION; \
- return rv; \
- } \
- \
- _InstanceClass * inst = new _InstanceClass(); \
- if (nullptr == inst) { \
- rv = NS_ERROR_OUT_OF_MEMORY; \
- return rv; \
- } \
- rv = inst->QueryInterface(aIID, aResult); \
- \
- return rv; \
- } \
- #define NS_GEOLOCATION_CID \
- { 0x1E1C3FF, 0x94A, 0xD048, { 0x44, 0xB4, 0x62, 0xD2, 0x9C, 0x7B, 0x4F, 0x39 } }
- NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(Geolocation, Init)
- #define NS_GEOLOCATION_SERVICE_CID \
- { 0x404d02a, 0x1CA, 0xAAAB, { 0x47, 0x62, 0x94, 0x4b, 0x1b, 0xf2, 0xf7, 0xb5 } }
- #define NS_AUDIOCHANNEL_SERVICE_CID \
- { 0xf712e983, 0x048a, 0x443f, { 0x88, 0x02, 0xfc, 0xc3, 0xd9, 0x27, 0xce, 0xac }}
- #define NS_WEBSOCKETEVENT_SERVICE_CID \
- { 0x31689828, 0xda66, 0x49a6, { 0x87, 0x0c, 0xdf, 0x62, 0xb8, 0x3f, 0xe7, 0x89 }}
- NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsGeolocationService, nsGeolocationService::GetGeolocationService)
- NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(AudioChannelService, AudioChannelService::GetOrCreate)
- NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(WebSocketEventService, WebSocketEventService::GetOrCreate)
- NS_GENERIC_FACTORY_CONSTRUCTOR(nsContentSecurityManager)
- NS_GENERIC_FACTORY_CONSTRUCTOR(nsCSPContext)
- NS_GENERIC_FACTORY_CONSTRUCTOR(CSPService)
- NS_GENERIC_FACTORY_CONSTRUCTOR(nsMixedContentBlocker)
- NS_GENERIC_FACTORY_CONSTRUCTOR(nsPrincipal)
- NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsSystemPrincipal,
- nsScriptSecurityManager::SystemPrincipalSingletonConstructor)
- NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsNullPrincipal, Init)
- NS_GENERIC_FACTORY_CONSTRUCTOR(nsStructuredCloneContainer)
- NS_GENERIC_FACTORY_CONSTRUCTOR(OSFileConstantsService)
- NS_GENERIC_FACTORY_CONSTRUCTOR(UDPSocketChild)
- NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(GeckoMediaPluginService, GeckoMediaPluginService::GetGeckoMediaPluginService)
- NS_GENERIC_FACTORY_CONSTRUCTOR(nsScriptError)
- #ifdef ACCESSIBILITY
- #include "xpcAccessibilityService.h"
- MAKE_CTOR(CreateA11yService, nsIAccessibilityService, NS_GetAccessibilityService)
- #endif
- static nsresult
- Construct_nsIScriptSecurityManager(nsISupports *aOuter, REFNSIID aIID,
- void **aResult)
- {
- if (!aResult)
- return NS_ERROR_NULL_POINTER;
- *aResult = nullptr;
- if (aOuter)
- return NS_ERROR_NO_AGGREGATION;
- nsScriptSecurityManager *obj = nsScriptSecurityManager::GetScriptSecurityManager();
- if (!obj)
- return NS_ERROR_OUT_OF_MEMORY;
- if (NS_FAILED(obj->QueryInterface(aIID, aResult)))
- return NS_ERROR_FAILURE;
- return NS_OK;
- }
- #ifdef DEBUG
- NS_DEFINE_NAMED_CID(NS_FRAME_UTIL_CID);
- NS_DEFINE_NAMED_CID(NS_LAYOUT_DEBUGGER_CID);
- #endif
- NS_DEFINE_NAMED_CID(NS_FRAMETRAVERSAL_CID);
- NS_DEFINE_NAMED_CID(NS_BOXOBJECT_CID);
- #ifdef MOZ_XUL
- NS_DEFINE_NAMED_CID(NS_LISTBOXOBJECT_CID);
- NS_DEFINE_NAMED_CID(NS_MENUBOXOBJECT_CID);
- NS_DEFINE_NAMED_CID(NS_POPUPBOXOBJECT_CID);
- NS_DEFINE_NAMED_CID(NS_CONTAINERBOXOBJECT_CID);
- NS_DEFINE_NAMED_CID(NS_SCROLLBOXOBJECT_CID);
- NS_DEFINE_NAMED_CID(NS_TREEBOXOBJECT_CID);
- #endif // MOZ_XUL
- #ifdef MOZ_XUL
- NS_DEFINE_NAMED_CID(IN_DOMVIEW_CID);
- #endif
- NS_DEFINE_NAMED_CID(IN_DEEPTREEWALKER_CID);
- NS_DEFINE_NAMED_CID(IN_CSSVALUESEARCH_CID);
- NS_DEFINE_NAMED_CID(IN_DOMUTILS_CID);
- NS_DEFINE_NAMED_CID(NS_CONTENT_VIEWER_CID);
- NS_DEFINE_NAMED_CID(NS_HTMLDOCUMENT_CID);
- NS_DEFINE_NAMED_CID(NS_XMLDOCUMENT_CID);
- NS_DEFINE_NAMED_CID(NS_SVGDOCUMENT_CID);
- NS_DEFINE_NAMED_CID(NS_IMAGEDOCUMENT_CID);
- NS_DEFINE_NAMED_CID(NS_DOMSELECTION_CID);
- NS_DEFINE_NAMED_CID(NS_CONTENTITERATOR_CID);
- NS_DEFINE_NAMED_CID(NS_PRECONTENTITERATOR_CID);
- NS_DEFINE_NAMED_CID(NS_SUBTREEITERATOR_CID);
- NS_DEFINE_NAMED_CID(NS_CANVASRENDERINGCONTEXTWEBGL_CID);
- NS_DEFINE_NAMED_CID(NS_TEXT_ENCODER_CID);
- NS_DEFINE_NAMED_CID(NS_HTMLCOPY_TEXT_ENCODER_CID);
- NS_DEFINE_NAMED_CID(NS_XMLCONTENTSERIALIZER_CID);
- NS_DEFINE_NAMED_CID(NS_XHTMLCONTENTSERIALIZER_CID);
- NS_DEFINE_NAMED_CID(NS_HTMLCONTENTSERIALIZER_CID);
- NS_DEFINE_NAMED_CID(NS_PLAINTEXTSERIALIZER_CID);
- NS_DEFINE_NAMED_CID(NS_PARSERUTILS_CID);
- NS_DEFINE_NAMED_CID(NS_SCRIPTABLEUNESCAPEHTML_CID);
- NS_DEFINE_NAMED_CID(NS_CONTENTPOLICY_CID);
- NS_DEFINE_NAMED_CID(NS_DATADOCUMENTCONTENTPOLICY_CID);
- NS_DEFINE_NAMED_CID(NS_NODATAPROTOCOLCONTENTPOLICY_CID);
- NS_DEFINE_NAMED_CID(NS_XULCONTROLLERS_CID);
- #ifdef MOZ_XUL
- NS_DEFINE_NAMED_CID(NS_XULSORTSERVICE_CID);
- NS_DEFINE_NAMED_CID(NS_XULTEMPLATEBUILDER_CID);
- NS_DEFINE_NAMED_CID(NS_XULTREEBUILDER_CID);
- NS_DEFINE_NAMED_CID(NS_XULDOCUMENT_CID);
- #endif
- NS_DEFINE_NAMED_CID(NS_CONTENT_DOCUMENT_LOADER_FACTORY_CID);
- NS_DEFINE_NAMED_CID(NS_JSPROTOCOLHANDLER_CID);
- NS_DEFINE_NAMED_CID(NS_JSURI_CID);
- NS_DEFINE_NAMED_CID(NS_WINDOWCOMMANDTABLE_CID);
- NS_DEFINE_NAMED_CID(NS_WINDOWCONTROLLER_CID);
- NS_DEFINE_NAMED_CID(NS_PLUGINDOCLOADERFACTORY_CID);
- NS_DEFINE_NAMED_CID(NS_PLUGINDOCUMENT_CID);
- NS_DEFINE_NAMED_CID(NS_VIDEODOCUMENT_CID);
- NS_DEFINE_NAMED_CID(NS_STYLESHEETSERVICE_CID);
- NS_DEFINE_NAMED_CID(TRANSFORMIIX_XSLT_PROCESSOR_CID);
- NS_DEFINE_NAMED_CID(TRANSFORMIIX_XPATH_EVALUATOR_CID);
- NS_DEFINE_NAMED_CID(TRANSFORMIIX_NODESET_CID);
- NS_DEFINE_NAMED_CID(NS_XMLSERIALIZER_CID);
- NS_DEFINE_NAMED_CID(NS_FORMDATA_CID);
- NS_DEFINE_NAMED_CID(NS_HOSTOBJECTURI_CID);
- NS_DEFINE_NAMED_CID(NS_XMLHTTPREQUEST_CID);
- NS_DEFINE_NAMED_CID(NS_DOMPARSER_CID);
- NS_DEFINE_NAMED_CID(NS_DOMSESSIONSTORAGEMANAGER_CID);
- NS_DEFINE_NAMED_CID(NS_DOMLOCALSTORAGEMANAGER_CID);
- NS_DEFINE_NAMED_CID(NS_DOMJSON_CID);
- NS_DEFINE_NAMED_CID(NS_TEXTEDITOR_CID);
- NS_DEFINE_NAMED_CID(DOMREQUEST_SERVICE_CID);
- NS_DEFINE_NAMED_CID(QUOTAMANAGER_SERVICE_CID);
- NS_DEFINE_NAMED_CID(SERVICEWORKERMANAGER_CID);
- NS_DEFINE_NAMED_CID(PUSHNOTIFIER_CID);
- NS_DEFINE_NAMED_CID(WORKERDEBUGGERMANAGER_CID);
- NS_DEFINE_NAMED_CID(NS_AUDIOCHANNELAGENT_CID);
- NS_DEFINE_NAMED_CID(NS_HTMLEDITOR_CID);
- NS_DEFINE_NAMED_CID(NS_EDITORCONTROLLER_CID);
- NS_DEFINE_NAMED_CID(NS_EDITINGCONTROLLER_CID);
- NS_DEFINE_NAMED_CID(NS_EDITORCOMMANDTABLE_CID);
- NS_DEFINE_NAMED_CID(NS_EDITINGCOMMANDTABLE_CID);
- NS_DEFINE_NAMED_CID(NS_TEXTSERVICESDOCUMENT_CID);
- NS_DEFINE_NAMED_CID(NS_GEOLOCATION_SERVICE_CID);
- NS_DEFINE_NAMED_CID(NS_GEOLOCATION_CID);
- NS_DEFINE_NAMED_CID(NS_AUDIOCHANNEL_SERVICE_CID);
- NS_DEFINE_NAMED_CID(NS_WEBSOCKETEVENT_SERVICE_CID);
- NS_DEFINE_NAMED_CID(NS_FOCUSMANAGER_CID);
- NS_DEFINE_NAMED_CID(NS_CONTENTSECURITYMANAGER_CID);
- NS_DEFINE_NAMED_CID(CSPSERVICE_CID);
- NS_DEFINE_NAMED_CID(NS_CSPCONTEXT_CID);
- NS_DEFINE_NAMED_CID(NS_MIXEDCONTENTBLOCKER_CID);
- NS_DEFINE_NAMED_CID(NS_EVENTLISTENERSERVICE_CID);
- NS_DEFINE_NAMED_CID(NS_GLOBALMESSAGEMANAGER_CID);
- NS_DEFINE_NAMED_CID(NS_PARENTPROCESSMESSAGEMANAGER_CID);
- NS_DEFINE_NAMED_CID(NS_CHILDPROCESSMESSAGEMANAGER_CID);
- NS_DEFINE_NAMED_CID(NS_SCRIPTSECURITYMANAGER_CID);
- NS_DEFINE_NAMED_CID(NS_PRINCIPAL_CID);
- NS_DEFINE_NAMED_CID(NS_SYSTEMPRINCIPAL_CID);
- NS_DEFINE_NAMED_CID(NS_NULLPRINCIPAL_CID);
- NS_DEFINE_NAMED_CID(THIRDPARTYUTIL_CID);
- NS_DEFINE_NAMED_CID(NS_STRUCTUREDCLONECONTAINER_CID);
- NS_DEFINE_NAMED_CID(NS_DEVICE_SENSORS_CID);
- NS_DEFINE_NAMED_CID(NS_POWERMANAGERSERVICE_CID);
- NS_DEFINE_NAMED_CID(OSFILECONSTANTSSERVICE_CID);
- NS_DEFINE_NAMED_CID(UDPSOCKETCHILD_CID);
- NS_DEFINE_NAMED_CID(NS_TIMESERVICE_CID);
- NS_DEFINE_NAMED_CID(NS_MEDIASTREAMCONTROLLERSERVICE_CID);
- NS_DEFINE_NAMED_CID(NS_MEDIAMANAGERSERVICE_CID);
- #ifdef MOZ_WEBSPEECH
- NS_DEFINE_NAMED_CID(NS_SYNTHVOICEREGISTRY_CID);
- #endif
- #ifdef ACCESSIBILITY
- NS_DEFINE_NAMED_CID(NS_ACCESSIBILITY_SERVICE_CID);
- #endif
- NS_DEFINE_NAMED_CID(GECKO_MEDIA_PLUGIN_SERVICE_CID);
- NS_DEFINE_NAMED_CID(TEXT_INPUT_PROCESSOR_CID);
- NS_DEFINE_NAMED_CID(NS_SCRIPTERROR_CID);
- static nsresult
- CreateWindowCommandTableConstructor(nsISupports *aOuter,
- REFNSIID aIID, void **aResult)
- {
- nsresult rv;
- nsCOMPtr<nsIControllerCommandTable> commandTable =
- do_CreateInstance(NS_CONTROLLERCOMMANDTABLE_CONTRACTID, &rv);
- if (NS_FAILED(rv)) return rv;
- rv = nsWindowCommandRegistration::RegisterWindowCommands(commandTable);
- if (NS_FAILED(rv)) return rv;
- return commandTable->QueryInterface(aIID, aResult);
- }
- static nsresult
- CreateWindowControllerWithSingletonCommandTable(nsISupports *aOuter,
- REFNSIID aIID, void **aResult)
- {
- nsresult rv;
- nsCOMPtr<nsIController> controller =
- do_CreateInstance("@mozilla.org/embedcomp/base-command-controller;1", &rv);
- if (NS_FAILED(rv)) return rv;
- nsCOMPtr<nsIControllerCommandTable> windowCommandTable = do_GetService(kNS_WINDOWCOMMANDTABLE_CID, &rv);
- if (NS_FAILED(rv)) return rv;
- // this is a singleton; make it immutable
- windowCommandTable->MakeImmutable();
- nsCOMPtr<nsIControllerContext> controllerContext = do_QueryInterface(controller, &rv);
- if (NS_FAILED(rv)) return rv;
- controllerContext->Init(windowCommandTable);
- if (NS_FAILED(rv)) return rv;
- return controller->QueryInterface(aIID, aResult);
- }
- // Constructor of a controller which is set up to use, internally, a
- // singleton command-table pre-filled with editor commands.
- static nsresult
- EditorControllerConstructor(nsISupports* aOuter, REFNSIID aIID, void** aResult)
- {
- nsresult rv;
- nsCOMPtr<nsIController> controller = do_CreateInstance("@mozilla.org/embedcomp/base-command-controller;1", &rv);
- if (NS_FAILED(rv)) return rv;
- nsCOMPtr<nsIControllerCommandTable> editorCommandTable = do_GetService(kNS_EDITORCOMMANDTABLE_CID, &rv);
- if (NS_FAILED(rv)) return rv;
- // this guy is a singleton, so make it immutable
- editorCommandTable->MakeImmutable();
- nsCOMPtr<nsIControllerContext> controllerContext = do_QueryInterface(controller, &rv);
- if (NS_FAILED(rv)) return rv;
- rv = controllerContext->Init(editorCommandTable);
- if (NS_FAILED(rv)) return rv;
- return controller->QueryInterface(aIID, aResult);
- }
- // Constructor of a controller which is set up to use, internally, a
- // singleton command-table pre-filled with editing commands.
- static nsresult
- nsEditingControllerConstructor(nsISupports *aOuter, REFNSIID aIID,
- void **aResult)
- {
- nsresult rv;
- nsCOMPtr<nsIController> controller = do_CreateInstance("@mozilla.org/embedcomp/base-command-controller;1", &rv);
- if (NS_FAILED(rv)) return rv;
- nsCOMPtr<nsIControllerCommandTable> editingCommandTable = do_GetService(kNS_EDITINGCOMMANDTABLE_CID, &rv);
- if (NS_FAILED(rv)) return rv;
- // this guy is a singleton, so make it immutable
- editingCommandTable->MakeImmutable();
- nsCOMPtr<nsIControllerContext> controllerContext = do_QueryInterface(controller, &rv);
- if (NS_FAILED(rv)) return rv;
- rv = controllerContext->Init(editingCommandTable);
- if (NS_FAILED(rv)) return rv;
- return controller->QueryInterface(aIID, aResult);
- }
- // Constructor for a command-table pre-filled with editor commands
- static nsresult
- nsEditorCommandTableConstructor(nsISupports *aOuter, REFNSIID aIID,
- void **aResult)
- {
- nsresult rv;
- nsCOMPtr<nsIControllerCommandTable> commandTable =
- do_CreateInstance(NS_CONTROLLERCOMMANDTABLE_CONTRACTID, &rv);
- if (NS_FAILED(rv)) return rv;
- rv = EditorController::RegisterEditorCommands(commandTable);
- if (NS_FAILED(rv)) return rv;
- // we don't know here whether we're being created as an instance,
- // or a service, so we can't become immutable
- return commandTable->QueryInterface(aIID, aResult);
- }
- // Constructor for a command-table pre-filled with editing commands
- static nsresult
- nsEditingCommandTableConstructor(nsISupports *aOuter, REFNSIID aIID,
- void **aResult)
- {
- nsresult rv;
- nsCOMPtr<nsIControllerCommandTable> commandTable =
- do_CreateInstance(NS_CONTROLLERCOMMANDTABLE_CONTRACTID, &rv);
- if (NS_FAILED(rv)) return rv;
- rv = EditorController::RegisterEditingCommands(commandTable);
- if (NS_FAILED(rv)) return rv;
- // we don't know here whether we're being created as an instance,
- // or a service, so we can't become immutable
- return commandTable->QueryInterface(aIID, aResult);
- }
- static const mozilla::Module::CIDEntry kLayoutCIDs[] = {
- XPCONNECT_CIDENTRIES
- #ifdef DEBUG
- { &kNS_FRAME_UTIL_CID, false, nullptr, CreateNewFrameUtil },
- { &kNS_LAYOUT_DEBUGGER_CID, false, nullptr, CreateNewLayoutDebugger },
- #endif
- { &kNS_FRAMETRAVERSAL_CID, false, nullptr, CreateNewFrameTraversal },
- { &kNS_BOXOBJECT_CID, false, nullptr, CreateNewBoxObject },
- #ifdef MOZ_XUL
- { &kNS_LISTBOXOBJECT_CID, false, nullptr, CreateNewListBoxObject },
- { &kNS_MENUBOXOBJECT_CID, false, nullptr, CreateNewMenuBoxObject },
- { &kNS_POPUPBOXOBJECT_CID, false, nullptr, CreateNewPopupBoxObject },
- { &kNS_CONTAINERBOXOBJECT_CID, false, nullptr, CreateNewContainerBoxObject },
- { &kNS_SCROLLBOXOBJECT_CID, false, nullptr, CreateNewScrollBoxObject },
- { &kNS_TREEBOXOBJECT_CID, false, nullptr, CreateNewTreeBoxObject },
- #endif // MOZ_XUL
- #ifdef MOZ_XUL
- { &kIN_DOMVIEW_CID, false, nullptr, inDOMViewConstructor },
- #endif
- { &kIN_DEEPTREEWALKER_CID, false, nullptr, inDeepTreeWalkerConstructor },
- { &kIN_CSSVALUESEARCH_CID, false, nullptr, inCSSValueSearchConstructor },
- { &kIN_DOMUTILS_CID, false, nullptr, inDOMUtilsConstructor },
- { &kNS_CONTENT_VIEWER_CID, false, nullptr, CreateContentViewer },
- { &kNS_HTMLDOCUMENT_CID, false, nullptr, CreateHTMLDocument },
- { &kNS_XMLDOCUMENT_CID, false, nullptr, CreateXMLDocument },
- { &kNS_SVGDOCUMENT_CID, false, nullptr, CreateSVGDocument },
- { &kNS_IMAGEDOCUMENT_CID, false, nullptr, CreateImageDocument },
- { &kNS_DOMSELECTION_CID, false, nullptr, CreateDOMSelection },
- { &kNS_CONTENTITERATOR_CID, false, nullptr, CreateContentIterator },
- { &kNS_PRECONTENTITERATOR_CID, false, nullptr, CreatePreContentIterator },
- { &kNS_SUBTREEITERATOR_CID, false, nullptr, CreateSubtreeIterator },
- { &kNS_CANVASRENDERINGCONTEXTWEBGL_CID, false, nullptr, CreateCanvasRenderingContextWebGL },
- { &kNS_TEXT_ENCODER_CID, false, nullptr, CreateTextEncoder },
- { &kNS_HTMLCOPY_TEXT_ENCODER_CID, false, nullptr, CreateHTMLCopyTextEncoder },
- { &kNS_XMLCONTENTSERIALIZER_CID, false, nullptr, CreateXMLContentSerializer },
- { &kNS_HTMLCONTENTSERIALIZER_CID, false, nullptr, CreateHTMLContentSerializer },
- { &kNS_XHTMLCONTENTSERIALIZER_CID, false, nullptr, CreateXHTMLContentSerializer },
- { &kNS_PLAINTEXTSERIALIZER_CID, false, nullptr, CreatePlainTextSerializer },
- { &kNS_PARSERUTILS_CID, false, nullptr, nsParserUtilsConstructor },
- { &kNS_SCRIPTABLEUNESCAPEHTML_CID, false, nullptr, nsParserUtilsConstructor },
- { &kNS_CONTENTPOLICY_CID, false, nullptr, CreateContentPolicy },
- { &kNS_DATADOCUMENTCONTENTPOLICY_CID, false, nullptr, nsDataDocumentContentPolicyConstructor },
- { &kNS_NODATAPROTOCOLCONTENTPOLICY_CID, false, nullptr, nsNoDataProtocolContentPolicyConstructor },
- { &kNS_XULCONTROLLERS_CID, false, nullptr, NS_NewXULControllers },
- #ifdef MOZ_XUL
- { &kNS_XULSORTSERVICE_CID, false, nullptr, CreateXULSortService },
- { &kNS_XULTEMPLATEBUILDER_CID, false, nullptr, NS_NewXULContentBuilder },
- { &kNS_XULTREEBUILDER_CID, false, nullptr, NS_NewXULTreeBuilder },
- { &kNS_XULDOCUMENT_CID, false, nullptr, CreateXULDocument },
- #endif
- { &kNS_CONTENT_DOCUMENT_LOADER_FACTORY_CID, false, nullptr, CreateContentDLF },
- { &kNS_JSPROTOCOLHANDLER_CID, false, nullptr, nsJSProtocolHandler::Create },
- { &kNS_JSURI_CID, false, nullptr, nsJSURIConstructor },
- { &kNS_WINDOWCOMMANDTABLE_CID, false, nullptr, CreateWindowCommandTableConstructor },
- { &kNS_WINDOWCONTROLLER_CID, false, nullptr, CreateWindowControllerWithSingletonCommandTable },
- { &kNS_PLUGINDOCLOADERFACTORY_CID, false, nullptr, CreateContentDLF },
- { &kNS_PLUGINDOCUMENT_CID, false, nullptr, CreatePluginDocument },
- { &kNS_VIDEODOCUMENT_CID, false, nullptr, CreateVideoDocument },
- { &kNS_STYLESHEETSERVICE_CID, false, nullptr, nsStyleSheetServiceConstructor },
- { &kTRANSFORMIIX_XSLT_PROCESSOR_CID, false, nullptr, txMozillaXSLTProcessorConstructor },
- { &kTRANSFORMIIX_XPATH_EVALUATOR_CID, false, nullptr, XPathEvaluatorConstructor },
- { &kTRANSFORMIIX_NODESET_CID, false, nullptr, txNodeSetAdaptorConstructor },
- { &kNS_XMLSERIALIZER_CID, false, nullptr, nsDOMSerializerConstructor },
- { &kNS_FORMDATA_CID, false, nullptr, FormDataConstructor },
- { &kNS_HOSTOBJECTURI_CID, false, nullptr, nsHostObjectURIConstructor },
- { &kNS_XMLHTTPREQUEST_CID, false, nullptr, XMLHttpRequestMainThreadConstructor },
- { &kNS_DOMPARSER_CID, false, nullptr, DOMParserConstructor },
- { &kNS_XPCEXCEPTION_CID, false, nullptr, ExceptionConstructor },
- { &kNS_DOMSESSIONSTORAGEMANAGER_CID, false, nullptr, DOMSessionStorageManagerConstructor },
- { &kNS_DOMLOCALSTORAGEMANAGER_CID, false, nullptr, DOMLocalStorageManagerConstructor },
- { &kNS_DOMJSON_CID, false, nullptr, NS_NewJSON },
- { &kNS_TEXTEDITOR_CID, false, nullptr, TextEditorConstructor },
- { &kDOMREQUEST_SERVICE_CID, false, nullptr, DOMRequestServiceConstructor },
- { &kQUOTAMANAGER_SERVICE_CID, false, nullptr, QuotaManagerServiceConstructor },
- { &kSERVICEWORKERMANAGER_CID, false, nullptr, ServiceWorkerManagerConstructor },
- { &kPUSHNOTIFIER_CID, false, nullptr, PushNotifierConstructor },
- { &kWORKERDEBUGGERMANAGER_CID, true, nullptr, WorkerDebuggerManagerConstructor },
- { &kNS_AUDIOCHANNELAGENT_CID, true, nullptr, AudioChannelAgentConstructor },
- { &kNS_HTMLEDITOR_CID, false, nullptr, HTMLEditorConstructor },
- { &kNS_EDITORCONTROLLER_CID, false, nullptr, EditorControllerConstructor },
- { &kNS_EDITINGCONTROLLER_CID, false, nullptr, nsEditingControllerConstructor },
- { &kNS_EDITORCOMMANDTABLE_CID, false, nullptr, nsEditorCommandTableConstructor },
- { &kNS_EDITINGCOMMANDTABLE_CID, false, nullptr, nsEditingCommandTableConstructor },
- { &kNS_TEXTSERVICESDOCUMENT_CID, false, nullptr, nsTextServicesDocumentConstructor },
- { &kNS_GEOLOCATION_SERVICE_CID, false, nullptr, nsGeolocationServiceConstructor },
- { &kNS_GEOLOCATION_CID, false, nullptr, GeolocationConstructor },
- { &kNS_AUDIOCHANNEL_SERVICE_CID, false, nullptr, AudioChannelServiceConstructor },
- { &kNS_WEBSOCKETEVENT_SERVICE_CID, false, nullptr, WebSocketEventServiceConstructor },
- { &kNS_FOCUSMANAGER_CID, false, nullptr, CreateFocusManager },
- #ifdef MOZ_WEBSPEECH
- { &kNS_SYNTHVOICEREGISTRY_CID, true, nullptr, nsSynthVoiceRegistryConstructor },
- #endif
- { &kNS_CONTENTSECURITYMANAGER_CID, false, nullptr, nsContentSecurityManagerConstructor },
- { &kCSPSERVICE_CID, false, nullptr, CSPServiceConstructor },
- { &kNS_CSPCONTEXT_CID, false, nullptr, nsCSPContextConstructor },
- { &kNS_MIXEDCONTENTBLOCKER_CID, false, nullptr, nsMixedContentBlockerConstructor },
- { &kNS_EVENTLISTENERSERVICE_CID, false, nullptr, CreateEventListenerService },
- { &kNS_GLOBALMESSAGEMANAGER_CID, false, nullptr, CreateGlobalMessageManager },
- { &kNS_PARENTPROCESSMESSAGEMANAGER_CID, false, nullptr, CreateParentMessageManager },
- { &kNS_CHILDPROCESSMESSAGEMANAGER_CID, false, nullptr, CreateChildMessageManager },
- { &kNS_SCRIPTSECURITYMANAGER_CID, false, nullptr, Construct_nsIScriptSecurityManager },
- { &kNS_PRINCIPAL_CID, false, nullptr, nsPrincipalConstructor },
- { &kNS_SYSTEMPRINCIPAL_CID, false, nullptr, nsSystemPrincipalConstructor },
- { &kNS_NULLPRINCIPAL_CID, false, nullptr, nsNullPrincipalConstructor },
- { &kNS_DEVICE_SENSORS_CID, false, nullptr, nsDeviceSensorsConstructor },
- { &kTHIRDPARTYUTIL_CID, false, nullptr, ThirdPartyUtilConstructor },
- { &kNS_STRUCTUREDCLONECONTAINER_CID, false, nullptr, nsStructuredCloneContainerConstructor },
- { &kNS_POWERMANAGERSERVICE_CID, false, nullptr, nsIPowerManagerServiceConstructor, Module::ALLOW_IN_GPU_PROCESS },
- { &kOSFILECONSTANTSSERVICE_CID, true, nullptr, OSFileConstantsServiceConstructor },
- { &kUDPSOCKETCHILD_CID, false, nullptr, UDPSocketChildConstructor },
- { &kGECKO_MEDIA_PLUGIN_SERVICE_CID, true, nullptr, GeckoMediaPluginServiceConstructor },
- { &kNS_TIMESERVICE_CID, false, nullptr, nsITimeServiceConstructor },
- { &kNS_MEDIASTREAMCONTROLLERSERVICE_CID, false, nullptr, nsIStreamingProtocolControllerServiceConstructor },
- { &kNS_MEDIAMANAGERSERVICE_CID, false, nullptr, nsIMediaManagerServiceConstructor },
- #ifdef ACCESSIBILITY
- { &kNS_ACCESSIBILITY_SERVICE_CID, false, nullptr, CreateA11yService },
- #endif
- { &kTEXT_INPUT_PROCESSOR_CID, false, nullptr, TextInputProcessorConstructor },
- { &kNS_SCRIPTERROR_CID, false, nullptr, nsScriptErrorConstructor },
- { nullptr }
- };
- static const mozilla::Module::ContractIDEntry kLayoutContracts[] = {
- XPCONNECT_CONTRACTS
- { "@mozilla.org/layout/xul-boxobject;1", &kNS_BOXOBJECT_CID },
- #ifdef MOZ_XUL
- { "@mozilla.org/layout/xul-boxobject-listbox;1", &kNS_LISTBOXOBJECT_CID },
- { "@mozilla.org/layout/xul-boxobject-menu;1", &kNS_MENUBOXOBJECT_CID },
- { "@mozilla.org/layout/xul-boxobject-popup;1", &kNS_POPUPBOXOBJECT_CID },
- { "@mozilla.org/layout/xul-boxobject-container;1", &kNS_CONTAINERBOXOBJECT_CID },
- { "@mozilla.org/layout/xul-boxobject-scrollbox;1", &kNS_SCROLLBOXOBJECT_CID },
- { "@mozilla.org/layout/xul-boxobject-tree;1", &kNS_TREEBOXOBJECT_CID },
- #endif // MOZ_XUL
- #ifdef MOZ_XUL
- { "@mozilla.org/inspector/dom-view;1", &kIN_DOMVIEW_CID },
- #endif
- { "@mozilla.org/inspector/deep-tree-walker;1", &kIN_DEEPTREEWALKER_CID },
- { "@mozilla.org/inspector/search;1?type=cssvalue", &kIN_CSSVALUESEARCH_CID },
- { IN_DOMUTILS_CONTRACTID, &kIN_DOMUTILS_CID },
- { "@mozilla.org/xml/xml-document;1", &kNS_XMLDOCUMENT_CID },
- { "@mozilla.org/svg/svg-document;1", &kNS_SVGDOCUMENT_CID },
- { "@mozilla.org/content/dom-selection;1", &kNS_DOMSELECTION_CID },
- { "@mozilla.org/content/post-content-iterator;1", &kNS_CONTENTITERATOR_CID },
- { "@mozilla.org/content/pre-content-iterator;1", &kNS_PRECONTENTITERATOR_CID },
- { "@mozilla.org/content/subtree-content-iterator;1", &kNS_SUBTREEITERATOR_CID },
- { "@mozilla.org/content/canvas-rendering-context;1?id=webgl", &kNS_CANVASRENDERINGCONTEXTWEBGL_CID },
- { NS_DOC_ENCODER_CONTRACTID_BASE "text/xml", &kNS_TEXT_ENCODER_CID },
- { NS_DOC_ENCODER_CONTRACTID_BASE "application/xml", &kNS_TEXT_ENCODER_CID },
- { NS_DOC_ENCODER_CONTRACTID_BASE "application/xhtml+xml", &kNS_TEXT_ENCODER_CID },
- { NS_DOC_ENCODER_CONTRACTID_BASE "image/svg+xml", &kNS_TEXT_ENCODER_CID },
- { NS_DOC_ENCODER_CONTRACTID_BASE "text/html", &kNS_TEXT_ENCODER_CID },
- { NS_DOC_ENCODER_CONTRACTID_BASE "text/plain", &kNS_TEXT_ENCODER_CID },
- { NS_HTMLCOPY_ENCODER_CONTRACTID, &kNS_HTMLCOPY_TEXT_ENCODER_CID },
- { NS_CONTENTSERIALIZER_CONTRACTID_PREFIX "text/xml", &kNS_XMLCONTENTSERIALIZER_CID },
- { NS_CONTENTSERIALIZER_CONTRACTID_PREFIX "application/xml", &kNS_XMLCONTENTSERIALIZER_CID },
- { NS_CONTENTSERIALIZER_CONTRACTID_PREFIX "application/xhtml+xml", &kNS_XHTMLCONTENTSERIALIZER_CID },
- { NS_CONTENTSERIALIZER_CONTRACTID_PREFIX "image/svg+xml", &kNS_XMLCONTENTSERIALIZER_CID },
- { NS_CONTENTSERIALIZER_CONTRACTID_PREFIX "text/html", &kNS_HTMLCONTENTSERIALIZER_CID },
- { NS_CONTENTSERIALIZER_CONTRACTID_PREFIX "application/vnd.mozilla.xul+xml", &kNS_XMLCONTENTSERIALIZER_CID },
- { NS_CONTENTSERIALIZER_CONTRACTID_PREFIX "text/plain", &kNS_PLAINTEXTSERIALIZER_CID },
- { NS_PARSERUTILS_CONTRACTID, &kNS_PARSERUTILS_CID },
- { NS_SCRIPTABLEUNESCAPEHTML_CONTRACTID, &kNS_SCRIPTABLEUNESCAPEHTML_CID },
- { NS_CONTENTPOLICY_CONTRACTID, &kNS_CONTENTPOLICY_CID },
- { NS_DATADOCUMENTCONTENTPOLICY_CONTRACTID, &kNS_DATADOCUMENTCONTENTPOLICY_CID },
- { NS_NODATAPROTOCOLCONTENTPOLICY_CONTRACTID, &kNS_NODATAPROTOCOLCONTENTPOLICY_CID },
- { "@mozilla.org/xul/xul-controllers;1", &kNS_XULCONTROLLERS_CID },
- #ifdef MOZ_XUL
- { "@mozilla.org/xul/xul-sort-service;1", &kNS_XULSORTSERVICE_CID },
- { "@mozilla.org/xul/xul-template-builder;1", &kNS_XULTEMPLATEBUILDER_CID },
- { "@mozilla.org/xul/xul-tree-builder;1", &kNS_XULTREEBUILDER_CID },
- { "@mozilla.org/xul/xul-document;1", &kNS_XULDOCUMENT_CID },
- #endif
- { CONTENT_DLF_CONTRACTID, &kNS_CONTENT_DOCUMENT_LOADER_FACTORY_CID },
- { NS_JSPROTOCOLHANDLER_CONTRACTID, &kNS_JSPROTOCOLHANDLER_CID },
- { NS_WINDOWCONTROLLER_CONTRACTID, &kNS_WINDOWCONTROLLER_CID },
- { PLUGIN_DLF_CONTRACTID, &kNS_PLUGINDOCLOADERFACTORY_CID },
- { NS_STYLESHEETSERVICE_CONTRACTID, &kNS_STYLESHEETSERVICE_CID },
- { TRANSFORMIIX_XSLT_PROCESSOR_CONTRACTID, &kTRANSFORMIIX_XSLT_PROCESSOR_CID },
- { NS_XPATH_EVALUATOR_CONTRACTID, &kTRANSFORMIIX_XPATH_EVALUATOR_CID },
- { TRANSFORMIIX_NODESET_CONTRACTID, &kTRANSFORMIIX_NODESET_CID },
- { NS_XMLSERIALIZER_CONTRACTID, &kNS_XMLSERIALIZER_CID },
- { NS_FORMDATA_CONTRACTID, &kNS_FORMDATA_CID },
- { NS_XMLHTTPREQUEST_CONTRACTID, &kNS_XMLHTTPREQUEST_CID },
- { NS_DOMPARSER_CONTRACTID, &kNS_DOMPARSER_CID },
- { XPC_EXCEPTION_CONTRACTID, &kNS_XPCEXCEPTION_CID },
- { "@mozilla.org/dom/localStorage-manager;1", &kNS_DOMLOCALSTORAGEMANAGER_CID },
- // Keeping the old ContractID for backward compatibility
- { "@mozilla.org/dom/storagemanager;1", &kNS_DOMLOCALSTORAGEMANAGER_CID },
- { "@mozilla.org/dom/sessionStorage-manager;1", &kNS_DOMSESSIONSTORAGEMANAGER_CID },
- { "@mozilla.org/dom/json;1", &kNS_DOMJSON_CID },
- { "@mozilla.org/editor/texteditor;1", &kNS_TEXTEDITOR_CID },
- { DOMREQUEST_SERVICE_CONTRACTID, &kDOMREQUEST_SERVICE_CID },
- { QUOTAMANAGER_SERVICE_CONTRACTID, &kQUOTAMANAGER_SERVICE_CID },
- { SERVICEWORKERMANAGER_CONTRACTID, &kSERVICEWORKERMANAGER_CID },
- { PUSHNOTIFIER_CONTRACTID, &kPUSHNOTIFIER_CID },
- { WORKERDEBUGGERMANAGER_CONTRACTID, &kWORKERDEBUGGERMANAGER_CID },
- { NS_AUDIOCHANNELAGENT_CONTRACTID, &kNS_AUDIOCHANNELAGENT_CID },
- { "@mozilla.org/editor/htmleditor;1", &kNS_HTMLEDITOR_CID },
- { "@mozilla.org/editor/editorcontroller;1", &kNS_EDITORCONTROLLER_CID },
- { "@mozilla.org/editor/editingcontroller;1", &kNS_EDITINGCONTROLLER_CID },
- { "@mozilla.org/textservices/textservicesdocument;1", &kNS_TEXTSERVICESDOCUMENT_CID },
- { "@mozilla.org/geolocation/service;1", &kNS_GEOLOCATION_SERVICE_CID },
- { "@mozilla.org/geolocation;1", &kNS_GEOLOCATION_CID },
- { "@mozilla.org/audiochannel/service;1", &kNS_AUDIOCHANNEL_SERVICE_CID },
- { "@mozilla.org/websocketevent/service;1", &kNS_WEBSOCKETEVENT_SERVICE_CID },
- { "@mozilla.org/focus-manager;1", &kNS_FOCUSMANAGER_CID },
- #ifdef MOZ_WEBSPEECH
- { NS_SYNTHVOICEREGISTRY_CONTRACTID, &kNS_SYNTHVOICEREGISTRY_CID },
- #endif
- { NS_CONTENTSECURITYMANAGER_CONTRACTID, &kNS_CONTENTSECURITYMANAGER_CID },
- { CSPSERVICE_CONTRACTID, &kCSPSERVICE_CID },
- { NS_CSPCONTEXT_CONTRACTID, &kNS_CSPCONTEXT_CID },
- { NS_MIXEDCONTENTBLOCKER_CONTRACTID, &kNS_MIXEDCONTENTBLOCKER_CID },
- { NS_EVENTLISTENERSERVICE_CONTRACTID, &kNS_EVENTLISTENERSERVICE_CID },
- { NS_GLOBALMESSAGEMANAGER_CONTRACTID, &kNS_GLOBALMESSAGEMANAGER_CID },
- { NS_PARENTPROCESSMESSAGEMANAGER_CONTRACTID, &kNS_PARENTPROCESSMESSAGEMANAGER_CID },
- { NS_CHILDPROCESSMESSAGEMANAGER_CONTRACTID, &kNS_CHILDPROCESSMESSAGEMANAGER_CID },
- { NS_SCRIPTSECURITYMANAGER_CONTRACTID, &kNS_SCRIPTSECURITYMANAGER_CID },
- { NS_PRINCIPAL_CONTRACTID, &kNS_PRINCIPAL_CID },
- { NS_SYSTEMPRINCIPAL_CONTRACTID, &kNS_SYSTEMPRINCIPAL_CID },
- { NS_NULLPRINCIPAL_CONTRACTID, &kNS_NULLPRINCIPAL_CID },
- { NS_DEVICE_SENSORS_CONTRACTID, &kNS_DEVICE_SENSORS_CID },
- { THIRDPARTYUTIL_CONTRACTID, &kTHIRDPARTYUTIL_CID },
- { NS_STRUCTUREDCLONECONTAINER_CONTRACTID, &kNS_STRUCTUREDCLONECONTAINER_CID },
- { POWERMANAGERSERVICE_CONTRACTID, &kNS_POWERMANAGERSERVICE_CID, Module::ALLOW_IN_GPU_PROCESS },
- { OSFILECONSTANTSSERVICE_CONTRACTID, &kOSFILECONSTANTSSERVICE_CID },
- { "@mozilla.org/udp-socket-child;1", &kUDPSOCKETCHILD_CID },
- { TIMESERVICE_CONTRACTID, &kNS_TIMESERVICE_CID },
- { MEDIASTREAMCONTROLLERSERVICE_CONTRACTID, &kNS_MEDIASTREAMCONTROLLERSERVICE_CID },
- { MEDIAMANAGERSERVICE_CONTRACTID, &kNS_MEDIAMANAGERSERVICE_CID },
- #ifdef ACCESSIBILITY
- { "@mozilla.org/accessibilityService;1", &kNS_ACCESSIBILITY_SERVICE_CID },
- { "@mozilla.org/accessibleRetrieval;1", &kNS_ACCESSIBILITY_SERVICE_CID },
- #endif
- { "@mozilla.org/gecko-media-plugin-service;1", &kGECKO_MEDIA_PLUGIN_SERVICE_CID },
- { "@mozilla.org/text-input-processor;1", &kTEXT_INPUT_PROCESSOR_CID },
- { NS_SCRIPTERROR_CONTRACTID, &kNS_SCRIPTERROR_CID },
- { nullptr }
- };
- static const mozilla::Module::CategoryEntry kLayoutCategories[] = {
- XPCONNECT_CATEGORIES
- { "content-policy", NS_DATADOCUMENTCONTENTPOLICY_CONTRACTID, NS_DATADOCUMENTCONTENTPOLICY_CONTRACTID },
- { "content-policy", NS_NODATAPROTOCOLCONTENTPOLICY_CONTRACTID, NS_NODATAPROTOCOLCONTENTPOLICY_CONTRACTID },
- { "content-policy", "CSPService", CSPSERVICE_CONTRACTID },
- { "content-policy", NS_MIXEDCONTENTBLOCKER_CONTRACTID, NS_MIXEDCONTENTBLOCKER_CONTRACTID },
- { "net-channel-event-sinks", "CSPService", CSPSERVICE_CONTRACTID },
- { "net-channel-event-sinks", NS_MIXEDCONTENTBLOCKER_CONTRACTID, NS_MIXEDCONTENTBLOCKER_CONTRACTID },
- { "app-startup", "Script Security Manager", "service," NS_SCRIPTSECURITYMANAGER_CONTRACTID },
- { "app-startup", "Push Notifier", "service," PUSHNOTIFIER_CONTRACTID },
- { "clear-origin-attributes-data", "QuotaManagerService", "service," QUOTAMANAGER_SERVICE_CONTRACTID },
- { OBSERVER_TOPIC_IDLE_DAILY, "QuotaManagerService", QUOTAMANAGER_SERVICE_CONTRACTID },
- CONTENTDLF_CATEGORIES
- { nullptr }
- };
- static void
- LayoutModuleDtor()
- {
- if (XRE_GetProcessType() == GeckoProcessType_GPU) {
- return;
- }
- Shutdown();
- nsContentUtils::XPCOMShutdown();
- // Layout depends heavily on gfx and imagelib, so we want to make sure that
- // these modules are shut down after all the layout cleanup runs.
- mozilla::image::ShutdownModule();
- gfxPlatform::Shutdown();
- gfx::gfxVars::Shutdown();
- nsScriptSecurityManager::Shutdown();
- xpcModuleDtor();
- }
- static const mozilla::Module kLayoutModule = {
- mozilla::Module::kVersion,
- kLayoutCIDs,
- kLayoutContracts,
- kLayoutCategories,
- nullptr,
- Initialize,
- LayoutModuleDtor,
- Module::ALLOW_IN_GPU_PROCESS
- };
- NSMODULE_DEFN(nsLayoutModule) = &kLayoutModule;
|