Index: chrome/browser/extensions/extension_service.cc |
diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc |
index a409420dfbb39c47d0085be060892b98f24856c5..c2fe95e5cfd11b61f2860b8a8c27f29d856285d4 100644 |
--- a/chrome/browser/extensions/extension_service.cc |
+++ b/chrome/browser/extensions/extension_service.cc |
@@ -600,9 +600,11 @@ void ExtensionService::Init() { |
GarbageCollectExtensions(); |
} |
-void ExtensionService::UpdateExtension(const std::string& id, |
- const FilePath& extension_path, |
- const GURL& download_url) { |
+bool ExtensionService::UpdateExtension( |
+ const std::string& id, |
+ const FilePath& extension_path, |
+ const GURL& download_url, |
+ CrxInstaller** out_crx_installer) { |
CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
PendingExtensionInfo pending_extension_info; |
@@ -621,7 +623,8 @@ void ExtensionService::UpdateExtension(const std::string& id, |
NewRunnableFunction( |
extension_file_util::DeleteFile, extension_path, false))) |
NOTREACHED(); |
- return; |
+ |
+ return false; |
} |
// We want a silent install only for non-pending extensions and |
@@ -640,6 +643,11 @@ void ExtensionService::UpdateExtension(const std::string& id, |
installer->set_original_url(download_url); |
installer->set_install_cause(extension_misc::INSTALL_CAUSE_UPDATE); |
installer->InstallCrx(extension_path); |
+ |
+ if (out_crx_installer) |
+ *out_crx_installer = installer; |
+ |
+ return true; |
} |
void ExtensionService::ReloadExtension(const std::string& extension_id) { |