PM: New system provider variable for whether OOBE is complete.
This uses logic found in Hardware::IsOOBEComplete(). It is needed for
deciding whether scattering should be applied.
BUG=chromium:358323
TEST=Unit tests.
Change-Id: I745365e84fc09dd234cd5f65ec0a2012a9024cdd
Reviewed-on: https://chromium-review.googlesource.com/200571
Reviewed-by: Alex Deymo <deymo@chromium.org>
Tested-by: Gilad Arnold <garnold@chromium.org>
Commit-Queue: Gilad Arnold <garnold@chromium.org>
diff --git a/policy_manager/real_system_provider.h b/policy_manager/real_system_provider.h
index 01491ac..8d95387 100644
--- a/policy_manager/real_system_provider.h
+++ b/policy_manager/real_system_provider.h
@@ -9,6 +9,7 @@
#include <string>
+#include "update_engine/hardware_interface.h"
#include "update_engine/policy_manager/system_provider.h"
namespace chromeos_policy_manager {
@@ -16,7 +17,9 @@
// SystemProvider concrete implementation.
class RealSystemProvider : public SystemProvider {
public:
- RealSystemProvider() {}
+ explicit RealSystemProvider(
+ chromeos_update_engine::HardwareInterface* hardware)
+ : hardware_(hardware) {}
// Initializes the provider and returns whether it succeeded.
bool Init();
@@ -29,9 +32,16 @@
return var_is_official_build_.get();
}
+ virtual Variable<bool>* var_is_oobe_complete() override {
+ return var_is_oobe_complete_.get();
+ }
+
private:
scoped_ptr<Variable<bool>> var_is_normal_boot_mode_;
scoped_ptr<Variable<bool>> var_is_official_build_;
+ scoped_ptr<Variable<bool>> var_is_oobe_complete_;
+
+ chromeos_update_engine::HardwareInterface* hardware_;
DISALLOW_COPY_AND_ASSIGN(RealSystemProvider);
};