|
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 "mozilla/ModuleUtils.h" |
|
7 |
|
8 #include "nsCOMPtr.h" |
|
9 |
|
10 #include "nspr.h" |
|
11 #include "nsString.h" |
|
12 #include "nsUniversalCharDetDll.h" |
|
13 #include "nsISupports.h" |
|
14 #include "nsICategoryManager.h" |
|
15 #include "nsIComponentManager.h" |
|
16 #include "nsIServiceManager.h" |
|
17 #include "nsICharsetDetector.h" |
|
18 #include "nsIStringCharsetDetector.h" |
|
19 |
|
20 #include "nsUniversalDetector.h" |
|
21 #include "nsUdetXPCOMWrapper.h" |
|
22 |
|
23 |
|
24 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUniversalXPCOMDetector) |
|
25 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUniversalXPCOMStringDetector) |
|
26 NS_GENERIC_FACTORY_CONSTRUCTOR(nsJAPSMDetector) |
|
27 NS_GENERIC_FACTORY_CONSTRUCTOR(nsJAStringPSMDetector) |
|
28 NS_GENERIC_FACTORY_CONSTRUCTOR(nsKOPSMDetector) |
|
29 NS_GENERIC_FACTORY_CONSTRUCTOR(nsKOStringPSMDetector) |
|
30 NS_GENERIC_FACTORY_CONSTRUCTOR(nsZHTWPSMDetector) |
|
31 NS_GENERIC_FACTORY_CONSTRUCTOR(nsZHTWStringPSMDetector) |
|
32 NS_GENERIC_FACTORY_CONSTRUCTOR(nsZHCNPSMDetector) |
|
33 NS_GENERIC_FACTORY_CONSTRUCTOR(nsZHCNStringPSMDetector) |
|
34 NS_GENERIC_FACTORY_CONSTRUCTOR(nsZHPSMDetector) |
|
35 NS_GENERIC_FACTORY_CONSTRUCTOR(nsZHStringPSMDetector) |
|
36 NS_GENERIC_FACTORY_CONSTRUCTOR(nsCJKPSMDetector) |
|
37 NS_GENERIC_FACTORY_CONSTRUCTOR(nsCJKStringPSMDetector) |
|
38 NS_DEFINE_NAMED_CID(NS_UNIVERSAL_DETECTOR_CID); |
|
39 NS_DEFINE_NAMED_CID(NS_UNIVERSAL_STRING_DETECTOR_CID); |
|
40 NS_DEFINE_NAMED_CID(NS_JA_PSMDETECTOR_CID); |
|
41 NS_DEFINE_NAMED_CID(NS_JA_STRING_PSMDETECTOR_CID); |
|
42 NS_DEFINE_NAMED_CID(NS_KO_PSMDETECTOR_CID); |
|
43 NS_DEFINE_NAMED_CID(NS_KO_STRING_PSMDETECTOR_CID); |
|
44 NS_DEFINE_NAMED_CID(NS_ZHTW_PSMDETECTOR_CID); |
|
45 NS_DEFINE_NAMED_CID(NS_ZHTW_STRING_PSMDETECTOR_CID); |
|
46 NS_DEFINE_NAMED_CID(NS_ZHCN_PSMDETECTOR_CID); |
|
47 NS_DEFINE_NAMED_CID(NS_ZHCN_STRING_PSMDETECTOR_CID); |
|
48 NS_DEFINE_NAMED_CID(NS_ZH_PSMDETECTOR_CID); |
|
49 NS_DEFINE_NAMED_CID(NS_ZH_STRING_PSMDETECTOR_CID); |
|
50 NS_DEFINE_NAMED_CID(NS_CJK_PSMDETECTOR_CID); |
|
51 NS_DEFINE_NAMED_CID(NS_CJK_STRING_PSMDETECTOR_CID); |
|
52 |
|
53 static const mozilla::Module::CIDEntry kChardetCIDs[] = { |
|
54 { &kNS_UNIVERSAL_DETECTOR_CID, false, nullptr, nsUniversalXPCOMDetectorConstructor }, |
|
55 { &kNS_UNIVERSAL_STRING_DETECTOR_CID, false, nullptr, nsUniversalXPCOMStringDetectorConstructor }, |
|
56 { &kNS_JA_PSMDETECTOR_CID, false, nullptr, nsJAPSMDetectorConstructor }, |
|
57 { &kNS_JA_STRING_PSMDETECTOR_CID, false, nullptr, nsJAStringPSMDetectorConstructor }, |
|
58 { &kNS_KO_PSMDETECTOR_CID, false, nullptr, nsKOPSMDetectorConstructor }, |
|
59 { &kNS_KO_STRING_PSMDETECTOR_CID, false, nullptr, nsKOStringPSMDetectorConstructor }, |
|
60 { &kNS_ZHTW_PSMDETECTOR_CID, false, nullptr, nsZHTWPSMDetectorConstructor }, |
|
61 { &kNS_ZHTW_STRING_PSMDETECTOR_CID, false, nullptr, nsZHTWStringPSMDetectorConstructor }, |
|
62 { &kNS_ZHCN_PSMDETECTOR_CID, false, nullptr, nsZHCNPSMDetectorConstructor }, |
|
63 { &kNS_ZHCN_STRING_PSMDETECTOR_CID, false, nullptr, nsZHCNStringPSMDetectorConstructor }, |
|
64 { &kNS_ZH_PSMDETECTOR_CID, false, nullptr, nsZHPSMDetectorConstructor }, |
|
65 { &kNS_ZH_STRING_PSMDETECTOR_CID, false, nullptr, nsZHStringPSMDetectorConstructor }, |
|
66 { &kNS_CJK_PSMDETECTOR_CID, false, nullptr, nsCJKPSMDetectorConstructor }, |
|
67 { &kNS_CJK_STRING_PSMDETECTOR_CID, false, nullptr, nsCJKStringPSMDetectorConstructor }, |
|
68 { nullptr } |
|
69 }; |
|
70 |
|
71 static const mozilla::Module::ContractIDEntry kChardetContracts[] = { |
|
72 { NS_CHARSET_DETECTOR_CONTRACTID_BASE "universal_charset_detector", &kNS_UNIVERSAL_DETECTOR_CID }, |
|
73 { NS_STRCDETECTOR_CONTRACTID_BASE "universal_charset_detector", &kNS_UNIVERSAL_STRING_DETECTOR_CID }, |
|
74 { NS_CHARSET_DETECTOR_CONTRACTID_BASE "ja_parallel_state_machine", &kNS_JA_PSMDETECTOR_CID }, |
|
75 { NS_STRCDETECTOR_CONTRACTID_BASE "ja_parallel_state_machine", &kNS_JA_STRING_PSMDETECTOR_CID }, |
|
76 { NS_CHARSET_DETECTOR_CONTRACTID_BASE "ko_parallel_state_machine", &kNS_KO_PSMDETECTOR_CID }, |
|
77 { NS_STRCDETECTOR_CONTRACTID_BASE "ko_parallel_state_machine", &kNS_KO_STRING_PSMDETECTOR_CID }, |
|
78 { NS_CHARSET_DETECTOR_CONTRACTID_BASE "zhtw_parallel_state_machine", &kNS_ZHTW_PSMDETECTOR_CID }, |
|
79 { NS_STRCDETECTOR_CONTRACTID_BASE "zhtw_parallel_state_machine", &kNS_ZHTW_STRING_PSMDETECTOR_CID }, |
|
80 { NS_CHARSET_DETECTOR_CONTRACTID_BASE "zhcn_parallel_state_machine", &kNS_ZHCN_PSMDETECTOR_CID }, |
|
81 { NS_STRCDETECTOR_CONTRACTID_BASE "zhcn_parallel_state_machine", &kNS_ZHCN_STRING_PSMDETECTOR_CID }, |
|
82 { NS_CHARSET_DETECTOR_CONTRACTID_BASE "zh_parallel_state_machine", &kNS_ZH_PSMDETECTOR_CID }, |
|
83 { NS_STRCDETECTOR_CONTRACTID_BASE "zh_parallel_state_machine", &kNS_ZH_STRING_PSMDETECTOR_CID }, |
|
84 { NS_CHARSET_DETECTOR_CONTRACTID_BASE "cjk_parallel_state_machine", &kNS_CJK_PSMDETECTOR_CID }, |
|
85 { NS_STRCDETECTOR_CONTRACTID_BASE "cjk_parallel_state_machine", &kNS_CJK_STRING_PSMDETECTOR_CID }, |
|
86 { nullptr } |
|
87 }; |
|
88 |
|
89 static const mozilla::Module::CategoryEntry kChardetCategories[] = { |
|
90 { NS_CHARSET_DETECTOR_CATEGORY, "universal_charset_detector", NS_CHARSET_DETECTOR_CONTRACTID_BASE "universal_charset_detector" }, |
|
91 { NS_CHARSET_DETECTOR_CATEGORY, "ja_parallel_state_machine", NS_CHARSET_DETECTOR_CONTRACTID_BASE "ja_parallel_state_machine" }, |
|
92 { NS_CHARSET_DETECTOR_CATEGORY, "ko_parallel_state_machine", NS_CHARSET_DETECTOR_CONTRACTID_BASE "ko_parallel_state_machine" }, |
|
93 { NS_CHARSET_DETECTOR_CATEGORY, "zhtw_parallel_state_machine", NS_CHARSET_DETECTOR_CONTRACTID_BASE "zhtw_parallel_state_machine" }, |
|
94 { NS_CHARSET_DETECTOR_CATEGORY, "zhcn_parallel_state_machine", NS_CHARSET_DETECTOR_CONTRACTID_BASE "zhcn_parallel_state_machine" }, |
|
95 { NS_CHARSET_DETECTOR_CATEGORY, "zh_parallel_state_machine", NS_CHARSET_DETECTOR_CONTRACTID_BASE "zh_parallel_state_machine" }, |
|
96 { NS_CHARSET_DETECTOR_CATEGORY, "cjk_parallel_state_machine", NS_CHARSET_DETECTOR_CONTRACTID_BASE "cjk_parallel_state_machine" }, |
|
97 { nullptr } |
|
98 }; |
|
99 |
|
100 static const mozilla::Module kChardetModule = { |
|
101 mozilla::Module::kVersion, |
|
102 kChardetCIDs, |
|
103 kChardetContracts, |
|
104 kChardetCategories |
|
105 }; |
|
106 |
|
107 NSMODULE_DEFN(nsUniversalCharDetModule) = &kChardetModule; |