Rollback option put behind the flag.

Recreation of issue 267393011.

BUG=368860

Review URL: https://codereview.chromium.org/280123003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269851 0039d316-1c4b-4281-b951-d872f2087c98
parent f11bf40a
...@@ -105,7 +105,10 @@ IN_PROC_BROWSER_TEST_F(ResetTest, ShowAndCancel) { ...@@ -105,7 +105,10 @@ IN_PROC_BROWSER_TEST_F(ResetTest, ShowAndCancel) {
JSExpect("!document.querySelector('#reset.hidden')"); JSExpect("!document.querySelector('#reset.hidden')");
CloseResetScreen(); CloseResetScreen();
JSExpect("!!document.querySelector('#reset.hidden')"); JSExpect("!!document.querySelector('#reset.hidden')");
EXPECT_EQ(1, update_engine_client_->can_rollback_call_count()); if (CommandLine::ForCurrentProcess()->HasSwitch(
switches::kEnableRollbackOption)) {
EXPECT_EQ(1, update_engine_client_->can_rollback_call_count());
}
} }
IN_PROC_BROWSER_TEST_F(ResetTest, PRE_RestartBeforePowerwash) { IN_PROC_BROWSER_TEST_F(ResetTest, PRE_RestartBeforePowerwash) {
...@@ -177,15 +180,18 @@ IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, ShortcutInvokedCases) { ...@@ -177,15 +180,18 @@ IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, ShortcutInvokedCases) {
CloseResetScreen(); CloseResetScreen();
OobeScreenWaiter(OobeDisplay::SCREEN_ACCOUNT_PICKER).Wait(); OobeScreenWaiter(OobeDisplay::SCREEN_ACCOUNT_PICKER).Wait();
// rollback available and checked if (CommandLine::ForCurrentProcess()->HasSwitch(
InvokeResetScreen(); switches::kEnableRollbackOption)) {
ASSERT_TRUE(content::ExecuteScript( // rollback available and checked
web_contents(), InvokeResetScreen();
"$('reset-rollback-checkbox').checked = true;")); ASSERT_TRUE(content::ExecuteScript(
ClickResetButton(); web_contents(),
EXPECT_EQ(0, power_manager_client_->num_request_restart_calls()); "$('reset-rollback-checkbox').checked = true;"));
EXPECT_EQ(2, session_manager_client_->start_device_wipe_call_count()); ClickResetButton();
EXPECT_EQ(1, update_engine_client_->rollback_call_count()); EXPECT_EQ(0, power_manager_client_->num_request_restart_calls());
EXPECT_EQ(2, session_manager_client_->start_device_wipe_call_count());
EXPECT_EQ(1, update_engine_client_->rollback_call_count());
}
} }
IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, PRE_PowerwashRequested) { IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, PRE_PowerwashRequested) {
...@@ -220,14 +226,18 @@ IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, ErrorOnRollbackRequested) { ...@@ -220,14 +226,18 @@ IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, ErrorOnRollbackRequested) {
EXPECT_EQ(0, update_engine_client_->rollback_call_count()); EXPECT_EQ(0, update_engine_client_->rollback_call_count());
JSExpect("!$('reset').classList.contains('revert-promise')"); JSExpect("!$('reset').classList.contains('revert-promise')");
ClickResetButton(); ClickResetButton();
EXPECT_EQ(0, power_manager_client_->num_request_restart_calls()); if (CommandLine::ForCurrentProcess()->HasSwitch(
EXPECT_EQ(0, session_manager_client_->start_device_wipe_call_count()); switches::kEnableRollbackOption)) {
EXPECT_EQ(1, update_engine_client_->rollback_call_count()); EXPECT_EQ(0, power_manager_client_->num_request_restart_calls());
JSExpect("$('reset').classList.contains('revert-promise')"); EXPECT_EQ(0, session_manager_client_->start_device_wipe_call_count());
UpdateEngineClient::Status error_update_status; EXPECT_EQ(1, update_engine_client_->rollback_call_count());
error_update_status.status = UpdateEngineClient::UPDATE_STATUS_ERROR; JSExpect("$('reset').classList.contains('revert-promise')");
update_engine_client_->NotifyObserversThatStatusChanged(error_update_status); UpdateEngineClient::Status error_update_status;
OobeScreenWaiter(OobeDisplay::SCREEN_ERROR_MESSAGE).Wait(); error_update_status.status = UpdateEngineClient::UPDATE_STATUS_ERROR;
update_engine_client_->NotifyObserversThatStatusChanged(
error_update_status);
OobeScreenWaiter(OobeDisplay::SCREEN_ERROR_MESSAGE).Wait();
}
} }
IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest,
...@@ -239,17 +249,20 @@ IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, ...@@ -239,17 +249,20 @@ IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest,
} }
IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, SuccessOnRollbackRequested) { IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, SuccessOnRollbackRequested) {
OobeScreenWaiter(OobeDisplay::SCREEN_OOBE_RESET).Wait(); if (CommandLine::ForCurrentProcess()->HasSwitch(
ClickResetButton(); switches::kEnableRollbackOption)) {
EXPECT_EQ(0, power_manager_client_->num_request_restart_calls()); OobeScreenWaiter(OobeDisplay::SCREEN_OOBE_RESET).Wait();
EXPECT_EQ(0, session_manager_client_->start_device_wipe_call_count()); ClickResetButton();
EXPECT_EQ(1, update_engine_client_->rollback_call_count()); EXPECT_EQ(0, power_manager_client_->num_request_restart_calls());
UpdateEngineClient::Status ready_for_reboot_status; EXPECT_EQ(0, session_manager_client_->start_device_wipe_call_count());
ready_for_reboot_status.status = EXPECT_EQ(1, update_engine_client_->rollback_call_count());
UpdateEngineClient::UPDATE_STATUS_UPDATED_NEED_REBOOT; UpdateEngineClient::Status ready_for_reboot_status;
update_engine_client_->NotifyObserversThatStatusChanged( ready_for_reboot_status.status =
ready_for_reboot_status); UpdateEngineClient::UPDATE_STATUS_UPDATED_NEED_REBOOT;
EXPECT_EQ(1, power_manager_client_->num_request_restart_calls()); update_engine_client_->NotifyObserversThatStatusChanged(
ready_for_reboot_status);
EXPECT_EQ(1, power_manager_client_->num_request_restart_calls());
}
} }
......
...@@ -14,7 +14,6 @@ ...@@ -14,7 +14,6 @@
#include "chrome/browser/chromeos/login/help_app_launcher.h" #include "chrome/browser/chromeos/login/help_app_launcher.h"
#include "chrome/browser/chromeos/reset/metrics.h" #include "chrome/browser/chromeos/reset/metrics.h"
#include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h" #include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h"
#include "chrome/common/chrome_switches.h"
#include "chrome/common/pref_names.h" #include "chrome/common/pref_names.h"
#include "chromeos/chromeos_switches.h" #include "chromeos/chromeos_switches.h"
#include "chromeos/dbus/dbus_thread_manager.h" #include "chromeos/dbus/dbus_thread_manager.h"
...@@ -102,7 +101,11 @@ void ResetScreenHandler::Show() { ...@@ -102,7 +101,11 @@ void ResetScreenHandler::Show() {
rollback_available_ = false; rollback_available_ = false;
if (!restart_required_) // First exec after boot. if (!restart_required_) // First exec after boot.
reboot_was_requested_ = prefs->GetBoolean(prefs::kFactoryResetRequested); reboot_was_requested_ = prefs->GetBoolean(prefs::kFactoryResetRequested);
if (!restart_required_ && reboot_was_requested_) { if (!CommandLine::ForCurrentProcess()->HasSwitch(
switches::kEnableRollbackOption)) {
rollback_available_ = false;
ShowWithParams();
} else if (!restart_required_ && reboot_was_requested_) {
// First exec after boot. // First exec after boot.
rollback_available_ = prefs->GetBoolean(prefs::kRollbackRequested); rollback_available_ = prefs->GetBoolean(prefs::kRollbackRequested);
ShowWithParams(); ShowWithParams();
...@@ -231,6 +234,7 @@ void ResetScreenHandler::HandleOnLearnMore() { ...@@ -231,6 +234,7 @@ void ResetScreenHandler::HandleOnLearnMore() {
void ResetScreenHandler::UpdateStatusChanged( void ResetScreenHandler::UpdateStatusChanged(
const UpdateEngineClient::Status& status) { const UpdateEngineClient::Status& status) {
VLOG(1) << "Update status change to " << status.status;
if (status.status == UpdateEngineClient::UPDATE_STATUS_ERROR) { if (status.status == UpdateEngineClient::UPDATE_STATUS_ERROR) {
// Show error screen. // Show error screen.
base::DictionaryValue params; base::DictionaryValue params;
......
...@@ -90,6 +90,9 @@ const char kEnableTouchpadThreeFingerClick[] ...@@ -90,6 +90,9 @@ const char kEnableTouchpadThreeFingerClick[]
// than the kiosk app mode. // than the kiosk app mode.
const char kEnableKioskMode[] = "enable-kiosk-mode"; const char kEnableKioskMode[] = "enable-kiosk-mode";
// Enables rollback option for resetting ChromeOS.
const char kEnableRollbackOption[] = "enable-rollback-option";
// Enables request of tablet site (via user agent override). // Enables request of tablet site (via user agent override).
const char kEnableRequestTabletSite[] = "enable-request-tablet-site"; const char kEnableRequestTabletSite[] = "enable-request-tablet-site";
......
...@@ -40,6 +40,7 @@ CHROMEOS_EXPORT extern const char kEchoExtensionPath[]; ...@@ -40,6 +40,7 @@ CHROMEOS_EXPORT extern const char kEchoExtensionPath[];
CHROMEOS_EXPORT extern const char kEnableCarrierSwitching[]; CHROMEOS_EXPORT extern const char kEnableCarrierSwitching[];
CHROMEOS_EXPORT extern const char kEnableConsumerManagement[]; CHROMEOS_EXPORT extern const char kEnableConsumerManagement[];
CHROMEOS_EXPORT extern const char kEnableFileManagerMTP[]; CHROMEOS_EXPORT extern const char kEnableFileManagerMTP[];
CHROMEOS_EXPORT extern const char kEnableRollbackOption[];
CHROMEOS_EXPORT extern const char kEnableHIDDetectionOnOOBE[]; CHROMEOS_EXPORT extern const char kEnableHIDDetectionOnOOBE[];
CHROMEOS_EXPORT extern const char kEnableKioskMode[]; CHROMEOS_EXPORT extern const char kEnableKioskMode[];
CHROMEOS_EXPORT extern const char kEnableNetworkPortalNotification[]; CHROMEOS_EXPORT extern const char kEnableNetworkPortalNotification[];
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment