| Index: chrome/installer/setup/chrome_frame_quick_enable.cc
|
| diff --git a/chrome/installer/setup/chrome_frame_quick_enable.cc b/chrome/installer/setup/chrome_frame_quick_enable.cc
|
| deleted file mode 100644
|
| index 9ae7a317fdc6d4d749c6acc89b811ad39761873e..0000000000000000000000000000000000000000
|
| --- a/chrome/installer/setup/chrome_frame_quick_enable.cc
|
| +++ /dev/null
|
| @@ -1,167 +0,0 @@
|
| -// 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/setup/chrome_frame_quick_enable.h"
|
| -
|
| -#include <windows.h>
|
| -
|
| -#include "base/files/scoped_temp_dir.h"
|
| -#include "base/logging.h"
|
| -#include "base/strings/string_util.h"
|
| -#include "base/win/registry.h"
|
| -#include "chrome/installer/setup/install_worker.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/installation_state.h"
|
| -#include "chrome/installer/util/installer_state.h"
|
| -#include "chrome/installer/util/product.h"
|
| -#include "chrome/installer/util/work_item.h"
|
| -#include "chrome/installer/util/work_item_list.h"
|
| -
|
| -using base::win::RegKey;
|
| -
|
| -namespace installer {
|
| -
|
| -namespace {
|
| -
|
| -InstallStatus CheckQuickEnablePreconditions(
|
| - const InstallationState& machine_state,
|
| - const InstallerState& installer_state) {
|
| - // Make sure Chrome is multi-installed.
|
| - const ProductState* chrome_state =
|
| - machine_state.GetProductState(installer_state.system_install(),
|
| - BrowserDistribution::CHROME_BROWSER);
|
| - if (chrome_state == NULL) {
|
| - LOG(ERROR) << "Chrome Frame quick enable requires Chrome to be installed.";
|
| - return CHROME_NOT_INSTALLED;
|
| - } else if (!chrome_state->is_multi_install()) {
|
| - LOG(ERROR) << "Chrome Frame quick enable requires multi-install of Chrome.";
|
| - return NON_MULTI_INSTALLATION_EXISTS;
|
| - }
|
| -
|
| - // Chrome Frame must not be installed.
|
| - const ProductState* cf_state =
|
| - machine_state.GetProductState(installer_state.system_install(),
|
| - BrowserDistribution::CHROME_FRAME);
|
| - // Make sure we check both user and system installations.
|
| - if (!cf_state) {
|
| - cf_state = machine_state.GetProductState(!installer_state.system_install(),
|
| - BrowserDistribution::CHROME_FRAME);
|
| - }
|
| -
|
| - if (cf_state != NULL) {
|
| - LOG(ERROR) << "Chrome Frame already installed.";
|
| - return installer_state.system_install() ?
|
| - SYSTEM_LEVEL_INSTALL_EXISTS : USER_LEVEL_INSTALL_EXISTS;
|
| - }
|
| -
|
| - return FIRST_INSTALL_SUCCESS;
|
| -}
|
| -
|
| -} // end namespace
|
| -
|
| -InstallStatus ChromeFrameQuickEnable(const InstallationState& machine_state,
|
| - InstallerState* installer_state) {
|
| - DCHECK(installer_state);
|
| - VLOG(1) << "Chrome Frame Quick Enable";
|
| - InstallStatus status = CheckQuickEnablePreconditions(machine_state,
|
| - *installer_state);
|
| -
|
| - if (status == FIRST_INSTALL_SUCCESS) {
|
| - scoped_ptr<Product> multi_cf(new Product(
|
| - BrowserDistribution::GetSpecificDistribution(
|
| - BrowserDistribution::CHROME_FRAME)));
|
| - multi_cf->SetOption(installer::kOptionMultiInstall, true);
|
| - Product* cf = installer_state->AddProduct(&multi_cf);
|
| - if (!cf) {
|
| - LOG(ERROR) << "AddProduct failed";
|
| - status = INSTALL_FAILED;
|
| - } else {
|
| - base::ScopedTempDir temp_path;
|
| - if (!temp_path.CreateUniqueTempDir()) {
|
| - PLOG(ERROR) << "Failed to create Temp directory";
|
| - return INSTALL_FAILED;
|
| - }
|
| - scoped_ptr<WorkItemList> item_list(WorkItem::CreateWorkItemList());
|
| - const ProductState* chrome_state =
|
| - machine_state.GetProductState(installer_state->system_install(),
|
| - BrowserDistribution::CHROME_BROWSER);
|
| - DCHECK(chrome_state); // Checked in CheckQuickEnablePreconditions.
|
| -
|
| - // Temporarily remove Chrome from the product list.
|
| - // This is so that the operations below do not affect the installation
|
| - // state of Chrome.
|
| - installer_state->RemoveProduct(
|
| - installer_state->FindProduct(BrowserDistribution::CHROME_BROWSER));
|
| -
|
| - base::FilePath setup_path(chrome_state->GetSetupPath());
|
| - const Version& new_version = chrome_state->version();
|
| -
|
| - // This creates the uninstallation entry for GCF.
|
| - AddUninstallShortcutWorkItems(*installer_state, setup_path, new_version,
|
| - *cf, item_list.get());
|
| - // Always set the "lang" value since quick-enable always happens in the
|
| - // context of an interactive session with a user.
|
| - AddVersionKeyWorkItems(installer_state->root_key(), cf->distribution(),
|
| - new_version, true, item_list.get());
|
| -
|
| - const Version* opv = chrome_state->old_version();
|
| - AppendPostInstallTasks(*installer_state, setup_path, opv,
|
| - new_version, temp_path.path(), item_list.get());
|
| -
|
| - // Before updating the channel values, add Chrome back to the mix so that
|
| - // all multi-installed products' channel values get updated.
|
| - installer_state->AddProductFromState(BrowserDistribution::CHROME_BROWSER,
|
| - *chrome_state);
|
| - AddGoogleUpdateWorkItems(machine_state, *installer_state,
|
| - item_list.get());
|
| -
|
| - // Add the items to remove the quick-enable-cf command from the registry.
|
| - AddQuickEnableChromeFrameWorkItems(
|
| - *installer_state, machine_state,
|
| - chrome_state->uninstall_command().GetProgram(),
|
| - new_version,
|
| - item_list.get());
|
| -
|
| - if (!item_list->Do()) {
|
| - item_list->Rollback();
|
| - status = INSTALL_FAILED;
|
| - } else {
|
| - DCHECK_EQ(FIRST_INSTALL_SUCCESS, status);
|
| - VLOG(1) << "Chrome Frame successfully activated.";
|
| - }
|
| - }
|
| - }
|
| -
|
| - // If quick-enable succeeded, check to see if the EULA has not yet been
|
| - // accepted for the binaries. If this is the case, we must also flip the
|
| - // eulaaccepted bit for them. Otherwise, Google Update would not update
|
| - // Chrome Frame, and that would be bad. Don't flip the EULA bit for Chrome
|
| - // itself, as it will show the EULA on first-run and mark its acceptance
|
| - // accordingly.
|
| - if (!InstallUtil::GetInstallReturnCode(status)) {
|
| - const bool system_level = installer_state->system_install();
|
| - const ProductState* binaries =
|
| - machine_state.GetProductState(system_level,
|
| - BrowserDistribution::CHROME_BINARIES);
|
| - DCHECK(binaries);
|
| - DWORD eula_accepted;
|
| -
|
| - if (binaries != NULL &&
|
| - binaries->GetEulaAccepted(&eula_accepted) &&
|
| - eula_accepted == 0 &&
|
| - !GoogleUpdateSettings::SetEULAConsent(
|
| - machine_state,
|
| - BrowserDistribution::GetSpecificDistribution(
|
| - BrowserDistribution::CHROME_BINARIES),
|
| - true)) {
|
| - LOG(ERROR) << "Failed to set EULA consent for multi-install binaries.";
|
| - }
|
| - }
|
| -
|
| - return status;
|
| -}
|
| -
|
| -} // namespace installer
|
|
|