Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(381)

Side by Side Diff: chrome/browser/ui/webui/chromeos/login/app_launch_splash_screen_handler.cc

Issue 209143002: Added shortcut for NW config screen in kiosk. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: updates Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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/app_launch_splash_screen_handle r.h" 5 #include "chrome/browser/ui/webui/chromeos/login/app_launch_splash_screen_handle r.h"
6 6
7 #include "chrome/browser/chromeos/app_mode/kiosk_app_manager.h" 7 #include "chrome/browser/chromeos/app_mode/kiosk_app_manager.h"
8 #include "chrome/browser/chromeos/login/screens/error_screen_actor.h" 8 #include "chrome/browser/chromeos/login/screens/error_screen_actor.h"
9 #include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h" 9 #include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h"
10 #include "chromeos/network/network_state.h" 10 #include "chromeos/network/network_state.h"
(...skipping 25 matching lines...) Expand all
36 namespace chromeos { 36 namespace chromeos {
37 37
38 AppLaunchSplashScreenHandler::AppLaunchSplashScreenHandler( 38 AppLaunchSplashScreenHandler::AppLaunchSplashScreenHandler(
39 const scoped_refptr<NetworkStateInformer>& network_state_informer, 39 const scoped_refptr<NetworkStateInformer>& network_state_informer,
40 ErrorScreenActor* error_screen_actor) 40 ErrorScreenActor* error_screen_actor)
41 : BaseScreenHandler(kJsScreenPath), 41 : BaseScreenHandler(kJsScreenPath),
42 delegate_(NULL), 42 delegate_(NULL),
43 show_on_init_(false), 43 show_on_init_(false),
44 state_(APP_LAUNCH_STATE_LOADING_AUTH_FILE), 44 state_(APP_LAUNCH_STATE_LOADING_AUTH_FILE),
45 network_state_informer_(network_state_informer), 45 network_state_informer_(network_state_informer),
46 error_screen_actor_(error_screen_actor) { 46 error_screen_actor_(error_screen_actor),
47 online_state_(false),
48 network_config_requested_(false) {
47 network_state_informer_->AddObserver(this); 49 network_state_informer_->AddObserver(this);
48 } 50 }
49 51
50 AppLaunchSplashScreenHandler::~AppLaunchSplashScreenHandler() { 52 AppLaunchSplashScreenHandler::~AppLaunchSplashScreenHandler() {
51 network_state_informer_->RemoveObserver(this); 53 network_state_informer_->RemoveObserver(this);
52 } 54 }
53 55
54 void AppLaunchSplashScreenHandler::DeclareLocalizedValues( 56 void AppLaunchSplashScreenHandler::DeclareLocalizedValues(
55 LocalizedValuesBuilder* builder) { 57 LocalizedValuesBuilder* builder) {
56 58
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 96
95 SetLaunchText(l10n_util::GetStringUTF8(GetProgressMessageFromState(state_))); 97 SetLaunchText(l10n_util::GetStringUTF8(GetProgressMessageFromState(state_)));
96 ShowScreen(OobeUI::kScreenAppLaunchSplash, &data); 98 ShowScreen(OobeUI::kScreenAppLaunchSplash, &data);
97 } 99 }
98 100
99 void AppLaunchSplashScreenHandler::RegisterMessages() { 101 void AppLaunchSplashScreenHandler::RegisterMessages() {
100 AddCallback("configureNetwork", 102 AddCallback("configureNetwork",
101 &AppLaunchSplashScreenHandler::HandleConfigureNetwork); 103 &AppLaunchSplashScreenHandler::HandleConfigureNetwork);
102 AddCallback("cancelAppLaunch", 104 AddCallback("cancelAppLaunch",
103 &AppLaunchSplashScreenHandler::HandleCancelAppLaunch); 105 &AppLaunchSplashScreenHandler::HandleCancelAppLaunch);
106 AddCallback("continueAppLaunch",
107 &AppLaunchSplashScreenHandler::HandleContinueAppLaunch);
108 AddCallback("networkConfigRequest",
109 &AppLaunchSplashScreenHandler::HandleNetworkConfigRequested);
104 } 110 }
105 111
106 void AppLaunchSplashScreenHandler::PrepareToShow() { 112 void AppLaunchSplashScreenHandler::PrepareToShow() {
107 } 113 }
108 114
109 void AppLaunchSplashScreenHandler::Hide() { 115 void AppLaunchSplashScreenHandler::Hide() {
110 } 116 }
111 117
112 void AppLaunchSplashScreenHandler::ToggleNetworkConfig(bool visible) { 118 void AppLaunchSplashScreenHandler::ToggleNetworkConfig(bool visible) {
113 CallJS("toggleNetworkConfig", visible); 119 CallJS("toggleNetworkConfig", visible);
(...skipping 12 matching lines...) Expand all
126 } 132 }
127 133
128 void AppLaunchSplashScreenHandler::SetDelegate( 134 void AppLaunchSplashScreenHandler::SetDelegate(
129 AppLaunchSplashScreenHandler::Delegate* delegate) { 135 AppLaunchSplashScreenHandler::Delegate* delegate) {
130 delegate_ = delegate; 136 delegate_ = delegate;
131 } 137 }
132 138
133 void AppLaunchSplashScreenHandler::ShowNetworkConfigureUI() { 139 void AppLaunchSplashScreenHandler::ShowNetworkConfigureUI() {
134 NetworkStateInformer::State state = network_state_informer_->state(); 140 NetworkStateInformer::State state = network_state_informer_->state();
135 if (state == NetworkStateInformer::ONLINE) { 141 if (state == NetworkStateInformer::ONLINE) {
136 delegate_->OnNetworkStateChanged(true); 142 online_state_ = true;
137 return; 143 if (!network_config_requested_) {
144 delegate_->OnNetworkStateChanged(true);
145 return;
146 }
138 } 147 }
139 148
140 const std::string network_path = network_state_informer_->network_path(); 149 const std::string network_path = network_state_informer_->network_path();
141 const std::string network_name = GetNetworkName(network_path); 150 const std::string network_name = GetNetworkName(network_path);
142 151
143 error_screen_actor_->SetUIState(ErrorScreen::UI_STATE_KIOSK_MODE); 152 error_screen_actor_->SetUIState(ErrorScreen::UI_STATE_KIOSK_MODE);
144 error_screen_actor_->AllowGuestSignin(false); 153 error_screen_actor_->AllowGuestSignin(false);
145 error_screen_actor_->AllowOfflineLogin(false); 154 error_screen_actor_->AllowOfflineLogin(false);
146 155
147 switch (state) { 156 switch (state) {
148 case NetworkStateInformer::CAPTIVE_PORTAL: { 157 case NetworkStateInformer::CAPTIVE_PORTAL: {
149 error_screen_actor_->SetErrorState( 158 error_screen_actor_->SetErrorState(
150 ErrorScreen::ERROR_STATE_PORTAL, network_name); 159 ErrorScreen::ERROR_STATE_PORTAL, network_name);
151 error_screen_actor_->FixCaptivePortal(); 160 error_screen_actor_->FixCaptivePortal();
152 161
153 break; 162 break;
154 } 163 }
155 case NetworkStateInformer::PROXY_AUTH_REQUIRED: { 164 case NetworkStateInformer::PROXY_AUTH_REQUIRED: {
156 error_screen_actor_->SetErrorState( 165 error_screen_actor_->SetErrorState(
157 ErrorScreen::ERROR_STATE_PROXY, network_name); 166 ErrorScreen::ERROR_STATE_PROXY, network_name);
158 break; 167 break;
159 } 168 }
160 case NetworkStateInformer::OFFLINE: { 169 case NetworkStateInformer::OFFLINE: {
161 error_screen_actor_->SetErrorState( 170 error_screen_actor_->SetErrorState(
162 ErrorScreen::ERROR_STATE_OFFLINE, network_name); 171 ErrorScreen::ERROR_STATE_OFFLINE, network_name);
163 break; 172 break;
164 } 173 }
174 case NetworkStateInformer::ONLINE: {
175 error_screen_actor_->SetErrorState(
176 ErrorScreen::ERROR_STATE_KIOSK_ONLINE, network_name);
177 break;
178 }
165 default: 179 default:
166 error_screen_actor_->SetErrorState( 180 error_screen_actor_->SetErrorState(
167 ErrorScreen::ERROR_STATE_OFFLINE, network_name); 181 ErrorScreen::ERROR_STATE_OFFLINE, network_name);
168 NOTREACHED(); 182 NOTREACHED();
169 break; 183 break;
170 }; 184 };
171 185
172 OobeUI::Screen screen = OobeUI::SCREEN_UNKNOWN; 186 OobeUI::Screen screen = OobeUI::SCREEN_UNKNOWN;
173 OobeUI* oobe_ui = static_cast<OobeUI*>(web_ui()->GetController()); 187 OobeUI* oobe_ui = static_cast<OobeUI*>(web_ui()->GetController());
174 if (oobe_ui) 188 if (oobe_ui)
(...skipping 13 matching lines...) Expand all
188 } 202 }
189 203
190 void AppLaunchSplashScreenHandler::UpdateState( 204 void AppLaunchSplashScreenHandler::UpdateState(
191 ErrorScreenActor::ErrorReason reason) { 205 ErrorScreenActor::ErrorReason reason) {
192 if (!delegate_ || 206 if (!delegate_ ||
193 (state_ != APP_LAUNCH_STATE_PREPARING_NETWORK && 207 (state_ != APP_LAUNCH_STATE_PREPARING_NETWORK &&
194 state_ != APP_LAUNCH_STATE_NETWORK_WAIT_TIMEOUT)) { 208 state_ != APP_LAUNCH_STATE_NETWORK_WAIT_TIMEOUT)) {
195 return; 209 return;
196 } 210 }
197 211
198 NetworkStateInformer::State state = network_state_informer_->state(); 212 bool new_online_state =
199 delegate_->OnNetworkStateChanged(state == NetworkStateInformer::ONLINE); 213 network_state_informer_->state() == NetworkStateInformer::ONLINE;
214 if (new_online_state != online_state_)
215 ShowNetworkConfigureUI();
xiyuan 2014/03/25 05:21:19 This would by-pass the owner auth check or policy
zel 2014/03/25 22:26:32 Done.
216
217 online_state_ = new_online_state;
200 } 218 }
201 219
202 void AppLaunchSplashScreenHandler::PopulateAppInfo( 220 void AppLaunchSplashScreenHandler::PopulateAppInfo(
203 base::DictionaryValue* out_info) { 221 base::DictionaryValue* out_info) {
204 KioskAppManager::App app; 222 KioskAppManager::App app;
205 KioskAppManager::Get()->GetApp(app_id_, &app); 223 KioskAppManager::Get()->GetApp(app_id_, &app);
206 224
207 if (app.name.empty()) 225 if (app.name.empty())
208 app.name = l10n_util::GetStringUTF8(IDS_SHORT_PRODUCT_NAME); 226 app.name = l10n_util::GetStringUTF8(IDS_SHORT_PRODUCT_NAME);
209 227
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
246 LOG(WARNING) << "No delegate set to handle network configuration."; 264 LOG(WARNING) << "No delegate set to handle network configuration.";
247 } 265 }
248 266
249 void AppLaunchSplashScreenHandler::HandleCancelAppLaunch() { 267 void AppLaunchSplashScreenHandler::HandleCancelAppLaunch() {
250 if (delegate_) 268 if (delegate_)
251 delegate_->OnCancelAppLaunch(); 269 delegate_->OnCancelAppLaunch();
252 else 270 else
253 LOG(WARNING) << "No delegate set to handle cancel app launch"; 271 LOG(WARNING) << "No delegate set to handle cancel app launch";
254 } 272 }
255 273
274 void AppLaunchSplashScreenHandler::HandleNetworkConfigRequested() {
275 if (delegate_) {
276 network_config_requested_ = true;
277 delegate_->OnNetworkConfigRequested(true);
278 } else {
279 LOG(WARNING) << "No delegate set to handle cancel app launch";
xiyuan 2014/03/25 05:21:19 The message needs to be updated.
280 }
281 }
282
283 void AppLaunchSplashScreenHandler::HandleContinueAppLaunch() {
284 DCHECK(online_state_);
285 if (delegate_ && online_state_) {
286 network_config_requested_ = false;
287 delegate_->OnNetworkConfigRequested(false);
288 delegate_->OnNetworkStateChanged(true);
289 }
290 }
291
256 } // namespace chromeos 292 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698