Skip non-critical updates during OOBE update check
If the system has not yet completed OOBE, and Omaha returns a response
with an empty deadline field, avoid initiating a background update
because doing so may violate an enterprise policy that gets pushed
down post-enrollment.
Bug: None
BUG=chromium:587101
TEST=`FEATURES=test emerge-link chromeos-base/update_engine`
TEST=powerwash, install lsb-release file from an old stable build,
repeat OOBE, verify that download is skipped via logs, then verify
that update proceeds after logging into a standard gmail account
Change-Id: I6e6fae02c609b2763abc6e9960bf6d87dd3534e2
diff --git a/common/error_code.h b/common/error_code.h
index 32155f2..e08ec46 100644
--- a/common/error_code.h
+++ b/common/error_code.h
@@ -72,6 +72,7 @@
kOmahaRequestXMLHasEntityDecl = 46,
kFilesystemVerifierError = 47,
kUserCanceled = 48,
+ kNonCriticalUpdateInOOBE = 49,
// VERY IMPORTANT! When adding new error codes:
//
diff --git a/common/error_code_utils.cc b/common/error_code_utils.cc
index dc9eaf4..ad4aeeb 100644
--- a/common/error_code_utils.cc
+++ b/common/error_code_utils.cc
@@ -142,6 +142,8 @@
return "ErrorCode::kFilesystemVerifierError";
case ErrorCode::kUserCanceled:
return "ErrorCode::kUserCanceled";
+ case ErrorCode::kNonCriticalUpdateInOOBE:
+ return "ErrorCode::kNonCriticalUpdateInOOBE";
// Don't add a default case to let the compiler warn about newly added
// error codes which should be added here.
}
diff --git a/common/fake_hardware.h b/common/fake_hardware.h
index 23d6498..449787b 100644
--- a/common/fake_hardware.h
+++ b/common/fake_hardware.h
@@ -37,7 +37,8 @@
FakeHardware()
: is_official_build_(true),
is_normal_boot_mode_(true),
- is_oobe_complete_(false),
+ is_oobe_complete_(true),
+ oobe_timestamp_(base::Time::FromTimeT(1169280000)), // Jan 20, 2007
hardware_class_("Fake HWID BLAH-1234"),
firmware_version_("Fake Firmware v1.0.1"),
ec_version_("Fake EC v1.0a"),