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 27 matching lines...) Expand all Loading... |
38 #include "chrome/installer/util/google_update_settings.h" | 38 #include "chrome/installer/util/google_update_settings.h" |
39 #include "chrome/installer/util/helper.h" | 39 #include "chrome/installer/util/helper.h" |
40 #include "chrome/installer/util/install_util.h" | 40 #include "chrome/installer/util/install_util.h" |
41 #include "chrome/installer/util/installation_state.h" | 41 #include "chrome/installer/util/installation_state.h" |
42 #include "chrome/installer/util/installer_state.h" | 42 #include "chrome/installer/util/installer_state.h" |
43 #include "chrome/installer/util/logging_installer.h" | 43 #include "chrome/installer/util/logging_installer.h" |
44 #include "chrome/installer/util/self_cleaning_temp_dir.h" | 44 #include "chrome/installer/util/self_cleaning_temp_dir.h" |
45 #include "chrome/installer/util/shell_util.h" | 45 #include "chrome/installer/util/shell_util.h" |
46 #include "chrome/installer/util/util_constants.h" | 46 #include "chrome/installer/util/util_constants.h" |
47 #include "content/public/common/result_codes.h" | 47 #include "content/public/common/result_codes.h" |
| 48 #include "extensions/common/constants.h" |
48 #include "rlz/lib/rlz_lib.h" | 49 #include "rlz/lib/rlz_lib.h" |
49 | 50 |
50 // Build-time generated include file. | 51 // Build-time generated include file. |
51 #include "registered_dlls.h" // NOLINT | 52 #include "registered_dlls.h" // NOLINT |
52 | 53 |
53 using base::win::RegKey; | 54 using base::win::RegKey; |
54 using installer::InstallStatus; | 55 using installer::InstallStatus; |
55 using installer::MasterPreferences; | 56 using installer::MasterPreferences; |
56 | 57 |
57 namespace { | 58 namespace { |
(...skipping 843 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
901 // Delete Software\Classes\ChromeExt, | 902 // Delete Software\Classes\ChromeExt, |
902 string16 ext_prog_id(ShellUtil::kRegClasses); | 903 string16 ext_prog_id(ShellUtil::kRegClasses); |
903 ext_prog_id.push_back(base::FilePath::kSeparators[0]); | 904 ext_prog_id.push_back(base::FilePath::kSeparators[0]); |
904 ext_prog_id.append(kChromeExtProgId); | 905 ext_prog_id.append(kChromeExtProgId); |
905 ext_prog_id.append(suffix); | 906 ext_prog_id.append(suffix); |
906 InstallUtil::DeleteRegistryKey(roots[i], ext_prog_id); | 907 InstallUtil::DeleteRegistryKey(roots[i], ext_prog_id); |
907 | 908 |
908 // Delete Software\Classes\.crx, | 909 // Delete Software\Classes\.crx, |
909 string16 ext_association(ShellUtil::kRegClasses); | 910 string16 ext_association(ShellUtil::kRegClasses); |
910 ext_association.append(L"\\"); | 911 ext_association.append(L"\\"); |
911 ext_association.append(chrome::kExtensionFileExtension); | 912 ext_association.append(extensions::kExtensionFileExtension); |
912 InstallUtil::DeleteRegistryKey(roots[i], ext_association); | 913 InstallUtil::DeleteRegistryKey(roots[i], ext_association); |
913 } | 914 } |
914 } | 915 } |
915 | 916 |
916 // Builds and executes a work item list to remove DelegateExecute verb handler | 917 // Builds and executes a work item list to remove DelegateExecute verb handler |
917 // work items for |product|. This will be a noop for products whose | 918 // work items for |product|. This will be a noop for products whose |
918 // corresponding BrowserDistribution implementations do not publish a CLSID via | 919 // corresponding BrowserDistribution implementations do not publish a CLSID via |
919 // GetCommandExecuteImplClsid. | 920 // GetCommandExecuteImplClsid. |
920 bool ProcessDelegateExecuteWorkItems(const InstallerState& installer_state, | 921 bool ProcessDelegateExecuteWorkItems(const InstallerState& installer_state, |
921 const Product& product) { | 922 const Product& product) { |
(...skipping 504 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1426 // deletion unconditionally. If they are not empty, the session manager | 1427 // deletion unconditionally. If they are not empty, the session manager |
1427 // will not delete them on reboot. | 1428 // will not delete them on reboot. |
1428 ScheduleParentAndGrandparentForDeletion(target_path); | 1429 ScheduleParentAndGrandparentForDeletion(target_path); |
1429 } else if (DeleteApplicationProductAndVendorDirectories(target_path) == | 1430 } else if (DeleteApplicationProductAndVendorDirectories(target_path) == |
1430 installer::DELETE_FAILED) { | 1431 installer::DELETE_FAILED) { |
1431 *uninstall_status = installer::UNINSTALL_FAILED; | 1432 *uninstall_status = installer::UNINSTALL_FAILED; |
1432 } | 1433 } |
1433 } | 1434 } |
1434 | 1435 |
1435 } // namespace installer | 1436 } // namespace installer |
OLD | NEW |