Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(10266)

Unified Diff: chrome/installer/setup/uninstall.cc

Issue 11776003: Neglected nits from https://codereview.chromium.org/11412015/ (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 12 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/installer/setup/uninstall.cc
diff --git a/chrome/installer/setup/uninstall.cc b/chrome/installer/setup/uninstall.cc
index a85890b52ed6f4ca1248e289e7ea68488a2ad760..552a553b195f9af3af4bdcc065b9820c7e78bcbd 100644
--- a/chrome/installer/setup/uninstall.cc
+++ b/chrome/installer/setup/uninstall.cc
@@ -215,12 +215,15 @@ void CheckShouldRemoveSetupAndArchive(
if (!installer_state.is_multi_install()) {
VLOG(1) << "Removing all installer files for a non-multi installation.";
} else {
+ // Loop through all known products...
for (size_t i = 0; i < BrowserDistribution::NUM_TYPES; ++i) {
BrowserDistribution::Type dist_type =
static_cast<BrowserDistribution::Type>(i);
const installer::ProductState* product_state =
original_state.GetProductState(
installer_state.system_install(), dist_type);
+ // If the product is installed, in multi mode, and is not part of the
+ // active uninstallation...
if (product_state && product_state->is_multi_install() &&
!installer_state.FindProduct(dist_type)) {
// setup.exe will not be removed as there is a remaining multi-install
@@ -247,11 +250,11 @@ void CheckShouldRemoveSetupAndArchive(
// Removes all files from the installer directory, leaving setup.exe iff
// |remove_setup| is false.
// Returns false in case of an error.
-bool RemoveInstallerFiles(const FilePath& install_directory,
+bool RemoveInstallerFiles(const FilePath& installer_directory,
bool remove_setup) {
using file_util::FileEnumerator;
FileEnumerator file_enumerator(
- install_directory,
+ installer_directory,
false,
FileEnumerator::FILES | FileEnumerator::DIRECTORIES);
bool success = true;
@@ -265,7 +268,7 @@ bool RemoveInstallerFiles(const FilePath& install_directory,
if (!remove_setup && to_delete.BaseName() == setup_exe_base_name)
continue;
- VLOG(1) << "Deleting install path " << to_delete.value();
+ VLOG(1) << "Deleting installer path " << to_delete.value();
if (!file_util::Delete(to_delete, true)) {
LOG(ERROR) << "Failed to delete path: " << to_delete.value();
success = false;
@@ -541,7 +544,7 @@ DeleteResult DeleteAppHostFilesAndFolders(const InstallerState& installer_state,
}
DeleteResult DeleteChromeFilesAndFolders(const InstallerState& installer_state,
- const FilePath& installer_path) {
+ const FilePath& setup_exe) {
const FilePath& target_path = installer_state.target_path();
if (target_path.empty()) {
LOG(ERROR) << "DeleteChromeFilesAndFolders: no installation destination "
@@ -554,8 +557,8 @@ DeleteResult DeleteChromeFilesAndFolders(const InstallerState& installer_state,
DeleteResult result = DELETE_SUCCEEDED;
FilePath installer_directory;
- if (target_path.IsParent(installer_path))
- installer_directory = installer_path.DirName();
+ if (target_path.IsParent(setup_exe))
+ installer_directory = setup_exe.DirName();
// Enumerate all the files in target_path recursively (breadth-first).
// We delete a file or folder unless it is a parent/child of the installer
@@ -1304,8 +1307,10 @@ InstallStatus UninstallProduct(const InstallationState& original_state,
DeleteAppHostFilesAndFolders(installer_state, product_state->version());
} else if (!installer_state.is_multi_install() ||
product.is_chrome_binaries()) {
+ FilePath setup_exe(cmd_line.GetProgram());
+ file_util::AbsolutePath(&setup_exe);
DeleteResult delete_result = DeleteChromeFilesAndFolders(
- installer_state, cmd_line.GetProgram());
+ installer_state, setup_exe);
if (delete_result == DELETE_FAILED) {
ret = installer::UNINSTALL_FAILED;
} else if (delete_result == DELETE_REQUIRES_REBOOT) {
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698