| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 // | 4 // |
| 5 // This file contains the definitions of the installer functions that build | 5 // This file contains the definitions of the installer functions that build |
| 6 // the WorkItemList used to install the application. | 6 // the WorkItemList used to install the application. |
| 7 | 7 |
| 8 #include "chrome/installer/setup/install_worker.h" | 8 #include "chrome/installer/setup/install_worker.h" |
| 9 | 9 |
| 10 #include <windows.h> // NOLINT | 10 #include <windows.h> // NOLINT |
| (...skipping 409 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 420 true); | 420 true); |
| 421 install_list->AddSetRegValueWorkItem( | 421 install_list->AddSetRegValueWorkItem( |
| 422 reg_root, | 422 reg_root, |
| 423 update_state_key, | 423 update_state_key, |
| 424 KEY_WOW64_32KEY, | 424 KEY_WOW64_32KEY, |
| 425 installer::kUninstallArgumentsField, | 425 installer::kUninstallArgumentsField, |
| 426 uninstall_arguments.GetCommandLineString(), | 426 uninstall_arguments.GetCommandLineString(), |
| 427 true); | 427 true); |
| 428 | 428 |
| 429 // MSI installations will manage their own uninstall shortcuts. | 429 // MSI installations will manage their own uninstall shortcuts. |
| 430 if (!installer_state.is_msi() && product.ShouldCreateUninstallEntry()) { | 430 if (!installer_state.is_msi()) { |
| 431 // We need to quote the command line for the Add/Remove Programs dialog. | 431 // We need to quote the command line for the Add/Remove Programs dialog. |
| 432 base::CommandLine quoted_uninstall_cmd(installer_path); | 432 base::CommandLine quoted_uninstall_cmd(installer_path); |
| 433 DCHECK_EQ(quoted_uninstall_cmd.GetCommandLineString()[0], '"'); | 433 DCHECK_EQ(quoted_uninstall_cmd.GetCommandLineString()[0], '"'); |
| 434 quoted_uninstall_cmd.AppendArguments(uninstall_arguments, false); | 434 quoted_uninstall_cmd.AppendArguments(uninstall_arguments, false); |
| 435 | 435 |
| 436 base::string16 uninstall_reg = browser_dist->GetUninstallRegPath(); | 436 base::string16 uninstall_reg = browser_dist->GetUninstallRegPath(); |
| 437 install_list->AddCreateRegKeyWorkItem( | 437 install_list->AddCreateRegKeyWorkItem( |
| 438 reg_root, uninstall_reg, KEY_WOW64_32KEY); | 438 reg_root, uninstall_reg, KEY_WOW64_32KEY); |
| 439 install_list->AddSetRegValueWorkItem(reg_root, | 439 install_list->AddSetRegValueWorkItem(reg_root, |
| 440 uninstall_reg, | 440 uninstall_reg, |
| (...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 662 // If we're told that we're an MSI install, make sure to set the marker | 662 // If we're told that we're an MSI install, make sure to set the marker |
| 663 // in the client state key so that future updates do the right thing. | 663 // in the client state key so that future updates do the right thing. |
| 664 if (installer_state.is_msi()) { | 664 if (installer_state.is_msi()) { |
| 665 const Product& product = installer_state.product(); | 665 const Product& product = installer_state.product(); |
| 666 AddSetMsiMarkerWorkItem(installer_state, product.distribution(), true, | 666 AddSetMsiMarkerWorkItem(installer_state, product.distribution(), true, |
| 667 post_install_task_list); | 667 post_install_task_list); |
| 668 | 668 |
| 669 // We want MSI installs to take over the Add/Remove Programs entry. Make a | 669 // We want MSI installs to take over the Add/Remove Programs entry. Make a |
| 670 // best-effort attempt to delete any entry left over from previous non-MSI | 670 // best-effort attempt to delete any entry left over from previous non-MSI |
| 671 // installations for the same type of install (system or per user). | 671 // installations for the same type of install (system or per user). |
| 672 if (product.ShouldCreateUninstallEntry()) { | 672 AddDeleteUninstallEntryForMSIWorkItems(installer_state, product, |
| 673 AddDeleteUninstallEntryForMSIWorkItems(installer_state, product, | 673 post_install_task_list); |
| 674 post_install_task_list); | |
| 675 } | |
| 676 } | 674 } |
| 677 | 675 |
| 678 return true; | 676 return true; |
| 679 } | 677 } |
| 680 | 678 |
| 681 void AddInstallWorkItems(const InstallationState& original_state, | 679 void AddInstallWorkItems(const InstallationState& original_state, |
| 682 const InstallerState& installer_state, | 680 const InstallerState& installer_state, |
| 683 const base::FilePath& setup_path, | 681 const base::FilePath& setup_path, |
| 684 const base::FilePath& archive_path, | 682 const base::FilePath& archive_path, |
| 685 const base::FilePath& src_path, | 683 const base::FilePath& src_path, |
| (...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 899 // Log everything for now. | 897 // Log everything for now. |
| 900 cmd_line.AppendSwitch(installer::switches::kVerboseLogging); | 898 cmd_line.AppendSwitch(installer::switches::kVerboseLogging); |
| 901 | 899 |
| 902 AppCommand cmd(cmd_line.GetCommandLineString()); | 900 AppCommand cmd(cmd_line.GetCommandLineString()); |
| 903 cmd.set_is_auto_run_on_os_upgrade(true); | 901 cmd.set_is_auto_run_on_os_upgrade(true); |
| 904 cmd.AddWorkItems(installer_state.root_key(), cmd_key, install_list); | 902 cmd.AddWorkItems(installer_state.root_key(), cmd_key, install_list); |
| 905 } | 903 } |
| 906 } | 904 } |
| 907 | 905 |
| 908 } // namespace installer | 906 } // namespace installer |
| OLD | NEW |