Commit c6e4c6f1 authored by grt's avatar grt Committed by Commit bot

Remove *BinariesDistribution and ChromeBinariesOperations from installer_util.

BUG=577816

Review-Url: https://codereview.chromium.org/2621713004
Cr-Commit-Position: refs/heads/master@{#442826}
parent 78340b2f
......@@ -427,7 +427,7 @@ void AddUninstallShortcutWorkItems(const InstallerState& installer_state,
true);
// MSI installations will manage their own uninstall shortcuts.
if (!installer_state.is_msi() && product.ShouldCreateUninstallEntry()) {
if (!installer_state.is_msi()) {
// We need to quote the command line for the Add/Remove Programs dialog.
base::CommandLine quoted_uninstall_cmd(installer_path);
DCHECK_EQ(quoted_uninstall_cmd.GetCommandLineString()[0], '"');
......@@ -669,10 +669,8 @@ bool AppendPostInstallTasks(const InstallerState& installer_state,
// We want MSI installs to take over the Add/Remove Programs entry. Make a
// best-effort attempt to delete any entry left over from previous non-MSI
// installations for the same type of install (system or per user).
if (product.ShouldCreateUninstallEntry()) {
AddDeleteUninstallEntryForMSIWorkItems(installer_state, product,
post_install_task_list);
}
AddDeleteUninstallEntryForMSIWorkItems(installer_state, product,
post_install_task_list);
}
return true;
......
......@@ -903,10 +903,8 @@ InstallStatus UninstallProduct(const InstallationState& original_state,
base::string16 distribution_data(browser_dist->GetDistributionData(reg_root));
// Remove Control Panel uninstall link.
if (product.ShouldCreateUninstallEntry()) {
InstallUtil::DeleteRegistryKey(
reg_root, browser_dist->GetUninstallRegPath(), KEY_WOW64_32KEY);
}
InstallUtil::DeleteRegistryKey(reg_root, browser_dist->GetUninstallRegPath(),
KEY_WOW64_32KEY);
// Remove Omaha product key.
InstallUtil::DeleteRegistryKey(
......
......@@ -53,8 +53,6 @@ static_library("with_no_strings") {
if (is_win) {
sources = [
"chrome_binaries_operations.cc",
"chrome_binaries_operations.h",
"chrome_browser_operations.cc",
"chrome_browser_operations.h",
"chrome_browser_sxs_operations.cc",
......@@ -141,8 +139,6 @@ static_library("with_no_strings") {
"callback_work_item.h",
"channel_info.cc",
"channel_info.h",
"chromium_binaries_distribution.cc",
"chromium_binaries_distribution.h",
"conditional_work_item_list.cc",
"conditional_work_item_list.h",
"copy_tree_work_item.cc",
......@@ -163,8 +159,6 @@ static_library("with_no_strings") {
"duplicate_tree_detector.h",
"firewall_manager_win.cc",
"firewall_manager_win.h",
"google_chrome_binaries_distribution.cc",
"google_chrome_binaries_distribution.h",
"google_chrome_sxs_distribution.cc",
"google_chrome_sxs_distribution.h",
"google_update_constants.cc",
......
......@@ -21,8 +21,6 @@
#include "chrome/common/chrome_icon_resources_win.h"
#include "chrome/common/env_vars.h"
#include "chrome/installer/util/app_registration_data.h"
#include "chrome/installer/util/chromium_binaries_distribution.h"
#include "chrome/installer/util/google_chrome_binaries_distribution.h"
#include "chrome/installer/util/google_chrome_distribution.h"
#include "chrome/installer/util/google_chrome_sxs_distribution.h"
#include "chrome/installer/util/install_util.h"
......@@ -43,8 +41,6 @@ const wchar_t kCommandExecuteImplUuid[] =
// The BrowserDistribution objects are never freed.
BrowserDistribution* g_browser_distribution = NULL;
BrowserDistribution* g_binaries_distribution = NULL;
BrowserDistribution::Type GetCurrentDistributionType() {
return BrowserDistribution::CHROME_BROWSER;
}
......@@ -84,34 +80,21 @@ BrowserDistribution* BrowserDistribution::GetDistribution() {
// static
BrowserDistribution* BrowserDistribution::GetSpecificDistribution(
BrowserDistribution::Type type) {
DCHECK_EQ(type, CHROME_BROWSER);
BrowserDistribution* dist = NULL;
switch (type) {
case CHROME_BROWSER:
#if defined(GOOGLE_CHROME_BUILD)
if (InstallUtil::IsChromeSxSProcess()) {
dist = GetOrCreateBrowserDistribution<GoogleChromeSxSDistribution>(
&g_browser_distribution);
} else {
dist = GetOrCreateBrowserDistribution<GoogleChromeDistribution>(
&g_browser_distribution);
}
#else
dist = GetOrCreateBrowserDistribution<BrowserDistribution>(
&g_browser_distribution);
#endif
break;
default:
DCHECK_EQ(CHROME_BINARIES, type);
#if defined(GOOGLE_CHROME_BUILD)
dist = GetOrCreateBrowserDistribution<GoogleChromeBinariesDistribution>(
&g_binaries_distribution);
if (InstallUtil::IsChromeSxSProcess()) {
dist = GetOrCreateBrowserDistribution<GoogleChromeSxSDistribution>(
&g_browser_distribution);
} else {
dist = GetOrCreateBrowserDistribution<GoogleChromeDistribution>(
&g_browser_distribution);
}
#else
dist = GetOrCreateBrowserDistribution<ChromiumBinariesDistribution>(
&g_binaries_distribution);
dist = GetOrCreateBrowserDistribution<BrowserDistribution>(
&g_browser_distribution);
#endif
}
return dist;
}
......
......@@ -25,9 +25,9 @@ class AppRegistrationData;
class BrowserDistribution {
public:
// TODO(grt): Remove Type.
enum Type {
CHROME_BROWSER,
CHROME_BINARIES,
NUM_TYPES
};
......
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/installer/util/chrome_binaries_operations.h"
#include "base/command_line.h"
#include "base/files/file_path.h"
#include "base/logging.h"
#include "chrome/installer/util/channel_info.h"
#include "chrome/installer/util/helper.h"
#include "chrome/installer/util/master_preferences.h"
#include "chrome/installer/util/master_preferences_constants.h"
#include "chrome/installer/util/util_constants.h"
namespace installer {
void ChromeBinariesOperations::ReadOptions(const MasterPreferences& prefs,
std::set<base::string16>* options)
const {
DCHECK(options);
options->insert(kOptionMultiInstall);
}
void ChromeBinariesOperations::ReadOptions(
const base::CommandLine& uninstall_command,
std::set<base::string16>* options) const {
DCHECK(options);
options->insert(kOptionMultiInstall);
}
void ChromeBinariesOperations::AddKeyFiles(
const std::set<base::string16>& options,
std::vector<base::FilePath>* key_files) const {
DCHECK(key_files);
key_files->push_back(base::FilePath(installer::kChromeDll));
}
void ChromeBinariesOperations::AppendProductFlags(
const std::set<base::string16>& options,
base::CommandLine* cmd_line) const {
DCHECK(cmd_line);
DCHECK(options.find(kOptionMultiInstall) != options.end());
// Add --multi-install if it isn't already there.
if (!cmd_line->HasSwitch(switches::kMultiInstall))
cmd_line->AppendSwitch(switches::kMultiInstall);
}
void ChromeBinariesOperations::AppendRenameFlags(
const std::set<base::string16>& options,
base::CommandLine* cmd_line) const {
DCHECK(cmd_line);
DCHECK(options.find(kOptionMultiInstall) != options.end());
// Add --multi-install if it isn't already there.
if (!cmd_line->HasSwitch(switches::kMultiInstall))
cmd_line->AppendSwitch(switches::kMultiInstall);
}
bool ChromeBinariesOperations::SetChannelFlags(
const std::set<base::string16>& options,
bool set,
ChannelInfo* channel_info) const {
return false;
}
bool ChromeBinariesOperations::ShouldCreateUninstallEntry(
const std::set<base::string16>& options) const {
return false;
}
void ChromeBinariesOperations::AddDefaultShortcutProperties(
BrowserDistribution* dist,
const base::FilePath& target_exe,
ShellUtil::ShortcutProperties* properties) const {
NOTREACHED() << "Chrome Binaries do not create shortcuts.";
}
void ChromeBinariesOperations::LaunchUserExperiment(
const base::FilePath& setup_path,
const std::set<base::string16>& options,
InstallStatus status,
bool system_level) const {
// Not meaningful to have binaries run experiments.
NOTREACHED();
}
} // namespace installer
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_INSTALLER_UTIL_CHROME_BINARIES_OPERATIONS_H_
#define CHROME_INSTALLER_UTIL_CHROME_BINARIES_OPERATIONS_H_
#include "base/compiler_specific.h"
#include "base/macros.h"
#include "chrome/installer/util/product_operations.h"
namespace installer {
// Operations specific to the Chrome Binaries; see ProductOperations for general
// info.
class ChromeBinariesOperations : public ProductOperations {
public:
ChromeBinariesOperations() {}
void ReadOptions(const MasterPreferences& prefs,
std::set<base::string16>* options) const override;
void ReadOptions(const base::CommandLine& uninstall_command,
std::set<base::string16>* options) const override;
void AddKeyFiles(const std::set<base::string16>& options,
std::vector<base::FilePath>* key_files) const override;
void AppendProductFlags(const std::set<base::string16>& options,
base::CommandLine* cmd_line) const override;
void AppendRenameFlags(const std::set<base::string16>& options,
base::CommandLine* cmd_line) const override;
bool SetChannelFlags(const std::set<base::string16>& options,
bool set,
ChannelInfo* channel_info) const override;
bool ShouldCreateUninstallEntry(
const std::set<base::string16>& options) const override;
void AddDefaultShortcutProperties(
BrowserDistribution* dist,
const base::FilePath& target_exe,
ShellUtil::ShortcutProperties* properties) const override;
void LaunchUserExperiment(const base::FilePath& setup_path,
const std::set<base::string16>& options,
InstallStatus status,
bool system_level) const override;
private:
DISALLOW_COPY_AND_ASSIGN(ChromeBinariesOperations);
};
} // namespace installer
#endif // CHROME_INSTALLER_UTIL_CHROME_BINARIES_OPERATIONS_H_
......@@ -93,11 +93,6 @@ bool ChromeBrowserOperations::SetChannelFlags(
#endif
}
bool ChromeBrowserOperations::ShouldCreateUninstallEntry(
const std::set<base::string16>& options) const {
return true;
}
// Modifies a ShortcutProperties object by adding default values to
// uninitialized members. Tries to assign:
// - target: |chrome_exe|.
......
......@@ -35,9 +35,6 @@ class ChromeBrowserOperations : public ProductOperations {
bool set,
ChannelInfo* channel_info) const override;
bool ShouldCreateUninstallEntry(
const std::set<base::string16>& options) const override;
void AddDefaultShortcutProperties(
BrowserDistribution* dist,
const base::FilePath& target_exe,
......
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// This file declares a class that contains various method related to branding.
#include "chrome/installer/util/google_chrome_binaries_distribution.h"
#include <utility>
#include "base/logging.h"
#include "chrome/installer/util/app_registration_data.h"
#include "chrome/installer/util/non_updating_app_registration_data.h"
namespace {
const wchar_t kChromiumBinariesName[] = L"Chromium Binaries";
} // namespace
ChromiumBinariesDistribution::ChromiumBinariesDistribution()
: BrowserDistribution(CHROME_BINARIES,
std::unique_ptr<AppRegistrationData>(
new NonUpdatingAppRegistrationData(
base::string16(L"Software\\")
.append(kChromiumBinariesName)))),
browser_distribution_(
BrowserDistribution::GetSpecificDistribution(CHROME_BROWSER)) {}
ChromiumBinariesDistribution::ChromiumBinariesDistribution(
std::unique_ptr<AppRegistrationData> app_reg_data)
: BrowserDistribution(CHROME_BINARIES, std::move(app_reg_data)),
browser_distribution_(
BrowserDistribution::GetSpecificDistribution(CHROME_BROWSER)) {}
base::string16 ChromiumBinariesDistribution::GetBaseAppName() {
NOTREACHED();
return base::string16();
}
base::string16 ChromiumBinariesDistribution::GetBrowserProgIdPrefix() {
NOTREACHED();
return base::string16();
}
base::string16 ChromiumBinariesDistribution::GetBrowserProgIdDesc() {
NOTREACHED();
return base::string16();
}
base::string16 ChromiumBinariesDistribution::GetDisplayName() {
return kChromiumBinariesName;
}
base::string16 ChromiumBinariesDistribution::GetShortcutName() {
NOTREACHED();
return base::string16();
}
base::string16 ChromiumBinariesDistribution::GetBaseAppId() {
NOTREACHED();
return base::string16();
}
base::string16 ChromiumBinariesDistribution::GetInstallSubDir() {
return browser_distribution_->GetInstallSubDir();
}
base::string16 ChromiumBinariesDistribution::GetPublisherName() {
NOTREACHED();
return base::string16();
}
base::string16 ChromiumBinariesDistribution::GetAppDescription() {
NOTREACHED();
return base::string16();
}
base::string16 ChromiumBinariesDistribution::GetLongAppDescription() {
NOTREACHED();
return base::string16();
}
std::string ChromiumBinariesDistribution::GetSafeBrowsingName() {
NOTREACHED();
return std::string();
}
base::string16 ChromiumBinariesDistribution::GetRegistryPath() {
NOTREACHED();
// Handling a NOTREACHED() with anything but a default return value is unusual
// but in this case returning the empty string would point the caller at the
// root of the registry which could have disastrous consequences.
return BrowserDistribution::GetRegistryPath();
}
base::string16 ChromiumBinariesDistribution::GetUninstallRegPath() {
NOTREACHED();
return base::string16();
}
BrowserDistribution::DefaultBrowserControlPolicy
ChromiumBinariesDistribution::GetDefaultBrowserControlPolicy() {
return DEFAULT_BROWSER_UNSUPPORTED;
}
int ChromiumBinariesDistribution::GetIconIndex() {
NOTREACHED();
return 0;
}
bool ChromiumBinariesDistribution::GetChromeChannel(base::string16* channel) {
NOTREACHED();
return false;
}
base::string16 ChromiumBinariesDistribution::GetCommandExecuteImplClsid() {
return base::string16();
}
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// This file declares a class that contains various method related to branding.
#ifndef CHROME_INSTALLER_UTIL_CHROMIUM_BINARIES_DISTRIBUTION_H_
#define CHROME_INSTALLER_UTIL_CHROMIUM_BINARIES_DISTRIBUTION_H_
#include <memory>
#include <string>
#include "base/macros.h"
#include "chrome/installer/util/browser_distribution.h"
class ChromiumBinariesDistribution : public BrowserDistribution {
public:
base::string16 GetBrowserProgIdPrefix() override;
base::string16 GetBrowserProgIdDesc() override;
base::string16 GetDisplayName() override;
base::string16 GetShortcutName() override;
int GetIconIndex() override;
base::string16 GetBaseAppName() override;
base::string16 GetBaseAppId() override;
base::string16 GetInstallSubDir() override;
base::string16 GetPublisherName() override;
base::string16 GetAppDescription() override;
base::string16 GetLongAppDescription() override;
std::string GetSafeBrowsingName() override;
base::string16 GetRegistryPath() override;
base::string16 GetUninstallRegPath() override;
DefaultBrowserControlPolicy GetDefaultBrowserControlPolicy() override;
bool GetChromeChannel(base::string16* channel) override;
base::string16 GetCommandExecuteImplClsid() override;
protected:
friend class BrowserDistribution;
ChromiumBinariesDistribution();
explicit ChromiumBinariesDistribution(
std::unique_ptr<AppRegistrationData> app_reg_data);
BrowserDistribution* browser_distribution_;
private:
DISALLOW_COPY_AND_ASSIGN(ChromiumBinariesDistribution);
};
#endif // CHROME_INSTALLER_UTIL_CHROMIUM_BINARIES_DISTRIBUTION_H_
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// This file defines a class that contains various method related to branding.
#include "chrome/installer/util/google_chrome_binaries_distribution.h"
#include "chrome/installer/util/google_update_constants.h"
#include "chrome/installer/util/google_update_settings.h"
#include "chrome/installer/util/install_util.h"
#include "chrome/installer/util/updating_app_registration_data.h"
namespace {
const wchar_t kChromeBinariesGuid[] = L"{4DC8B4CA-1BDA-483e-B5FA-D3C12E15B62D}";
const wchar_t kChromeBinariesName[] = L"Google Chrome binaries";
} // namespace
GoogleChromeBinariesDistribution::GoogleChromeBinariesDistribution()
: ChromiumBinariesDistribution(std::unique_ptr<AppRegistrationData>(
new UpdatingAppRegistrationData(kChromeBinariesGuid))) {}
base::string16 GoogleChromeBinariesDistribution::GetDisplayName() {
return kChromeBinariesName;
}
base::string16 GoogleChromeBinariesDistribution::GetShortcutName() {
NOTREACHED();
return base::string16();
}
void GoogleChromeBinariesDistribution::UpdateInstallStatus(bool system_install,
installer::ArchiveType archive_type,
installer::InstallStatus install_status) {
GoogleUpdateSettings::UpdateInstallStatus(system_install,
archive_type, InstallUtil::GetInstallReturnCode(install_status),
kChromeBinariesGuid);
}
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// This file declares a class that contains various method related to branding.
#ifndef CHROME_INSTALLER_UTIL_GOOGLE_CHROME_BINARIES_DISTRIBUTION_H_
#define CHROME_INSTALLER_UTIL_GOOGLE_CHROME_BINARIES_DISTRIBUTION_H_
#include "base/macros.h"
#include "chrome/installer/util/chromium_binaries_distribution.h"
class GoogleChromeBinariesDistribution : public ChromiumBinariesDistribution {
public:
base::string16 GetDisplayName() override;
base::string16 GetShortcutName() override;
void UpdateInstallStatus(bool system_install,
installer::ArchiveType archive_type,
installer::InstallStatus install_status) override;
protected:
friend class BrowserDistribution;
GoogleChromeBinariesDistribution();
private:
DISALLOW_COPY_AND_ASSIGN(GoogleChromeBinariesDistribution);
};
#endif // CHROME_INSTALLER_UTIL_GOOGLE_CHROME_BINARIES_DISTRIBUTION_H_
......@@ -10,7 +10,6 @@
#include "base/logging.h"
#include "base/process/launch.h"
#include "base/win/registry.h"
#include "chrome/installer/util/chrome_binaries_operations.h"
#include "chrome/installer/util/chrome_browser_operations.h"
#include "chrome/installer/util/chrome_browser_sxs_operations.h"
#include "chrome/installer/util/google_update_constants.h"
......@@ -32,9 +31,6 @@ Product::Product(BrowserDistribution* distribution)
new ChromeBrowserSxSOperations() :
new ChromeBrowserOperations());
break;
case BrowserDistribution::CHROME_BINARIES:
operations_.reset(new ChromeBinariesOperations());
break;
default:
NOTREACHED() << "Unsupported BrowserDistribution::Type: "
<< distribution->GetType();
......@@ -122,10 +118,6 @@ bool Product::SetMsiMarker(bool system_install, bool set) const {
return true;
}
bool Product::ShouldCreateUninstallEntry() const {
return operations_->ShouldCreateUninstallEntry(options_);
}
void Product::AddKeyFiles(std::vector<base::FilePath>* key_files) const {
operations_->AddKeyFiles(options_, key_files);
}
......
......@@ -60,10 +60,6 @@ class Product {
return distribution_->GetType() == BrowserDistribution::CHROME_BROWSER;
}
bool is_chrome_binaries() const {
return distribution_->GetType() == BrowserDistribution::CHROME_BINARIES;
}
bool HasOption(const std::wstring& option) const {
return options_.find(option) != options_.end();
}
......@@ -94,10 +90,6 @@ class Product {
// ClientState key.
bool SetMsiMarker(bool system_install, bool set) const;
// Returns true if setup should create an entry in the Add/Remove list
// of installed applications.
bool ShouldCreateUninstallEntry() const;
// See ProductOperations::AddKeyFiles.
void AddKeyFiles(std::vector<base::FilePath>* key_files) const;
......
......@@ -68,12 +68,6 @@ class ProductOperations {
bool set,
ChannelInfo* channel_info) const = 0;
// Returns true if setup should create an entry in the Add/Remove list
// of installed applications for this product. This does not test for use of
// MSI; see InstallerState::is_msi.
virtual bool ShouldCreateUninstallEntry(
const std::set<base::string16>& options) const = 0;
// Modifies a ShellUtil::ShortcutProperties object by assigning default values
// to unintialized members.
virtual void AddDefaultShortcutProperties(
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment