| Index: chrome/browser/extensions/external_registry_loader_win.cc
|
| diff --git a/chrome/browser/extensions/external_registry_loader_win.cc b/chrome/browser/extensions/external_registry_loader_win.cc
|
| index ce44ae75dcf4603b35de9c73dda36d0784505509..ce61b272650599ce2bb8d40bcc5bef02b2edbf47 100644
|
| --- a/chrome/browser/extensions/external_registry_loader_win.cc
|
| +++ b/chrome/browser/extensions/external_registry_loader_win.cc
|
| @@ -68,7 +68,9 @@ void ExternalRegistryLoader::LoadOnFileThread() {
|
| // A map of IDs, to weed out duplicates between HKCU and HKLM.
|
| std::set<base::string16> keys;
|
| base::win::RegistryKeyIterator iterator_machine_key(
|
| - HKEY_LOCAL_MACHINE, base::ASCIIToWide(kRegistryExtensions).c_str());
|
| + HKEY_LOCAL_MACHINE,
|
| + base::ASCIIToWide(kRegistryExtensions).c_str(),
|
| + KEY_WOW64_32KEY);
|
| for (; iterator_machine_key.Valid(); ++iterator_machine_key)
|
| keys.insert(iterator_machine_key.Name());
|
| base::win::RegistryKeyIterator iterator_user_key(
|
| @@ -86,13 +88,13 @@ void ExternalRegistryLoader::LoadOnFileThread() {
|
| key_path.append(L"\\");
|
| key_path.append(*it);
|
| if (key.Open(HKEY_LOCAL_MACHINE,
|
| - key_path.c_str(), KEY_READ) != ERROR_SUCCESS) {
|
| - if (key.Open(HKEY_CURRENT_USER,
|
| - key_path.c_str(), KEY_READ) != ERROR_SUCCESS) {
|
| - LOG(ERROR) << "Unable to read registry key at path (HKLM & HKCU): "
|
| - << key_path << ".";
|
| - continue;
|
| - }
|
| + key_path.c_str(),
|
| + KEY_READ | KEY_WOW64_32KEY) != ERROR_SUCCESS &&
|
| + key.Open(HKEY_CURRENT_USER, key_path.c_str(), KEY_READ) !=
|
| + ERROR_SUCCESS) {
|
| + LOG(ERROR) << "Unable to read registry key at path (HKLM & HKCU): "
|
| + << key_path << ".";
|
| + continue;
|
| }
|
|
|
| std::string id = base::UTF16ToASCII(*it);
|
|
|