summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTatiana Merkulova <merkulova@chromium.org>2014-11-14 18:32:54 +0300
committerTatiana Merkulova <merkulova@chromium.org>2014-11-14 15:36:10 +0000
commit8853af35e6adf8e4ad648b6beef5a3ba7bdc3db6 (patch)
treee98df646e2217f3cfb94eeb92127faed7bb53c51
parentc8e8291180910b86709d5186c1fd3a934335954c (diff)
downloadchromium_src-8853af35e6adf8e4ad648b6beef5a3ba7bdc3db6.zip
chromium_src-8853af35e6adf8e4ad648b6beef5a3ba7bdc3db6.tar.gz
chromium_src-8853af35e6adf8e4ad648b6beef5a3ba7bdc3db6.tar.bz2
Rollback availability check fixed. Before: rollback availability was checked only on restart. For further dialog show it was set to false. Now: is checked on every dialog show.
BUG=429286 Review URL: https://codereview.chromium.org/714913002 Cr-Commit-Position: refs/heads/master@{#303661} (cherry picked from commit 48d772a0ef9d24f597bb0b526f5605460a4100a3) TBR=nkostylev@chromium.org Review URL: https://codereview.chromium.org/725973002 Cr-Commit-Position: refs/branch-heads/2214@{#43} Cr-Branched-From: 03655fd3f6d72165dc3c9bd2c89807305316fe6c-refs/heads/master@{#303346}
-rw-r--r--chrome/browser/chromeos/login/reset_browsertest.cc22
-rw-r--r--chrome/browser/ui/webui/chromeos/login/reset_screen_handler.cc11
2 files changed, 26 insertions, 7 deletions
diff --git a/chrome/browser/chromeos/login/reset_browsertest.cc b/chrome/browser/chromeos/login/reset_browsertest.cc
index 79a8552..7c79a9c 100644
--- a/chrome/browser/chromeos/login/reset_browsertest.cc
+++ b/chrome/browser/chromeos/login/reset_browsertest.cc
@@ -312,4 +312,26 @@ IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, ErrorOnRollbackRequested) {
OobeScreenWaiter(OobeDisplay::SCREEN_ERROR_MESSAGE).Wait();
}
+IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, PRE_RevertAfterCancel) {
+ PrefService* prefs = g_browser_process->local_state();
+ prefs->SetBoolean(prefs::kFactoryResetRequested, true);
+ RegisterSomeUser();
+}
+
+IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, RevertAfterCancel) {
+ update_engine_client_->set_can_rollback_check_result(true);
+ OobeScreenWaiter(OobeDisplay::SCREEN_OOBE_RESET).Wait();
+ EXPECT_EQ(0, power_manager_client_->num_request_restart_calls());
+ EXPECT_EQ(0, session_manager_client_->start_device_wipe_call_count());
+ EXPECT_EQ(0, update_engine_client_->rollback_call_count());
+ JSExpect("!$('reset').classList.contains('rollback-proposal-view')");
+ InvokeRollbackOption();
+ JSExpect("$('reset').classList.contains('rollback-proposal-view')");
+ CloseResetScreen();
+ InvokeResetScreen();
+ OobeScreenWaiter(OobeDisplay::SCREEN_OOBE_RESET).Wait();
+ InvokeRollbackOption();
+ JSExpect("$('reset').classList.contains('rollback-proposal-view')");
+}
+
} // namespace chromeos
diff --git a/chrome/browser/ui/webui/chromeos/login/reset_screen_handler.cc b/chrome/browser/ui/webui/chromeos/login/reset_screen_handler.cc
index f616b60..4971756 100644
--- a/chrome/browser/ui/webui/chromeos/login/reset_screen_handler.cc
+++ b/chrome/browser/ui/webui/chromeos/login/reset_screen_handler.cc
@@ -97,7 +97,6 @@ void ResetScreenHandler::ChooseAndApplyShowScenario() {
switches::kFirstExecAfterBoot);
reboot_was_requested_ = false;
- rollback_available_ = false;
preparing_for_rollback_ = false;
if (!restart_required_) // First exec after boot.
reboot_was_requested_ = prefs->GetBoolean(prefs::kFactoryResetRequested);
@@ -106,19 +105,17 @@ void ResetScreenHandler::ChooseAndApplyShowScenario() {
switches::kDisableRollbackOption)) {
rollback_available_ = false;
ShowWithParams();
- } else if (!restart_required_ && reboot_was_requested_) {
- // First exec after boot.
+ } else if (restart_required_) {
+ // Will require restart.
+ ShowWithParams();
+ } else {
chromeos::DBusThreadManager::Get()->GetUpdateEngineClient()->
CanRollbackCheck(base::Bind(&ResetScreenHandler::OnRollbackCheck,
weak_ptr_factory_.GetWeakPtr()));
- } else {
- // Will require restart.
- ShowWithParams();
}
}
void ResetScreenHandler::Hide() {
- DBusThreadManager::Get()->GetUpdateEngineClient()->RemoveObserver(this);
}
void ResetScreenHandler::SetDelegate(Delegate* delegate) {