Sat, 03 Jan 2015 20:18:00 +0100
Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.
1 /* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5 #include "mozilla/ModuleUtils.h"
6 #include "nsAppStartup.h"
7 #include "nsUserInfo.h"
8 #include "nsToolkitCompsCID.h"
9 #include "nsFindService.h"
10 #if defined(USE_MOZ_UPDATER)
11 #include "nsUpdateDriver.h"
12 #endif
14 #if defined(XP_WIN) && !defined(MOZ_DISABLE_PARENTAL_CONTROLS)
15 #include "nsParentalControlsServiceWin.h"
16 #endif
18 #include "nsAlertsService.h"
20 #include "nsDownloadManager.h"
21 #include "DownloadPlatform.h"
22 #include "nsDownloadProxy.h"
23 #include "nsCharsetMenu.h"
24 #include "rdf.h"
26 #include "nsTypeAheadFind.h"
28 #ifdef MOZ_URL_CLASSIFIER
29 #include "ApplicationReputation.h"
30 #include "nsUrlClassifierDBService.h"
31 #include "nsUrlClassifierStreamUpdater.h"
32 #include "nsUrlClassifierUtils.h"
33 #include "nsUrlClassifierPrefixSet.h"
34 #endif
36 #include "nsBrowserStatusFilter.h"
37 #include "mozilla/FinalizationWitnessService.h"
38 #include "mozilla/NativeOSFileInternals.h"
40 using namespace mozilla;
42 /////////////////////////////////////////////////////////////////////////////
44 NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsAppStartup, Init)
45 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUserInfo)
46 NS_GENERIC_FACTORY_CONSTRUCTOR(nsFindService)
48 #if defined(XP_WIN) && !defined(MOZ_DISABLE_PARENTAL_CONTROLS)
49 NS_GENERIC_FACTORY_CONSTRUCTOR(nsParentalControlsServiceWin)
50 #endif
52 NS_GENERIC_FACTORY_CONSTRUCTOR(nsAlertsService)
54 NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsDownloadManager,
55 nsDownloadManager::GetSingleton)
56 NS_GENERIC_FACTORY_CONSTRUCTOR(DownloadPlatform)
57 NS_GENERIC_FACTORY_CONSTRUCTOR(nsDownloadProxy)
59 NS_GENERIC_FACTORY_CONSTRUCTOR(nsTypeAheadFind)
61 #ifdef MOZ_URL_CLASSIFIER
62 NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(ApplicationReputationService,
63 ApplicationReputationService::GetSingleton)
64 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUrlClassifierPrefixSet)
65 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUrlClassifierStreamUpdater)
66 NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsUrlClassifierUtils, Init)
68 static nsresult
69 nsUrlClassifierDBServiceConstructor(nsISupports *aOuter, REFNSIID aIID,
70 void **aResult)
71 {
72 nsresult rv;
73 NS_ENSURE_ARG_POINTER(aResult);
74 NS_ENSURE_NO_AGGREGATION(aOuter);
76 nsUrlClassifierDBService *inst = nsUrlClassifierDBService::GetInstance(&rv);
77 if (nullptr == inst) {
78 return rv;
79 }
80 /* NS_ADDREF(inst); */
81 rv = inst->QueryInterface(aIID, aResult);
82 NS_RELEASE(inst);
84 return rv;
85 }
86 #endif
88 NS_GENERIC_FACTORY_CONSTRUCTOR(nsBrowserStatusFilter)
89 #if defined(USE_MOZ_UPDATER)
90 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUpdateProcessor)
91 #endif
92 NS_GENERIC_FACTORY_CONSTRUCTOR(FinalizationWitnessService)
93 NS_GENERIC_FACTORY_CONSTRUCTOR(NativeOSFileInternalsService)
95 NS_DEFINE_NAMED_CID(NS_TOOLKIT_APPSTARTUP_CID);
96 NS_DEFINE_NAMED_CID(NS_USERINFO_CID);
97 NS_DEFINE_NAMED_CID(NS_ALERTSSERVICE_CID);
98 #if defined(XP_WIN) && !defined(MOZ_DISABLE_PARENTAL_CONTROLS)
99 NS_DEFINE_NAMED_CID(NS_PARENTALCONTROLSSERVICE_CID);
100 #endif
101 NS_DEFINE_NAMED_CID(NS_DOWNLOADMANAGER_CID);
102 NS_DEFINE_NAMED_CID(NS_DOWNLOADPLATFORM_CID);
103 NS_DEFINE_NAMED_CID(NS_DOWNLOAD_CID);
104 NS_DEFINE_NAMED_CID(NS_FIND_SERVICE_CID);
105 NS_DEFINE_NAMED_CID(NS_TYPEAHEADFIND_CID);
106 #ifdef MOZ_URL_CLASSIFIER
107 NS_DEFINE_NAMED_CID(NS_APPLICATION_REPUTATION_SERVICE_CID);
108 NS_DEFINE_NAMED_CID(NS_URLCLASSIFIERPREFIXSET_CID);
109 NS_DEFINE_NAMED_CID(NS_URLCLASSIFIERDBSERVICE_CID);
110 NS_DEFINE_NAMED_CID(NS_URLCLASSIFIERSTREAMUPDATER_CID);
111 NS_DEFINE_NAMED_CID(NS_URLCLASSIFIERUTILS_CID);
112 #endif
113 NS_DEFINE_NAMED_CID(NS_BROWSERSTATUSFILTER_CID);
114 NS_DEFINE_NAMED_CID(NS_CHARSETMENU_CID);
115 #if defined(USE_MOZ_UPDATER)
116 NS_DEFINE_NAMED_CID(NS_UPDATEPROCESSOR_CID);
117 #endif
118 NS_DEFINE_NAMED_CID(FINALIZATIONWITNESSSERVICE_CID);
119 NS_DEFINE_NAMED_CID(NATIVE_OSFILE_INTERNALS_SERVICE_CID);
121 static const Module::CIDEntry kToolkitCIDs[] = {
122 { &kNS_TOOLKIT_APPSTARTUP_CID, false, nullptr, nsAppStartupConstructor },
123 { &kNS_USERINFO_CID, false, nullptr, nsUserInfoConstructor },
124 { &kNS_ALERTSSERVICE_CID, false, nullptr, nsAlertsServiceConstructor },
125 #if defined(XP_WIN) && !defined(MOZ_DISABLE_PARENTAL_CONTROLS)
126 { &kNS_PARENTALCONTROLSSERVICE_CID, false, nullptr, nsParentalControlsServiceWinConstructor },
127 #endif
128 { &kNS_DOWNLOADMANAGER_CID, false, nullptr, nsDownloadManagerConstructor },
129 { &kNS_DOWNLOADPLATFORM_CID, false, nullptr, DownloadPlatformConstructor },
130 { &kNS_DOWNLOAD_CID, false, nullptr, nsDownloadProxyConstructor },
131 { &kNS_FIND_SERVICE_CID, false, nullptr, nsFindServiceConstructor },
132 { &kNS_TYPEAHEADFIND_CID, false, nullptr, nsTypeAheadFindConstructor },
133 #ifdef MOZ_URL_CLASSIFIER
134 { &kNS_APPLICATION_REPUTATION_SERVICE_CID, false, nullptr, ApplicationReputationServiceConstructor },
135 { &kNS_URLCLASSIFIERPREFIXSET_CID, false, nullptr, nsUrlClassifierPrefixSetConstructor },
136 { &kNS_URLCLASSIFIERDBSERVICE_CID, false, nullptr, nsUrlClassifierDBServiceConstructor },
137 { &kNS_URLCLASSIFIERSTREAMUPDATER_CID, false, nullptr, nsUrlClassifierStreamUpdaterConstructor },
138 { &kNS_URLCLASSIFIERUTILS_CID, false, nullptr, nsUrlClassifierUtilsConstructor },
139 #endif
140 { &kNS_BROWSERSTATUSFILTER_CID, false, nullptr, nsBrowserStatusFilterConstructor },
141 { &kNS_CHARSETMENU_CID, false, nullptr, NS_NewCharsetMenu },
142 #if defined(USE_MOZ_UPDATER)
143 { &kNS_UPDATEPROCESSOR_CID, false, nullptr, nsUpdateProcessorConstructor },
144 #endif
145 { &kFINALIZATIONWITNESSSERVICE_CID, false, nullptr, FinalizationWitnessServiceConstructor },
146 { &kNATIVE_OSFILE_INTERNALS_SERVICE_CID, false, nullptr, NativeOSFileInternalsServiceConstructor },
147 { nullptr }
148 };
150 static const Module::ContractIDEntry kToolkitContracts[] = {
151 { NS_APPSTARTUP_CONTRACTID, &kNS_TOOLKIT_APPSTARTUP_CID },
152 { NS_USERINFO_CONTRACTID, &kNS_USERINFO_CID },
153 { NS_ALERTSERVICE_CONTRACTID, &kNS_ALERTSSERVICE_CID },
154 #if defined(XP_WIN) && !defined(MOZ_DISABLE_PARENTAL_CONTROLS)
155 { NS_PARENTALCONTROLSSERVICE_CONTRACTID, &kNS_PARENTALCONTROLSSERVICE_CID },
156 #endif
157 { NS_DOWNLOADMANAGER_CONTRACTID, &kNS_DOWNLOADMANAGER_CID },
158 { NS_DOWNLOADPLATFORM_CONTRACTID, &kNS_DOWNLOADPLATFORM_CID },
159 { NS_TRANSFER_CONTRACTID, &kNS_DOWNLOAD_CID },
160 { NS_FIND_SERVICE_CONTRACTID, &kNS_FIND_SERVICE_CID },
161 { NS_TYPEAHEADFIND_CONTRACTID, &kNS_TYPEAHEADFIND_CID },
162 #ifdef MOZ_URL_CLASSIFIER
163 { NS_APPLICATION_REPUTATION_SERVICE_CONTRACTID, &kNS_APPLICATION_REPUTATION_SERVICE_CID },
164 { NS_URLCLASSIFIERPREFIXSET_CONTRACTID, &kNS_URLCLASSIFIERPREFIXSET_CID },
165 { NS_URLCLASSIFIERDBSERVICE_CONTRACTID, &kNS_URLCLASSIFIERDBSERVICE_CID },
166 { NS_URICLASSIFIERSERVICE_CONTRACTID, &kNS_URLCLASSIFIERDBSERVICE_CID },
167 { NS_URLCLASSIFIERSTREAMUPDATER_CONTRACTID, &kNS_URLCLASSIFIERSTREAMUPDATER_CID },
168 { NS_URLCLASSIFIERUTILS_CONTRACTID, &kNS_URLCLASSIFIERUTILS_CID },
169 #endif
170 { NS_BROWSERSTATUSFILTER_CONTRACTID, &kNS_BROWSERSTATUSFILTER_CID },
171 { NS_RDF_DATASOURCE_CONTRACTID_PREFIX NS_CHARSETMENU_PID, &kNS_CHARSETMENU_CID },
172 #if defined(USE_MOZ_UPDATER)
173 { NS_UPDATEPROCESSOR_CONTRACTID, &kNS_UPDATEPROCESSOR_CID },
174 #endif
175 { FINALIZATIONWITNESSSERVICE_CONTRACTID, &kFINALIZATIONWITNESSSERVICE_CID },
176 { NATIVE_OSFILE_INTERNALS_SERVICE_CONTRACTID, &kNATIVE_OSFILE_INTERNALS_SERVICE_CID },
177 { nullptr }
178 };
180 static const Module kToolkitModule = {
181 Module::kVersion,
182 kToolkitCIDs,
183 kToolkitContracts
184 };
186 NSMODULE_DEFN(nsToolkitCompsModule) = &kToolkitModule;