Line data Source code
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 "nsIAtom.h"
7 : #include "nsString.h"
8 : #include "nspr.h"
9 : #include "nsCOMPtr.h"
10 : #include "mozilla/ModuleUtils.h"
11 : #include "nsParserCIID.h"
12 : #include "nsParser.h"
13 : #include "CNavDTD.h"
14 : #include "nsHTMLEntities.h"
15 : #include "nsHTMLTokenizer.h"
16 : //#include "nsTextTokenizer.h"
17 : #include "nsElementTable.h"
18 : #include "nsParserService.h"
19 : #include "nsSAXAttributes.h"
20 : #include "nsSAXLocator.h"
21 : #include "nsSAXXMLReader.h"
22 :
23 : #if defined(DEBUG)
24 : #include "nsExpatDriver.h"
25 : #endif
26 :
27 : //----------------------------------------------------------------------
28 :
29 : #if defined(DEBUG)
30 0 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsExpatDriver)
31 : #endif
32 :
33 46 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsParser)
34 0 : NS_GENERIC_FACTORY_CONSTRUCTOR(CNavDTD)
35 4 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsParserService)
36 :
37 0 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsSAXAttributes)
38 0 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsSAXXMLReader)
39 :
40 : #if defined(DEBUG)
41 : NS_DEFINE_NAMED_CID(NS_EXPAT_DRIVER_CID);
42 : #endif
43 : NS_DEFINE_NAMED_CID(NS_PARSER_CID);
44 : NS_DEFINE_NAMED_CID(NS_CNAVDTD_CID);
45 : NS_DEFINE_NAMED_CID(NS_PARSERSERVICE_CID);
46 : NS_DEFINE_NAMED_CID(NS_SAXATTRIBUTES_CID);
47 : NS_DEFINE_NAMED_CID(NS_SAXXMLREADER_CID);
48 :
49 : static const mozilla::Module::CIDEntry kParserCIDs[] = {
50 : #if defined(DEBUG)
51 : { &kNS_EXPAT_DRIVER_CID, false, nullptr, nsExpatDriverConstructor },
52 : #endif
53 : { &kNS_PARSER_CID, false, nullptr, nsParserConstructor },
54 : { &kNS_CNAVDTD_CID, false, nullptr, CNavDTDConstructor },
55 : { &kNS_PARSERSERVICE_CID, false, nullptr, nsParserServiceConstructor },
56 : { &kNS_SAXATTRIBUTES_CID, false, nullptr, nsSAXAttributesConstructor },
57 : { &kNS_SAXXMLREADER_CID, false, nullptr, nsSAXXMLReaderConstructor },
58 : { nullptr }
59 : };
60 :
61 : static const mozilla::Module::ContractIDEntry kParserContracts[] = {
62 : { NS_PARSERSERVICE_CONTRACTID, &kNS_PARSERSERVICE_CID },
63 : { NS_SAXATTRIBUTES_CONTRACTID, &kNS_SAXATTRIBUTES_CID },
64 : { NS_SAXXMLREADER_CONTRACTID, &kNS_SAXXMLREADER_CID },
65 : { nullptr }
66 : };
67 :
68 : static nsresult
69 2 : Initialize()
70 : {
71 2 : nsresult rv = nsHTMLTags::AddRefTable();
72 2 : NS_ENSURE_SUCCESS(rv, rv);
73 :
74 2 : rv = nsHTMLEntities::AddRefTable();
75 2 : if (NS_FAILED(rv)) {
76 0 : nsHTMLTags::ReleaseTable();
77 0 : return rv;
78 : }
79 : #ifdef DEBUG
80 2 : CheckElementTable();
81 : #endif
82 :
83 : #ifdef DEBUG
84 2 : nsHTMLTags::TestTagTable();
85 : #endif
86 :
87 2 : return rv;
88 : }
89 :
90 : static void
91 0 : Shutdown()
92 : {
93 0 : nsHTMLTags::ReleaseTable();
94 0 : nsHTMLEntities::ReleaseTable();
95 0 : }
96 :
97 : static mozilla::Module kParserModule = {
98 : mozilla::Module::kVersion,
99 : kParserCIDs,
100 : kParserContracts,
101 : nullptr,
102 : nullptr,
103 : Initialize,
104 : Shutdown
105 : };
106 :
107 : NSMODULE_DEFN(nsParserModule) = &kParserModule;
|