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

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

Issue 282363003: Add WOW64 support to the installer registry work items (Closed) Base URL: https://chromium.googlesource.com/chromium/src
Patch Set: nits. fix call to DeleteRegistryKey Created 6 years, 7 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 | « chrome/installer/setup/setup_main.cc ('k') | chrome/installer/util/app_command.cc » ('j') | 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 353e3900539c46ef194c31c59db507ddbe22c1f6..09a9502cb5ca600c7f939ff41171e310de259922 100644
--- a/chrome/installer/setup/uninstall.cc
+++ b/chrome/installer/setup/uninstall.cc
@@ -46,6 +46,7 @@
#include "chrome/installer/util/self_cleaning_temp_dir.h"
#include "chrome/installer/util/shell_util.h"
#include "chrome/installer/util/util_constants.h"
+#include "chrome/installer/util/work_item.h"
#include "content/public/common/result_codes.h"
#include "rlz/lib/rlz_lib.h"
@@ -94,8 +95,12 @@ void AddChannelValueUpdateWorkItems(
!product_state->channel().Equals(channel_info)) {
BrowserDistribution* other_dist =
BrowserDistribution::GetSpecificDistribution(dist_type);
- update_list->AddSetRegValueWorkItem(reg_root, other_dist->GetStateKey(),
- google_update::kRegApField, channel_info.value(), true);
+ update_list->AddSetRegValueWorkItem(reg_root,
+ other_dist->GetStateKey(),
+ WorkItem::kWow64Default,
+ google_update::kRegApField,
+ channel_info.value(),
+ true);
} else {
LOG_IF(ERROR,
product_state != NULL && product_state->is_multi_install())
@@ -680,8 +685,8 @@ void RemoveFiletypeRegistration(const InstallerState& installer_state,
&ShellUtil::kPotentialFileAssociations[0]; *filetype != NULL;
++filetype) {
if (InstallUtil::DeleteRegistryValueIf(
- root, (classes_path + *filetype).c_str(), NULL,
- prog_id_pred) == InstallUtil::DELETED) {
+ root, (classes_path + *filetype).c_str(), WorkItem::kWow64Default,
+ NULL, prog_id_pred) == InstallUtil::DELETED) {
cleared_assocs.push_back(*filetype);
}
}
@@ -755,7 +760,8 @@ void UninstallActiveSetupEntries(const InstallerState& installer_state,
const base::string16 active_setup_path(
InstallUtil::GetActiveSetupPath(distribution));
- InstallUtil::DeleteRegistryKey(HKEY_LOCAL_MACHINE, active_setup_path);
+ InstallUtil::DeleteRegistryKey(HKEY_LOCAL_MACHINE, active_setup_path,
+ WorkItem::kWow64Default);
// Windows leaves keys behind in HKCU\\Software\\(Wow6432Node\\)?Microsoft\\
// Active Setup\\Installed Components\\{guid}
@@ -901,7 +907,7 @@ bool DeleteChromeRegistrationKeys(const InstallerState& installer_state,
base::string16 reg_prog_id(ShellUtil::kRegClasses);
reg_prog_id.push_back(base::FilePath::kSeparators[0]);
reg_prog_id.append(prog_id);
- InstallUtil::DeleteRegistryKey(root, reg_prog_id);
+ InstallUtil::DeleteRegistryKey(root, reg_prog_id, WorkItem::kWow64Default);
// Delete Software\Classes\Chrome.
base::string16 reg_app_id(ShellUtil::kRegClasses);
@@ -909,7 +915,7 @@ bool DeleteChromeRegistrationKeys(const InstallerState& installer_state,
// Append the requested suffix manually here (as ShellUtil::GetBrowserModelId
// would otherwise try to figure out the currently installed suffix).
reg_app_id.append(dist->GetBaseAppId() + browser_entry_suffix);
- InstallUtil::DeleteRegistryKey(root, reg_app_id);
+ InstallUtil::DeleteRegistryKey(root, reg_app_id, WorkItem::kWow64Default);
// Delete all Start Menu Internet registrations that refer to this Chrome.
{
@@ -925,13 +931,14 @@ bool DeleteChromeRegistrationKeys(const InstallerState& installer_state,
.append(1, L'\\')
.append(client_name);
open_key.assign(client_key).append(ShellUtil::kRegShellOpen);
- if (InstallUtil::DeleteRegistryKeyIf(root, client_key, open_key, NULL,
- open_command_pred) != InstallUtil::NOT_FOUND) {
+ if (InstallUtil::DeleteRegistryKeyIf(root, client_key, open_key,
+ WorkItem::kWow64Default, NULL, open_command_pred)
+ != InstallUtil::NOT_FOUND) {
// Delete the default value of SOFTWARE\Clients\StartMenuInternet if it
// references this Chrome (i.e., if it was made the default browser).
InstallUtil::DeleteRegistryValueIf(
- root, ShellUtil::kRegStartMenuInternet, NULL,
- InstallUtil::ValueEquals(client_name));
+ root, ShellUtil::kRegStartMenuInternet, WorkItem::kWow64Default,
+ NULL, InstallUtil::ValueEquals(client_name));
// Also delete the value for the default user if we're operating in
// HKLM.
if (root == HKEY_LOCAL_MACHINE) {
@@ -939,7 +946,8 @@ bool DeleteChromeRegistrationKeys(const InstallerState& installer_state,
HKEY_USERS,
base::string16(L".DEFAULT\\").append(
ShellUtil::kRegStartMenuInternet).c_str(),
- NULL, InstallUtil::ValueEquals(client_name));
+ WorkItem::kWow64Default, NULL,
+ InstallUtil::ValueEquals(client_name));
}
}
}
@@ -948,6 +956,7 @@ bool DeleteChromeRegistrationKeys(const InstallerState& installer_state,
// Delete Software\RegisteredApplications\Chromium
InstallUtil::DeleteRegistryValue(
root, ShellUtil::kRegRegisteredApplications,
+ WorkItem::kWow64Default,
dist->GetBaseAppName() + browser_entry_suffix);
// Delete the App Paths and Applications keys that let Explorer find Chrome:
@@ -957,12 +966,12 @@ bool DeleteChromeRegistrationKeys(const InstallerState& installer_state,
app_key.append(L"Applications");
app_key.push_back(base::FilePath::kSeparators[0]);
app_key.append(installer::kChromeExe);
- InstallUtil::DeleteRegistryKey(root, app_key);
+ InstallUtil::DeleteRegistryKey(root, app_key, WorkItem::kWow64Default);
base::string16 app_path_key(ShellUtil::kAppPathsRegistryKey);
app_path_key.push_back(base::FilePath::kSeparators[0]);
app_path_key.append(installer::kChromeExe);
- InstallUtil::DeleteRegistryKey(root, app_path_key);
+ InstallUtil::DeleteRegistryKey(root, app_path_key, WorkItem::kWow64Default);
// Cleanup OpenWithList and OpenWithProgids:
// http://msdn.microsoft.com/en-us/library/bb166549
@@ -979,11 +988,13 @@ bool DeleteChromeRegistrationKeys(const InstallerState& installer_state,
open_with_list_key.append(L"OpenWithList");
open_with_list_key.push_back(base::FilePath::kSeparators[0]);
open_with_list_key.append(installer::kChromeExe);
- InstallUtil::DeleteRegistryKey(root, open_with_list_key);
+ InstallUtil::DeleteRegistryKey(
+ root, open_with_list_key, WorkItem::kWow64Default);
open_with_progids_key.assign(file_assoc_key);
open_with_progids_key.append(ShellUtil::kRegOpenWithProgids);
- InstallUtil::DeleteRegistryValue(root, open_with_progids_key, prog_id);
+ InstallUtil::DeleteRegistryValue(root, open_with_progids_key,
+ WorkItem::kWow64Default, prog_id);
}
// Cleanup in case Chrome had been made the default browser.
@@ -993,7 +1004,7 @@ bool DeleteChromeRegistrationKeys(const InstallerState& installer_state,
// being processed; the iteration above will have no hits since registration
// lives in HKLM.
InstallUtil::DeleteRegistryValueIf(
- root, ShellUtil::kRegStartMenuInternet, NULL,
+ root, ShellUtil::kRegStartMenuInternet, WorkItem::kWow64Default, NULL,
InstallUtil::ValueEquals(dist->GetBaseAppName() + browser_entry_suffix));
// Delete each protocol association if it references this Chrome.
@@ -1009,7 +1020,8 @@ bool DeleteChromeRegistrationKeys(const InstallerState& installer_state,
parent_key.resize(base_length);
parent_key.append(*proto);
child_key.assign(parent_key).append(ShellUtil::kRegShellOpen);
- InstallUtil::DeleteRegistryKeyIf(root, parent_key, child_key, NULL,
+ InstallUtil::DeleteRegistryKeyIf(root, parent_key, child_key,
+ WorkItem::kWow64Default, NULL,
open_command_pred);
}
@@ -1042,13 +1054,15 @@ const wchar_t kChromeExtProgId[] = L"ChromiumExt";
ext_prog_id.push_back(base::FilePath::kSeparators[0]);
ext_prog_id.append(kChromeExtProgId);
ext_prog_id.append(suffix);
- InstallUtil::DeleteRegistryKey(roots[i], ext_prog_id);
+ InstallUtil::DeleteRegistryKey(roots[i], ext_prog_id,
+ WorkItem::kWow64Default);
// Delete Software\Classes\.crx,
base::string16 ext_association(ShellUtil::kRegClasses);
ext_association.append(L"\\");
ext_association.append(L".crx");
- InstallUtil::DeleteRegistryKey(roots[i], ext_association);
+ InstallUtil::DeleteRegistryKey(roots[i], ext_association,
+ WorkItem::kWow64Default);
}
}
@@ -1128,7 +1142,8 @@ InstallStatus UninstallProduct(const InstallationState& original_state,
// Delete the key that delegate_execute might make.
if (base::win::GetVersion() >= base::win::VERSION_WIN8) {
InstallUtil::DeleteRegistryKey(HKEY_CURRENT_USER,
- chrome::kMetroRegistryPath);
+ chrome::kMetroRegistryPath,
+ WorkItem::kWow64Default);
}
auto_launch_util::DisableAllAutoStartFeatures(
@@ -1165,11 +1180,13 @@ InstallStatus UninstallProduct(const InstallationState& original_state,
// Remove Control Panel uninstall link.
if (product.ShouldCreateUninstallEntry()) {
InstallUtil::DeleteRegistryKey(reg_root,
- browser_dist->GetUninstallRegPath());
+ browser_dist->GetUninstallRegPath(),
+ WorkItem::kWow64Default);
}
// Remove Omaha product key.
- InstallUtil::DeleteRegistryKey(reg_root, browser_dist->GetVersionKey());
+ InstallUtil::DeleteRegistryKey(reg_root, browser_dist->GetVersionKey(),
+ WorkItem::kWow64Default);
// Also try to delete the MSI value in the ClientState key (it might not be
// there). This is due to a Google Update behaviour where an uninstall and a
@@ -1261,8 +1278,10 @@ InstallStatus UninstallProduct(const InstallationState& original_state,
BrowserDistribution* shadow_app_launcher_dist =
BrowserDistribution::GetSpecificDistribution(
BrowserDistribution::CHROME_APP_HOST);
- InstallUtil::DeleteRegistryKey(reg_root,
- shadow_app_launcher_dist->GetVersionKey());
+ InstallUtil::DeleteRegistryKey(
+ reg_root,
+ shadow_app_launcher_dist->GetVersionKey(),
+ WorkItem::kWow64Default);
}
}
}
@@ -1285,7 +1304,8 @@ InstallStatus UninstallProduct(const InstallationState& original_state,
base::string16 reg_path(installer::kMediaPlayerRegPath);
reg_path.push_back(base::FilePath::kSeparators[0]);
reg_path.append(installer::kChromeExe);
- InstallUtil::DeleteRegistryKey(HKEY_LOCAL_MACHINE, reg_path);
+ InstallUtil::DeleteRegistryKey(HKEY_LOCAL_MACHINE, reg_path,
+ WorkItem::kWow64Default);
}
// Unregister any dll servers that we may have registered for this
« no previous file with comments | « chrome/installer/setup/setup_main.cc ('k') | chrome/installer/util/app_command.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698