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.cc b/policy_manager/real_system_provider.cc
index 6b19268..e00c87b 100644
--- a/policy_manager/real_system_provider.cc
+++ b/policy_manager/real_system_provider.cc
@@ -4,15 +4,25 @@
#include "update_engine/policy_manager/real_system_provider.h"
+#include <string.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <unistd.h>
+
#include <string>
#include <vector>
#include <base/logging.h>
+#include <base/strings/stringprintf.h>
+#include <base/time/time.h>
#include <vboot/crossystem.h>
#include "update_engine/policy_manager/generic_variables.h"
#include "update_engine/utils.h"
+using base::StringPrintf;
+using base::Time;
+using base::TimeDelta;
using std::string;
using std::vector;
@@ -24,9 +34,15 @@
VbGetSystemPropertyInt("devsw_boot") != 0));
var_is_official_build_.reset(
- new ConstCopyVariable<bool>("var_is_official_build",
+ new ConstCopyVariable<bool>("is_official_build",
VbGetSystemPropertyInt("debug_build") == 0));
+ var_is_oobe_complete_.reset(
+ new CallCopyVariable<bool>(
+ "is_oobe_complete",
+ base::Bind(&chromeos_update_engine::HardwareInterface::IsOOBEComplete,
+ base::Unretained(hardware_), nullptr)));
+
return true;
}