Chromium Code Reviews| 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 #include <windows.h> | 5 #include <windows.h> |
| 6 #include <msi.h> | 6 #include <msi.h> |
| 7 #include <shellapi.h> | 7 #include <shellapi.h> |
| 8 #include <shlobj.h> | 8 #include <shlobj.h> |
| 9 | 9 |
| 10 #include <string> | 10 #include <string> |
| (...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 152 for (size_t i = 0; i < BrowserDistribution::kNumProductTypes; ++i) { | 152 for (size_t i = 0; i < BrowserDistribution::kNumProductTypes; ++i) { |
| 153 BrowserDistribution::Type type = BrowserDistribution::kProductTypes[i]; | 153 BrowserDistribution::Type type = BrowserDistribution::kProductTypes[i]; |
| 154 if (!installer_state->FindProduct(type)) { | 154 if (!installer_state->FindProduct(type)) { |
| 155 const ProductState* state = | 155 const ProductState* state = |
| 156 original_state.GetProductState(installer_state->system_install(), | 156 original_state.GetProductState(installer_state->system_install(), |
| 157 type); | 157 type); |
| 158 if ((state != NULL) && state->is_multi_install()) { | 158 if ((state != NULL) && state->is_multi_install()) { |
| 159 installer_state->AddProductFromState(type, *state); | 159 installer_state->AddProductFromState(type, *state); |
| 160 VLOG(1) << "Product already installed and must be included: " | 160 VLOG(1) << "Product already installed and must be included: " |
| 161 << BrowserDistribution::GetSpecificDistribution( | 161 << BrowserDistribution::GetSpecificDistribution( |
| 162 type)->GetApplicationName(); | 162 type)->GetBaseAppName(); |
|
grt (UTC plus 2)
2012/06/08 19:54:21
At some point I had started using the shortcut nam
gab
2012/06/11 16:04:40
Done.
| |
| 163 } | 163 } |
| 164 } | 164 } |
| 165 } | 165 } |
| 166 } | 166 } |
| 167 } | 167 } |
| 168 | 168 |
| 169 // This function is called when --rename-chrome-exe option is specified on | 169 // This function is called when --rename-chrome-exe option is specified on |
| 170 // setup.exe command line. This function assumes an in-use update has happened | 170 // setup.exe command line. This function assumes an in-use update has happened |
| 171 // for Chrome so there should be a file called new_chrome.exe on the file | 171 // for Chrome so there should be a file called new_chrome.exe on the file |
| 172 // system and a key called 'opv' in the registry. This function will move | 172 // system and a key called 'opv' in the registry. This function will move |
| (...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 392 BrowserDistribution::CHROME_BROWSER); | 392 BrowserDistribution::CHROME_BROWSER); |
| 393 if (chrome_state != NULL) { | 393 if (chrome_state != NULL) { |
| 394 // Add Chrome to the set of products (making it multi-install in the | 394 // Add Chrome to the set of products (making it multi-install in the |
| 395 // process) so that it is updated, too. | 395 // process) so that it is updated, too. |
| 396 scoped_ptr<Product> multi_chrome(new Product( | 396 scoped_ptr<Product> multi_chrome(new Product( |
| 397 BrowserDistribution::GetSpecificDistribution( | 397 BrowserDistribution::GetSpecificDistribution( |
| 398 BrowserDistribution::CHROME_BROWSER))); | 398 BrowserDistribution::CHROME_BROWSER))); |
| 399 multi_chrome->SetOption(installer::kOptionMultiInstall, true); | 399 multi_chrome->SetOption(installer::kOptionMultiInstall, true); |
| 400 chrome = installer_state->AddProduct(&multi_chrome); | 400 chrome = installer_state->AddProduct(&multi_chrome); |
| 401 VLOG(1) << "Upgrading existing multi-install Chrome browser along with " | 401 VLOG(1) << "Upgrading existing multi-install Chrome browser along with " |
| 402 << chrome_frame->distribution()->GetApplicationName(); | 402 << chrome_frame->distribution()->GetBaseAppName(); |
| 403 } else if (chrome_frame->HasOption(installer::kOptionReadyMode)) { | 403 } else if (chrome_frame->HasOption(installer::kOptionReadyMode)) { |
| 404 // Chrome Frame with ready-mode is to be installed, yet Chrome is | 404 // Chrome Frame with ready-mode is to be installed, yet Chrome is |
| 405 // neither installed nor being installed. Fail. | 405 // neither installed nor being installed. Fail. |
| 406 LOG(ERROR) << "Cannot install Chrome Frame in ready mode without " | 406 LOG(ERROR) << "Cannot install Chrome Frame in ready mode without " |
| 407 "Chrome."; | 407 "Chrome."; |
| 408 *status = installer::READY_MODE_REQUIRES_CHROME; | 408 *status = installer::READY_MODE_REQUIRES_CHROME; |
| 409 installer_state->WriteInstallerResult(*status, | 409 installer_state->WriteInstallerResult(*status, |
| 410 IDS_INSTALL_READY_MODE_REQUIRES_CHROME_BASE, NULL); | 410 IDS_INSTALL_READY_MODE_REQUIRES_CHROME_BASE, NULL); |
| 411 return false; | 411 return false; |
| 412 } | 412 } |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 473 BrowserDistribution* browser_dist = product->distribution(); | 473 BrowserDistribution* browser_dist = product->distribution(); |
| 474 | 474 |
| 475 // Check for an existing installation of the product. | 475 // Check for an existing installation of the product. |
| 476 const ProductState* product_state = | 476 const ProductState* product_state = |
| 477 original_state.GetProductState(system_level, browser_dist->GetType()); | 477 original_state.GetProductState(system_level, browser_dist->GetType()); |
| 478 if (product_state != NULL) { | 478 if (product_state != NULL) { |
| 479 is_first_install = false; | 479 is_first_install = false; |
| 480 // Block downgrades from multi-install to single-install. | 480 // Block downgrades from multi-install to single-install. |
| 481 if (!installer_state->is_multi_install() && | 481 if (!installer_state->is_multi_install() && |
| 482 product_state->is_multi_install()) { | 482 product_state->is_multi_install()) { |
| 483 LOG(ERROR) << "Multi-install " << browser_dist->GetApplicationName() | 483 LOG(ERROR) << "Multi-install " << browser_dist->GetBaseAppName() |
| 484 << " exists; aborting single install."; | 484 << " exists; aborting single install."; |
| 485 *status = installer::MULTI_INSTALLATION_EXISTS; | 485 *status = installer::MULTI_INSTALLATION_EXISTS; |
| 486 installer_state->WriteInstallerResult(*status, | 486 installer_state->WriteInstallerResult(*status, |
| 487 IDS_INSTALL_MULTI_INSTALLATION_EXISTS_BASE, NULL); | 487 IDS_INSTALL_MULTI_INSTALLATION_EXISTS_BASE, NULL); |
| 488 return false; | 488 return false; |
| 489 } | 489 } |
| 490 } | 490 } |
| 491 | 491 |
| 492 // Check to avoid attempting to lay down a user-level installation on top | 492 // Check to avoid attempting to lay down a user-level installation on top |
| 493 // of a system-level one. | 493 // of a system-level one. |
| (...skipping 892 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1386 if (!(installer_state.is_msi() && is_uninstall)) | 1386 if (!(installer_state.is_msi() && is_uninstall)) |
| 1387 // Note that we allow the status installer::UNINSTALL_REQUIRES_REBOOT | 1387 // Note that we allow the status installer::UNINSTALL_REQUIRES_REBOOT |
| 1388 // to pass through, since this is only returned on uninstall which is | 1388 // to pass through, since this is only returned on uninstall which is |
| 1389 // never invoked directly by Google Update. | 1389 // never invoked directly by Google Update. |
| 1390 return_code = InstallUtil::GetInstallReturnCode(install_status); | 1390 return_code = InstallUtil::GetInstallReturnCode(install_status); |
| 1391 | 1391 |
| 1392 VLOG(1) << "Installation complete, returning: " << return_code; | 1392 VLOG(1) << "Installation complete, returning: " << return_code; |
| 1393 | 1393 |
| 1394 return return_code; | 1394 return return_code; |
| 1395 } | 1395 } |
| OLD | NEW |