summaryrefslogtreecommitdiff
path: root/parser/htmlparser/nsParserModule.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'parser/htmlparser/nsParserModule.cpp')
-rw-r--r--parser/htmlparser/nsParserModule.cpp107
1 files changed, 107 insertions, 0 deletions
diff --git a/parser/htmlparser/nsParserModule.cpp b/parser/htmlparser/nsParserModule.cpp
new file mode 100644
index 0000000000..00c2d6c567
--- /dev/null
+++ b/parser/htmlparser/nsParserModule.cpp
@@ -0,0 +1,107 @@
+/* -*- 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 "nsIAtom.h"
+#include "nsString.h"
+#include "nspr.h"
+#include "nsCOMPtr.h"
+#include "mozilla/ModuleUtils.h"
+#include "nsParserCIID.h"
+#include "nsParser.h"
+#include "CNavDTD.h"
+#include "nsHTMLEntities.h"
+#include "nsHTMLTokenizer.h"
+//#include "nsTextTokenizer.h"
+#include "nsElementTable.h"
+#include "nsParserService.h"
+#include "nsSAXAttributes.h"
+#include "nsSAXLocator.h"
+#include "nsSAXXMLReader.h"
+
+#if defined(DEBUG)
+#include "nsExpatDriver.h"
+#endif
+
+//----------------------------------------------------------------------
+
+#if defined(DEBUG)
+NS_GENERIC_FACTORY_CONSTRUCTOR(nsExpatDriver)
+#endif
+
+NS_GENERIC_FACTORY_CONSTRUCTOR(nsParser)
+NS_GENERIC_FACTORY_CONSTRUCTOR(CNavDTD)
+NS_GENERIC_FACTORY_CONSTRUCTOR(nsParserService)
+
+NS_GENERIC_FACTORY_CONSTRUCTOR(nsSAXAttributes)
+NS_GENERIC_FACTORY_CONSTRUCTOR(nsSAXXMLReader)
+
+#if defined(DEBUG)
+NS_DEFINE_NAMED_CID(NS_EXPAT_DRIVER_CID);
+#endif
+NS_DEFINE_NAMED_CID(NS_PARSER_CID);
+NS_DEFINE_NAMED_CID(NS_CNAVDTD_CID);
+NS_DEFINE_NAMED_CID(NS_PARSERSERVICE_CID);
+NS_DEFINE_NAMED_CID(NS_SAXATTRIBUTES_CID);
+NS_DEFINE_NAMED_CID(NS_SAXXMLREADER_CID);
+
+static const mozilla::Module::CIDEntry kParserCIDs[] = {
+#if defined(DEBUG)
+ { &kNS_EXPAT_DRIVER_CID, false, nullptr, nsExpatDriverConstructor },
+#endif
+ { &kNS_PARSER_CID, false, nullptr, nsParserConstructor },
+ { &kNS_CNAVDTD_CID, false, nullptr, CNavDTDConstructor },
+ { &kNS_PARSERSERVICE_CID, false, nullptr, nsParserServiceConstructor },
+ { &kNS_SAXATTRIBUTES_CID, false, nullptr, nsSAXAttributesConstructor },
+ { &kNS_SAXXMLREADER_CID, false, nullptr, nsSAXXMLReaderConstructor },
+ { nullptr }
+};
+
+static const mozilla::Module::ContractIDEntry kParserContracts[] = {
+ { NS_PARSERSERVICE_CONTRACTID, &kNS_PARSERSERVICE_CID },
+ { NS_SAXATTRIBUTES_CONTRACTID, &kNS_SAXATTRIBUTES_CID },
+ { NS_SAXXMLREADER_CONTRACTID, &kNS_SAXXMLREADER_CID },
+ { nullptr }
+};
+
+static nsresult
+Initialize()
+{
+ nsresult rv = nsHTMLTags::AddRefTable();
+ NS_ENSURE_SUCCESS(rv, rv);
+
+ rv = nsHTMLEntities::AddRefTable();
+ if (NS_FAILED(rv)) {
+ nsHTMLTags::ReleaseTable();
+ return rv;
+ }
+#ifdef DEBUG
+ CheckElementTable();
+#endif
+
+#ifdef DEBUG
+ nsHTMLTags::TestTagTable();
+#endif
+
+ return rv;
+}
+
+static void
+Shutdown()
+{
+ nsHTMLTags::ReleaseTable();
+ nsHTMLEntities::ReleaseTable();
+}
+
+static mozilla::Module kParserModule = {
+ mozilla::Module::kVersion,
+ kParserCIDs,
+ kParserContracts,
+ nullptr,
+ nullptr,
+ Initialize,
+ Shutdown
+};
+
+NSMODULE_DEFN(nsParserModule) = &kParserModule;