| 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 b54835aff5923dc09df2e599efa9688b7d330261..0c1088480c2f2fc7d76b71ff0e094b469b24a53e 100644
|
| --- a/chrome/browser/extensions/external_registry_loader_win.cc
|
| +++ b/chrome/browser/extensions/external_registry_loader_win.cc
|
| @@ -54,6 +54,9 @@ std::string MakePrefName(const std::string& extension_id,
|
|
|
| namespace extensions {
|
|
|
| +ExternalRegistryLoader::ExternalRegistryLoader()
|
| + : attempted_watching_registry_(false) {}
|
| +
|
| void ExternalRegistryLoader::StartLoading() {
|
| CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| BrowserThread::PostTask(
|
| @@ -200,7 +203,10 @@ void ExternalRegistryLoader::CompleteLoadAndStartWatchingRegistry() {
|
| CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| LoadFinished();
|
|
|
| - // Start watching registry.
|
| + // Attempt to watch registry if we haven't already.
|
| + if (attempted_watching_registry_)
|
| + return;
|
| +
|
| LONG result = ERROR_SUCCESS;
|
| if ((result = hklm_key_.Create(HKEY_LOCAL_MACHINE, kRegistryExtensions,
|
| KEY_NOTIFY | KEY_WOW64_32KEY)) ==
|
| @@ -222,6 +228,8 @@ void ExternalRegistryLoader::CompleteLoadAndStartWatchingRegistry() {
|
| } else {
|
| LOG(WARNING) << "Error observing HKCU: " << result;
|
| }
|
| +
|
| + attempted_watching_registry_ = true;
|
| }
|
|
|
| void ExternalRegistryLoader::OnRegistryKeyChanged(base::win::RegKey* key) {
|
|
|