summaryrefslogtreecommitdiffstats
path: root/chrome/browser/chrome_elf_init_win.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/chrome_elf_init_win.cc')
-rw-r--r--chrome/browser/chrome_elf_init_win.cc9
1 files changed, 9 insertions, 0 deletions
diff --git a/chrome/browser/chrome_elf_init_win.cc b/chrome/browser/chrome_elf_init_win.cc
index 9be2d0a..ce9d3e7 100644
--- a/chrome/browser/chrome_elf_init_win.cc
+++ b/chrome/browser/chrome_elf_init_win.cc
@@ -109,6 +109,10 @@ void InitializeChromeElf() {
base::TimeDelta::FromSeconds(kBlacklistReportingDelaySec));
}
+// Note that running multiple chrome instances with distinct user data
+// directories could lead to deletion (and/or replacement) of the finch
+// blacklist registry data in one instance before the second has a chance to
+// read those values.
void AddFinchBlacklistToRegistry() {
base::win::RegKey finch_blacklist_registry_key(
HKEY_CURRENT_USER, blacklist::kRegistryFinchListPath, KEY_SET_VALUE);
@@ -117,6 +121,11 @@ void AddFinchBlacklistToRegistry() {
if (!finch_blacklist_registry_key.Valid())
return;
+ // Delete and recreate the key to clear the registry.
+ finch_blacklist_registry_key.DeleteKey(L"");
+ finch_blacklist_registry_key.Create(
+ HKEY_CURRENT_USER, blacklist::kRegistryFinchListPath, KEY_SET_VALUE);
+
std::map<std::string, std::string> params;
chrome_variations::GetVariationParams(kBrowserBlacklistTrialName, &params);