1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/extensions/universalchardet/src/xpcom/nsUniversalCharDetModule.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 "mozilla/ModuleUtils.h" 1.10 + 1.11 +#include "nsCOMPtr.h" 1.12 + 1.13 +#include "nspr.h" 1.14 +#include "nsString.h" 1.15 +#include "nsUniversalCharDetDll.h" 1.16 +#include "nsISupports.h" 1.17 +#include "nsICategoryManager.h" 1.18 +#include "nsIComponentManager.h" 1.19 +#include "nsIServiceManager.h" 1.20 +#include "nsICharsetDetector.h" 1.21 +#include "nsIStringCharsetDetector.h" 1.22 + 1.23 +#include "nsUniversalDetector.h" 1.24 +#include "nsUdetXPCOMWrapper.h" 1.25 + 1.26 + 1.27 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsUniversalXPCOMDetector) 1.28 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsUniversalXPCOMStringDetector) 1.29 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsJAPSMDetector) 1.30 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsJAStringPSMDetector) 1.31 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsKOPSMDetector) 1.32 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsKOStringPSMDetector) 1.33 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsZHTWPSMDetector) 1.34 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsZHTWStringPSMDetector) 1.35 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsZHCNPSMDetector) 1.36 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsZHCNStringPSMDetector) 1.37 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsZHPSMDetector) 1.38 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsZHStringPSMDetector) 1.39 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsCJKPSMDetector) 1.40 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsCJKStringPSMDetector) 1.41 +NS_DEFINE_NAMED_CID(NS_UNIVERSAL_DETECTOR_CID); 1.42 +NS_DEFINE_NAMED_CID(NS_UNIVERSAL_STRING_DETECTOR_CID); 1.43 +NS_DEFINE_NAMED_CID(NS_JA_PSMDETECTOR_CID); 1.44 +NS_DEFINE_NAMED_CID(NS_JA_STRING_PSMDETECTOR_CID); 1.45 +NS_DEFINE_NAMED_CID(NS_KO_PSMDETECTOR_CID); 1.46 +NS_DEFINE_NAMED_CID(NS_KO_STRING_PSMDETECTOR_CID); 1.47 +NS_DEFINE_NAMED_CID(NS_ZHTW_PSMDETECTOR_CID); 1.48 +NS_DEFINE_NAMED_CID(NS_ZHTW_STRING_PSMDETECTOR_CID); 1.49 +NS_DEFINE_NAMED_CID(NS_ZHCN_PSMDETECTOR_CID); 1.50 +NS_DEFINE_NAMED_CID(NS_ZHCN_STRING_PSMDETECTOR_CID); 1.51 +NS_DEFINE_NAMED_CID(NS_ZH_PSMDETECTOR_CID); 1.52 +NS_DEFINE_NAMED_CID(NS_ZH_STRING_PSMDETECTOR_CID); 1.53 +NS_DEFINE_NAMED_CID(NS_CJK_PSMDETECTOR_CID); 1.54 +NS_DEFINE_NAMED_CID(NS_CJK_STRING_PSMDETECTOR_CID); 1.55 + 1.56 +static const mozilla::Module::CIDEntry kChardetCIDs[] = { 1.57 + { &kNS_UNIVERSAL_DETECTOR_CID, false, nullptr, nsUniversalXPCOMDetectorConstructor }, 1.58 + { &kNS_UNIVERSAL_STRING_DETECTOR_CID, false, nullptr, nsUniversalXPCOMStringDetectorConstructor }, 1.59 + { &kNS_JA_PSMDETECTOR_CID, false, nullptr, nsJAPSMDetectorConstructor }, 1.60 + { &kNS_JA_STRING_PSMDETECTOR_CID, false, nullptr, nsJAStringPSMDetectorConstructor }, 1.61 + { &kNS_KO_PSMDETECTOR_CID, false, nullptr, nsKOPSMDetectorConstructor }, 1.62 + { &kNS_KO_STRING_PSMDETECTOR_CID, false, nullptr, nsKOStringPSMDetectorConstructor }, 1.63 + { &kNS_ZHTW_PSMDETECTOR_CID, false, nullptr, nsZHTWPSMDetectorConstructor }, 1.64 + { &kNS_ZHTW_STRING_PSMDETECTOR_CID, false, nullptr, nsZHTWStringPSMDetectorConstructor }, 1.65 + { &kNS_ZHCN_PSMDETECTOR_CID, false, nullptr, nsZHCNPSMDetectorConstructor }, 1.66 + { &kNS_ZHCN_STRING_PSMDETECTOR_CID, false, nullptr, nsZHCNStringPSMDetectorConstructor }, 1.67 + { &kNS_ZH_PSMDETECTOR_CID, false, nullptr, nsZHPSMDetectorConstructor }, 1.68 + { &kNS_ZH_STRING_PSMDETECTOR_CID, false, nullptr, nsZHStringPSMDetectorConstructor }, 1.69 + { &kNS_CJK_PSMDETECTOR_CID, false, nullptr, nsCJKPSMDetectorConstructor }, 1.70 + { &kNS_CJK_STRING_PSMDETECTOR_CID, false, nullptr, nsCJKStringPSMDetectorConstructor }, 1.71 + { nullptr } 1.72 +}; 1.73 + 1.74 +static const mozilla::Module::ContractIDEntry kChardetContracts[] = { 1.75 + { NS_CHARSET_DETECTOR_CONTRACTID_BASE "universal_charset_detector", &kNS_UNIVERSAL_DETECTOR_CID }, 1.76 + { NS_STRCDETECTOR_CONTRACTID_BASE "universal_charset_detector", &kNS_UNIVERSAL_STRING_DETECTOR_CID }, 1.77 + { NS_CHARSET_DETECTOR_CONTRACTID_BASE "ja_parallel_state_machine", &kNS_JA_PSMDETECTOR_CID }, 1.78 + { NS_STRCDETECTOR_CONTRACTID_BASE "ja_parallel_state_machine", &kNS_JA_STRING_PSMDETECTOR_CID }, 1.79 + { NS_CHARSET_DETECTOR_CONTRACTID_BASE "ko_parallel_state_machine", &kNS_KO_PSMDETECTOR_CID }, 1.80 + { NS_STRCDETECTOR_CONTRACTID_BASE "ko_parallel_state_machine", &kNS_KO_STRING_PSMDETECTOR_CID }, 1.81 + { NS_CHARSET_DETECTOR_CONTRACTID_BASE "zhtw_parallel_state_machine", &kNS_ZHTW_PSMDETECTOR_CID }, 1.82 + { NS_STRCDETECTOR_CONTRACTID_BASE "zhtw_parallel_state_machine", &kNS_ZHTW_STRING_PSMDETECTOR_CID }, 1.83 + { NS_CHARSET_DETECTOR_CONTRACTID_BASE "zhcn_parallel_state_machine", &kNS_ZHCN_PSMDETECTOR_CID }, 1.84 + { NS_STRCDETECTOR_CONTRACTID_BASE "zhcn_parallel_state_machine", &kNS_ZHCN_STRING_PSMDETECTOR_CID }, 1.85 + { NS_CHARSET_DETECTOR_CONTRACTID_BASE "zh_parallel_state_machine", &kNS_ZH_PSMDETECTOR_CID }, 1.86 + { NS_STRCDETECTOR_CONTRACTID_BASE "zh_parallel_state_machine", &kNS_ZH_STRING_PSMDETECTOR_CID }, 1.87 + { NS_CHARSET_DETECTOR_CONTRACTID_BASE "cjk_parallel_state_machine", &kNS_CJK_PSMDETECTOR_CID }, 1.88 + { NS_STRCDETECTOR_CONTRACTID_BASE "cjk_parallel_state_machine", &kNS_CJK_STRING_PSMDETECTOR_CID }, 1.89 + { nullptr } 1.90 +}; 1.91 + 1.92 +static const mozilla::Module::CategoryEntry kChardetCategories[] = { 1.93 + { NS_CHARSET_DETECTOR_CATEGORY, "universal_charset_detector", NS_CHARSET_DETECTOR_CONTRACTID_BASE "universal_charset_detector" }, 1.94 + { NS_CHARSET_DETECTOR_CATEGORY, "ja_parallel_state_machine", NS_CHARSET_DETECTOR_CONTRACTID_BASE "ja_parallel_state_machine" }, 1.95 + { NS_CHARSET_DETECTOR_CATEGORY, "ko_parallel_state_machine", NS_CHARSET_DETECTOR_CONTRACTID_BASE "ko_parallel_state_machine" }, 1.96 + { NS_CHARSET_DETECTOR_CATEGORY, "zhtw_parallel_state_machine", NS_CHARSET_DETECTOR_CONTRACTID_BASE "zhtw_parallel_state_machine" }, 1.97 + { NS_CHARSET_DETECTOR_CATEGORY, "zhcn_parallel_state_machine", NS_CHARSET_DETECTOR_CONTRACTID_BASE "zhcn_parallel_state_machine" }, 1.98 + { NS_CHARSET_DETECTOR_CATEGORY, "zh_parallel_state_machine", NS_CHARSET_DETECTOR_CONTRACTID_BASE "zh_parallel_state_machine" }, 1.99 + { NS_CHARSET_DETECTOR_CATEGORY, "cjk_parallel_state_machine", NS_CHARSET_DETECTOR_CONTRACTID_BASE "cjk_parallel_state_machine" }, 1.100 + { nullptr } 1.101 +}; 1.102 + 1.103 +static const mozilla::Module kChardetModule = { 1.104 + mozilla::Module::kVersion, 1.105 + kChardetCIDs, 1.106 + kChardetContracts, 1.107 + kChardetCategories 1.108 +}; 1.109 + 1.110 +NSMODULE_DEFN(nsUniversalCharDetModule) = &kChardetModule;