| 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 <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 554 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 565 string16(L".DEFAULT\\").append( | 565 string16(L".DEFAULT\\").append( |
| 566 ShellUtil::kRegStartMenuInternet).c_str(), | 566 ShellUtil::kRegStartMenuInternet).c_str(), |
| 567 L"", InstallUtil::ValueEquals(client_name)); | 567 L"", InstallUtil::ValueEquals(client_name)); |
| 568 } | 568 } |
| 569 } | 569 } |
| 570 } | 570 } |
| 571 } | 571 } |
| 572 | 572 |
| 573 // Delete Software\RegisteredApplications\Chromium | 573 // Delete Software\RegisteredApplications\Chromium |
| 574 InstallUtil::DeleteRegistryValue(root, ShellUtil::kRegRegisteredApplications, | 574 InstallUtil::DeleteRegistryValue(root, ShellUtil::kRegRegisteredApplications, |
| 575 dist->GetApplicationName() + browser_entry_suffix); | 575 dist->GetBaseAppName() + browser_entry_suffix); |
| 576 | 576 |
| 577 // Delete Software\Classes\Applications\chrome.exe | 577 // Delete Software\Classes\Applications\chrome.exe |
| 578 string16 app_key(ShellUtil::kRegClasses); | 578 string16 app_key(ShellUtil::kRegClasses); |
| 579 app_key.push_back(FilePath::kSeparators[0]); | 579 app_key.push_back(FilePath::kSeparators[0]); |
| 580 app_key.append(L"Applications"); | 580 app_key.append(L"Applications"); |
| 581 app_key.push_back(FilePath::kSeparators[0]); | 581 app_key.push_back(FilePath::kSeparators[0]); |
| 582 app_key.append(installer::kChromeExe); | 582 app_key.append(installer::kChromeExe); |
| 583 InstallUtil::DeleteRegistryKey(root, app_key); | 583 InstallUtil::DeleteRegistryKey(root, app_key); |
| 584 | 584 |
| 585 // Delete the App Paths key that lets explorer find Chrome. | 585 // Delete the App Paths key that lets explorer find Chrome. |
| (...skipping 16 matching lines...) Expand all Loading... |
| 602 } | 602 } |
| 603 | 603 |
| 604 // Cleanup in case Chrome had been made the default browser. | 604 // Cleanup in case Chrome had been made the default browser. |
| 605 | 605 |
| 606 // Delete the default value of SOFTWARE\Clients\StartMenuInternet if it | 606 // Delete the default value of SOFTWARE\Clients\StartMenuInternet if it |
| 607 // references this Chrome. Do this explicitly here for the case where HKCU is | 607 // references this Chrome. Do this explicitly here for the case where HKCU is |
| 608 // being processed; the iteration above will have no hits since registration | 608 // being processed; the iteration above will have no hits since registration |
| 609 // lives in HKLM. | 609 // lives in HKLM. |
| 610 InstallUtil::DeleteRegistryValueIf( | 610 InstallUtil::DeleteRegistryValueIf( |
| 611 root, ShellUtil::kRegStartMenuInternet, L"", | 611 root, ShellUtil::kRegStartMenuInternet, L"", |
| 612 InstallUtil::ValueEquals(dist->GetApplicationName() + | 612 InstallUtil::ValueEquals(dist->GetBaseAppName() + browser_entry_suffix)); |
| 613 browser_entry_suffix)); | |
| 614 | 613 |
| 615 // Delete each protocol association if it references this Chrome. | 614 // Delete each protocol association if it references this Chrome. |
| 616 InstallUtil::ProgramCompare open_command_pred(chrome_exe); | 615 InstallUtil::ProgramCompare open_command_pred(chrome_exe); |
| 617 string16 parent_key(ShellUtil::kRegClasses); | 616 string16 parent_key(ShellUtil::kRegClasses); |
| 618 const string16::size_type base_length = parent_key.size(); | 617 const string16::size_type base_length = parent_key.size(); |
| 619 string16 child_key; | 618 string16 child_key; |
| 620 for (const wchar_t* const* proto = | 619 for (const wchar_t* const* proto = |
| 621 &ShellUtil::kPotentialProtocolAssociations[0]; | 620 &ShellUtil::kPotentialProtocolAssociations[0]; |
| 622 *proto != NULL; | 621 *proto != NULL; |
| 623 ++proto) { | 622 ++proto) { |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 705 InstallStatus status = installer::UNINSTALL_CONFIRMED; | 704 InstallStatus status = installer::UNINSTALL_CONFIRMED; |
| 706 BrowserDistribution* browser_dist = product.distribution(); | 705 BrowserDistribution* browser_dist = product.distribution(); |
| 707 const string16 chrome_exe( | 706 const string16 chrome_exe( |
| 708 installer_state.target_path().Append(installer::kChromeExe).value()); | 707 installer_state.target_path().Append(installer::kChromeExe).value()); |
| 709 | 708 |
| 710 const string16 suffix(ShellUtil::GetCurrentInstallationSuffix(browser_dist, | 709 const string16 suffix(ShellUtil::GetCurrentInstallationSuffix(browser_dist, |
| 711 chrome_exe)); | 710 chrome_exe)); |
| 712 | 711 |
| 713 bool is_chrome = product.is_chrome(); | 712 bool is_chrome = product.is_chrome(); |
| 714 | 713 |
| 715 VLOG(1) << "UninstallProduct: " << browser_dist->GetApplicationName(); | 714 VLOG(1) << "UninstallProduct: " << browser_dist->GetAppShortCutName(); |
| 716 | 715 |
| 717 if (force_uninstall) { | 716 if (force_uninstall) { |
| 718 // Since --force-uninstall command line option is used, we are going to | 717 // Since --force-uninstall command line option is used, we are going to |
| 719 // do silent uninstall. Try to close all running Chrome instances. | 718 // do silent uninstall. Try to close all running Chrome instances. |
| 720 // NOTE: We don't do this for Chrome Frame. | 719 // NOTE: We don't do this for Chrome Frame. |
| 721 if (is_chrome) | 720 if (is_chrome) |
| 722 CloseAllChromeProcesses(); | 721 CloseAllChromeProcesses(); |
| 723 } else if (is_chrome) { | 722 } else if (is_chrome) { |
| 724 // no --force-uninstall so lets show some UI dialog boxes. | 723 // no --force-uninstall so lets show some UI dialog boxes. |
| 725 status = IsChromeActiveOrUserCancelled(installer_state, product); | 724 status = IsChromeActiveOrUserCancelled(installer_state, product); |
| (...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 949 | 948 |
| 950 // Try and delete the preserved local state once the post-install | 949 // Try and delete the preserved local state once the post-install |
| 951 // operations are complete. | 950 // operations are complete. |
| 952 if (!backup_state_file.empty()) | 951 if (!backup_state_file.empty()) |
| 953 file_util::Delete(backup_state_file, false); | 952 file_util::Delete(backup_state_file, false); |
| 954 | 953 |
| 955 return ret; | 954 return ret; |
| 956 } | 955 } |
| 957 | 956 |
| 958 } // namespace installer | 957 } // namespace installer |
| OLD | NEW |