diff options
Diffstat (limited to 'chrome/browser/chrome_elf_init_win.cc')
-rw-r--r-- | chrome/browser/chrome_elf_init_win.cc | 9 |
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, ¶ms); |