Index: components/component_updater/default_component_installer.cc |
diff --git a/components/component_updater/default_component_installer.cc b/components/component_updater/default_component_installer.cc |
index b9bcaa9e92d874bfcf32907f727d5046513c9e94..494352223b5ab859fd21bff8456fefbfd73b8229 100644 |
--- a/components/component_updater/default_component_installer.cc |
+++ b/components/component_updater/default_component_installer.cc |
@@ -22,10 +22,10 @@ |
// TODO(ddorwin): Find a better place for ReadManifest. |
#include "components/component_updater/component_updater_service.h" |
#include "components/update_client/component_unpacker.h" |
+#include "components/update_client/update_client.h" |
+#include "components/update_client/update_client_errors.h" |
#include "components/update_client/utils.h" |
-using update_client::CrxComponent; |
- |
namespace component_updater { |
namespace { |
@@ -34,6 +34,9 @@ namespace { |
// we represent it as a dotted quad. |
const char kNullVersion[] = "0.0.0.0"; |
+using Result = update_client::CrxInstaller::Result; |
+using InstallError = update_client::InstallError; |
+ |
} // namespace |
ComponentInstallerTraits::~ComponentInstallerTraits() { |
@@ -72,7 +75,7 @@ void DefaultComponentInstaller::OnUpdateError(int error) { |
LOG(ERROR) << "Component update error: " << error; |
} |
-bool DefaultComponentInstaller::InstallHelper( |
+Result DefaultComponentInstaller::InstallHelper( |
const base::DictionaryValue& manifest, |
const base::FilePath& unpack_path, |
const base::FilePath& install_path) { |
@@ -81,22 +84,24 @@ bool DefaultComponentInstaller::InstallHelper( |
if (!base::Move(unpack_path, install_path)) { |
PLOG(ERROR) << "Move failed."; |
- return false; |
+ return Result(InstallError::GENERIC_ERROR); |
} |
- if (!installer_traits_->OnCustomInstall(manifest, install_path)) { |
+ const auto result = |
+ installer_traits_->OnCustomInstall(manifest, install_path); |
+ if (result.error) { |
PLOG(ERROR) << "CustomInstall failed."; |
- return false; |
+ return result; |
} |
if (!installer_traits_->VerifyInstallation(manifest, install_path)) { |
PLOG(ERROR) << "VerifyInstallation failed."; |
- return false; |
+ return Result(InstallError::GENERIC_ERROR); |
} |
- return true; |
+ return Result(InstallError::NONE); |
} |
-bool DefaultComponentInstaller::Install(const base::DictionaryValue& manifest, |
- const base::FilePath& unpack_path) { |
+Result DefaultComponentInstaller::Install(const base::DictionaryValue& manifest, |
+ const base::FilePath& unpack_path) { |
std::string manifest_version; |
manifest.GetStringASCII("version", &manifest_version); |
base::Version version(manifest_version); |
@@ -105,21 +110,22 @@ bool DefaultComponentInstaller::Install(const base::DictionaryValue& manifest, |
<< " current version=" << current_version_.GetString(); |
if (!version.IsValid()) |
- return false; |
+ return Result(InstallError::GENERIC_ERROR); |
if (current_version_.CompareTo(version) > 0) |
- return false; |
+ return Result(InstallError::GENERIC_ERROR); |
base::FilePath install_path; |
if (!PathService::Get(DIR_COMPONENT_USER, &install_path)) |
- return false; |
+ return Result(InstallError::GENERIC_ERROR); |
install_path = install_path.Append(installer_traits_->GetRelativeInstallDir()) |
.AppendASCII(version.GetString()); |
if (base::PathExists(install_path)) { |
if (!base::DeleteFile(install_path, true)) |
- return false; |
+ return Result(InstallError::GENERIC_ERROR); |
} |
- if (!InstallHelper(manifest, unpack_path, install_path)) { |
+ const auto result = InstallHelper(manifest, unpack_path, install_path); |
+ if (result.error) { |
base::DeleteFile(install_path, true); |
- return false; |
+ return result; |
} |
current_version_ = version; |
current_install_dir_ = install_path; |
@@ -132,7 +138,7 @@ bool DefaultComponentInstaller::Install(const base::DictionaryValue& manifest, |
FROM_HERE, |
base::Bind(&DefaultComponentInstaller::ComponentReady, |
this, base::Passed(&manifest_copy))); |
- return true; |
+ return result; |
} |
bool DefaultComponentInstaller::GetInstalledFile( |
@@ -325,7 +331,7 @@ void DefaultComponentInstaller::FinishRegistration( |
VLOG(1) << __func__ << " for " << installer_traits_->GetName(); |
DCHECK(thread_checker_.CalledOnValidThread()); |
- CrxComponent crx; |
+ update_client::CrxComponent crx; |
installer_traits_->GetHash(&crx.pk_hash); |
crx.installer = this; |
crx.version = current_version_; |