Index: update_attempter.cc |
diff --git a/update_attempter.cc b/update_attempter.cc |
index 61c9947a787b21246200d20b33bf7019aa21b908..131408610524c83f676e8f86785d631360f721c9 100644 |
--- a/update_attempter.cc |
+++ b/update_attempter.cc |
@@ -103,6 +103,7 @@ UpdateAttempter::UpdateAttempter(PrefsInterface* prefs, |
prefs_(prefs), |
metrics_lib_(metrics_lib), |
update_check_scheduler_(NULL), |
+ fake_update_success_(false), |
http_response_code_(0), |
priority_(utils::kProcessPriorityNormal), |
manage_priority_source_(NULL), |
@@ -129,6 +130,7 @@ void UpdateAttempter::Update(const std::string& app_version, |
const std::string& omaha_url, |
bool obey_proxies) { |
chrome_proxy_resolver_.Init(); |
+ fake_update_success_ = false; |
UpdateBootFlags(); // Just in case we didn't do this yet. |
if (status_ == UPDATE_STATUS_UPDATED_NEED_REBOOT) { |
// Although we have applied an update, we still want to ping Omaha |
@@ -314,7 +316,11 @@ void UpdateAttempter::ProcessingDone(const ActionProcessor* processor, |
if (status_ == UPDATE_STATUS_REPORTING_ERROR_EVENT) { |
LOG(INFO) << "Error event sent."; |
SetStatusAndNotify(UPDATE_STATUS_IDLE); |
- return; |
+ if (!fake_update_success_) { |
+ return; |
+ } |
+ LOG(INFO) << "Booted from FW B and tried to install new firmware, " |
+ "so requesting reboot from user."; |
} |
if (code == kActionCodeSuccess) { |
@@ -326,11 +332,12 @@ void UpdateAttempter::ProcessingDone(const ActionProcessor* processor, |
// Report the time it took to update the system. |
int64_t update_time = time(NULL) - last_checked_time_; |
- metrics_lib_->SendToUMA("Installer.UpdateTime", |
- static_cast<int>(update_time), // sample |
- 1, // min = 1 second |
- 20 * 60, // max = 20 minutes |
- 50); // buckets |
+ if (!fake_update_success_) |
+ metrics_lib_->SendToUMA("Installer.UpdateTime", |
+ static_cast<int>(update_time), // sample |
+ 1, // min = 1 second |
+ 20 * 60, // max = 20 minutes |
+ 50); // buckets |
return; |
} |
@@ -511,6 +518,7 @@ void UpdateAttempter::CreatePendingErrorEvent(AbstractAction* action, |
} |
code = GetErrorCodeForAction(action, code); |
+ fake_update_success_ = code == kActionCodePostinstallBootedFromFirmwareB; |
error_event_.reset(new OmahaEvent(OmahaEvent::kTypeUpdateComplete, |
OmahaEvent::kResultError, |
code)); |