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

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

Issue 218683013: Remove stale code to delete the metro user data dir. It never shipped. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 9 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
Index: chrome/installer/setup/uninstall.cc
diff --git a/chrome/installer/setup/uninstall.cc b/chrome/installer/setup/uninstall.cc
index d1b67ffbc83fffd74410a75255d97e338d86a55c..0f1376bca64330a0325b63ab2473b4d907fe4c0a 100644
--- a/chrome/installer/setup/uninstall.cc
+++ b/chrome/installer/setup/uninstall.cc
@@ -395,62 +395,50 @@ DeleteResult DeleteEmptyDir(const base::FilePath& path) {
return DELETE_FAILED;
}
-void GetLocalStateFolders(const Product& product,
- std::vector<base::FilePath>* paths) {
+base::FilePath GetLocalStateFolder(const Product& product) {
// Obtain the location of the user profile data.
- product.GetUserDataPaths(paths);
- LOG_IF(ERROR, paths->empty())
+ base::FilePath local_state_folder = product.GetUserDataPath();
+ LOG_IF(ERROR, local_state_folder.empty())
<< "Could not retrieve user's profile directory.";
+
+ return local_state_folder;
}
// Creates a copy of the local state file and returns a path to the copy.
-base::FilePath BackupLocalStateFile(
- const std::vector<base::FilePath>& local_state_folders) {
+base::FilePath BackupLocalStateFile(const base::FilePath& local_state_folder) {
base::FilePath backup;
-
- // Copy the first local state file that is found.
- for (size_t i = 0; i < local_state_folders.size(); ++i) {
- const base::FilePath& local_state_folder = local_state_folders[i];
- base::FilePath state_file(
- local_state_folder.Append(chrome::kLocalStateFilename));
- if (!base::PathExists(state_file))
- continue;
- if (!base::CreateTemporaryFile(&backup))
- LOG(ERROR) << "Failed to create temporary file for Local State.";
- else
- base::CopyFile(state_file, backup);
- break;
- }
+ base::FilePath state_file(
+ local_state_folder.Append(chrome::kLocalStateFilename));
+ if (!base::CreateTemporaryFile(&backup))
+ LOG(ERROR) << "Failed to create temporary file for Local State.";
+ else
+ base::CopyFile(state_file, backup);
return backup;
}
-// Deletes all user data directories for a product.
-DeleteResult DeleteLocalState(
- const std::vector<base::FilePath>& local_state_folders,
- bool schedule_on_failure) {
- if (local_state_folders.empty())
+// Deletes a product's user data directory.
+DeleteResult DeleteLocalState(const base::FilePath& local_state_folder,
gab 2014/04/02 15:16:57 Why is this called DeleteLocalState if it deletes
grt (UTC plus 2) 2014/04/02 16:53:09 It deletes all locally-stored state (which happens
gab 2014/04/02 17:20:14 Yes that's what I meant, sorry for being unclear :
+ bool schedule_on_failure) {
+ if (local_state_folder.empty())
return DELETE_SUCCEEDED;
DeleteResult result = DELETE_SUCCEEDED;
- for (size_t i = 0; i < local_state_folders.size(); ++i) {
- const base::FilePath& user_local_state = local_state_folders[i];
- VLOG(1) << "Deleting user profile " << user_local_state.value();
- if (!base::DeleteFile(user_local_state, true)) {
- LOG(ERROR) << "Failed to delete user profile dir: "
- << user_local_state.value();
- if (schedule_on_failure) {
- ScheduleDirectoryForDeletion(user_local_state);
- result = DELETE_REQUIRES_REBOOT;
- } else {
- result = DELETE_FAILED;
- }
+ VLOG(1) << "Deleting user profile " << local_state_folder.value();
+ if (!base::DeleteFile(local_state_folder, true)) {
+ LOG(ERROR) << "Failed to delete user profile dir: "
+ << local_state_folder.value();
+ if (schedule_on_failure) {
+ ScheduleDirectoryForDeletion(local_state_folder);
+ result = DELETE_REQUIRES_REBOOT;
+ } else {
+ result = DELETE_FAILED;
}
}
if (result == DELETE_REQUIRES_REBOOT) {
- ScheduleParentAndGrandparentForDeletion(local_state_folders[0]);
+ ScheduleParentAndGrandparentForDeletion(local_state_folder);
} else {
- const base::FilePath user_data_dir(local_state_folders[0].DirName());
+ const base::FilePath user_data_dir(local_state_folder.DirName());
if (!user_data_dir.empty() &&
DeleteEmptyDir(user_data_dir) == DELETE_SUCCEEDED) {
const base::FilePath product_dir(user_data_dir.DirName());
@@ -1332,9 +1320,8 @@ InstallStatus UninstallProduct(const InstallationState& original_state,
// When deleting files, we must make sure that we're either a "single"
// (aka non-multi) installation or we are the Chrome Binaries.
- std::vector<base::FilePath> local_state_folders;
- GetLocalStateFolders(product, &local_state_folders);
- base::FilePath backup_state_file(BackupLocalStateFile(local_state_folders));
+ base::FilePath local_state_folder(GetLocalStateFolder(product));
+ base::FilePath backup_state_file(BackupLocalStateFile(local_state_folder));
if (product.is_chrome_app_host()) {
DeleteAppHostFilesAndFolders(installer_state, product_state->version());
@@ -1350,7 +1337,7 @@ InstallStatus UninstallProduct(const InstallationState& original_state,
}
if (delete_profile)
- DeleteLocalState(local_state_folders, product.is_chrome_frame());
+ DeleteLocalState(local_state_folder, product.is_chrome_frame());
if (!force_uninstall) {
VLOG(1) << "Uninstallation complete. Launching post-uninstall operations.";

Powered by Google App Engine
This is Rietveld 408576698