OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/ui/webui/chromeos/login/kiosk_app_menu_handler.h" | 5 #include "chrome/browser/ui/webui/chromeos/login/kiosk_app_menu_handler.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
9 #include "base/strings/string_number_conversions.h" | 9 #include "base/strings/string_number_conversions.h" |
10 #include "base/sys_info.h" | 10 #include "base/sys_info.h" |
(...skipping 19 matching lines...) Expand all Loading... |
30 const char kKioskSetAppsOldAPI[] = "login.AppsMenuButton.setApps"; | 30 const char kKioskSetAppsOldAPI[] = "login.AppsMenuButton.setApps"; |
31 const char kKioskShowErrorNewAPI[] = "login.AccountPickerScreen.showAppError"; | 31 const char kKioskShowErrorNewAPI[] = "login.AccountPickerScreen.showAppError"; |
32 const char kKioskShowErrorOldAPI[] = "login.AppsMenuButton.showError"; | 32 const char kKioskShowErrorOldAPI[] = "login.AppsMenuButton.showError"; |
33 | 33 |
34 // Default app icon size. | 34 // Default app icon size. |
35 const char kDefaultAppIconSizeString[] = "96px"; | 35 const char kDefaultAppIconSizeString[] = "96px"; |
36 const int kMaxAppIconSize = 160; | 36 const int kMaxAppIconSize = 160; |
37 | 37 |
38 } // namespace | 38 } // namespace |
39 | 39 |
40 KioskAppMenuHandler::KioskAppMenuHandler() | 40 KioskAppMenuHandler::KioskAppMenuHandler( |
| 41 const scoped_refptr<NetworkStateInformer>& network_state_informer) |
41 : weak_ptr_factory_(this), | 42 : weak_ptr_factory_(this), |
42 is_webui_initialized_(false) { | 43 is_webui_initialized_(false), |
| 44 network_state_informer_(network_state_informer) { |
43 KioskAppManager::Get()->AddObserver(this); | 45 KioskAppManager::Get()->AddObserver(this); |
| 46 network_state_informer_->AddObserver(this); |
44 } | 47 } |
45 | 48 |
46 KioskAppMenuHandler::~KioskAppMenuHandler() { | 49 KioskAppMenuHandler::~KioskAppMenuHandler() { |
47 KioskAppManager::Get()->RemoveObserver(this); | 50 KioskAppManager::Get()->RemoveObserver(this); |
| 51 network_state_informer_->RemoveObserver(this); |
48 } | 52 } |
49 | 53 |
50 void KioskAppMenuHandler::GetLocalizedStrings( | 54 void KioskAppMenuHandler::GetLocalizedStrings( |
51 base::DictionaryValue* localized_strings) { | 55 base::DictionaryValue* localized_strings) { |
52 localized_strings->SetString( | 56 localized_strings->SetString( |
53 "showApps", | 57 "showApps", |
54 l10n_util::GetStringUTF16(IDS_KIOSK_APPS_BUTTON)); | 58 l10n_util::GetStringUTF16(IDS_KIOSK_APPS_BUTTON)); |
55 localized_strings->SetString( | 59 localized_strings->SetString( |
56 "confirmKioskAppDiagnosticModeFormat", | 60 "confirmKioskAppDiagnosticModeFormat", |
57 l10n_util::GetStringUTF16(IDS_LOGIN_CONFIRM_KIOSK_DIAGNOSTIC_FORMAT)); | 61 l10n_util::GetStringUTF16(IDS_LOGIN_CONFIRM_KIOSK_DIAGNOSTIC_FORMAT)); |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
126 | 130 |
127 web_ui()->CallJavascriptFunction(EnableNewKioskUI() ? | 131 web_ui()->CallJavascriptFunction(EnableNewKioskUI() ? |
128 kKioskSetAppsNewAPI : kKioskSetAppsOldAPI, | 132 kKioskSetAppsNewAPI : kKioskSetAppsOldAPI, |
129 apps_list); | 133 apps_list); |
130 } | 134 } |
131 | 135 |
132 void KioskAppMenuHandler::HandleInitializeKioskApps( | 136 void KioskAppMenuHandler::HandleInitializeKioskApps( |
133 const base::ListValue* args) { | 137 const base::ListValue* args) { |
134 is_webui_initialized_ = true; | 138 is_webui_initialized_ = true; |
135 SendKioskApps(); | 139 SendKioskApps(); |
| 140 UpdateState(ErrorScreenActor::ERROR_REASON_UPDATE); |
136 } | 141 } |
137 | 142 |
138 void KioskAppMenuHandler::HandleKioskAppsLoaded( | 143 void KioskAppMenuHandler::HandleKioskAppsLoaded( |
139 const base::ListValue* args) { | 144 const base::ListValue* args) { |
140 content::NotificationService::current()->Notify( | 145 content::NotificationService::current()->Notify( |
141 chrome::NOTIFICATION_KIOSK_APPS_LOADED, | 146 chrome::NOTIFICATION_KIOSK_APPS_LOADED, |
142 content::NotificationService::AllSources(), | 147 content::NotificationService::AllSources(), |
143 content::NotificationService::NoDetails()); | 148 content::NotificationService::NoDetails()); |
144 } | 149 } |
145 | 150 |
(...skipping 12 matching lines...) Expand all Loading... |
158 } | 163 } |
159 | 164 |
160 void KioskAppMenuHandler::OnKioskAppsSettingsChanged() { | 165 void KioskAppMenuHandler::OnKioskAppsSettingsChanged() { |
161 SendKioskApps(); | 166 SendKioskApps(); |
162 } | 167 } |
163 | 168 |
164 void KioskAppMenuHandler::OnKioskAppDataChanged(const std::string& app_id) { | 169 void KioskAppMenuHandler::OnKioskAppDataChanged(const std::string& app_id) { |
165 SendKioskApps(); | 170 SendKioskApps(); |
166 } | 171 } |
167 | 172 |
| 173 void KioskAppMenuHandler::UpdateState(ErrorScreenActor::ErrorReason reason) { |
| 174 if (network_state_informer_->state() == NetworkStateInformer::ONLINE) |
| 175 KioskAppManager::Get()->RetryFailedAppDataFetch(); |
| 176 } |
| 177 |
168 } // namespace chromeos | 178 } // namespace chromeos |
OLD | NEW |