diff options
3 files changed, 26 insertions, 5 deletions
diff --git a/chrome/browser/chromeos/login/oobe_browsertest.cc b/chrome/browser/chromeos/login/oobe_browsertest.cc index 3ecab68..1cd9a41 100644 --- a/chrome/browser/chromeos/login/oobe_browsertest.cc +++ b/chrome/browser/chromeos/login/oobe_browsertest.cc @@ -207,8 +207,7 @@ class OobeTest : public chromeos::CrosInProcessBrowserTest { // needs UI thread. }; -// Test is flaky - http://crbug.com/242587 -IN_PROC_BROWSER_TEST_F(OobeTest, DISABLED_NewUser) { +IN_PROC_BROWSER_TEST_F(OobeTest, NewUser) { chromeos::WizardController::SkipPostLoginScreensForTesting(); chromeos::WizardController* wizard_controller = chromeos::WizardController::default_controller(); @@ -222,4 +221,4 @@ IN_PROC_BROWSER_TEST_F(OobeTest, DISABLED_NewUser) { runner->Run(); } -} +} // namespace diff --git a/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc b/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc index 2bcf094..f54ffa3 100644 --- a/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc +++ b/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc @@ -334,7 +334,8 @@ SigninScreenHandler::SigninScreenHandler( is_first_update_state_call_(true), offline_login_active_(false), last_network_state_(NetworkStateInformer::UNKNOWN), - has_pending_auth_ui_(false) { + has_pending_auth_ui_(false), + ignore_next_user_abort_frame_error_(false) { DCHECK(network_state_informer_); DCHECK(error_screen_actor_); network_state_informer_->AddObserver(this); @@ -433,7 +434,7 @@ void SigninScreenHandler::DeclareLocalizedValues( IDS_LOGIN_PUBLIC_ACCOUNT_ENTER_ACCESSIBLE_NAME); if (chromeos::KioskModeSettings::Get()->IsKioskModeEnabled()) - builder->Add("demoLoginMessage", IDS_KIOSK_MODE_LOGIN_MESSAGE); + builder->Add("demoLoginMessage", IDS_KIOSK_MODE_LOGIN_MESSAGE); } void SigninScreenHandler::Show(bool oobe_ui) { @@ -722,6 +723,7 @@ void SigninScreenHandler::ReloadGaiaScreen() { } LOG(WARNING) << "Reload auth extension frame."; frame_state_ = FRAME_STATE_LOADING; + ignore_next_user_abort_frame_error_ = true; CallJS("login.GaiaSigninScreen.doReload"); } @@ -1067,6 +1069,8 @@ void SigninScreenHandler::LoadAuthExtension( test_pass_.clear(); } } + frame_state_ = FRAME_STATE_LOADING; + ignore_next_user_abort_frame_error_ = true; CallJS("login.GaiaSigninScreen.loadAuthExtension", params); } @@ -1475,9 +1479,21 @@ void SigninScreenHandler::HandleFrameLoadingCompleted(int status) { LOG(INFO) << "Gaia frame is loaded"; frame_state_ = FRAME_STATE_LOADED; } else { + // Ignore net::ERR_ABORTED frame error once. + if (ignore_next_user_abort_frame_error_ && + frame_error_ == net::ERR_ABORTED) { + LOG(WARNING) << "Ignore gaia frame error: " << frame_error_; + ignore_next_user_abort_frame_error_ = false; + return; + } + LOG(WARNING) << "Gaia frame error: " << frame_error_; frame_state_ = FRAME_STATE_ERROR; } + + // Frame load okay and other frame error clears the flag. + ignore_next_user_abort_frame_error_ = false; + if (network_state_informer_->state() != NetworkStateInformer::ONLINE) return; if (frame_state_ == FRAME_STATE_LOADED) { diff --git a/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h b/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h index 143cbcd..a7f6328 100644 --- a/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h +++ b/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h @@ -451,6 +451,12 @@ class SigninScreenHandler // NOTIFICATION_AUTH_CANCELLED. bool has_pending_auth_ui_; + // Whether to ignore the next net::ERR_ABORTED frame error. ERR_ABORTED could + // be triggered when reloading gaia frame's src with a pending load. + // ReloadGaiaExtension() sets this flag to true to ignore potential + // ERR_ABORTED triggered from its reload request. See http://crbug.com/242527. + bool ignore_next_user_abort_frame_error_; + // Testing helper, specifies new value for gaia url. GURL gaia_url_for_test_; |