| 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 29 matching lines...) Expand all Loading... |
| 40 #include "chrome/installer/util/google_update_settings.h" | 40 #include "chrome/installer/util/google_update_settings.h" |
| 41 #include "chrome/installer/util/helper.h" | 41 #include "chrome/installer/util/helper.h" |
| 42 #include "chrome/installer/util/install_util.h" | 42 #include "chrome/installer/util/install_util.h" |
| 43 #include "chrome/installer/util/installation_state.h" | 43 #include "chrome/installer/util/installation_state.h" |
| 44 #include "chrome/installer/util/installer_state.h" | 44 #include "chrome/installer/util/installer_state.h" |
| 45 #include "chrome/installer/util/logging_installer.h" | 45 #include "chrome/installer/util/logging_installer.h" |
| 46 #include "chrome/installer/util/self_cleaning_temp_dir.h" | 46 #include "chrome/installer/util/self_cleaning_temp_dir.h" |
| 47 #include "chrome/installer/util/shell_util.h" | 47 #include "chrome/installer/util/shell_util.h" |
| 48 #include "chrome/installer/util/util_constants.h" | 48 #include "chrome/installer/util/util_constants.h" |
| 49 #include "content/public/common/result_codes.h" | 49 #include "content/public/common/result_codes.h" |
| 50 #include "extensions/common/constants.h" | |
| 51 #include "rlz/lib/rlz_lib.h" | 50 #include "rlz/lib/rlz_lib.h" |
| 52 | 51 |
| 53 using base::win::RegKey; | 52 using base::win::RegKey; |
| 54 | 53 |
| 55 namespace installer { | 54 namespace installer { |
| 56 | 55 |
| 57 namespace { | 56 namespace { |
| 58 | 57 |
| 59 // Avoid leaving behind a Temp dir. If one exists, ask SelfCleaningTempDir to | 58 // Avoid leaving behind a Temp dir. If one exists, ask SelfCleaningTempDir to |
| 60 // clean it up for us. This may involve scheduling it for deletion after | 59 // clean it up for us. This may involve scheduling it for deletion after |
| (...skipping 980 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1041 // Delete Software\Classes\ChromeExt, | 1040 // Delete Software\Classes\ChromeExt, |
| 1042 base::string16 ext_prog_id(ShellUtil::kRegClasses); | 1041 base::string16 ext_prog_id(ShellUtil::kRegClasses); |
| 1043 ext_prog_id.push_back(base::FilePath::kSeparators[0]); | 1042 ext_prog_id.push_back(base::FilePath::kSeparators[0]); |
| 1044 ext_prog_id.append(kChromeExtProgId); | 1043 ext_prog_id.append(kChromeExtProgId); |
| 1045 ext_prog_id.append(suffix); | 1044 ext_prog_id.append(suffix); |
| 1046 InstallUtil::DeleteRegistryKey(roots[i], ext_prog_id); | 1045 InstallUtil::DeleteRegistryKey(roots[i], ext_prog_id); |
| 1047 | 1046 |
| 1048 // Delete Software\Classes\.crx, | 1047 // Delete Software\Classes\.crx, |
| 1049 base::string16 ext_association(ShellUtil::kRegClasses); | 1048 base::string16 ext_association(ShellUtil::kRegClasses); |
| 1050 ext_association.append(L"\\"); | 1049 ext_association.append(L"\\"); |
| 1051 ext_association.append(extensions::kExtensionFileExtension); | 1050 ext_association.append(L".crx"); |
| 1052 InstallUtil::DeleteRegistryKey(roots[i], ext_association); | 1051 InstallUtil::DeleteRegistryKey(roots[i], ext_association); |
| 1053 } | 1052 } |
| 1054 } | 1053 } |
| 1055 | 1054 |
| 1056 void UninstallFirewallRules(BrowserDistribution* dist, | 1055 void UninstallFirewallRules(BrowserDistribution* dist, |
| 1057 const base::FilePath& chrome_exe) { | 1056 const base::FilePath& chrome_exe) { |
| 1058 scoped_ptr<FirewallManager> manager = | 1057 scoped_ptr<FirewallManager> manager = |
| 1059 FirewallManager::Create(dist, chrome_exe); | 1058 FirewallManager::Create(dist, chrome_exe); |
| 1060 if (manager) | 1059 if (manager) |
| 1061 manager->RemoveFirewallRules(); | 1060 manager->RemoveFirewallRules(); |
| (...skipping 377 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1439 // If we need a reboot to continue, schedule the parent directories for | 1438 // If we need a reboot to continue, schedule the parent directories for |
| 1440 // deletion unconditionally. If they are not empty, the session manager | 1439 // deletion unconditionally. If they are not empty, the session manager |
| 1441 // will not delete them on reboot. | 1440 // will not delete them on reboot. |
| 1442 ScheduleParentAndGrandparentForDeletion(target_path); | 1441 ScheduleParentAndGrandparentForDeletion(target_path); |
| 1443 } else if (DeleteChromeDirectoriesIfEmpty(target_path) == DELETE_FAILED) { | 1442 } else if (DeleteChromeDirectoriesIfEmpty(target_path) == DELETE_FAILED) { |
| 1444 *uninstall_status = UNINSTALL_FAILED; | 1443 *uninstall_status = UNINSTALL_FAILED; |
| 1445 } | 1444 } |
| 1446 } | 1445 } |
| 1447 | 1446 |
| 1448 } // namespace installer | 1447 } // namespace installer |
| OLD | NEW |