|
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ |
|
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 "nsBrowserCompsCID.h" |
|
9 #include "DirectoryProvider.h" |
|
10 |
|
11 #if defined(XP_WIN) |
|
12 #include "nsWindowsShellService.h" |
|
13 #elif defined(XP_MACOSX) |
|
14 #include "nsMacShellService.h" |
|
15 #elif defined(MOZ_WIDGET_GTK) |
|
16 #include "nsGNOMEShellService.h" |
|
17 #endif |
|
18 |
|
19 #if defined(XP_WIN) |
|
20 #include "nsIEHistoryEnumerator.h" |
|
21 #endif |
|
22 |
|
23 #include "rdf.h" |
|
24 #include "nsFeedSniffer.h" |
|
25 #include "AboutRedirector.h" |
|
26 #include "nsIAboutModule.h" |
|
27 |
|
28 #include "nsNetCID.h" |
|
29 |
|
30 using namespace mozilla::browser; |
|
31 |
|
32 ///////////////////////////////////////////////////////////////////////////// |
|
33 |
|
34 NS_GENERIC_FACTORY_CONSTRUCTOR(DirectoryProvider) |
|
35 #if defined(XP_WIN) |
|
36 NS_GENERIC_FACTORY_CONSTRUCTOR(nsWindowsShellService) |
|
37 #elif defined(XP_MACOSX) |
|
38 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMacShellService) |
|
39 #elif defined(MOZ_WIDGET_GTK) |
|
40 NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsGNOMEShellService, Init) |
|
41 #endif |
|
42 |
|
43 #if defined(XP_WIN) |
|
44 NS_GENERIC_FACTORY_CONSTRUCTOR(nsIEHistoryEnumerator) |
|
45 #endif |
|
46 |
|
47 NS_GENERIC_FACTORY_CONSTRUCTOR(nsFeedSniffer) |
|
48 |
|
49 NS_DEFINE_NAMED_CID(NS_BROWSERDIRECTORYPROVIDER_CID); |
|
50 #if defined(XP_WIN) |
|
51 NS_DEFINE_NAMED_CID(NS_SHELLSERVICE_CID); |
|
52 #elif defined(MOZ_WIDGET_GTK) |
|
53 NS_DEFINE_NAMED_CID(NS_SHELLSERVICE_CID); |
|
54 #endif |
|
55 NS_DEFINE_NAMED_CID(NS_FEEDSNIFFER_CID); |
|
56 NS_DEFINE_NAMED_CID(NS_BROWSER_ABOUT_REDIRECTOR_CID); |
|
57 #if defined(XP_WIN) |
|
58 NS_DEFINE_NAMED_CID(NS_WINIEHISTORYENUMERATOR_CID); |
|
59 #elif defined(XP_MACOSX) |
|
60 NS_DEFINE_NAMED_CID(NS_SHELLSERVICE_CID); |
|
61 #endif |
|
62 |
|
63 static const mozilla::Module::CIDEntry kBrowserCIDs[] = { |
|
64 { &kNS_BROWSERDIRECTORYPROVIDER_CID, false, nullptr, DirectoryProviderConstructor }, |
|
65 #if defined(XP_WIN) |
|
66 { &kNS_SHELLSERVICE_CID, false, nullptr, nsWindowsShellServiceConstructor }, |
|
67 #elif defined(MOZ_WIDGET_GTK) |
|
68 { &kNS_SHELLSERVICE_CID, false, nullptr, nsGNOMEShellServiceConstructor }, |
|
69 #endif |
|
70 { &kNS_FEEDSNIFFER_CID, false, nullptr, nsFeedSnifferConstructor }, |
|
71 { &kNS_BROWSER_ABOUT_REDIRECTOR_CID, false, nullptr, AboutRedirector::Create }, |
|
72 #if defined(XP_WIN) |
|
73 { &kNS_WINIEHISTORYENUMERATOR_CID, false, nullptr, nsIEHistoryEnumeratorConstructor }, |
|
74 #elif defined(XP_MACOSX) |
|
75 { &kNS_SHELLSERVICE_CID, false, nullptr, nsMacShellServiceConstructor }, |
|
76 #endif |
|
77 { nullptr } |
|
78 }; |
|
79 |
|
80 static const mozilla::Module::ContractIDEntry kBrowserContracts[] = { |
|
81 { NS_BROWSERDIRECTORYPROVIDER_CONTRACTID, &kNS_BROWSERDIRECTORYPROVIDER_CID }, |
|
82 #if defined(XP_WIN) |
|
83 { NS_SHELLSERVICE_CONTRACTID, &kNS_SHELLSERVICE_CID }, |
|
84 #elif defined(MOZ_WIDGET_GTK) |
|
85 { NS_SHELLSERVICE_CONTRACTID, &kNS_SHELLSERVICE_CID }, |
|
86 #endif |
|
87 { NS_FEEDSNIFFER_CONTRACTID, &kNS_FEEDSNIFFER_CID }, |
|
88 #ifdef MOZ_SAFE_BROWSING |
|
89 { NS_ABOUT_MODULE_CONTRACTID_PREFIX "blocked", &kNS_BROWSER_ABOUT_REDIRECTOR_CID }, |
|
90 #endif |
|
91 { NS_ABOUT_MODULE_CONTRACTID_PREFIX "certerror", &kNS_BROWSER_ABOUT_REDIRECTOR_CID }, |
|
92 { NS_ABOUT_MODULE_CONTRACTID_PREFIX "socialerror", &kNS_BROWSER_ABOUT_REDIRECTOR_CID }, |
|
93 { NS_ABOUT_MODULE_CONTRACTID_PREFIX "tabcrashed", &kNS_BROWSER_ABOUT_REDIRECTOR_CID }, |
|
94 { NS_ABOUT_MODULE_CONTRACTID_PREFIX "feeds", &kNS_BROWSER_ABOUT_REDIRECTOR_CID }, |
|
95 { NS_ABOUT_MODULE_CONTRACTID_PREFIX "privatebrowsing", &kNS_BROWSER_ABOUT_REDIRECTOR_CID }, |
|
96 { NS_ABOUT_MODULE_CONTRACTID_PREFIX "rights", &kNS_BROWSER_ABOUT_REDIRECTOR_CID }, |
|
97 { NS_ABOUT_MODULE_CONTRACTID_PREFIX "robots", &kNS_BROWSER_ABOUT_REDIRECTOR_CID }, |
|
98 { NS_ABOUT_MODULE_CONTRACTID_PREFIX "sessionrestore", &kNS_BROWSER_ABOUT_REDIRECTOR_CID }, |
|
99 { NS_ABOUT_MODULE_CONTRACTID_PREFIX "welcomeback", &kNS_BROWSER_ABOUT_REDIRECTOR_CID }, |
|
100 #ifdef MOZ_SERVICES_SYNC |
|
101 { NS_ABOUT_MODULE_CONTRACTID_PREFIX "sync-tabs", &kNS_BROWSER_ABOUT_REDIRECTOR_CID }, |
|
102 { NS_ABOUT_MODULE_CONTRACTID_PREFIX "sync-progress", &kNS_BROWSER_ABOUT_REDIRECTOR_CID }, |
|
103 #endif |
|
104 { NS_ABOUT_MODULE_CONTRACTID_PREFIX "home", &kNS_BROWSER_ABOUT_REDIRECTOR_CID }, |
|
105 { NS_ABOUT_MODULE_CONTRACTID_PREFIX "newtab", &kNS_BROWSER_ABOUT_REDIRECTOR_CID }, |
|
106 { NS_ABOUT_MODULE_CONTRACTID_PREFIX "permissions", &kNS_BROWSER_ABOUT_REDIRECTOR_CID }, |
|
107 { NS_ABOUT_MODULE_CONTRACTID_PREFIX "preferences", &kNS_BROWSER_ABOUT_REDIRECTOR_CID }, |
|
108 { NS_ABOUT_MODULE_CONTRACTID_PREFIX "downloads", &kNS_BROWSER_ABOUT_REDIRECTOR_CID }, |
|
109 { NS_ABOUT_MODULE_CONTRACTID_PREFIX "accounts", &kNS_BROWSER_ABOUT_REDIRECTOR_CID }, |
|
110 #ifdef MOZ_SERVICES_HEALTHREPORT |
|
111 { NS_ABOUT_MODULE_CONTRACTID_PREFIX "healthreport", &kNS_BROWSER_ABOUT_REDIRECTOR_CID }, |
|
112 #endif |
|
113 { NS_ABOUT_MODULE_CONTRACTID_PREFIX "app-manager", &kNS_BROWSER_ABOUT_REDIRECTOR_CID }, |
|
114 { NS_ABOUT_MODULE_CONTRACTID_PREFIX "customizing", &kNS_BROWSER_ABOUT_REDIRECTOR_CID }, |
|
115 #if defined(XP_WIN) |
|
116 { NS_IEHISTORYENUMERATOR_CONTRACTID, &kNS_WINIEHISTORYENUMERATOR_CID }, |
|
117 #elif defined(XP_MACOSX) |
|
118 { NS_SHELLSERVICE_CONTRACTID, &kNS_SHELLSERVICE_CID }, |
|
119 #endif |
|
120 { nullptr } |
|
121 }; |
|
122 |
|
123 static const mozilla::Module::CategoryEntry kBrowserCategories[] = { |
|
124 { XPCOM_DIRECTORY_PROVIDER_CATEGORY, "browser-directory-provider", NS_BROWSERDIRECTORYPROVIDER_CONTRACTID }, |
|
125 { NS_CONTENT_SNIFFER_CATEGORY, "Feed Sniffer", NS_FEEDSNIFFER_CONTRACTID }, |
|
126 { nullptr } |
|
127 }; |
|
128 |
|
129 static const mozilla::Module kBrowserModule = { |
|
130 mozilla::Module::kVersion, |
|
131 kBrowserCIDs, |
|
132 kBrowserContracts, |
|
133 kBrowserCategories |
|
134 }; |
|
135 |
|
136 NSMODULE_DEFN(nsBrowserCompsModule) = &kBrowserModule; |