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->GetUnsuffixedAppName() + 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->GetUnsuffixedAppName() + |
613 browser_entry_suffix)); | 613 browser_entry_suffix)); |
614 | 614 |
615 // Delete each protocol association if it references this Chrome. | 615 // Delete each protocol association if it references this Chrome. |
616 InstallUtil::ProgramCompare open_command_pred(chrome_exe); | 616 InstallUtil::ProgramCompare open_command_pred(chrome_exe); |
617 string16 parent_key(ShellUtil::kRegClasses); | 617 string16 parent_key(ShellUtil::kRegClasses); |
618 const string16::size_type base_length = parent_key.size(); | 618 const string16::size_type base_length = parent_key.size(); |
619 string16 child_key; | 619 string16 child_key; |
620 for (const wchar_t* const* proto = | 620 for (const wchar_t* const* proto = |
621 &ShellUtil::kPotentialProtocolAssociations[0]; | 621 &ShellUtil::kPotentialProtocolAssociations[0]; |
622 *proto != NULL; | 622 *proto != NULL; |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
703 const CommandLine& cmd_line) { | 703 const CommandLine& cmd_line) { |
704 InstallStatus status = installer::UNINSTALL_CONFIRMED; | 704 InstallStatus status = installer::UNINSTALL_CONFIRMED; |
705 BrowserDistribution* browser_dist = product.distribution(); | 705 BrowserDistribution* browser_dist = product.distribution(); |
706 const string16 chrome_exe( | 706 const string16 chrome_exe( |
707 installer_state.target_path().Append(installer::kChromeExe).value()); | 707 installer_state.target_path().Append(installer::kChromeExe).value()); |
708 | 708 |
709 const string16 suffix(ShellUtil::GetCurrentInstallationSuffix()); | 709 const string16 suffix(ShellUtil::GetCurrentInstallationSuffix()); |
710 | 710 |
711 bool is_chrome = product.is_chrome(); | 711 bool is_chrome = product.is_chrome(); |
712 | 712 |
713 VLOG(1) << "UninstallProduct: " << browser_dist->GetApplicationName(); | 713 VLOG(1) << "UninstallProduct: " << browser_dist->GetUnsuffixedAppName(); |
714 | 714 |
715 if (force_uninstall) { | 715 if (force_uninstall) { |
716 // Since --force-uninstall command line option is used, we are going to | 716 // Since --force-uninstall command line option is used, we are going to |
717 // do silent uninstall. Try to close all running Chrome instances. | 717 // do silent uninstall. Try to close all running Chrome instances. |
718 // NOTE: We don't do this for Chrome Frame. | 718 // NOTE: We don't do this for Chrome Frame. |
719 if (is_chrome) | 719 if (is_chrome) |
720 CloseAllChromeProcesses(); | 720 CloseAllChromeProcesses(); |
721 } else if (is_chrome) { | 721 } else if (is_chrome) { |
722 // no --force-uninstall so lets show some UI dialog boxes. | 722 // no --force-uninstall so lets show some UI dialog boxes. |
723 status = IsChromeActiveOrUserCancelled(installer_state, product); | 723 status = IsChromeActiveOrUserCancelled(installer_state, product); |
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
937 | 937 |
938 // Try and delete the preserved local state once the post-install | 938 // Try and delete the preserved local state once the post-install |
939 // operations are complete. | 939 // operations are complete. |
940 if (!backup_state_file.empty()) | 940 if (!backup_state_file.empty()) |
941 file_util::Delete(backup_state_file, false); | 941 file_util::Delete(backup_state_file, false); |
942 | 942 |
943 return ret; | 943 return ret; |
944 } | 944 } |
945 | 945 |
946 } // namespace installer | 946 } // namespace installer |
OLD | NEW |