diff options
author | aa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-26 21:50:23 +0000 |
---|---|---|
committer | aa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-26 21:50:23 +0000 |
commit | bb461530cb42d050c91bacc9ec1a6a48100c6be7 (patch) | |
tree | 8b88b90958fdd1d2dcdc666b4414a93ca833c97e /chrome/browser/extensions/crx_installer.cc | |
parent | 11740d25bd6ac9c9da9ceb99ba1ba59d3caabeeb (diff) | |
download | chromium_src-bb461530cb42d050c91bacc9ec1a6a48100c6be7.zip chromium_src-bb461530cb42d050c91bacc9ec1a6a48100c6be7.tar.gz chromium_src-bb461530cb42d050c91bacc9ec1a6a48100c6be7.tar.bz2 |
Revert "Revert "Finish wiring up chrome.app.install().""
This reverts commit 89f4de523e9c916950f72c264cdefed662849124.
TBR=aa@chromium.org
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67474 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/crx_installer.cc')
-rw-r--r-- | chrome/browser/extensions/crx_installer.cc | 34 |
1 files changed, 29 insertions, 5 deletions
diff --git a/chrome/browser/extensions/crx_installer.cc b/chrome/browser/extensions/crx_installer.cc index d90bbbd..3a9a3df 100644 --- a/chrome/browser/extensions/crx_installer.cc +++ b/chrome/browser/extensions/crx_installer.cc @@ -14,6 +14,7 @@ #include "base/singleton.h" #include "base/stl_util-inl.h" #include "base/stringprintf.h" +#include "base/time.h" #include "base/task.h" #include "base/thread_restrictions.h" #include "base/utf_string_conversions.h" @@ -21,6 +22,7 @@ #include "chrome/browser/browser_process.h" #include "chrome/browser/browser_thread.h" #include "chrome/browser/extensions/convert_user_script.h" +#include "chrome/browser/extensions/convert_web_app.h" #include "chrome/browser/extensions/extensions_service.h" #include "chrome/browser/extensions/extension_error_reporter.h" #include "chrome/browser/profile.h" @@ -75,11 +77,11 @@ bool CrxInstaller::ClearWhitelistedInstallId(const std::string& id) { return false; } -CrxInstaller::CrxInstaller(const FilePath& install_directory, - ExtensionsService* frontend, +CrxInstaller::CrxInstaller(ExtensionsService* frontend, ExtensionInstallUI* client) - : install_directory_(install_directory), + : install_directory_(frontend->install_directory()), install_source_(Extension::INTERNAL), + extensions_enabled_(frontend->extensions_enabled()), delete_source_(false), allow_privilege_increase_(false), is_gallery_install_(false), @@ -88,7 +90,6 @@ CrxInstaller::CrxInstaller(const FilePath& install_directory, client_(client), apps_require_extension_mime_type_(false), allow_silent_install_(false) { - extensions_enabled_ = frontend_->extensions_enabled(); } CrxInstaller::~CrxInstaller() { @@ -160,6 +161,29 @@ void CrxInstaller::ConvertUserScriptOnFileThread() { OnUnpackSuccess(extension->path(), extension->path(), extension); } +void CrxInstaller::InstallWebApp(const WebApplicationInfo& web_app) { + BrowserThread::PostTask( + BrowserThread::FILE, FROM_HERE, + NewRunnableMethod(this, &CrxInstaller::ConvertWebAppOnFileThread, + web_app)); +} + +void CrxInstaller::ConvertWebAppOnFileThread( + const WebApplicationInfo& web_app) { + std::string error; + scoped_refptr<Extension> extension( + ConvertWebAppToExtension(web_app, base::Time::Now())); + if (!extension) { + // Validation should have stopped any potential errors before getting here. + NOTREACHED() << "Could not convert web app to extension."; + return; + } + + // TODO(aa): conversion data gets lost here :( + + OnUnpackSuccess(extension->path(), extension->path(), extension); +} + bool CrxInstaller::AllowInstall(const Extension* extension, std::string* error) { DCHECK(error); @@ -362,7 +386,7 @@ void CrxInstaller::CompleteInstall() { std::string error; extension_ = extension_file_util::LoadExtension( version_dir, install_source_, true, &error); - DCHECK(error.empty()); + CHECK(error.empty()) << error; ReportSuccessFromFileThread(); } |