summaryrefslogtreecommitdiffstats
path: root/chrome/installer/util/browser_distribution.cc
diff options
context:
space:
mode:
authorrobertshield@chromium.org <robertshield@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-12-13 14:35:53 +0000
committerrobertshield@chromium.org <robertshield@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-12-13 14:35:53 +0000
commita947ccbb9104c4ac6104837f00baca16d3a7ea62 (patch)
tree3ef45854c369758b105ecf17112374de2a410d34 /chrome/installer/util/browser_distribution.cc
parentf7c1658f2adf64f36eb5950dda426097e6191c88 (diff)
downloadchromium_src-a947ccbb9104c4ac6104837f00baca16d3a7ea62.zip
chromium_src-a947ccbb9104c4ac6104837f00baca16d3a7ea62.tar.gz
chromium_src-a947ccbb9104c4ac6104837f00baca16d3a7ea62.tar.bz2
Add a CEEE mode to the ChromeFrame distribution class.
Pass a MasterPreferences into BrowserDistribution et al. to allow for preferences-based behaviour. Add a GetComDllList() method that returns the set of registerable components for that distribution. Change GetKeyFile() on BrowserDistribution to GetKeyFiles(). Refactor GetMasterPreferencesForCurrentProcess into a static method on MasterPreferences. BUG=61609 TEST=None Review URL: http://codereview.chromium.org/5558006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68996 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/installer/util/browser_distribution.cc')
-rw-r--r--chrome/installer/util/browser_distribution.cc65
1 files changed, 40 insertions, 25 deletions
diff --git a/chrome/installer/util/browser_distribution.cc b/chrome/installer/util/browser_distribution.cc
index 1a82cf5..933a783 100644
--- a/chrome/installer/util/browser_distribution.cc
+++ b/chrome/installer/util/browser_distribution.cc
@@ -48,22 +48,27 @@ bool IsCeeeBrokerProcess() {
installer_util::kCeeeBrokerExe);
}
-BrowserDistribution::DistributionType GetCurrentDistributionType() {
- static BrowserDistribution::DistributionType type =
+BrowserDistribution::Type GetCurrentDistributionType() {
+ static BrowserDistribution::Type type =
(InstallUtil::IsChromeFrameProcess() || IsChromeFrameModule()) ?
BrowserDistribution::CHROME_FRAME :
- (IsCeeeBrokerProcess() ? BrowserDistribution::CEEE :
- BrowserDistribution::CHROME_BROWSER);
+ BrowserDistribution::CHROME_BROWSER;
return type;
}
} // end namespace
+BrowserDistribution::BrowserDistribution(
+ const installer_util::MasterPreferences& prefs)
+ : type_(BrowserDistribution::CHROME_BROWSER) {
+}
+
template<class DistributionClass>
BrowserDistribution* BrowserDistribution::GetOrCreateBrowserDistribution(
+ const installer_util::MasterPreferences& prefs,
BrowserDistribution** dist) {
if (!*dist) {
- DistributionClass* temp = new DistributionClass();
+ DistributionClass* temp = new DistributionClass(prefs);
if (base::subtle::NoBarrier_CompareAndSwap(
reinterpret_cast<base::subtle::AtomicWord*>(dist), NULL,
reinterpret_cast<base::subtle::AtomicWord>(temp)) != NULL)
@@ -74,35 +79,33 @@ BrowserDistribution* BrowserDistribution::GetOrCreateBrowserDistribution(
}
BrowserDistribution* BrowserDistribution::GetDistribution() {
- return GetSpecificDistribution(GetCurrentDistributionType());
+ const installer_util::MasterPreferences& prefs =
+ installer_util::MasterPreferences::ForCurrentProcess();
+ return GetSpecificDistribution(GetCurrentDistributionType(), prefs);
}
// static
BrowserDistribution* BrowserDistribution::GetSpecificDistribution(
- BrowserDistribution::DistributionType type) {
+ BrowserDistribution::Type type,
+ const installer_util::MasterPreferences& prefs) {
BrowserDistribution* dist = NULL;
- // TODO(tommi): initialize g_ceee_distribution when appropriate. Right now
- // we treat CEEE as Chrome Frame.
-
- if (type == CHROME_FRAME || type == CEEE) {
- // TODO(robertshield): Make one of these for Google Chrome vs
- // non Google Chrome builds?
+ if (type == CHROME_FRAME) {
dist = GetOrCreateBrowserDistribution<ChromeFrameDistribution>(
- &g_chrome_frame_distribution);
+ prefs, &g_chrome_frame_distribution);
} else {
DCHECK_EQ(CHROME_BROWSER, type);
#if defined(GOOGLE_CHROME_BUILD)
- if (InstallUtil::IsChromeSxSProcess()) {
- dist = GetOrCreateBrowserDistribution<GoogleChromeSxSDistribution>(
- &g_browser_distribution);
- } else {
- dist = GetOrCreateBrowserDistribution<GoogleChromeDistribution>(
- &g_browser_distribution);
- }
+ if (InstallUtil::IsChromeSxSProcess()) {
+ dist = GetOrCreateBrowserDistribution<GoogleChromeSxSDistribution>(
+ prefs, &g_browser_distribution);
+ } else {
+ dist = GetOrCreateBrowserDistribution<GoogleChromeDistribution>(
+ prefs, &g_browser_distribution);
+ }
#else
- dist = GetOrCreateBrowserDistribution<BrowserDistribution>(
- &g_browser_distribution);
+ dist = GetOrCreateBrowserDistribution<BrowserDistribution>(
+ prefs, &g_browser_distribution);
#endif
}
@@ -224,6 +227,18 @@ void BrowserDistribution::InactiveUserToastExperiment(int flavor,
const installer::Product& installation) {
}
-FilePath::StringType BrowserDistribution::GetKeyFile() {
- return installer_util::kChromeDll;
+std::vector<FilePath> BrowserDistribution::GetKeyFiles() {
+ std::vector<FilePath> key_files;
+ key_files.push_back(FilePath(installer_util::kChromeDll));
+ return key_files;
+}
+
+std::vector<FilePath> BrowserDistribution::GetComDllList() {
+ return std::vector<FilePath>();
+}
+
+void BrowserDistribution::AppendUninstallCommandLineFlags(
+ CommandLine* cmd_line) {
+ DCHECK(cmd_line);
+ cmd_line->AppendSwitch(installer_util::switches::kChrome);
}