PM: UpdaterProvider reports the number of consecutive failed update checks.

This adds a new variable to UpdaterProvider, along with the necessary
bits of implementation in UpdateAttempter, to track and report this
number.

BUG=chromium:367006
TEST=Unit tests.

Change-Id: I819dc5c9d4d351e5bfe1373dba0993e3f622b0e0
Reviewed-on: https://chromium-review.googlesource.com/197092
Tested-by: Gilad Arnold <garnold@chromium.org>
Reviewed-by: Alex Deymo <deymo@chromium.org>
Commit-Queue: Gilad Arnold <garnold@chromium.org>
diff --git a/policy_manager/real_updater_provider.h b/policy_manager/real_updater_provider.h
index 619d5ab..22b9e0f 100644
--- a/policy_manager/real_updater_provider.h
+++ b/policy_manager/real_updater_provider.h
@@ -71,6 +71,11 @@
     return var_cellular_enabled_.get();
   }
 
+  virtual Variable<unsigned int>*
+      var_consecutive_failed_update_checks() override {
+    return var_consecutive_failed_update_checks_.get();
+  }
+
  private:
   // A pointer to the update engine's system state aggregator.
   chromeos_update_engine::SystemState* system_state_;
@@ -87,6 +92,7 @@
   scoped_ptr<Variable<std::string>> var_new_channel_;
   scoped_ptr<Variable<bool>> var_p2p_enabled_;
   scoped_ptr<Variable<bool>> var_cellular_enabled_;
+  scoped_ptr<Variable<unsigned int>> var_consecutive_failed_update_checks_;
 
   DISALLOW_COPY_AND_ASSIGN(RealUpdaterProvider);
 };