| Index: chrome/browser/extensions/extension_service.cc
|
| diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc
|
| index 5463968d73ac7c4bfa1f3389b1db804bd027f7b5..cc5815b6e65e6e409a35fd059958ce2e90771d90 100644
|
| --- a/chrome/browser/extensions/extension_service.cc
|
| +++ b/chrome/browser/extensions/extension_service.cc
|
| @@ -595,7 +595,7 @@ bool ExtensionService::UpdateExtension(const std::string& id,
|
| return true;
|
| }
|
|
|
| -void ExtensionService::ReloadExtension(const std::string extension_id) {
|
| +void ExtensionService::ReloadExtension(const std::string& extension_id) {
|
| CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
|
|
| // If the extension is already reloading, don't reload again.
|
| @@ -604,6 +604,13 @@ void ExtensionService::ReloadExtension(const std::string extension_id) {
|
| return;
|
| }
|
|
|
| + // Ignore attempts to reload a blacklisted extension. Sometimes this can
|
| + // happen in a convoluted reload sequence triggered by the termination of a
|
| + // blacklisted extension and a naive attempt to reload it. For an example see
|
| + // http://crbug.com/373842.
|
| + if (registry_->blacklisted_extensions().Contains(extension_id))
|
| + return;
|
| +
|
| base::FilePath path;
|
| const Extension* current_extension = GetExtensionById(extension_id, false);
|
|
|
|
|