OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/chromeos/login/views_login_display.h" | 5 #include "chrome/browser/chromeos/login/views_login_display.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/stl_util-inl.h" | 9 #include "base/stl_util-inl.h" |
10 #include "chrome/browser/chromeos/login/help_app_launcher.h" | 10 #include "chrome/browser/chromeos/login/help_app_launcher.h" |
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
185 | 185 |
186 if (is_enabled) | 186 if (is_enabled) |
187 controllers_[selected_view_index_]->ClearAndEnablePassword(); | 187 controllers_[selected_view_index_]->ClearAndEnablePassword(); |
188 } | 188 } |
189 | 189 |
190 void ViewsLoginDisplay::ShowError(int error_msg_id, | 190 void ViewsLoginDisplay::ShowError(int error_msg_id, |
191 int login_attempts, | 191 int login_attempts, |
192 HelpAppLauncher::HelpTopic help_topic_id) { | 192 HelpAppLauncher::HelpTopic help_topic_id) { |
193 ClearErrors(); | 193 ClearErrors(); |
194 string16 error_text; | 194 string16 error_text; |
| 195 error_msg_id_ = error_msg_id; |
195 help_topic_id_ = help_topic_id; | 196 help_topic_id_ = help_topic_id; |
196 | 197 |
197 // GetStringF fails on debug build if there's no replacement in the string. | 198 // GetStringF fails on debug build if there's no replacement in the string. |
198 if (error_msg_id == IDS_LOGIN_ERROR_AUTHENTICATING_HOSTED) { | 199 if (error_msg_id == IDS_LOGIN_ERROR_AUTHENTICATING_HOSTED) { |
199 error_text = l10n_util::GetStringFUTF16( | 200 error_text = l10n_util::GetStringFUTF16( |
200 error_msg_id, l10n_util::GetStringUTF16(IDS_PRODUCT_OS_NAME)); | 201 error_msg_id, l10n_util::GetStringUTF16(IDS_PRODUCT_OS_NAME)); |
201 } else { | 202 } else { |
202 error_text = l10n_util::GetStringUTF16(error_msg_id); | 203 error_text = l10n_util::GetStringUTF16(error_msg_id); |
203 } | 204 } |
204 | 205 |
205 gfx::Rect bounds = | 206 gfx::Rect bounds = |
206 controllers_[selected_view_index_]->GetMainInputScreenBounds(); | 207 controllers_[selected_view_index_]->GetMainInputScreenBounds(); |
207 BubbleBorder::ArrowLocation arrow; | 208 BubbleBorder::ArrowLocation arrow; |
208 if (controllers_[selected_view_index_]->is_new_user()) { | 209 if (controllers_[selected_view_index_]->is_new_user()) { |
209 arrow = BubbleBorder::LEFT_TOP; | 210 arrow = BubbleBorder::LEFT_TOP; |
210 } else { | 211 } else { |
211 // Point info bubble arrow to cursor position (approximately). | 212 // Point info bubble arrow to cursor position (approximately). |
212 bounds.set_width(kCursorOffset * 2); | 213 bounds.set_width(kCursorOffset * 2); |
213 arrow = BubbleBorder::BOTTOM_LEFT; | 214 arrow = BubbleBorder::BOTTOM_LEFT; |
214 } | 215 } |
215 | 216 |
216 string16 help_link; | 217 string16 help_link; |
217 if (error_msg_id == IDS_LOGIN_ERROR_AUTHENTICATING_HOSTED || | 218 if (error_msg_id == IDS_LOGIN_ERROR_CAPTIVE_PORTAL) { |
218 login_attempts > 1) { | 219 help_link = l10n_util::GetStringUTF16(IDS_LOGIN_FIX_CAPTIVE_PORTAL); |
| 220 } else if (error_msg_id == IDS_LOGIN_ERROR_AUTHENTICATING_HOSTED || |
| 221 login_attempts > 1) { |
219 help_link = l10n_util::GetStringUTF16(IDS_LEARN_MORE); | 222 help_link = l10n_util::GetStringUTF16(IDS_LEARN_MORE); |
220 } | 223 } |
221 | 224 |
222 bubble_ = MessageBubble::Show( | 225 bubble_ = MessageBubble::Show( |
223 controllers_[selected_view_index_]->controls_window(), | 226 controllers_[selected_view_index_]->controls_window(), |
224 bounds, | 227 bounds, |
225 arrow, | 228 arrow, |
226 ResourceBundle::GetSharedInstance().GetBitmapNamed(IDR_WARNING), | 229 ResourceBundle::GetSharedInstance().GetBitmapNamed(IDR_WARNING), |
227 UTF16ToWide(error_text), | 230 UTF16ToWide(error_text), |
228 UTF16ToWide(help_link), | 231 UTF16ToWide(help_link), |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
280 message.set_param(0, index); | 283 message.set_param(0, index); |
281 WmIpc::instance()->SendMessage(message); | 284 WmIpc::instance()->SendMessage(message); |
282 } | 285 } |
283 } | 286 } |
284 | 287 |
285 //////////////////////////////////////////////////////////////////////////////// | 288 //////////////////////////////////////////////////////////////////////////////// |
286 // ViewsLoginDisplay, views::MessageBubbleDelegate implementation: | 289 // ViewsLoginDisplay, views::MessageBubbleDelegate implementation: |
287 // | 290 // |
288 | 291 |
289 void ViewsLoginDisplay::OnHelpLinkActivated() { | 292 void ViewsLoginDisplay::OnHelpLinkActivated() { |
| 293 if (error_msg_id_ == IDS_LOGIN_ERROR_CAPTIVE_PORTAL) { |
| 294 delegate()->FixCaptivePortal(); |
| 295 return; |
| 296 } |
290 if (!parent_window()) | 297 if (!parent_window()) |
291 return; | 298 return; |
292 if (!help_app_.get()) | 299 if (!help_app_.get()) |
293 help_app_.reset(new HelpAppLauncher(parent_window())); | 300 help_app_.reset(new HelpAppLauncher(parent_window())); |
294 help_app_->ShowHelpTopic(help_topic_id_); | 301 help_app_->ShowHelpTopic(help_topic_id_); |
295 } | 302 } |
296 | 303 |
297 //////////////////////////////////////////////////////////////////////////////// | 304 //////////////////////////////////////////////////////////////////////////////// |
298 // ViewsLoginDisplay, private: | 305 // ViewsLoginDisplay, private: |
299 // | 306 // |
300 | 307 |
301 UserController* ViewsLoginDisplay::GetUserControllerByEmail( | 308 UserController* ViewsLoginDisplay::GetUserControllerByEmail( |
302 const std::string& email) { | 309 const std::string& email) { |
303 std::vector<UserController*>::iterator i; | 310 std::vector<UserController*>::iterator i; |
304 for (i = controllers_.begin(); i != controllers_.end(); ++i) { | 311 for (i = controllers_.begin(); i != controllers_.end(); ++i) { |
305 if ((*i)->user().email() == email) | 312 if ((*i)->user().email() == email) |
306 return *i; | 313 return *i; |
307 } | 314 } |
308 for (i = invisible_controllers_.begin(); | 315 for (i = invisible_controllers_.begin(); |
309 i != invisible_controllers_.end(); ++i) { | 316 i != invisible_controllers_.end(); ++i) { |
310 if ((*i)->user().email() == email) | 317 if ((*i)->user().email() == email) |
311 return *i; | 318 return *i; |
312 } | 319 } |
313 return NULL; | 320 return NULL; |
314 } | 321 } |
315 | 322 |
316 } // namespace chromeos | 323 } // namespace chromeos |
OLD | NEW |