Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 412 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 423 { | 423 { |
| 424 scoped_ptr<WorkItemList> in_use_update_work_items( | 424 scoped_ptr<WorkItemList> in_use_update_work_items( |
| 425 WorkItem::CreateConditionalWorkItemList( | 425 WorkItem::CreateConditionalWorkItemList( |
| 426 new ConditionRunIfFileExists(new_chrome_exe))); | 426 new ConditionRunIfFileExists(new_chrome_exe))); |
| 427 in_use_update_work_items->set_log_message("InUseUpdateWorkItemList"); | 427 in_use_update_work_items->set_log_message("InUseUpdateWorkItemList"); |
| 428 | 428 |
| 429 FilePath installer_path(installer_state.GetInstallerDirectory(new_version) | 429 FilePath installer_path(installer_state.GetInstallerDirectory(new_version) |
| 430 .Append(setup_path.BaseName())); | 430 .Append(setup_path.BaseName())); |
| 431 | 431 |
| 432 CommandLine rename(installer_path); | 432 CommandLine rename(installer_path); |
| 433 rename.AppendSwitch(installer::switches::kRenameChromeExe); | 433 rename.AppendSwitch(switches::kRenameChromeExe); |
| 434 if (installer_state.system_install()) | 434 if (installer_state.system_install()) |
| 435 rename.AppendSwitch(installer::switches::kSystemLevel); | 435 rename.AppendSwitch(switches::kSystemLevel); |
| 436 | 436 |
| 437 if (InstallUtil::IsChromeSxSProcess()) | 437 if (installer_state.verbose_logging()) |
| 438 rename.AppendSwitch(installer::switches::kChromeSxS); | 438 rename.AppendSwitch(switches::kVerboseLogging); |
|
tommi (sloooow) - chröme
2011/02/18 18:23:38
why are we removing the sxs and multi-install swit
grt (UTC plus 2)
2011/02/18 18:30:06
They're added by the ProductOperations subclasses.
|
tommi (sloooow) - chröme
2011/02/18 18:23:38
nice
grt (UTC plus 2)
2011/02/18 18:30:06
Thanks.
|
| 439 | |
| 440 if (installer_state.is_multi_install()) | |
| 441 rename.AppendSwitch(installer::switches::kMultiInstall); | |
| 442 | 439 |
| 443 std::wstring version_key; | 440 std::wstring version_key; |
| 444 for (size_t i = 0; i < products.size(); ++i) { | 441 for (size_t i = 0; i < products.size(); ++i) { |
| 445 BrowserDistribution* dist = products[i]->distribution(); | 442 BrowserDistribution* dist = products[i]->distribution(); |
| 446 version_key = dist->GetVersionKey(); | 443 version_key = dist->GetVersionKey(); |
| 447 | 444 |
| 448 if (current_version != NULL) { | 445 if (current_version != NULL) { |
| 449 in_use_update_work_items->AddSetRegValueWorkItem(root, version_key, | 446 in_use_update_work_items->AddSetRegValueWorkItem(root, version_key, |
| 450 google_update::kRegOldVersionField, | 447 google_update::kRegOldVersionField, |
| 451 UTF8ToWide(current_version->GetString()), true); | 448 UTF8ToWide(current_version->GetString()), true); |
| 452 } | 449 } |
| 453 | 450 |
| 454 // Adding this registry entry for all products is overkill. | 451 // Adding this registry entry for all products is overkill. |
| 455 // However, as it stands, we don't have a way to know which distribution | 452 // However, as it stands, we don't have a way to know which distribution |
| 456 // will check the key and run the command, so we add it for all. | 453 // will check the key and run the command, so we add it for all. |
| 457 // After the first run, the subsequent runs should just be noops. | 454 // After the first run, the subsequent runs should just be noops. |
| 458 // (see Upgrade::SwapNewChromeExeIfPresent). | 455 // (see Upgrade::SwapNewChromeExeIfPresent). |
| 456 CommandLine product_rename_cmd(rename); | |
| 457 products[i]->AppendProductFlags(&product_rename_cmd); | |
| 459 in_use_update_work_items->AddSetRegValueWorkItem( | 458 in_use_update_work_items->AddSetRegValueWorkItem( |
| 460 root, | 459 root, |
| 461 version_key, | 460 version_key, |
| 462 google_update::kRegRenameCmdField, | 461 google_update::kRegRenameCmdField, |
| 463 rename.command_line_string(), | 462 product_rename_cmd.command_line_string(), |
| 464 true); | 463 true); |
| 465 } | 464 } |
| 466 | 465 |
| 467 if (current_version != NULL && installer_state.is_multi_install()) { | 466 if (current_version != NULL && installer_state.is_multi_install()) { |
| 468 BrowserDistribution* dist = | 467 BrowserDistribution* dist = |
| 469 installer_state.multi_package_binaries_distribution(); | 468 installer_state.multi_package_binaries_distribution(); |
| 470 in_use_update_work_items->AddSetRegValueWorkItem( | 469 in_use_update_work_items->AddSetRegValueWorkItem( |
| 471 root, | 470 root, |
| 472 dist->GetVersionKey(), | 471 dist->GetVersionKey(), |
| 473 google_update::kRegOldVersionField, | 472 google_update::kRegOldVersionField, |
| (...skipping 426 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 900 VLOG(1) << kIERefreshPolicy << " not supported."; | 899 VLOG(1) << kIERefreshPolicy << " not supported."; |
| 901 } | 900 } |
| 902 | 901 |
| 903 FreeLibrary(ieframe); | 902 FreeLibrary(ieframe); |
| 904 } else { | 903 } else { |
| 905 VLOG(1) << "Cannot load " << kIEFrameDll; | 904 VLOG(1) << "Cannot load " << kIEFrameDll; |
| 906 } | 905 } |
| 907 } | 906 } |
| 908 | 907 |
| 909 } // namespace installer | 908 } // namespace installer |
| OLD | NEW |