Bug 1492142 - Remove the XPCOM registrations for the document classes; r=baku

Differential Revision: https://phabricator.services.mozilla.com/D6149
This commit is contained in:
Ehsan Akhgari 2018-09-18 09:40:38 -04:00
parent 0d3162b8a7
commit 7387a420d9
5 changed files with 55 additions and 94 deletions

View File

@ -21,21 +21,6 @@
#define NS_CONTENT_DOCUMENT_LOADER_FACTORY_CID \
{ 0xfc886801, 0xe768, 0x11d4, { 0x98, 0x85, 0x0, 0xc0, 0x4f, 0xa0, 0xcf, 0x4b } }
#define NS_HTMLDOCUMENT_CID \
{ /* 5d0fcdd0-4daa-11d2-b328-00805f8a3859 */ \
0x5d0fcdd0, 0x4daa, 0x11d2, \
{0xb3, 0x28, 0x00, 0x80, 0x5f, 0x8a, 0x38, 0x59}}
#define NS_XMLDOCUMENT_CID \
{ /* a6cf9063-15b3-11d2-932e-00805f8add32 */ \
0xa6cf9063, 0x15b3, 0x11d2, \
{0x93, 0x2e, 0x00, 0x80, 0x5f, 0x8a, 0xdd, 0x32}}
#define NS_IMAGEDOCUMENT_CID \
{ /* e11a6080-4daa-11d2-b328-00805f8a3859 */ \
0xe11a6080, 0x4daa, 0x11d2, \
{0xb3, 0x28, 0x00, 0x80, 0x5f, 0x8a, 0x38, 0x59}}
// {e7ba1480-1dea-11d3-830f-00104bed045e}
#define NS_TEXT_ENCODER_CID \
{ 0xe7ba1480, 0x1dea, 0x11d3, {0x83, 0x0f, 0x00, 0x10, 0x4b, 0xed, 0x04, 0x5e} }
@ -117,20 +102,6 @@
#define NS_XULTREEBUILDER_CID \
{ 0x1abdcc96, 0x1dd2, 0x11b2, { 0xb5, 0x20, 0xf8, 0xf5, 0x9c, 0xdd, 0x67, 0xbc } }
// {541AFCB2-A9A3-11d2-8EC5-00805F29F370}
#define NS_XULDOCUMENT_CID \
{ 0x541afcb2, 0xa9a3, 0x11d2, { 0x8e, 0xc5, 0x0, 0x80, 0x5f, 0x29, 0xf3, 0x70 } }
#define NS_SVGDOCUMENT_CID \
{ /* b7f44954-1dd1-11b2-8c2e-c2feab4186bc */ \
0xb7f44954, 0x11d1, 0x11b2, \
{0x8c, 0x2e, 0xc2, 0xfe, 0xab, 0x41, 0x86, 0xbc}}
// {d899a152-9412-46b2-b651-2e71c5c2f05f}
#define NS_VIDEODOCUMENT_CID \
{ 0xd899a152, 0x9412, 0x46b2, \
{ 0xb6, 0x51, 0x2e, 0x71, 0xc5, 0xc2, 0xf0, 0x5f } }
#define NS_EVENTLISTENERSERVICE_CID \
{ /* baa34652-f1f1-4185-b224-244ee82a413a */ \
0xbaa34652, 0xf1f1, 0x4185, \
@ -159,10 +130,6 @@
#define NS_CHILDPROCESSMESSAGEMANAGER_CONTRACTID \
"@mozilla.org/childprocessmessagemanager;1"
// {f96f5ec9-755b-447e-b1f3-717d1a84bb41}
#define NS_PLUGINDOCUMENT_CID \
{ 0xf96f5ec9, 0x755b, 0x447e, { 0xb1, 0xf3, 0x71, 0x7d, 0x1a, 0x84, 0xbb, 0x41 } }
// {08c6cc8b-cfb0-421d-b1f7-683ff2989681}
#define THIRDPARTYUTIL_CID \
{0x08c6cc8b, 0xcfb0, 0x421d, {0xb1, 0xf7, 0x68, 0x3f, 0xf2, 0x98, 0x96, 0x81}}

View File

@ -38,8 +38,6 @@
using namespace mozilla;
using namespace mozilla::dom;
static NS_DEFINE_CID(kXMLDocumentCID, NS_XMLDOCUMENT_CID);
/**
* Output Handler Factories
*/
@ -1108,9 +1106,10 @@ txMozillaXSLTProcessor::reportError(nsresult aResult,
void
txMozillaXSLTProcessor::notifyError()
{
nsCOMPtr<nsIDocument> document = do_CreateInstance(kXMLDocumentCID);
if (!document) {
return;
nsCOMPtr<nsIDocument> document;
{
nsresult rv = NS_NewXMLDocument(getter_AddRefs(document));
NS_ENSURE_SUCCESS_VOID(rv);
}
URIUtils::ResetWithSource(document, mSource);

View File

@ -30,24 +30,19 @@
#include "nsCharsetSource.h"
#include "nsMimeTypes.h"
#include "DecoderTraits.h"
#ifdef MOZ_XUL
#include "XULDocument.h"
#endif
// plugins
#include "nsIPluginHost.h"
#include "nsPluginHost.h"
static NS_DEFINE_CID(kPluginDocumentCID, NS_PLUGINDOCUMENT_CID);
// Factory code for creating variations on html documents
#undef NOISY_REGISTRY
static NS_DEFINE_IID(kHTMLDocumentCID, NS_HTMLDOCUMENT_CID);
static NS_DEFINE_IID(kXMLDocumentCID, NS_XMLDOCUMENT_CID);
static NS_DEFINE_IID(kSVGDocumentCID, NS_SVGDOCUMENT_CID);
static NS_DEFINE_IID(kVideoDocumentCID, NS_VIDEODOCUMENT_CID);
static NS_DEFINE_IID(kImageDocumentCID, NS_IMAGEDOCUMENT_CID);
static NS_DEFINE_IID(kXULDocumentCID, NS_XULDOCUMENT_CID);
already_AddRefed<nsIContentViewer> NS_NewContentViewer();
static const char* const gHTMLTypes[] = {
@ -185,7 +180,12 @@ nsContentDLF::CreateInstance(const char* aCommand,
nsContentUtils::IsPlainTextType(contentType)) {
return CreateDocument(aCommand,
aChannel, aLoadGroup,
aContainer, kHTMLDocumentCID,
aContainer, [] () -> already_AddRefed<nsIDocument> {
nsCOMPtr<nsIDocument> doc;
nsresult rv = NS_NewHTMLDocument(getter_AddRefs(doc));
NS_ENSURE_SUCCESS(rv, nullptr);
return doc.forget();
},
aDocListener, aDocViewer);
}
@ -193,7 +193,12 @@ nsContentDLF::CreateInstance(const char* aCommand,
if (IsTypeInList(contentType, gXMLTypes)) {
return CreateDocument(aCommand,
aChannel, aLoadGroup,
aContainer, kXMLDocumentCID,
aContainer, [] () -> already_AddRefed<nsIDocument> {
nsCOMPtr<nsIDocument> doc;
nsresult rv = NS_NewXMLDocument(getter_AddRefs(doc));
NS_ENSURE_SUCCESS(rv, nullptr);
return doc.forget();
},
aDocListener, aDocViewer);
}
@ -201,7 +206,12 @@ nsContentDLF::CreateInstance(const char* aCommand,
if (IsTypeInList(contentType, gSVGTypes)) {
return CreateDocument(aCommand,
aChannel, aLoadGroup,
aContainer, kSVGDocumentCID,
aContainer, [] () -> already_AddRefed<nsIDocument> {
nsCOMPtr<nsIDocument> doc;
nsresult rv = NS_NewSVGDocument(getter_AddRefs(doc));
NS_ENSURE_SUCCESS(rv, nullptr);
return doc.forget();
},
aDocListener, aDocViewer);
}
@ -219,7 +229,12 @@ nsContentDLF::CreateInstance(const char* aCommand,
/* DecoderDoctorDiagnostics* */ nullptr)) {
return CreateDocument(aCommand,
aChannel, aLoadGroup,
aContainer, kVideoDocumentCID,
aContainer, [] () -> already_AddRefed<nsIDocument> {
nsCOMPtr<nsIDocument> doc;
nsresult rv = NS_NewVideoDocument(getter_AddRefs(doc));
NS_ENSURE_SUCCESS(rv, nullptr);
return doc.forget();
},
aDocListener, aDocViewer);
}
@ -227,7 +242,12 @@ nsContentDLF::CreateInstance(const char* aCommand,
if (IsImageContentType(contentType.get())) {
return CreateDocument(aCommand,
aChannel, aLoadGroup,
aContainer, kImageDocumentCID,
aContainer, [] () -> already_AddRefed<nsIDocument> {
nsCOMPtr<nsIDocument> doc;
nsresult rv = NS_NewImageDocument(getter_AddRefs(doc));
NS_ENSURE_SUCCESS(rv, nullptr);
return doc.forget();
},
aDocListener, aDocViewer);
}
@ -238,7 +258,12 @@ nsContentDLF::CreateInstance(const char* aCommand,
nsPluginHost::eExcludeNone)) {
return CreateDocument(aCommand,
aChannel, aLoadGroup,
aContainer, kPluginDocumentCID,
aContainer, [] () -> already_AddRefed<nsIDocument> {
nsCOMPtr<nsIDocument> doc;
nsresult rv = NS_NewPluginDocument(getter_AddRefs(doc));
NS_ENSURE_SUCCESS(rv, nullptr);
return doc.forget();
},
aDocListener, aDocViewer);
}
@ -269,7 +294,8 @@ nsContentDLF::CreateBlankDocument(nsILoadGroup* aLoadGroup,
nsDocShell* aContainer)
{
// create a new blank HTML document
nsCOMPtr<nsIDocument> blankDoc(do_CreateInstance(kHTMLDocumentCID));
nsCOMPtr<nsIDocument> blankDoc;
mozilla::Unused << NS_NewHTMLDocument(getter_AddRefs(blankDoc));
if (!blankDoc) {
return nullptr;
@ -324,16 +350,18 @@ nsContentDLF::CreateBlankDocument(nsILoadGroup* aLoadGroup,
return blankDoc.forget();
}
nsresult
nsContentDLF::CreateDocument(const char* aCommand,
nsIChannel* aChannel,
nsILoadGroup* aLoadGroup,
nsIDocShell* aContainer,
const nsCID& aDocumentCID,
nsContentDLF::DocumentCreator
aDocumentCreator,
nsIStreamListener** aDocListener,
nsIContentViewer** aContentViewer)
{
MOZ_ASSERT(aDocumentCreator);
nsresult rv = NS_ERROR_FAILURE;
nsCOMPtr<nsIURI> aURL;
@ -350,8 +378,8 @@ nsContentDLF::CreateDocument(const char* aCommand,
#endif
// Create the document
nsCOMPtr<nsIDocument> doc = do_CreateInstance(aDocumentCID, &rv);
NS_ENSURE_SUCCESS(rv, rv);
nsCOMPtr<nsIDocument> doc = aDocumentCreator();
NS_ENSURE_TRUE(doc, NS_ERROR_FAILURE);
// Create the content viewer XXX: could reuse content viewer here!
nsCOMPtr<nsIContentViewer> contentViewer = NS_NewContentViewer();
@ -379,8 +407,8 @@ nsContentDLF::CreateXULDocument(const char* aCommand,
nsIStreamListener** aDocListener,
nsIContentViewer** aContentViewer)
{
nsresult rv;
nsCOMPtr<nsIDocument> doc = do_CreateInstance(kXULDocumentCID, &rv);
nsCOMPtr<nsIDocument> doc;
nsresult rv = NS_NewXULDocument(getter_AddRefs(doc));
if (NS_FAILED(rv)) return rv;
nsCOMPtr<nsIContentViewer> contentViewer = NS_NewContentViewer();

View File

@ -32,11 +32,12 @@ public:
nsresult InitUAStyleSheet();
typedef already_AddRefed<nsIDocument> (*DocumentCreator)();
nsresult CreateDocument(const char* aCommand,
nsIChannel* aChannel,
nsILoadGroup* aLoadGroup,
nsIDocShell* aContainer,
const nsCID& aDocumentCID,
DocumentCreator aDocumentCreator,
nsIStreamListener** aDocListener,
nsIContentViewer** aContentViewer);

View File

@ -24,7 +24,6 @@
#include "nsIContentViewer.h"
#include "nsIController.h"
#include "nsIControllers.h"
#include "nsIDocument.h"
#include "nsIDocumentEncoder.h"
#include "nsIFactory.h"
#include "nsIIdleService.h"
@ -113,10 +112,6 @@ class nsIDocumentLoaderFactory;
#include "inDeepTreeWalker.h"
#ifdef MOZ_XUL
#include "XULDocument.h"
#endif
static void Shutdown();
#include "nsGeolocation.h"
@ -324,10 +319,6 @@ MAKE_CTOR(CreateNewFrameTraversal, nsIFrameTraversal, NS_CreateFrameTr
NS_GENERIC_FACTORY_CONSTRUCTOR(inDeepTreeWalker)
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(CreateTextEncoder, nsIDocumentEncoder, NS_NewTextEncoder)
MAKE_CTOR(CreateHTMLCopyTextEncoder, nsIDocumentEncoder, NS_NewHTMLCopyTextEncoder)
MAKE_CTOR(CreateXMLContentSerializer, nsIContentSerializer, NS_NewXMLContentSerializer)
@ -335,9 +326,6 @@ MAKE_CTOR(CreateHTMLContentSerializer, nsIContentSerializer, NS_NewHTM
MAKE_CTOR(CreateXHTMLContentSerializer, nsIContentSerializer, NS_NewXHTMLContentSerializer)
MAKE_CTOR(CreatePlainTextSerializer, nsIContentSerializer, NS_NewPlainTextSerializer)
MAKE_CTOR(CreateContentPolicy, nsIContentPolicy, NS_NewContentPolicy)
#ifdef MOZ_XUL
MAKE_CTOR(CreateXULDocument, nsIDocument, NS_NewXULDocument)
#endif
MAKE_CTOR(CreateContentDLF, nsIDocumentLoaderFactory, NS_NewContentDocumentLoaderFactory)
MAKE_CTOR(CreateEventListenerService, nsIEventListenerService, NS_NewEventListenerService)
MAKE_CTOR(CreateGlobalMessageManager, nsISupports, NS_NewGlobalMessageManager)
@ -345,8 +333,6 @@ MAKE_CTOR(CreateParentMessageManager, nsISupports, NS_NewPar
MAKE_CTOR(CreateChildMessageManager, nsISupports, 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)
NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsStyleSheetService, Init)
@ -443,10 +429,6 @@ NS_DEFINE_NAMED_CID(NS_LAYOUT_DEBUGGER_CID);
NS_DEFINE_NAMED_CID(NS_FRAMETRAVERSAL_CID);
NS_DEFINE_NAMED_CID(IN_DEEPTREEWALKER_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_TEXT_ENCODER_CID);
NS_DEFINE_NAMED_CID(NS_HTMLCOPY_TEXT_ENCODER_CID);
NS_DEFINE_NAMED_CID(NS_XMLCONTENTSERIALIZER_CID);
@ -458,16 +440,11 @@ 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);
#ifdef MOZ_XUL
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_JSURIMUTATOR_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(NS_HOSTOBJECTURI_CID);
NS_DEFINE_NAMED_CID(NS_HOSTOBJECTURIMUTATOR_CID);
@ -535,10 +512,6 @@ static const mozilla::Module::CIDEntry kLayoutCIDs[] = {
{ &kNS_FRAMETRAVERSAL_CID, false, nullptr, CreateNewFrameTraversal },
{ &kIN_DEEPTREEWALKER_CID, false, nullptr, inDeepTreeWalkerConstructor },
{ &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_TEXT_ENCODER_CID, false, nullptr, CreateTextEncoder },
{ &kNS_HTMLCOPY_TEXT_ENCODER_CID, false, nullptr, CreateHTMLCopyTextEncoder },
{ &kNS_XMLCONTENTSERIALIZER_CID, false, nullptr, CreateXMLContentSerializer },
@ -550,16 +523,11 @@ static const mozilla::Module::CIDEntry kLayoutCIDs[] = {
{ &kNS_CONTENTPOLICY_CID, false, nullptr, CreateContentPolicy },
{ &kNS_DATADOCUMENTCONTENTPOLICY_CID, false, nullptr, nsDataDocumentContentPolicyConstructor },
{ &kNS_NODATAPROTOCOLCONTENTPOLICY_CID, false, nullptr, nsNoDataProtocolContentPolicyConstructor },
#ifdef MOZ_XUL
{ &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, nsJSURIMutatorConstructor }, // do_CreateInstance returns mutator
{ &kNS_JSURIMUTATOR_CID, false, nullptr, nsJSURIMutatorConstructor },
{ &kNS_PLUGINDOCLOADERFACTORY_CID, false, nullptr, CreateContentDLF },
{ &kNS_PLUGINDOCUMENT_CID, false, nullptr, CreatePluginDocument },
{ &kNS_VIDEODOCUMENT_CID, false, nullptr, CreateVideoDocument },
{ &kNS_STYLESHEETSERVICE_CID, false, nullptr, nsStyleSheetServiceConstructor },
{ &kNS_HOSTOBJECTURI_CID, false, nullptr, BlobURLMutatorConstructor }, // do_CreateInstance returns mutator
{ &kNS_HOSTOBJECTURIMUTATOR_CID, false, nullptr, BlobURLMutatorConstructor },
@ -619,8 +587,6 @@ static const mozilla::Module::CIDEntry kLayoutCIDs[] = {
static const mozilla::Module::ContractIDEntry kLayoutContracts[] = {
XPCONNECT_CONTRACTS
{ "@mozilla.org/inspector/deep-tree-walker;1", &kIN_DEEPTREEWALKER_CID },
{ "@mozilla.org/xml/xml-document;1", &kNS_XMLDOCUMENT_CID },
{ "@mozilla.org/svg/svg-document;1", &kNS_SVGDOCUMENT_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 },