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

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

Issue 2642823011: cros: Fold NetworkErrorModel into NetworkErrorView. (Closed)
Patch Set: Created 3 years, 11 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/enrollment_screen_handler.h" 5 #include "chrome/browser/ui/webui/chromeos/login/enrollment_screen_handler.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "ash/common/system/chromeos/devicetype_utils.h" 9 #include "ash/common/system/chromeos/devicetype_utils.h"
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 g_browser_process->platform_part()->browser_policy_connector_chromeos(); 107 g_browser_process->platform_part()->browser_policy_connector_chromeos();
108 return connector->GetEnterpriseDomain(); 108 return connector->GetEnterpriseDomain();
109 } 109 }
110 110
111 } // namespace 111 } // namespace
112 112
113 // EnrollmentScreenHandler, public ------------------------------ 113 // EnrollmentScreenHandler, public ------------------------------
114 114
115 EnrollmentScreenHandler::EnrollmentScreenHandler( 115 EnrollmentScreenHandler::EnrollmentScreenHandler(
116 const scoped_refptr<NetworkStateInformer>& network_state_informer, 116 const scoped_refptr<NetworkStateInformer>& network_state_informer,
117 NetworkErrorModel* network_error_model) 117 ErrorScreen* error_screen)
118 : BaseScreenHandler(kJsScreenPath), 118 : BaseScreenHandler(kJsScreenPath),
119 controller_(NULL),
120 show_on_init_(false),
121 first_show_(true),
122 observe_network_failure_(false),
123 network_state_informer_(network_state_informer), 119 network_state_informer_(network_state_informer),
124 network_error_model_(network_error_model), 120 error_screen_(error_screen),
125 histogram_helper_(new ErrorScreensHistogramHelper("Enrollment")), 121 histogram_helper_(new ErrorScreensHistogramHelper("Enrollment")),
126 weak_ptr_factory_(this) { 122 weak_ptr_factory_(this) {
127 set_async_assets_load_id( 123 set_async_assets_load_id(
128 GetOobeScreenName(OobeScreen::SCREEN_OOBE_ENROLLMENT)); 124 GetOobeScreenName(OobeScreen::SCREEN_OOBE_ENROLLMENT));
129 DCHECK(network_state_informer_.get()); 125 DCHECK(network_state_informer_.get());
130 DCHECK(network_error_model_); 126 DCHECK(error_screen_);
131 network_state_informer_->AddObserver(this); 127 network_state_informer_->AddObserver(this);
132 } 128 }
133 129
134 EnrollmentScreenHandler::~EnrollmentScreenHandler() { 130 EnrollmentScreenHandler::~EnrollmentScreenHandler() {
135 network_state_informer_->RemoveObserver(this); 131 network_state_informer_->RemoveObserver(this);
136 } 132 }
137 133
138 // EnrollmentScreenHandler, WebUIMessageHandler implementation -- 134 // EnrollmentScreenHandler, WebUIMessageHandler implementation --
139 135
140 void EnrollmentScreenHandler::RegisterMessages() { 136 void EnrollmentScreenHandler::RegisterMessages() {
(...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after
403 builder->Add("adLoginUser", IDS_AD_LOGIN_USER); 399 builder->Add("adLoginUser", IDS_AD_LOGIN_USER);
404 builder->Add("adLoginPassword", IDS_AD_LOGIN_PASSWORD); 400 builder->Add("adLoginPassword", IDS_AD_LOGIN_PASSWORD);
405 } 401 }
406 402
407 bool EnrollmentScreenHandler::IsOnEnrollmentScreen() const { 403 bool EnrollmentScreenHandler::IsOnEnrollmentScreen() const {
408 return (GetCurrentScreen() == OobeScreen::SCREEN_OOBE_ENROLLMENT); 404 return (GetCurrentScreen() == OobeScreen::SCREEN_OOBE_ENROLLMENT);
409 } 405 }
410 406
411 bool EnrollmentScreenHandler::IsEnrollmentScreenHiddenByError() const { 407 bool EnrollmentScreenHandler::IsEnrollmentScreenHiddenByError() const {
412 return (GetCurrentScreen() == OobeScreen::SCREEN_ERROR_MESSAGE && 408 return (GetCurrentScreen() == OobeScreen::SCREEN_ERROR_MESSAGE &&
413 network_error_model_->GetParentScreen() == 409 error_screen_->GetParentScreen() ==
414 OobeScreen::SCREEN_OOBE_ENROLLMENT); 410 OobeScreen::SCREEN_OOBE_ENROLLMENT);
415 } 411 }
416 412
417 void EnrollmentScreenHandler::UpdateState(NetworkError::ErrorReason reason) { 413 void EnrollmentScreenHandler::UpdateState(NetworkError::ErrorReason reason) {
418 UpdateStateInternal(reason, false); 414 UpdateStateInternal(reason, false);
419 } 415 }
420 416
421 // TODO(rsorokin): This function is mostly copied from SigninScreenHandler and 417 // TODO(rsorokin): This function is mostly copied from SigninScreenHandler and
422 // should be refactored in the future. 418 // should be refactored in the future.
423 void EnrollmentScreenHandler::UpdateStateInternal( 419 void EnrollmentScreenHandler::UpdateStateInternal(
(...skipping 12 matching lines...) Expand all
436 const bool is_online = (state == NetworkStateInformer::ONLINE); 432 const bool is_online = (state == NetworkStateInformer::ONLINE);
437 const bool is_behind_captive_portal = 433 const bool is_behind_captive_portal =
438 (state == NetworkStateInformer::CAPTIVE_PORTAL); 434 (state == NetworkStateInformer::CAPTIVE_PORTAL);
439 const bool is_frame_error = reason == NetworkError::ERROR_REASON_FRAME_ERROR; 435 const bool is_frame_error = reason == NetworkError::ERROR_REASON_FRAME_ERROR;
440 436
441 LOG(WARNING) << "EnrollmentScreenHandler::UpdateState(): " 437 LOG(WARNING) << "EnrollmentScreenHandler::UpdateState(): "
442 << "state=" << NetworkStateInformer::StatusString(state) << ", " 438 << "state=" << NetworkStateInformer::StatusString(state) << ", "
443 << "reason=" << NetworkError::ErrorReasonString(reason); 439 << "reason=" << NetworkError::ErrorReasonString(reason);
444 440
445 if (is_online || !is_behind_captive_portal) 441 if (is_online || !is_behind_captive_portal)
446 network_error_model_->HideCaptivePortal(); 442 error_screen_->HideCaptivePortal();
447 443
448 if (is_frame_error) { 444 if (is_frame_error) {
449 LOG(WARNING) << "Retry page load"; 445 LOG(WARNING) << "Retry page load";
450 // TODO(rsorokin): Too many consecutive reloads. 446 // TODO(rsorokin): Too many consecutive reloads.
451 CallJS("doReload"); 447 CallJS("doReload");
452 } 448 }
453 449
454 if (!is_online || is_frame_error) 450 if (!is_online || is_frame_error)
455 SetupAndShowOfflineMessage(state, reason); 451 SetupAndShowOfflineMessage(state, reason);
456 else 452 else
457 HideOfflineMessage(state, reason); 453 HideOfflineMessage(state, reason);
458 } 454 }
459 455
460 void EnrollmentScreenHandler::SetupAndShowOfflineMessage( 456 void EnrollmentScreenHandler::SetupAndShowOfflineMessage(
461 NetworkStateInformer::State state, 457 NetworkStateInformer::State state,
462 NetworkError::ErrorReason reason) { 458 NetworkError::ErrorReason reason) {
463 const std::string network_path = network_state_informer_->network_path(); 459 const std::string network_path = network_state_informer_->network_path();
464 const bool is_behind_captive_portal = IsBehindCaptivePortal(state, reason); 460 const bool is_behind_captive_portal = IsBehindCaptivePortal(state, reason);
465 const bool is_proxy_error = IsProxyError(state, reason); 461 const bool is_proxy_error = IsProxyError(state, reason);
466 const bool is_frame_error = reason == NetworkError::ERROR_REASON_FRAME_ERROR; 462 const bool is_frame_error = reason == NetworkError::ERROR_REASON_FRAME_ERROR;
467 463
468 if (is_proxy_error) { 464 if (is_proxy_error) {
469 network_error_model_->SetErrorState(NetworkError::ERROR_STATE_PROXY, 465 error_screen_->SetErrorState(NetworkError::ERROR_STATE_PROXY,
470 std::string()); 466 std::string());
471 } else if (is_behind_captive_portal) { 467 } else if (is_behind_captive_portal) {
472 // Do not bother a user with obsessive captive portal showing. This 468 // Do not bother a user with obsessive captive portal showing. This
473 // check makes captive portal being shown only once: either when error 469 // check makes captive portal being shown only once: either when error
474 // screen is shown for the first time or when switching from another 470 // screen is shown for the first time or when switching from another
475 // error screen (offline, proxy). 471 // error screen (offline, proxy).
476 if (IsOnEnrollmentScreen() || (network_error_model_->GetErrorState() != 472 if (IsOnEnrollmentScreen() ||
477 NetworkError::ERROR_STATE_PORTAL)) { 473 (error_screen_->GetErrorState() != NetworkError::ERROR_STATE_PORTAL)) {
478 network_error_model_->FixCaptivePortal(); 474 error_screen_->FixCaptivePortal();
479 } 475 }
480 const std::string network_name = GetNetworkName(network_path); 476 const std::string network_name = GetNetworkName(network_path);
481 network_error_model_->SetErrorState(NetworkError::ERROR_STATE_PORTAL, 477 error_screen_->SetErrorState(NetworkError::ERROR_STATE_PORTAL,
482 network_name); 478 network_name);
483 } else if (is_frame_error) { 479 } else if (is_frame_error) {
484 network_error_model_->SetErrorState( 480 error_screen_->SetErrorState(NetworkError::ERROR_STATE_AUTH_EXT_TIMEOUT,
485 NetworkError::ERROR_STATE_AUTH_EXT_TIMEOUT, std::string()); 481 std::string());
486 } else { 482 } else {
487 network_error_model_->SetErrorState(NetworkError::ERROR_STATE_OFFLINE, 483 error_screen_->SetErrorState(NetworkError::ERROR_STATE_OFFLINE,
488 std::string()); 484 std::string());
489 } 485 }
490 486
491 if (GetCurrentScreen() != OobeScreen::SCREEN_ERROR_MESSAGE) { 487 if (GetCurrentScreen() != OobeScreen::SCREEN_ERROR_MESSAGE) {
492 const std::string network_type = network_state_informer_->network_type(); 488 const std::string network_type = network_state_informer_->network_type();
493 network_error_model_->SetUIState(NetworkError::UI_STATE_SIGNIN); 489 error_screen_->SetUIState(NetworkError::UI_STATE_SIGNIN);
494 network_error_model_->SetParentScreen(OobeScreen::SCREEN_OOBE_ENROLLMENT); 490 error_screen_->SetParentScreen(OobeScreen::SCREEN_OOBE_ENROLLMENT);
495 network_error_model_->SetHideCallback(base::Bind( 491 error_screen_->SetHideCallback(base::Bind(&EnrollmentScreenHandler::DoShow,
496 &EnrollmentScreenHandler::DoShow, weak_ptr_factory_.GetWeakPtr())); 492 weak_ptr_factory_.GetWeakPtr()));
497 network_error_model_->Show(); 493 error_screen_->Show();
498 histogram_helper_->OnErrorShow(network_error_model_->GetErrorState()); 494 histogram_helper_->OnErrorShow(error_screen_->GetErrorState());
499 } 495 }
500 } 496 }
501 497
502 void EnrollmentScreenHandler::HideOfflineMessage( 498 void EnrollmentScreenHandler::HideOfflineMessage(
503 NetworkStateInformer::State state, 499 NetworkStateInformer::State state,
504 NetworkError::ErrorReason reason) { 500 NetworkError::ErrorReason reason) {
505 if (IsEnrollmentScreenHiddenByError()) 501 if (IsEnrollmentScreenHiddenByError())
506 network_error_model_->Hide(); 502 error_screen_->Hide();
507 histogram_helper_->OnErrorHide(); 503 histogram_helper_->OnErrorHide();
508 } 504 }
509 505
510 // EnrollmentScreenHandler, private ----------------------------- 506 // EnrollmentScreenHandler, private -----------------------------
511 void EnrollmentScreenHandler::HandleToggleFakeEnrollment() { 507 void EnrollmentScreenHandler::HandleToggleFakeEnrollment() {
512 policy::PolicyOAuth2TokenFetcher::UseFakeTokensForTesting(); 508 policy::PolicyOAuth2TokenFetcher::UseFakeTokensForTesting();
513 } 509 }
514 510
515 void EnrollmentScreenHandler::HandleClose(const std::string& reason) { 511 void EnrollmentScreenHandler::HandleClose(const std::string& reason) {
516 DCHECK(controller_); 512 DCHECK(controller_);
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
661 657
662 ShowScreenWithData(OobeScreen::SCREEN_OOBE_ENROLLMENT, &screen_data); 658 ShowScreenWithData(OobeScreen::SCREEN_OOBE_ENROLLMENT, &screen_data);
663 if (first_show_) { 659 if (first_show_) {
664 first_show_ = false; 660 first_show_ = false;
665 UpdateStateInternal(NetworkError::ERROR_REASON_UPDATE, true); 661 UpdateStateInternal(NetworkError::ERROR_REASON_UPDATE, true);
666 } 662 }
667 histogram_helper_->OnScreenShow(); 663 histogram_helper_->OnScreenShow();
668 } 664 }
669 665
670 } // namespace chromeos 666 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698