diff options
author | Tatiana Merkulova <merkulova@chromium.org> | 2014-11-14 18:32:54 +0300 |
---|---|---|
committer | Tatiana Merkulova <merkulova@chromium.org> | 2014-11-14 15:36:10 +0000 |
commit | 8853af35e6adf8e4ad648b6beef5a3ba7bdc3db6 (patch) | |
tree | e98df646e2217f3cfb94eeb92127faed7bb53c51 | |
parent | c8e8291180910b86709d5186c1fd3a934335954c (diff) | |
download | chromium_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.cc | 22 | ||||
-rw-r--r-- | chrome/browser/ui/webui/chromeos/login/reset_screen_handler.cc | 11 |
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) { |