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 1213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1224 | 1224 |
1225 ProcessDelegateExecuteWorkItems(installer_state, product); | 1225 ProcessDelegateExecuteWorkItems(installer_state, product); |
1226 | 1226 |
1227 ProcessOnOsUpgradeWorkItems(installer_state, product); | 1227 ProcessOnOsUpgradeWorkItems(installer_state, product); |
1228 | 1228 |
1229 UninstallActiveSetupEntries(installer_state, product); | 1229 UninstallActiveSetupEntries(installer_state, product); |
1230 | 1230 |
1231 // Notify the shell that associations have changed since Chrome was likely | 1231 // Notify the shell that associations have changed since Chrome was likely |
1232 // unregistered. | 1232 // unregistered. |
1233 SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, NULL, NULL); | 1233 SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, NULL, NULL); |
1234 | |
1235 // TODO(huangs): Implement actual migration code and remove the hack below. | |
1236 // If the deprecated stand-alone App Launcher is absent, uninstall the | |
1237 // "shadow" App launcher created. | |
1238 if (original_state.GetProductState(false, | |
grt (UTC plus 2)
2013/05/07 20:52:02
I think you want simply:
if (installer_state.i
grt (UTC plus 2)
2013/05/07 20:57:30
As discussed in person, this suggesting isn't quit
huangs
2013/05/08 01:22:02
Changed how existing App Launcher is detected; upd
huangs
2013/05/08 01:22:02
Also added check for multi-install, to prevent use
| |
1239 BrowserDistribution::CHROME_APP_HOST)) { | |
1240 BrowserDistribution* shadow_app_launcher_dist = | |
1241 BrowserDistribution::GetSpecificDistribution( | |
1242 BrowserDistribution::CHROME_APP_HOST); | |
1243 InstallUtil::DeleteRegistryKey(reg_root, | |
1244 shadow_app_launcher_dist->GetVersionKey()); | |
1245 } | |
1234 } | 1246 } |
1235 | 1247 |
1236 if (product.is_chrome_frame()) { | 1248 if (product.is_chrome_frame()) { |
1237 ProcessChromeFrameWorkItems(original_state, installer_state, setup_path, | 1249 ProcessChromeFrameWorkItems(original_state, installer_state, setup_path, |
1238 product); | 1250 product); |
1239 } | 1251 } |
1240 | 1252 |
1241 if (installer_state.is_multi_install()) { | 1253 if (installer_state.is_multi_install()) { |
1242 ProcessGoogleUpdateItems(original_state, installer_state, product); | 1254 ProcessGoogleUpdateItems(original_state, installer_state, product); |
1243 | 1255 |
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1409 // deletion unconditionally. If they are not empty, the session manager | 1421 // deletion unconditionally. If they are not empty, the session manager |
1410 // will not delete them on reboot. | 1422 // will not delete them on reboot. |
1411 ScheduleParentAndGrandparentForDeletion(target_path); | 1423 ScheduleParentAndGrandparentForDeletion(target_path); |
1412 } else if (DeleteApplicationProductAndVendorDirectories(target_path) == | 1424 } else if (DeleteApplicationProductAndVendorDirectories(target_path) == |
1413 installer::DELETE_FAILED) { | 1425 installer::DELETE_FAILED) { |
1414 *uninstall_status = installer::UNINSTALL_FAILED; | 1426 *uninstall_status = installer::UNINSTALL_FAILED; |
1415 } | 1427 } |
1416 } | 1428 } |
1417 | 1429 |
1418 } // namespace installer | 1430 } // namespace installer |
OLD | NEW |