UpdateManager: Do not schedule periodic update checks on unofficial builds.
This abides by the current logic, as found in
UpdateCheckScheduler::Run(). New unit test added to verify this
behavior.
BUG=chromium:358269
TEST=Unit tests.
Change-Id: Id7ff2134492f0c861f5abff76223b61496a2fe63
Reviewed-on: https://chromium-review.googlesource.com/207213
Reviewed-by: Alex Deymo <deymo@chromium.org>
Tested-by: Gilad Arnold <garnold@chromium.org>
Commit-Queue: Gilad Arnold <garnold@chromium.org>
diff --git a/update_manager/chromeos_policy.cc b/update_manager/chromeos_policy.cc
index 86f53ce..fd2f882 100644
--- a/update_manager/chromeos_policy.cc
+++ b/update_manager/chromeos_policy.cc
@@ -156,6 +156,14 @@
result->updates_enabled = true;
result->target_channel.clear();
+ // Unofficial builds should not perform any automatic update checks.
+ const bool* is_official_build_p = ec->GetValue(
+ state->system_provider()->var_is_official_build());
+ if (is_official_build_p && !(*is_official_build_p)) {
+ result->updates_enabled = false;
+ return EvalStatus::kSucceeded;
+ }
+
DevicePolicyProvider* const dp_provider = state->device_policy_provider();
const bool* device_policy_is_loaded_p = ec->GetValue(
diff --git a/update_manager/chromeos_policy_unittest.cc b/update_manager/chromeos_policy_unittest.cc
index 23c0c2b..0537a65 100644
--- a/update_manager/chromeos_policy_unittest.cc
+++ b/update_manager/chromeos_policy_unittest.cc
@@ -277,7 +277,21 @@
EXPECT_EQ("foo-channel", result.target_channel);
}
-TEST_F(UmChromeOSPolicyTest, UpdateCheckAllowedUpdatesDisabled) {
+TEST_F(UmChromeOSPolicyTest,
+ UpdateCheckAllowedUpdatesDisabledForUnofficialBuilds) {
+ // UpdateCheckAllowed should return false (kSucceeded) if this is an
+ // unofficial build; we don't want periodic update checks on developer images.
+
+ fake_state_.system_provider()->var_is_official_build()->reset(
+ new bool(false));
+
+ UpdateCheckParams result;
+ ExpectPolicyStatus(EvalStatus::kSucceeded,
+ &Policy::UpdateCheckAllowed, &result);
+ EXPECT_FALSE(result.updates_enabled);
+}
+
+TEST_F(UmChromeOSPolicyTest, UpdateCheckAllowedUpdatesDisabledByPolicy) {
// UpdateCheckAllowed should return kAskMeAgainLater because a device policy
// is loaded and prohibits updates.
@@ -285,7 +299,6 @@
fake_state_.device_policy_provider()->var_update_disabled()->reset(
new bool(true));
- // Check that the UpdateCanStart returns false.
UpdateCheckParams result;
ExpectPolicyStatus(EvalStatus::kAskMeAgainLater,
&Policy::UpdateCheckAllowed, &result);