| Index: chrome/browser/extensions/external_registry_extension_loader_win.cc
|
| diff --git a/chrome/browser/extensions/external_registry_extension_loader_win.cc b/chrome/browser/extensions/external_registry_extension_loader_win.cc
|
| index 11c35f18e071246b99357012513a228288149bd4..594da26e5bafe39ef3e0371301607168c6b802ab 100644
|
| --- a/chrome/browser/extensions/external_registry_extension_loader_win.cc
|
| +++ b/chrome/browser/extensions/external_registry_extension_loader_win.cc
|
| @@ -50,8 +50,17 @@ void ExternalRegistryExtensionLoader::LoadOnFileThread() {
|
| key_path.append(L"\\");
|
| key_path.append(iterator.Name());
|
| if (key.Open(kRegRoot, key_path.c_str(), KEY_READ)) {
|
| - std::wstring extension_path;
|
| - if (key.ReadValue(kRegistryExtensionPath, &extension_path)) {
|
| + std::wstring extension_path_str;
|
| + if (key.ReadValue(kRegistryExtensionPath, &extension_path_str)) {
|
| + FilePath extension_path(extension_path_str);
|
| + if (!extension_path.IsAbsolute()) {
|
| + LOG(ERROR) << "Path " << extension_path_str
|
| + << " needs to be absolute in key "
|
| + << key_path;
|
| + ++iterator;
|
| + continue;
|
| + }
|
| +
|
| std::wstring extension_version;
|
| if (key.ReadValue(kRegistryExtensionVersion, &extension_version)) {
|
| std::string id = WideToASCII(iterator.Name());
|
| @@ -79,7 +88,7 @@ void ExternalRegistryExtensionLoader::LoadOnFileThread() {
|
| WideToASCII(extension_version));
|
| prefs->SetString(
|
| id + "." + ExternalExtensionProviderImpl::kExternalCrx,
|
| - extension_path);
|
| + extension_path_str);
|
| } else {
|
| // TODO(erikkay): find a way to get this into about:extensions
|
| LOG(ERROR) << "Missing value " << kRegistryExtensionVersion
|
|
|