| Index: chrome/browser/extensions/unpacked_installer.cc
|
| diff --git a/chrome/browser/extensions/unpacked_installer.cc b/chrome/browser/extensions/unpacked_installer.cc
|
| index 02e59d907a93627825b838b1adc69d73b4863b6f..c6b3ed244bed199af479ef82616b08be3647c6ca 100644
|
| --- a/chrome/browser/extensions/unpacked_installer.cc
|
| +++ b/chrome/browser/extensions/unpacked_installer.cc
|
| @@ -7,7 +7,7 @@
|
| #include "base/bind.h"
|
| #include "base/callback.h"
|
| #include "base/files/file_util.h"
|
| -#include "base/strings/string_util.h"
|
| +#include "base/strings/utf_string_conversions.h"
|
| #include "base/threading/thread_restrictions.h"
|
| #include "chrome/browser/extensions/extension_error_reporter.h"
|
| #include "chrome/browser/extensions/extension_install_prompt.h"
|
| @@ -149,18 +149,18 @@ bool UnpackedInstaller::LoadFromCommandLine(const base::FilePath& path_in,
|
| }
|
|
|
| std::string error;
|
| - install_checker_.set_extension(
|
| + extension_ =
|
| file_util::LoadExtension(
|
| - extension_path_, Manifest::COMMAND_LINE, GetFlags(), &error).get());
|
| + extension_path_, Manifest::COMMAND_LINE, GetFlags(), &error);
|
|
|
| - if (!extension() ||
|
| + if (!extension_ ||
|
| !extension_l10n_util::ValidateExtensionLocales(
|
| - extension_path_, extension()->manifest()->value(), &error)) {
|
| + extension_path_, extension_->manifest()->value(), &error)) {
|
| ReportExtensionLoadError(error);
|
| return false;
|
| }
|
|
|
| - if (only_allow_apps && !extension()->is_platform_app()) {
|
| + if (only_allow_apps && !extension_->is_platform_app()) {
|
| #if defined(GOOGLE_CHROME_BUILD)
|
| // Avoid crashing for users with hijacked shortcuts.
|
| return true;
|
| @@ -174,13 +174,13 @@ bool UnpackedInstaller::LoadFromCommandLine(const base::FilePath& path_in,
|
| #endif
|
| }
|
|
|
| - extension()->permissions_data()->BindToCurrentThread();
|
| + extension_->permissions_data()->BindToCurrentThread();
|
| PermissionsUpdater(
|
| service_weak_->profile(), PermissionsUpdater::INIT_FLAG_TRANSIENT)
|
| - .InitializePermissions(extension());
|
| + .InitializePermissions(extension_.get());
|
| ShowInstallPrompt();
|
|
|
| - *extension_id = extension()->id();
|
| + *extension_id = extension_->id();
|
| return true;
|
| }
|
|
|
| @@ -192,10 +192,10 @@ void UnpackedInstaller::ShowInstallPrompt() {
|
| const ExtensionSet& disabled_extensions =
|
| ExtensionRegistry::Get(service_weak_->profile())->disabled_extensions();
|
| if (prompt_for_plugins_ &&
|
| - PluginInfo::HasPlugins(extension()) &&
|
| - !disabled_extensions.Contains(extension()->id())) {
|
| + PluginInfo::HasPlugins(extension_.get()) &&
|
| + !disabled_extensions.Contains(extension_->id())) {
|
| SimpleExtensionLoadPrompt* prompt = new SimpleExtensionLoadPrompt(
|
| - extension(),
|
| + extension_.get(),
|
| install_checker_.profile(),
|
| base::Bind(&UnpackedInstaller::StartInstallChecks, this));
|
| prompt->ShowPrompt();
|
| @@ -209,16 +209,16 @@ void UnpackedInstaller::StartInstallChecks() {
|
| // they are disabled for extensions loaded from the command-line is that
|
| // installing unpacked extensions is asynchronous, but there can be
|
| // dependencies between the extensions loaded by the command line.
|
| - if (extension()->manifest()->location() != Manifest::COMMAND_LINE) {
|
| + if (extension_->manifest()->location() != Manifest::COMMAND_LINE) {
|
| ExtensionService* service = service_weak_.get();
|
| if (!service || service->browser_terminating())
|
| return;
|
|
|
| // TODO(crbug.com/420147): Move this code to a utility class to avoid
|
| // duplication of SharedModuleService::CheckImports code.
|
| - if (SharedModuleInfo::ImportsModules(extension())) {
|
| + if (SharedModuleInfo::ImportsModules(extension_.get())) {
|
| const std::vector<SharedModuleInfo::ImportInfo>& imports =
|
| - SharedModuleInfo::GetImports(extension());
|
| + SharedModuleInfo::GetImports(extension_.get());
|
| std::vector<SharedModuleInfo::ImportInfo>::const_iterator i;
|
| for (i = imports.begin(); i != imports.end(); ++i) {
|
| base::Version version_required(i->minimum_version);
|
| @@ -242,6 +242,7 @@ void UnpackedInstaller::StartInstallChecks() {
|
| }
|
|
|
| install_checker_.Start(
|
| + extension_,
|
| ExtensionInstallChecker::CHECK_REQUIREMENTS |
|
| ExtensionInstallChecker::CHECK_MANAGEMENT_POLICY,
|
| true /* fail fast */,
|
| @@ -252,13 +253,14 @@ void UnpackedInstaller::OnInstallChecksComplete(int failed_checks) {
|
| DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
|
|
| if (!install_checker_.policy_error().empty()) {
|
| - ReportExtensionLoadError(install_checker_.policy_error());
|
| + ReportExtensionLoadError(
|
| + base::UTF16ToUTF8(install_checker_.policy_error()));
|
| return;
|
| }
|
|
|
| - if (!install_checker_.requirement_errors().empty()) {
|
| + if (!install_checker_.requirement_error_message().empty()) {
|
| ReportExtensionLoadError(
|
| - base::JoinString(install_checker_.requirement_errors(), " "));
|
| + base::UTF16ToUTF8(install_checker_.requirement_error_message()));
|
| return;
|
| }
|
|
|
| @@ -329,13 +331,13 @@ void UnpackedInstaller::LoadWithFileAccess(int flags) {
|
| DCHECK_CURRENTLY_ON(BrowserThread::FILE);
|
|
|
| std::string error;
|
| - install_checker_.set_extension(
|
| + extension_ =
|
| file_util::LoadExtension(
|
| - extension_path_, Manifest::UNPACKED, flags, &error).get());
|
| + extension_path_, Manifest::UNPACKED, flags, &error);
|
|
|
| - if (!extension() ||
|
| + if (!extension_ ||
|
| !extension_l10n_util::ValidateExtensionLocales(
|
| - extension_path_, extension()->manifest()->value(), &error)) {
|
| + extension_path_, extension_->manifest()->value(), &error)) {
|
| BrowserThread::PostTask(
|
| BrowserThread::UI,
|
| FROM_HERE,
|
| @@ -375,14 +377,14 @@ void UnpackedInstaller::InstallExtension() {
|
| }
|
|
|
| PermissionsUpdater perms_updater(service_weak_->profile());
|
| - perms_updater.InitializePermissions(extension());
|
| - perms_updater.GrantActivePermissions(extension());
|
| + perms_updater.InitializePermissions(extension_.get());
|
| + perms_updater.GrantActivePermissions(extension_.get());
|
|
|
| service_weak_->OnExtensionInstalled(
|
| - extension(), syncer::StringOrdinal(), kInstallFlagInstallImmediately);
|
| + extension_.get(), syncer::StringOrdinal(), kInstallFlagInstallImmediately);
|
|
|
| if (!callback_.is_null()) {
|
| - callback_.Run(extension(), extension_path_, std::string());
|
| + callback_.Run(extension_.get(), extension_path_, std::string());
|
| callback_.Reset();
|
| }
|
| }
|
|
|