Index: chrome/browser/extensions/crx_installer.cc |
diff --git a/chrome/browser/extensions/crx_installer.cc b/chrome/browser/extensions/crx_installer.cc |
index 0ac9c86770bccd4ed7be5fca762a3c8aceeae2a1..b402bbf76e1fc3efddbdb862787353dfc5ec60b2 100644 |
--- a/chrome/browser/extensions/crx_installer.cc |
+++ b/chrome/browser/extensions/crx_installer.cc |
@@ -25,6 +25,7 @@ |
#include "chrome/browser/extensions/convert_user_script.h" |
#include "chrome/browser/extensions/convert_web_app.h" |
#include "chrome/browser/extensions/crx_installer_error.h" |
+#include "chrome/browser/extensions/extension_assets_manager.h" |
#include "chrome/browser/extensions/extension_error_reporter.h" |
#include "chrome/browser/extensions/extension_install_ui.h" |
#include "chrome/browser/extensions/extension_service.h" |
@@ -694,11 +695,20 @@ void CrxInstaller::CompleteInstall() { |
"Extensions.CrxInstallDirPathLength", |
install_directory_.value().length(), 0, 500, 100); |
- base::FilePath version_dir = |
- file_util::InstallExtension(unpacked_extension_root_, |
- extension()->id(), |
- extension()->VersionString(), |
- install_directory_); |
+ ExtensionAssetsManager* assets_manager = |
+ ExtensionAssetsManager::GetInstance(); |
+ assets_manager->InstallExtension( |
+ extension(), |
+ unpacked_extension_root_, |
+ install_directory_, |
+ profile(), |
+ base::Bind(&CrxInstaller::ReloadExtensionAfterInstall, this)); |
+} |
+ |
+void CrxInstaller::ReloadExtensionAfterInstall( |
+ const base::FilePath& version_dir) { |
+ DCHECK(installer_task_runner_->RunsTasksOnCurrentThread()); |
+ |
if (version_dir.empty()) { |
ReportFailureFromFileThread( |
CrxInstallerError( |
@@ -729,7 +739,6 @@ void CrxInstaller::CompleteInstall() { |
LOG(ERROR) << error << " " << extension_id << " " << download_url_; |
ReportFailureFromFileThread(CrxInstallerError(base::UTF8ToUTF16(error))); |
} |
- |
} |
void CrxInstaller::ReportFailureFromFileThread(const CrxInstallerError& error) { |