| Index: chrome/browser/chromeos/login/screens/error_screen.cc
|
| diff --git a/chrome/browser/chromeos/login/screens/error_screen.cc b/chrome/browser/chromeos/login/screens/error_screen.cc
|
| index cd1561b05a7593e99fd5404c47292f4403f3b3fb..a0b46cbc9624a8f7024b5e58cc79403b4594c05c 100644
|
| --- a/chrome/browser/chromeos/login/screens/error_screen.cc
|
| +++ b/chrome/browser/chromeos/login/screens/error_screen.cc
|
| @@ -45,6 +45,15 @@ namespace chromeos {
|
|
|
| namespace {
|
|
|
| +constexpr const char kContextKeyErrorStateCode[] = "error-state-code";
|
| +constexpr const char kContextKeyErrorStateNetwork[] = "error-state-network";
|
| +constexpr const char kContextKeyGuestSigninAllowed[] = "guest-signin-allowed";
|
| +constexpr const char kContextKeyOfflineSigninAllowed[] =
|
| + "offline-signin-allowed";
|
| +constexpr const char kContextKeyShowConnectingIndicator[] =
|
| + "show-connecting-indicator";
|
| +constexpr const char kContextKeyUIState[] = "ui-state";
|
| +
|
| // Returns the current running kiosk app profile in a kiosk session. Otherwise,
|
| // returns nullptr.
|
| Profile* GetAppProfile() {
|
| @@ -55,15 +64,30 @@ Profile* GetAppProfile() {
|
|
|
| } // namespace
|
|
|
| +constexpr const char ErrorScreen::kUserActionConfigureCertsButtonClicked[] =
|
| + "configure-certs";
|
| +constexpr const char ErrorScreen::kUserActionDiagnoseButtonClicked[] =
|
| + "diagnose";
|
| +constexpr const char ErrorScreen::kUserActionLaunchOobeGuestSessionClicked[] =
|
| + "launch-oobe-guest";
|
| +constexpr const char
|
| + ErrorScreen::kUserActionLocalStateErrorPowerwashButtonClicked[] =
|
| + "local-state-error-powerwash";
|
| +constexpr const char ErrorScreen::kUserActionRebootButtonClicked[] = "reboot";
|
| +constexpr const char ErrorScreen::kUserActionShowCaptivePortalClicked[] =
|
| + "show-captive-portal";
|
| +constexpr const char ErrorScreen::kUserActionConnectRequested[] =
|
| + "connect-requested";
|
| +
|
| ErrorScreen::ErrorScreen(BaseScreenDelegate* base_screen_delegate,
|
| NetworkErrorView* view)
|
| - : NetworkErrorModel(base_screen_delegate),
|
| + : BaseScreen(base_screen_delegate, OobeScreen::SCREEN_ERROR_MESSAGE),
|
| view_(view),
|
| weak_factory_(this) {
|
| network_state_informer_ = new NetworkStateInformer();
|
| network_state_informer_->Init();
|
| if (view_)
|
| - view_->Bind(*this);
|
| + view_->Bind(this);
|
| }
|
|
|
| ErrorScreen::~ErrorScreen() {
|
| @@ -71,64 +95,6 @@ ErrorScreen::~ErrorScreen() {
|
| view_->Unbind();
|
| }
|
|
|
| -void ErrorScreen::Show() {
|
| - if (!on_hide_callback_) {
|
| - SetHideCallback(base::Bind(&ErrorScreen::DefaultHideCallback,
|
| - weak_factory_.GetWeakPtr()));
|
| - }
|
| - if (view_)
|
| - view_->Show();
|
| -}
|
| -
|
| -void ErrorScreen::Hide() {
|
| - if (view_)
|
| - view_->Hide();
|
| -}
|
| -
|
| -void ErrorScreen::OnShow() {
|
| - LOG(WARNING) << "Network error screen message is shown";
|
| - content::NotificationService::current()->Notify(
|
| - chrome::NOTIFICATION_LOGIN_NETWORK_ERROR_SHOWN,
|
| - content::NotificationService::AllSources(),
|
| - content::NotificationService::NoDetails());
|
| - network_portal_detector::GetInstance()->SetStrategy(
|
| - PortalDetectorStrategy::STRATEGY_ID_ERROR_SCREEN);
|
| -}
|
| -
|
| -void ErrorScreen::OnHide() {
|
| - LOG(WARNING) << "Network error screen message is hidden";
|
| - if (on_hide_callback_) {
|
| - on_hide_callback_->Run();
|
| - on_hide_callback_.reset();
|
| - }
|
| - network_portal_detector::GetInstance()->SetStrategy(
|
| - PortalDetectorStrategy::STRATEGY_ID_LOGIN_SCREEN);
|
| -}
|
| -
|
| -void ErrorScreen::OnUserAction(const std::string& action_id) {
|
| - if (action_id == kUserActionShowCaptivePortalClicked)
|
| - ShowCaptivePortal();
|
| - else if (action_id == kUserActionConfigureCertsButtonClicked)
|
| - OnConfigureCerts();
|
| - else if (action_id == kUserActionDiagnoseButtonClicked)
|
| - OnDiagnoseButtonClicked();
|
| - else if (action_id == kUserActionLaunchOobeGuestSessionClicked)
|
| - OnLaunchOobeGuestSession();
|
| - else if (action_id == kUserActionLocalStateErrorPowerwashButtonClicked)
|
| - OnLocalStateErrorPowerwashButtonClicked();
|
| - else if (action_id == kUserActionRebootButtonClicked)
|
| - OnRebootButtonClicked();
|
| - else if (action_id == kUserActionConnectRequested)
|
| - OnConnectRequested();
|
| - else
|
| - BaseScreen::OnUserAction(action_id);
|
| -}
|
| -
|
| -void ErrorScreen::OnContextKeyUpdated(
|
| - const ::login::ScreenContext::KeyType& key) {
|
| - BaseScreen::OnContextKeyUpdated(key);
|
| -}
|
| -
|
| void ErrorScreen::AllowGuestSignin(bool allowed) {
|
| GetContextEditor().SetBoolean(kContextKeyGuestSigninAllowed, allowed);
|
| }
|
| @@ -203,6 +169,64 @@ void ErrorScreen::ShowConnectingIndicator(bool show) {
|
| GetContextEditor().SetBoolean(kContextKeyShowConnectingIndicator, show);
|
| }
|
|
|
| +ErrorScreen::ConnectRequestCallbackSubscription
|
| +ErrorScreen::RegisterConnectRequestCallback(const base::Closure& callback) {
|
| + return connect_request_callbacks_.Add(callback);
|
| +}
|
| +
|
| +void ErrorScreen::Show() {
|
| + if (!on_hide_callback_) {
|
| + SetHideCallback(base::Bind(&ErrorScreen::DefaultHideCallback,
|
| + weak_factory_.GetWeakPtr()));
|
| + }
|
| + if (view_)
|
| + view_->Show();
|
| +}
|
| +
|
| +void ErrorScreen::Hide() {
|
| + if (view_)
|
| + view_->Hide();
|
| +}
|
| +
|
| +void ErrorScreen::OnShow() {
|
| + LOG(WARNING) << "Network error screen message is shown";
|
| + content::NotificationService::current()->Notify(
|
| + chrome::NOTIFICATION_LOGIN_NETWORK_ERROR_SHOWN,
|
| + content::NotificationService::AllSources(),
|
| + content::NotificationService::NoDetails());
|
| + network_portal_detector::GetInstance()->SetStrategy(
|
| + PortalDetectorStrategy::STRATEGY_ID_ERROR_SCREEN);
|
| +}
|
| +
|
| +void ErrorScreen::OnHide() {
|
| + LOG(WARNING) << "Network error screen message is hidden";
|
| + if (on_hide_callback_) {
|
| + on_hide_callback_->Run();
|
| + on_hide_callback_.reset();
|
| + }
|
| + network_portal_detector::GetInstance()->SetStrategy(
|
| + PortalDetectorStrategy::STRATEGY_ID_LOGIN_SCREEN);
|
| +}
|
| +
|
| +void ErrorScreen::OnUserAction(const std::string& action_id) {
|
| + if (action_id == kUserActionShowCaptivePortalClicked)
|
| + ShowCaptivePortal();
|
| + else if (action_id == kUserActionConfigureCertsButtonClicked)
|
| + OnConfigureCerts();
|
| + else if (action_id == kUserActionDiagnoseButtonClicked)
|
| + OnDiagnoseButtonClicked();
|
| + else if (action_id == kUserActionLaunchOobeGuestSessionClicked)
|
| + OnLaunchOobeGuestSession();
|
| + else if (action_id == kUserActionLocalStateErrorPowerwashButtonClicked)
|
| + OnLocalStateErrorPowerwashButtonClicked();
|
| + else if (action_id == kUserActionRebootButtonClicked)
|
| + OnRebootButtonClicked();
|
| + else if (action_id == kUserActionConnectRequested)
|
| + OnConnectRequested();
|
| + else
|
| + BaseScreen::OnUserAction(action_id);
|
| +}
|
| +
|
| void ErrorScreen::OnAuthFailure(const AuthFailure& error) {
|
| // The only condition leading here is guest mount failure, which should not
|
| // happen in practice. For now, just log an error so this situation is visible
|
| @@ -241,11 +265,6 @@ void ErrorScreen::SetAuthFlowOffline(bool offline) {
|
| LOG(FATAL);
|
| }
|
|
|
| -ErrorScreen::ConnectRequestCallbackSubscription
|
| -ErrorScreen::RegisterConnectRequestCallback(const base::Closure& callback) {
|
| - return connect_request_callbacks_.Add(callback);
|
| -}
|
| -
|
| void ErrorScreen::DefaultHideCallback() {
|
| if (parent_screen_ != OobeScreen::SCREEN_UNKNOWN && view_)
|
| view_->ShowOobeScreen(parent_screen_);
|
|
|