Make sure that OOBE resumes at the update screen when update was done.

This is critical to make sure that forced reenrollment check is not skipped
in case of critical updates.

BUG=372368
TEST=browser_tests

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@273195 0039d316-1c4b-4281-b951-d872f2087c98
parent 809dd120
...@@ -190,8 +190,6 @@ void UpdateScreen::UpdateStatusChanged( ...@@ -190,8 +190,6 @@ void UpdateScreen::UpdateStatusChanged(
break; break;
case UpdateEngineClient::UPDATE_STATUS_UPDATED_NEED_REBOOT: case UpdateEngineClient::UPDATE_STATUS_UPDATED_NEED_REBOOT:
MakeSureScreenIsShown(); MakeSureScreenIsShown();
// Make sure that first OOBE stage won't be shown after reboot.
StartupUtils::MarkOobeCompleted();
actor_->SetProgress(kProgressComplete); actor_->SetProgress(kProgressComplete);
actor_->ShowEstimatedTimeLeft(false); actor_->ShowEstimatedTimeLeft(false);
if (HasCriticalUpdate()) { if (HasCriticalUpdate()) {
......
...@@ -4,13 +4,17 @@ ...@@ -4,13 +4,17 @@
#include "base/command_line.h" #include "base/command_line.h"
#include "base/memory/scoped_ptr.h" #include "base/memory/scoped_ptr.h"
#include "base/prefs/pref_service.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/chromeos/login/screens/mock_error_screen.h" #include "chrome/browser/chromeos/login/screens/mock_error_screen.h"
#include "chrome/browser/chromeos/login/screens/mock_screen_observer.h" #include "chrome/browser/chromeos/login/screens/mock_screen_observer.h"
#include "chrome/browser/chromeos/login/screens/update_screen.h" #include "chrome/browser/chromeos/login/screens/update_screen.h"
#include "chrome/browser/chromeos/login/startup_utils.h"
#include "chrome/browser/chromeos/login/test/wizard_in_process_browser_test.h" #include "chrome/browser/chromeos/login/test/wizard_in_process_browser_test.h"
#include "chrome/browser/chromeos/login/wizard_controller.h" #include "chrome/browser/chromeos/login/wizard_controller.h"
#include "chrome/browser/chromeos/net/network_portal_detector.h" #include "chrome/browser/chromeos/net/network_portal_detector.h"
#include "chrome/browser/chromeos/net/network_portal_detector_test_impl.h" #include "chrome/browser/chromeos/net/network_portal_detector_test_impl.h"
#include "chrome/common/pref_names.h"
#include "chromeos/chromeos_switches.h" #include "chromeos/chromeos_switches.h"
#include "chromeos/dbus/fake_dbus_thread_manager.h" #include "chromeos/dbus/fake_dbus_thread_manager.h"
#include "chromeos/dbus/fake_update_engine_client.h" #include "chromeos/dbus/fake_update_engine_client.h"
...@@ -177,6 +181,11 @@ IN_PROC_BROWSER_TEST_F(UpdateScreenTest, TestUpdateAvailable) { ...@@ -177,6 +181,11 @@ IN_PROC_BROWSER_TEST_F(UpdateScreenTest, TestUpdateAvailable) {
update_screen_->UpdateStatusChanged(status); update_screen_->UpdateStatusChanged(status);
// UpdateStatusChanged(status) calls RebootAfterUpdate(). // UpdateStatusChanged(status) calls RebootAfterUpdate().
EXPECT_EQ(1, fake_update_engine_client_->reboot_after_update_call_count()); EXPECT_EQ(1, fake_update_engine_client_->reboot_after_update_call_count());
// Check that OOBE will resume back at this screen.
base::MessageLoop::current()->RunUntilIdle();
EXPECT_FALSE(StartupUtils::IsOobeCompleted());
EXPECT_EQ(update_screen_->GetName(),
g_browser_process->local_state()->GetString(prefs::kOobeScreenPending));
} }
IN_PROC_BROWSER_TEST_F(UpdateScreenTest, TestErrorIssuingUpdateCheck) { IN_PROC_BROWSER_TEST_F(UpdateScreenTest, TestErrorIssuingUpdateCheck) {
......
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