Always update target version prefix
When UpdateAttempter::Update is called, the cached target version
prefix in its |omaha_request_params_| should always be updated with
the one passed in.
Also fix the target version LOG lines in kiosk app pin policy code.
BUG=chromium:695133
TEST=UpdateAttempterTest.TargetVersionPrefixSetAndReset
Reviewed-on: https://chromium-review.googlesource.com/446657
Commit-Ready: Xiyuan Xia <xiyuan@chromium.org>
Tested-by: Xiyuan Xia <xiyuan@chromium.org>
Reviewed-by: Alex Deymo <deymo@chromium.org>
Reviewed-by: Ben Chan <benchan@chromium.org>
(cherry picked from commit 4d34c18e5ce29d138c7946cc817dee8b3fce7cf0)
Change-Id: I712b169505f4566aac3a0b2c9746dfcb9466ef8d
diff --git a/update_attempter.cc b/update_attempter.cc
index 1bdd0eb..d9a8d04 100644
--- a/update_attempter.cc
+++ b/update_attempter.cc
@@ -371,9 +371,8 @@
// Refresh the policy before computing all the update parameters.
RefreshDevicePolicy();
- // Set the target version prefix, if provided.
- if (!target_version_prefix.empty())
- omaha_request_params_->set_target_version_prefix(target_version_prefix);
+ // Update the target version prefix.
+ omaha_request_params_->set_target_version_prefix(target_version_prefix);
CalculateScatteringParams(interactive);
diff --git a/update_attempter.h b/update_attempter.h
index f6547fe..c88e7ad 100644
--- a/update_attempter.h
+++ b/update_attempter.h
@@ -256,6 +256,7 @@
FRIEND_TEST(UpdateAttempterTest, UpdateTest);
FRIEND_TEST(UpdateAttempterTest, ReportDailyMetrics);
FRIEND_TEST(UpdateAttempterTest, BootTimeInUpdateMarkerFile);
+ FRIEND_TEST(UpdateAttempterTest, TargetVersionPrefixSetAndReset);
// CertificateChecker::Observer method.
// Report metrics about the certificate being checked.
diff --git a/update_attempter_unittest.cc b/update_attempter_unittest.cc
index 94a1b3c..5224870 100644
--- a/update_attempter_unittest.cc
+++ b/update_attempter_unittest.cc
@@ -978,4 +978,14 @@
EXPECT_EQ(constants::kOmahaDefaultAUTestURL, attempter_.forced_omaha_url());
}
+TEST_F(UpdateAttempterTest, TargetVersionPrefixSetAndReset) {
+ attempter_.CalculateUpdateParams("", "", "", "1234", false, false);
+ EXPECT_EQ("1234",
+ fake_system_state_.request_params()->target_version_prefix());
+
+ attempter_.CalculateUpdateParams("", "", "", "", false, false);
+ EXPECT_TRUE(
+ fake_system_state_.request_params()->target_version_prefix().empty());
+}
+
} // namespace chromeos_update_engine
diff --git a/update_manager/chromeos_policy.cc b/update_manager/chromeos_policy.cc
index ec2b9f0..ffd378c 100644
--- a/update_manager/chromeos_policy.cc
+++ b/update_manager/chromeos_policy.cc
@@ -245,9 +245,9 @@
}
result->target_version_prefix = *kiosk_required_platform_version_p;
- LOG(INFO) << "Allow kiosk app to control Chrome version policy is set,"
- << ", target version is "
- << (kiosk_required_platform_version_p
+ LOG(INFO) << "Allow kiosk app to control Chrome version policy is set, "
+ << "target version is "
+ << (!kiosk_required_platform_version_p->empty()
? *kiosk_required_platform_version_p
: std::string("latest"));
} else {