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 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 <windows.h> | 9 #include <windows.h> |
10 | 10 |
(...skipping 746 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
757 InstallStatus* exit_code) { | 757 InstallStatus* exit_code) { |
758 DCHECK(exit_code); | 758 DCHECK(exit_code); |
759 if (!dist->CanSetAsDefault()) { | 759 if (!dist->CanSetAsDefault()) { |
760 // We should have never set those keys. | 760 // We should have never set those keys. |
761 return true; | 761 return true; |
762 } | 762 } |
763 | 763 |
764 base::FilePath chrome_exe(installer_state.target_path().Append(kChromeExe)); | 764 base::FilePath chrome_exe(installer_state.target_path().Append(kChromeExe)); |
765 | 765 |
766 // Delete Software\Classes\ChromeHTML. | 766 // Delete Software\Classes\ChromeHTML. |
767 // For user-level installs we now only write these entries in HKCU, but since | |
768 // old installs did install them to HKLM we will try to remove them in HKLM as | |
769 // well anyways. | |
770 const string16 prog_id(ShellUtil::kChromeHTMLProgId + browser_entry_suffix); | 767 const string16 prog_id(ShellUtil::kChromeHTMLProgId + browser_entry_suffix); |
771 string16 reg_prog_id(ShellUtil::kRegClasses); | 768 string16 reg_prog_id(ShellUtil::kRegClasses); |
772 reg_prog_id.push_back(base::FilePath::kSeparators[0]); | 769 reg_prog_id.push_back(base::FilePath::kSeparators[0]); |
773 reg_prog_id.append(prog_id); | 770 reg_prog_id.append(prog_id); |
774 InstallUtil::DeleteRegistryKey(root, reg_prog_id); | 771 InstallUtil::DeleteRegistryKey(root, reg_prog_id); |
775 | 772 |
776 // Delete Software\Classes\Chrome (Same comment as above applies for this too) | 773 // Delete Software\Classes\Chrome. |
777 string16 reg_app_id(ShellUtil::kRegClasses); | 774 string16 reg_app_id(ShellUtil::kRegClasses); |
778 reg_app_id.push_back(base::FilePath::kSeparators[0]); | 775 reg_app_id.push_back(base::FilePath::kSeparators[0]); |
779 // Append the requested suffix manually here (as ShellUtil::GetBrowserModelId | 776 // Append the requested suffix manually here (as ShellUtil::GetBrowserModelId |
780 // would otherwise try to figure out the currently installed suffix). | 777 // would otherwise try to figure out the currently installed suffix). |
781 reg_app_id.append(dist->GetBaseAppId() + browser_entry_suffix); | 778 reg_app_id.append(dist->GetBaseAppId() + browser_entry_suffix); |
782 InstallUtil::DeleteRegistryKey(root, reg_app_id); | 779 InstallUtil::DeleteRegistryKey(root, reg_app_id); |
783 | 780 |
784 // Delete all Start Menu Internet registrations that refer to this Chrome. | 781 // Delete all Start Menu Internet registrations that refer to this Chrome. |
785 { | 782 { |
786 using base::win::RegistryKeyIterator; | 783 using base::win::RegistryKeyIterator; |
(...skipping 632 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1419 // deletion unconditionally. If they are not empty, the session manager | 1416 // deletion unconditionally. If they are not empty, the session manager |
1420 // will not delete them on reboot. | 1417 // will not delete them on reboot. |
1421 ScheduleParentAndGrandparentForDeletion(target_path); | 1418 ScheduleParentAndGrandparentForDeletion(target_path); |
1422 } else if (DeleteApplicationProductAndVendorDirectories(target_path) == | 1419 } else if (DeleteApplicationProductAndVendorDirectories(target_path) == |
1423 installer::DELETE_FAILED) { | 1420 installer::DELETE_FAILED) { |
1424 *uninstall_status = installer::UNINSTALL_FAILED; | 1421 *uninstall_status = installer::UNINSTALL_FAILED; |
1425 } | 1422 } |
1426 } | 1423 } |
1427 | 1424 |
1428 } // namespace installer | 1425 } // namespace installer |
OLD | NEW |