Index: chrome/browser/component_updater/default_component_installer.cc |
diff --git a/chrome/browser/component_updater/default_component_installer.cc b/chrome/browser/component_updater/default_component_installer.cc |
index bc41f9f4ebdda39e96ce9961bc1c22464d534cfe..c951f960ed1136e4dbc78704bfc34e76a0db3acb 100644 |
--- a/chrome/browser/component_updater/default_component_installer.cc |
+++ b/chrome/browser/component_updater/default_component_installer.cc |
@@ -164,17 +164,20 @@ void DefaultComponentInstaller::StartRegistration(ComponentUpdateService* cus) { |
} |
if (found) { |
- current_version_ = latest_version; |
- // TODO(ddorwin): Remove these members and pass them directly to |
- // FinishRegistration(). |
- base::ReadFileToString(latest_dir.AppendASCII("manifest.fingerprint"), |
- ¤t_fingerprint_); |
current_manifest_ = ReadManifest(latest_dir); |
- if (!current_manifest_) { |
+ if (current_manifest_) { |
+ current_version_ = latest_version; |
+ // TODO(ddorwin): Remove these members and pass them directly to |
+ // FinishRegistration(). |
+ base::ReadFileToString(latest_dir.AppendASCII("manifest.fingerprint"), |
+ ¤t_fingerprint_); |
+ } else { |
+ // If the manifest can't be read, mark the directory for deletion and |
+ // continue as if there were no versioned directories at all. |
DLOG(ERROR) << "Failed to read manifest for " |
<< installer_traits_->GetName() << " (" |
<< base_dir.MaybeAsASCII() << ")."; |
- return; |
+ older_dirs.push_back(latest_dir); |
} |
} |