Index: chrome/browser/ui/webui/chromeos/login/kiosk_app_menu_handler.cc |
diff --git a/chrome/browser/ui/webui/chromeos/login/kiosk_app_menu_handler.cc b/chrome/browser/ui/webui/chromeos/login/kiosk_app_menu_handler.cc |
index 50295aa8e4c55d969d08229fa01d05dc5bcadab1..4ab1f181d0306e39e6e191dc19f1d05fd1a5bdc2 100644 |
--- a/chrome/browser/ui/webui/chromeos/login/kiosk_app_menu_handler.cc |
+++ b/chrome/browser/ui/webui/chromeos/login/kiosk_app_menu_handler.cc |
@@ -37,14 +37,18 @@ const int kMaxAppIconSize = 160; |
} // namespace |
-KioskAppMenuHandler::KioskAppMenuHandler() |
+KioskAppMenuHandler::KioskAppMenuHandler( |
+ const scoped_refptr<NetworkStateInformer>& network_state_informer) |
: weak_ptr_factory_(this), |
- is_webui_initialized_(false) { |
+ is_webui_initialized_(false), |
+ network_state_informer_(network_state_informer) { |
KioskAppManager::Get()->AddObserver(this); |
+ network_state_informer_->AddObserver(this); |
} |
KioskAppMenuHandler::~KioskAppMenuHandler() { |
KioskAppManager::Get()->RemoveObserver(this); |
+ network_state_informer_->RemoveObserver(this); |
} |
void KioskAppMenuHandler::GetLocalizedStrings( |
@@ -133,6 +137,7 @@ void KioskAppMenuHandler::HandleInitializeKioskApps( |
const base::ListValue* args) { |
is_webui_initialized_ = true; |
SendKioskApps(); |
+ UpdateState(ErrorScreenActor::ERROR_REASON_UPDATE); |
} |
void KioskAppMenuHandler::HandleKioskAppsLoaded( |
@@ -165,4 +170,9 @@ void KioskAppMenuHandler::OnKioskAppDataChanged(const std::string& app_id) { |
SendKioskApps(); |
} |
+void KioskAppMenuHandler::UpdateState(ErrorScreenActor::ErrorReason reason) { |
+ if (network_state_informer_->state() == NetworkStateInformer::ONLINE) |
+ KioskAppManager::Get()->RetryFailedAppDataFetch(); |
+} |
+ |
} // namespace chromeos |