Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(91)

Side by Side Diff: chrome/installer/setup/install_worker.cc

Issue 7005019: Put SxS switches back into the rename command. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | chrome/installer/util/chrome_browser_operations.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 <shlobj.h> 10 #include <shlobj.h>
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
137 // for Chrome + all other products (i.e. Chrome Frame) that do not have an 137 // for Chrome + all other products (i.e. Chrome Frame) that do not have an
138 // uninstall entry in the Add/Remove Programs dialog. We skip this processing 138 // uninstall entry in the Add/Remove Programs dialog. We skip this processing
139 // in case of uninstall since this means that Chrome Frame is being 139 // in case of uninstall since this means that Chrome Frame is being
140 // uninstalled, so there's no need to do any looping. 140 // uninstalled, so there's no need to do any looping.
141 if (product.is_chrome() && 141 if (product.is_chrome() &&
142 installer_state.operation() != InstallerState::UNINSTALL) { 142 installer_state.operation() != InstallerState::UNINSTALL) {
143 const Products& products = installer_state.products(); 143 const Products& products = installer_state.products();
144 for (size_t i = 0; i < products.size(); ++i) { 144 for (size_t i = 0; i < products.size(); ++i) {
145 const Product& p = *products[i]; 145 const Product& p = *products[i];
146 if (!p.is_chrome() && !p.ShouldCreateUninstallEntry()) 146 if (!p.is_chrome() && !p.ShouldCreateUninstallEntry())
147 p.AppendProductFlags(&uninstall_arguments); 147 p.AppendUninstallFlags(&uninstall_arguments);
148 } 148 }
149 } 149 }
150 150
151 std::wstring update_state_key(browser_dist->GetStateKey()); 151 std::wstring update_state_key(browser_dist->GetStateKey());
152 install_list->AddCreateRegKeyWorkItem(reg_root, update_state_key); 152 install_list->AddCreateRegKeyWorkItem(reg_root, update_state_key);
153 install_list->AddSetRegValueWorkItem(reg_root, update_state_key, 153 install_list->AddSetRegValueWorkItem(reg_root, update_state_key,
154 installer::kUninstallStringField, installer_path.value(), true); 154 installer::kUninstallStringField, installer_path.value(), true);
155 install_list->AddSetRegValueWorkItem(reg_root, update_state_key, 155 install_list->AddSetRegValueWorkItem(reg_root, update_state_key,
156 installer::kUninstallArgumentsField, 156 installer::kUninstallArgumentsField,
157 uninstall_arguments.command_line_string(), true); 157 uninstall_arguments.command_line_string(), true);
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after
416 new ConditionRunIfFileExists(new_chrome_exe))); 416 new ConditionRunIfFileExists(new_chrome_exe)));
417 in_use_update_work_items->set_log_message("InUseUpdateWorkItemList"); 417 in_use_update_work_items->set_log_message("InUseUpdateWorkItemList");
418 418
419 FilePath installer_path(installer_state.GetInstallerDirectory(new_version) 419 FilePath installer_path(installer_state.GetInstallerDirectory(new_version)
420 .Append(setup_path.BaseName())); 420 .Append(setup_path.BaseName()));
421 421
422 CommandLine rename(installer_path); 422 CommandLine rename(installer_path);
423 rename.AppendSwitch(switches::kRenameChromeExe); 423 rename.AppendSwitch(switches::kRenameChromeExe);
424 if (installer_state.system_install()) 424 if (installer_state.system_install())
425 rename.AppendSwitch(switches::kSystemLevel); 425 rename.AppendSwitch(switches::kSystemLevel);
426 if (installer_state.is_multi_install())
427 rename.AppendSwitch(switches::kMultiInstall);
428 426
429 if (installer_state.verbose_logging()) 427 if (installer_state.verbose_logging())
430 rename.AppendSwitch(switches::kVerboseLogging); 428 rename.AppendSwitch(switches::kVerboseLogging);
431 429
432 std::wstring version_key; 430 std::wstring version_key;
433 for (size_t i = 0; i < products.size(); ++i) { 431 for (size_t i = 0; i < products.size(); ++i) {
434 BrowserDistribution* dist = products[i]->distribution(); 432 BrowserDistribution* dist = products[i]->distribution();
435 version_key = dist->GetVersionKey(); 433 version_key = dist->GetVersionKey();
436 434
437 if (current_version != NULL) { 435 if (current_version != NULL) {
438 in_use_update_work_items->AddSetRegValueWorkItem(root, version_key, 436 in_use_update_work_items->AddSetRegValueWorkItem(root, version_key,
439 google_update::kRegOldVersionField, 437 google_update::kRegOldVersionField,
440 UTF8ToWide(current_version->GetString()), true); 438 UTF8ToWide(current_version->GetString()), true);
441 } 439 }
442 440
443 // Adding this registry entry for all products is overkill. 441 // Adding this registry entry for all products is overkill.
444 // However, as it stands, we don't have a way to know which distribution 442 // However, as it stands, we don't have a way to know which distribution
445 // will check the key and run the command, so we add it for all. The 443 // will check the key and run the command, so we add it for all. The
446 // first to run it will perform the operation and clean up the other 444 // first to run it will perform the operation and clean up the other
447 // values. 445 // values.
446 CommandLine product_rename_cmd(rename);
447 products[i]->AppendRenameFlags(&product_rename_cmd);
448 in_use_update_work_items->AddSetRegValueWorkItem( 448 in_use_update_work_items->AddSetRegValueWorkItem(
449 root, 449 root,
450 version_key, 450 version_key,
451 google_update::kRegRenameCmdField, 451 google_update::kRegRenameCmdField,
452 rename.command_line_string(), 452 product_rename_cmd.command_line_string(),
453 true); 453 true);
454 } 454 }
455 455
456 if (current_version != NULL && installer_state.is_multi_install()) { 456 if (current_version != NULL && installer_state.is_multi_install()) {
457 BrowserDistribution* dist = 457 BrowserDistribution* dist =
458 installer_state.multi_package_binaries_distribution(); 458 installer_state.multi_package_binaries_distribution();
459 in_use_update_work_items->AddSetRegValueWorkItem( 459 in_use_update_work_items->AddSetRegValueWorkItem(
460 root, 460 root,
461 dist->GetVersionKey(), 461 dist->GetVersionKey(),
462 google_update::kRegOldVersionField, 462 google_update::kRegOldVersionField,
(...skipping 403 matching lines...) Expand 10 before | Expand all | Expand 10 after
866 } 866 }
867 867
868 void AppendUninstallCommandLineFlags(const InstallerState& installer_state, 868 void AppendUninstallCommandLineFlags(const InstallerState& installer_state,
869 const Product& product, 869 const Product& product,
870 CommandLine* uninstall_cmd) { 870 CommandLine* uninstall_cmd) {
871 DCHECK(uninstall_cmd); 871 DCHECK(uninstall_cmd);
872 872
873 uninstall_cmd->AppendSwitch(installer::switches::kUninstall); 873 uninstall_cmd->AppendSwitch(installer::switches::kUninstall);
874 874
875 // Append the product-specific uninstall flags. 875 // Append the product-specific uninstall flags.
876 product.AppendProductFlags(uninstall_cmd); 876 product.AppendUninstallFlags(uninstall_cmd);
877 if (installer_state.is_msi()) { 877 if (installer_state.is_msi()) {
878 uninstall_cmd->AppendSwitch(installer::switches::kMsi); 878 uninstall_cmd->AppendSwitch(installer::switches::kMsi);
879 // See comment in uninstall.cc where we check for the kDeleteProfile switch. 879 // See comment in uninstall.cc where we check for the kDeleteProfile switch.
880 if (product.is_chrome_frame()) { 880 if (product.is_chrome_frame()) {
881 uninstall_cmd->AppendSwitch(installer::switches::kDeleteProfile); 881 uninstall_cmd->AppendSwitch(installer::switches::kDeleteProfile);
882 } 882 }
883 } 883 }
884 if (installer_state.system_install()) 884 if (installer_state.system_install())
885 uninstall_cmd->AppendSwitch(installer::switches::kSystemLevel); 885 uninstall_cmd->AppendSwitch(installer::switches::kSystemLevel);
886 if (installer_state.verbose_logging()) 886 if (installer_state.verbose_logging())
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
1038 } else { 1038 } else {
1039 DCHECK(operation == REMOVE_COMMAND); 1039 DCHECK(operation == REMOVE_COMMAND);
1040 work_item_list->AddDeleteRegKeyWorkItem(installer_state.root_key(), 1040 work_item_list->AddDeleteRegKeyWorkItem(installer_state.root_key(),
1041 cmd_key)->set_log_message( 1041 cmd_key)->set_log_message(
1042 "removing quick-enable-cf command"); 1042 "removing quick-enable-cf command");
1043 } 1043 }
1044 } 1044 }
1045 } 1045 }
1046 1046
1047 } // namespace installer 1047 } // namespace installer
OLDNEW
« no previous file with comments | « no previous file | chrome/installer/util/chrome_browser_operations.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698