| 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 defines the methods useful for uninstalling Chrome. | 5 // This file defines the methods useful for uninstalling Chrome. |
| 6 | 6 |
| 7 #include "chrome/installer/setup/uninstall.h" | 7 #include "chrome/installer/setup/uninstall.h" |
| 8 | 8 |
| 9 #include "base/file_util.h" | 9 #include "base/file_util.h" |
| 10 #include "base/path_service.h" | 10 #include "base/path_service.h" |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 42 #include "registered_dlls.h" // NOLINT | 42 #include "registered_dlls.h" // NOLINT |
| 43 | 43 |
| 44 using base::win::RegKey; | 44 using base::win::RegKey; |
| 45 using installer::InstallStatus; | 45 using installer::InstallStatus; |
| 46 using installer::MasterPreferences; | 46 using installer::MasterPreferences; |
| 47 | 47 |
| 48 namespace { | 48 namespace { |
| 49 | 49 |
| 50 // Makes appropriate changes to the Google Update "ap" value in the registry. | 50 // Makes appropriate changes to the Google Update "ap" value in the registry. |
| 51 // Specifically, removes the flags associated with this product ("-chrome" or | 51 // Specifically, removes the flags associated with this product ("-chrome" or |
| 52 // "-chromeframe[-CEEE][-readymode]") from the "ap" values for all other | 52 // "-chromeframe[-readymode]") from the "ap" values for all other |
| 53 // installed products and for the multi-installer package. | 53 // installed products and for the multi-installer package. |
| 54 void ProcessGoogleUpdateItems( | 54 void ProcessGoogleUpdateItems( |
| 55 const installer::InstallationState& original_state, | 55 const installer::InstallationState& original_state, |
| 56 const installer::InstallerState& installer_state, | 56 const installer::InstallerState& installer_state, |
| 57 const installer::Product& product) { | 57 const installer::Product& product) { |
| 58 DCHECK(installer_state.is_multi_install()); | 58 DCHECK(installer_state.is_multi_install()); |
| 59 const bool system_level = installer_state.system_install(); | 59 const bool system_level = installer_state.system_install(); |
| 60 BrowserDistribution* distribution = product.distribution(); | 60 BrowserDistribution* distribution = product.distribution(); |
| 61 const HKEY reg_root = installer_state.root_key(); | 61 const HKEY reg_root = installer_state.root_key(); |
| 62 const installer::ProductState* product_state = | 62 const installer::ProductState* product_state = |
| (...skipping 628 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 691 suffix = L""; | 691 suffix = L""; |
| 692 | 692 |
| 693 BrowserDistribution* browser_dist = product.distribution(); | 693 BrowserDistribution* browser_dist = product.distribution(); |
| 694 bool is_chrome = product.is_chrome(); | 694 bool is_chrome = product.is_chrome(); |
| 695 | 695 |
| 696 VLOG(1) << "UninstallProduct: " << browser_dist->GetApplicationName(); | 696 VLOG(1) << "UninstallProduct: " << browser_dist->GetApplicationName(); |
| 697 | 697 |
| 698 if (force_uninstall) { | 698 if (force_uninstall) { |
| 699 // Since --force-uninstall command line option is used, we are going to | 699 // Since --force-uninstall command line option is used, we are going to |
| 700 // do silent uninstall. Try to close all running Chrome instances. | 700 // do silent uninstall. Try to close all running Chrome instances. |
| 701 // NOTE: We don't do this for Chrome Frame or CEEE. | 701 // NOTE: We don't do this for Chrome Frame. |
| 702 if (is_chrome) | 702 if (is_chrome) |
| 703 CloseAllChromeProcesses(); | 703 CloseAllChromeProcesses(); |
| 704 } else if (is_chrome) { | 704 } else if (is_chrome) { |
| 705 // no --force-uninstall so lets show some UI dialog boxes. | 705 // no --force-uninstall so lets show some UI dialog boxes. |
| 706 status = IsChromeActiveOrUserCancelled(installer_state, product); | 706 status = IsChromeActiveOrUserCancelled(installer_state, product); |
| 707 if (status != installer::UNINSTALL_CONFIRMED && | 707 if (status != installer::UNINSTALL_CONFIRMED && |
| 708 status != installer::UNINSTALL_DELETE_PROFILE) | 708 status != installer::UNINSTALL_DELETE_PROFILE) |
| 709 return status; | 709 return status; |
| 710 | 710 |
| 711 // Check if we need admin rights to cleanup HKLM. If we do, try to launch | 711 // Check if we need admin rights to cleanup HKLM. If we do, try to launch |
| (...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 898 | 898 |
| 899 // Try and delete the preserved local state once the post-install | 899 // Try and delete the preserved local state once the post-install |
| 900 // operations are complete. | 900 // operations are complete. |
| 901 if (!backup_state_file.empty()) | 901 if (!backup_state_file.empty()) |
| 902 file_util::Delete(backup_state_file, false); | 902 file_util::Delete(backup_state_file, false); |
| 903 | 903 |
| 904 return ret; | 904 return ret; |
| 905 } | 905 } |
| 906 | 906 |
| 907 } // namespace installer | 907 } // namespace installer |
| OLD | NEW |