| Index: chrome/installer/util/browser_distribution.cc
|
| ===================================================================
|
| --- chrome/installer/util/browser_distribution.cc (revision 71802)
|
| +++ chrome/installer/util/browser_distribution.cc (working copy)
|
| @@ -18,7 +18,9 @@
|
| #include "base/win/registry.h"
|
| #include "chrome/common/env_vars.h"
|
| #include "chrome/installer/util/chrome_frame_distribution.h"
|
| +#include "chrome/installer/util/chromium_binaries_distribution.h"
|
| #include "chrome/installer/util/google_chrome_distribution.h"
|
| +#include "chrome/installer/util/google_chrome_binaries_distribution.h"
|
| #include "chrome/installer/util/google_chrome_sxs_distribution.h"
|
| #include "chrome/installer/util/install_util.h"
|
| #include "chrome/installer/util/l10n_string_util.h"
|
| @@ -32,6 +34,7 @@
|
| // The BrowserDistribution objects are never freed.
|
| BrowserDistribution* g_browser_distribution = NULL;
|
| BrowserDistribution* g_chrome_frame_distribution = NULL;
|
| +BrowserDistribution* g_binaries_distribution = NULL;
|
|
|
| // Returns true if currently running in npchrome_frame.dll
|
| bool IsChromeFrameModule() {
|
| @@ -60,17 +63,19 @@
|
|
|
| } // end namespace
|
|
|
| -BrowserDistribution::BrowserDistribution(
|
| - const installer::MasterPreferences& prefs)
|
| - : type_(BrowserDistribution::CHROME_BROWSER) {
|
| +BrowserDistribution::BrowserDistribution()
|
| + : type_(CHROME_BROWSER) {
|
| }
|
|
|
| +BrowserDistribution::BrowserDistribution(Type type)
|
| + : type_(type) {
|
| +}
|
| +
|
| template<class DistributionClass>
|
| BrowserDistribution* BrowserDistribution::GetOrCreateBrowserDistribution(
|
| - const installer::MasterPreferences& prefs,
|
| BrowserDistribution** dist) {
|
| if (!*dist) {
|
| - DistributionClass* temp = new DistributionClass(prefs);
|
| + DistributionClass* temp = new DistributionClass();
|
| if (base::subtle::NoBarrier_CompareAndSwap(
|
| reinterpret_cast<base::subtle::AtomicWord*>(dist), NULL,
|
| reinterpret_cast<base::subtle::AtomicWord>(temp)) != NULL)
|
| @@ -81,34 +86,44 @@
|
| }
|
|
|
| BrowserDistribution* BrowserDistribution::GetDistribution() {
|
| - const installer::MasterPreferences& prefs =
|
| - installer::MasterPreferences::ForCurrentProcess();
|
| - return GetSpecificDistribution(GetCurrentDistributionType(), prefs);
|
| + return GetSpecificDistribution(GetCurrentDistributionType());
|
| }
|
|
|
| // static
|
| BrowserDistribution* BrowserDistribution::GetSpecificDistribution(
|
| - BrowserDistribution::Type type,
|
| - const installer::MasterPreferences& prefs) {
|
| + BrowserDistribution::Type type) {
|
| BrowserDistribution* dist = NULL;
|
|
|
| - if (type == CHROME_FRAME) {
|
| - dist = GetOrCreateBrowserDistribution<ChromeFrameDistribution>(
|
| - prefs, &g_chrome_frame_distribution);
|
| - } else {
|
| - DCHECK_EQ(CHROME_BROWSER, type);
|
| + switch (type) {
|
| + case CHROME_BROWSER:
|
| #if defined(GOOGLE_CHROME_BUILD)
|
| - if (InstallUtil::IsChromeSxSProcess()) {
|
| - dist = GetOrCreateBrowserDistribution<GoogleChromeSxSDistribution>(
|
| - prefs, &g_browser_distribution);
|
| - } else {
|
| - dist = GetOrCreateBrowserDistribution<GoogleChromeDistribution>(
|
| - prefs, &g_browser_distribution);
|
| - }
|
| + if (InstallUtil::IsChromeSxSProcess()) {
|
| + dist = GetOrCreateBrowserDistribution<GoogleChromeSxSDistribution>(
|
| + &g_browser_distribution);
|
| + } else {
|
| + dist = GetOrCreateBrowserDistribution<GoogleChromeDistribution>(
|
| + &g_browser_distribution);
|
| + }
|
| #else
|
| - dist = GetOrCreateBrowserDistribution<BrowserDistribution>(
|
| - prefs, &g_browser_distribution);
|
| + dist = GetOrCreateBrowserDistribution<BrowserDistribution>(
|
| + &g_browser_distribution);
|
| #endif
|
| + break;
|
| +
|
| + case CHROME_FRAME:
|
| + dist = GetOrCreateBrowserDistribution<ChromeFrameDistribution>(
|
| + &g_chrome_frame_distribution);
|
| + break;
|
| +
|
| + default:
|
| + DCHECK_EQ(CHROME_BINARIES, type);
|
| +#if defined(GOOGLE_CHROME_BUILD)
|
| + dist = GetOrCreateBrowserDistribution<GoogleChromeBinariesDistribution>(
|
| + &g_binaries_distribution);
|
| +#else
|
| + dist = GetOrCreateBrowserDistribution<ChromiumBinariesDistribution>(
|
| + &g_binaries_distribution);
|
| +#endif
|
| }
|
|
|
| return dist;
|
| @@ -213,31 +228,6 @@
|
|
|
|
|
| void BrowserDistribution::InactiveUserToastExperiment(int flavor,
|
| - const installer::Product& installation) {
|
| + const installer::Product& installation,
|
| + const FilePath& application_path) {
|
| }
|
| -
|
| -std::vector<FilePath> BrowserDistribution::GetKeyFiles() {
|
| - std::vector<FilePath> key_files;
|
| - key_files.push_back(FilePath(installer::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::switches::kChrome);
|
| -}
|
| -
|
| -bool BrowserDistribution::ShouldCreateUninstallEntry() {
|
| - return true;
|
| -}
|
| -
|
| -bool BrowserDistribution::SetChannelFlags(
|
| - bool set,
|
| - installer::ChannelInfo* channel_info) {
|
| - return false;
|
| -}
|
|
|