1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/parser/htmlparser/src/nsParserModule.cpp Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,107 @@ 1.4 +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 1.5 +/* This Source Code Form is subject to the terms of the Mozilla Public 1.6 + * License, v. 2.0. If a copy of the MPL was not distributed with this 1.7 + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 1.8 + 1.9 +#include "nsIAtom.h" 1.10 +#include "nsString.h" 1.11 +#include "nspr.h" 1.12 +#include "nsCOMPtr.h" 1.13 +#include "mozilla/ModuleUtils.h" 1.14 +#include "nsParserCIID.h" 1.15 +#include "nsParser.h" 1.16 +#include "CNavDTD.h" 1.17 +#include "nsHTMLEntities.h" 1.18 +#include "nsHTMLTokenizer.h" 1.19 +//#include "nsTextTokenizer.h" 1.20 +#include "nsElementTable.h" 1.21 +#include "nsParserService.h" 1.22 +#include "nsSAXAttributes.h" 1.23 +#include "nsSAXLocator.h" 1.24 +#include "nsSAXXMLReader.h" 1.25 + 1.26 +#if defined(DEBUG) 1.27 +#include "nsExpatDriver.h" 1.28 +#endif 1.29 + 1.30 +//---------------------------------------------------------------------- 1.31 + 1.32 +#if defined(DEBUG) 1.33 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsExpatDriver) 1.34 +#endif 1.35 + 1.36 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsParser) 1.37 +NS_GENERIC_FACTORY_CONSTRUCTOR(CNavDTD) 1.38 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsParserService) 1.39 + 1.40 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsSAXAttributes) 1.41 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsSAXXMLReader) 1.42 + 1.43 +#if defined(DEBUG) 1.44 +NS_DEFINE_NAMED_CID(NS_EXPAT_DRIVER_CID); 1.45 +#endif 1.46 +NS_DEFINE_NAMED_CID(NS_PARSER_CID); 1.47 +NS_DEFINE_NAMED_CID(NS_CNAVDTD_CID); 1.48 +NS_DEFINE_NAMED_CID(NS_PARSERSERVICE_CID); 1.49 +NS_DEFINE_NAMED_CID(NS_SAXATTRIBUTES_CID); 1.50 +NS_DEFINE_NAMED_CID(NS_SAXXMLREADER_CID); 1.51 + 1.52 +static const mozilla::Module::CIDEntry kParserCIDs[] = { 1.53 +#if defined(DEBUG) 1.54 + { &kNS_EXPAT_DRIVER_CID, false, nullptr, nsExpatDriverConstructor }, 1.55 +#endif 1.56 + { &kNS_PARSER_CID, false, nullptr, nsParserConstructor }, 1.57 + { &kNS_CNAVDTD_CID, false, nullptr, CNavDTDConstructor }, 1.58 + { &kNS_PARSERSERVICE_CID, false, nullptr, nsParserServiceConstructor }, 1.59 + { &kNS_SAXATTRIBUTES_CID, false, nullptr, nsSAXAttributesConstructor }, 1.60 + { &kNS_SAXXMLREADER_CID, false, nullptr, nsSAXXMLReaderConstructor }, 1.61 + { nullptr } 1.62 +}; 1.63 + 1.64 +static const mozilla::Module::ContractIDEntry kParserContracts[] = { 1.65 + { NS_PARSERSERVICE_CONTRACTID, &kNS_PARSERSERVICE_CID }, 1.66 + { NS_SAXATTRIBUTES_CONTRACTID, &kNS_SAXATTRIBUTES_CID }, 1.67 + { NS_SAXXMLREADER_CONTRACTID, &kNS_SAXXMLREADER_CID }, 1.68 + { nullptr } 1.69 +}; 1.70 + 1.71 +static nsresult 1.72 +Initialize() 1.73 +{ 1.74 + nsresult rv = nsHTMLTags::AddRefTable(); 1.75 + NS_ENSURE_SUCCESS(rv, rv); 1.76 + 1.77 + rv = nsHTMLEntities::AddRefTable(); 1.78 + if (NS_FAILED(rv)) { 1.79 + nsHTMLTags::ReleaseTable(); 1.80 + return rv; 1.81 + } 1.82 +#ifdef DEBUG 1.83 + CheckElementTable(); 1.84 +#endif 1.85 + 1.86 +#ifdef DEBUG 1.87 + nsHTMLTags::TestTagTable(); 1.88 +#endif 1.89 + 1.90 + return rv; 1.91 +} 1.92 + 1.93 +static void 1.94 +Shutdown() 1.95 +{ 1.96 + nsHTMLTags::ReleaseTable(); 1.97 + nsHTMLEntities::ReleaseTable(); 1.98 +} 1.99 + 1.100 +static mozilla::Module kParserModule = { 1.101 + mozilla::Module::kVersion, 1.102 + kParserCIDs, 1.103 + kParserContracts, 1.104 + nullptr, 1.105 + nullptr, 1.106 + Initialize, 1.107 + Shutdown 1.108 +}; 1.109 + 1.110 +NSMODULE_DEFN(nsParserModule) = &kParserModule;