| 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 424 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 435 ScheduleDirectoryForDeletion(user_data_dir); | 435 ScheduleDirectoryForDeletion(user_data_dir); |
| 436 result = DELETE_REQUIRES_REBOOT; | 436 result = DELETE_REQUIRES_REBOOT; |
| 437 } else { | 437 } else { |
| 438 result = DELETE_FAILED; | 438 result = DELETE_FAILED; |
| 439 } | 439 } |
| 440 } | 440 } |
| 441 | 441 |
| 442 if (result == DELETE_REQUIRES_REBOOT) { | 442 if (result == DELETE_REQUIRES_REBOOT) { |
| 443 ScheduleParentAndGrandparentForDeletion(user_data_dir); | 443 ScheduleParentAndGrandparentForDeletion(user_data_dir); |
| 444 } else { | 444 } else { |
| 445 const base::FilePath user_data_dir(user_data_dir.DirName()); | 445 const base::FilePath product_dir1(user_data_dir.DirName()); |
| 446 if (!user_data_dir.empty() && | 446 if (!product_dir1.empty() && |
| 447 DeleteEmptyDir(user_data_dir) == DELETE_SUCCEEDED) { | 447 DeleteEmptyDir(product_dir1) == DELETE_SUCCEEDED) { |
| 448 const base::FilePath product_dir(user_data_dir.DirName()); | 448 const base::FilePath product_dir2(product_dir1.DirName()); |
| 449 if (!product_dir.empty()) | 449 if (!product_dir2.empty()) |
| 450 DeleteEmptyDir(product_dir); | 450 DeleteEmptyDir(product_dir2); |
| 451 } | 451 } |
| 452 } | 452 } |
| 453 | 453 |
| 454 return result; | 454 return result; |
| 455 } | 455 } |
| 456 | 456 |
| 457 // Moves setup to a temporary file, outside of the install folder. Also attempts | 457 // Moves setup to a temporary file, outside of the install folder. Also attempts |
| 458 // to change the current directory to the TMP directory. On Windows, each | 458 // to change the current directory to the TMP directory. On Windows, each |
| 459 // process has a handle to its CWD. If setup.exe's CWD happens to be within the | 459 // process has a handle to its CWD. If setup.exe's CWD happens to be within the |
| 460 // install directory, deletion will fail as a result of the open handle. | 460 // install directory, deletion will fail as a result of the open handle. |
| (...skipping 1013 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1474 // If we need a reboot to continue, schedule the parent directories for | 1474 // If we need a reboot to continue, schedule the parent directories for |
| 1475 // deletion unconditionally. If they are not empty, the session manager | 1475 // deletion unconditionally. If they are not empty, the session manager |
| 1476 // will not delete them on reboot. | 1476 // will not delete them on reboot. |
| 1477 ScheduleParentAndGrandparentForDeletion(target_path); | 1477 ScheduleParentAndGrandparentForDeletion(target_path); |
| 1478 } else if (DeleteChromeDirectoriesIfEmpty(target_path) == DELETE_FAILED) { | 1478 } else if (DeleteChromeDirectoriesIfEmpty(target_path) == DELETE_FAILED) { |
| 1479 *uninstall_status = UNINSTALL_FAILED; | 1479 *uninstall_status = UNINSTALL_FAILED; |
| 1480 } | 1480 } |
| 1481 } | 1481 } |
| 1482 | 1482 |
| 1483 } // namespace installer | 1483 } // namespace installer |
| OLD | NEW |