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

Unified Diff: chrome/browser/chrome_elf_init_win.cc

Issue 1841573002: [Chrome ELF] New NT registry API. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Nit fixes & CreateRegKey now recursive. Created 4 years, 6 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
Index: chrome/browser/chrome_elf_init_win.cc
diff --git a/chrome/browser/chrome_elf_init_win.cc b/chrome/browser/chrome_elf_init_win.cc
index c400196fc056a18d137bfdc847f35995457a9929..dbe21e71882ee21e6461e933a46af9030bd47df7 100644
--- a/chrome/browser/chrome_elf_init_win.cc
+++ b/chrome/browser/chrome_elf_init_win.cc
@@ -129,16 +129,22 @@ void AddFinchBlacklistToRegistry() {
HKEY_CURRENT_USER, blacklist::kRegistryFinchListPath, KEY_SET_VALUE);
std::map<std::string, std::string> params;
- variations::GetVariationParams(kBrowserBlacklistTrialName, &params);
-
- for (std::map<std::string, std::string>::iterator it = params.begin();
- it != params.end();
- ++it) {
- std::wstring name = base::UTF8ToWide(it->first);
- std::wstring val = base::UTF8ToWide(it->second);
-
- finch_blacklist_registry_key.WriteValue(name.c_str(), val.c_str());
- }
+ std::string value = variations::GetVariationParamValue(
+ kBrowserBlacklistTrialName, blacklist::kRegistryFinchListValueNameStr);
+ if (value.empty())
+ return;
+ base::string16 value_wcs = base::UTF8ToWide(value);
+
+ // The dll names are comma-separated in this param value. We need to turn
+ // this into REG_MULTI_SZ format (double-null terminates).
+ // Note that the strings are wide character in registry.
+ value_wcs.push_back(L'\0');
+ value_wcs.push_back(L'\0');
+ std::replace(value_wcs.begin(), value_wcs.end(), L',', L'\0');
+
+ finch_blacklist_registry_key.WriteValue(
+ blacklist::kRegistryFinchListValueName, value_wcs.data(),
+ (value_wcs.size() * sizeof(wchar_t)), REG_MULTI_SZ);
}
void BrowserBlacklistBeaconSetup() {

Powered by Google App Engine
This is Rietveld 408576698