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/state_factory.cc b/policy_manager/state_factory.cc
index c692522..88a8ee0 100644
--- a/policy_manager/state_factory.cc
+++ b/policy_manager/state_factory.cc
@@ -23,14 +23,15 @@
                            chromeos_update_engine::DBusWrapperInterface* dbus,
                            chromeos_update_engine::SystemState* system_state) {
   chromeos_update_engine::ClockInterface* const clock = system_state->clock();
-  scoped_ptr<RealConfigProvider> config_provider(new RealConfigProvider(
-      system_state->hardware()));
+  scoped_ptr<RealConfigProvider> config_provider(
+      new RealConfigProvider(system_state->hardware()));
   scoped_ptr<RealDevicePolicyProvider> device_policy_provider(
       new RealDevicePolicyProvider(policy_provider));
   scoped_ptr<RealRandomProvider> random_provider(new RealRandomProvider());
   scoped_ptr<RealShillProvider> shill_provider(
       new RealShillProvider(dbus, clock));
-  scoped_ptr<RealSystemProvider> system_provider(new RealSystemProvider());
+  scoped_ptr<RealSystemProvider> system_provider(
+      new RealSystemProvider(system_state->hardware()));
   scoped_ptr<RealTimeProvider> time_provider(new RealTimeProvider(clock));
   scoped_ptr<RealUpdaterProvider> updater_provider(
       new RealUpdaterProvider(system_state));