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;
 }