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

Side by Side Diff: chrome/browser/chromeos/login/screens/error_screen.cc

Issue 245113003: Removed dependency on the UI from the NetworkPortalDetector. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase. Created 6 years, 7 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 (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/chromeos/login/screens/error_screen.h" 5 #include "chrome/browser/chromeos/login/screens/error_screen.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "chrome/browser/chromeos/login/chrome_restart_request.h" 8 #include "chrome/browser/chromeos/login/chrome_restart_request.h"
9 #include "chrome/browser/chromeos/login/screens/error_screen_actor.h" 9 #include "chrome/browser/chromeos/login/screens/error_screen_actor.h"
10 #include "chrome/browser/chromeos/login/startup_utils.h" 10 #include "chrome/browser/chromeos/login/startup_utils.h"
11 #include "chrome/browser/chromeos/login/wizard_controller.h" 11 #include "chrome/browser/chromeos/login/wizard_controller.h"
12 #include "chrome/browser/chromeos/net/network_portal_detector.h" 12 #include "chrome/browser/chromeos/net/network_portal_detector.h"
13 #include "chrome/browser/chromeos/net/network_portal_detector_strategy.h"
13 #include "chrome/browser/chromeos/settings/cros_settings.h" 14 #include "chrome/browser/chromeos/settings/cros_settings.h"
14 15
15 namespace chromeos { 16 namespace chromeos {
16 17
17 ErrorScreen::ErrorScreen(ScreenObserver* screen_observer, 18 ErrorScreen::ErrorScreen(ScreenObserver* screen_observer,
18 ErrorScreenActor* actor) 19 ErrorScreenActor* actor)
19 : WizardScreen(screen_observer), 20 : WizardScreen(screen_observer),
20 actor_(actor), 21 actor_(actor),
21 parent_screen_(OobeDisplay::SCREEN_UNKNOWN), 22 parent_screen_(OobeDisplay::SCREEN_UNKNOWN),
22 weak_factory_(this) { 23 weak_factory_(this) {
23 DCHECK(actor_); 24 DCHECK(actor_);
24 actor_->SetDelegate(this); 25 actor_->SetDelegate(this);
25 AddObserver(NetworkPortalDetector::Get());
26 } 26 }
27 27
28 ErrorScreen::~ErrorScreen() { 28 ErrorScreen::~ErrorScreen() {
29 actor_->SetDelegate(NULL); 29 actor_->SetDelegate(NULL);
30 RemoveObserver(NetworkPortalDetector::Get());
31 }
32
33 void ErrorScreen::AddObserver(Observer* observer) {
34 if (observer)
35 observers_.AddObserver(observer);
36 }
37
38 void ErrorScreen::RemoveObserver(Observer* observer) {
39 if (observer)
40 observers_.RemoveObserver(observer);
41 } 30 }
42 31
43 void ErrorScreen::PrepareToShow() { 32 void ErrorScreen::PrepareToShow() {
44 } 33 }
45 34
46 void ErrorScreen::Show() { 35 void ErrorScreen::Show() {
47 DCHECK(actor_); 36 DCHECK(actor_);
48 actor_->Show(parent_screen(), NULL); 37 actor_->Show(parent_screen(), NULL);
49 } 38 }
50 39
51 void ErrorScreen::Hide() { 40 void ErrorScreen::Hide() {
52 DCHECK(actor_); 41 DCHECK(actor_);
53 actor_->Hide(); 42 actor_->Hide();
54 } 43 }
55 44
56 std::string ErrorScreen::GetName() const { 45 std::string ErrorScreen::GetName() const {
57 return WizardController::kErrorScreenName; 46 return WizardController::kErrorScreenName;
58 } 47 }
59 48
60 void ErrorScreen::OnErrorShow() { 49 void ErrorScreen::OnErrorShow() {
61 FOR_EACH_OBSERVER(Observer, observers_, OnErrorScreenShow()); 50 NetworkPortalDetector::Get()->SetStrategy(
51 PortalDetectorStrategy::STRATEGY_ID_ERROR_SCREEN);
62 } 52 }
63 53
64 void ErrorScreen::OnErrorHide() { 54 void ErrorScreen::OnErrorHide() {
65 FOR_EACH_OBSERVER(Observer, observers_, OnErrorScreenHide()); 55 NetworkPortalDetector::Get()->SetStrategy(
56 PortalDetectorStrategy::STRATEGY_ID_LOGIN_SCREEN);
66 } 57 }
67 58
68 void ErrorScreen::OnLaunchOobeGuestSession() { 59 void ErrorScreen::OnLaunchOobeGuestSession() {
69 DeviceSettingsService::Get()->GetOwnershipStatusAsync( 60 DeviceSettingsService::Get()->GetOwnershipStatusAsync(
70 base::Bind(&ErrorScreen::StartGuestSessionAfterOwnershipCheck, 61 base::Bind(&ErrorScreen::StartGuestSessionAfterOwnershipCheck,
71 weak_factory_.GetWeakPtr())); 62 weak_factory_.GetWeakPtr()));
72 } 63 }
73 64
74 void ErrorScreen::OnLoginFailure(const LoginFailure& error) { 65 void ErrorScreen::OnLoginFailure(const LoginFailure& error) {
75 // The only condition leading here is guest mount failure, which should not 66 // The only condition leading here is guest mount failure, which should not
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 } 173 }
183 174
184 if (guest_login_performer_) 175 if (guest_login_performer_)
185 return; 176 return;
186 177
187 guest_login_performer_.reset(new LoginPerformer(this)); 178 guest_login_performer_.reset(new LoginPerformer(this));
188 guest_login_performer_->LoginOffTheRecord(); 179 guest_login_performer_->LoginOffTheRecord();
189 } 180 }
190 181
191 } // namespace chromeos 182 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/login/screens/error_screen.h ('k') | chrome/browser/chromeos/login/user_manager_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698