OLD | NEW |
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/wizard_controller.h" | 5 #include "chrome/browser/chromeos/login/wizard_controller.h" |
6 | 6 |
7 #include <signal.h> | 7 #include <signal.h> |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 #include <stdlib.h> | 9 #include <stdlib.h> |
10 #include <sys/types.h> | 10 #include <sys/types.h> |
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
250 | 250 |
251 PrefService* WizardController::local_state_for_testing_ = nullptr; | 251 PrefService* WizardController::local_state_for_testing_ = nullptr; |
252 | 252 |
253 WizardController::WizardController(LoginDisplayHost* host, OobeUI* oobe_ui) | 253 WizardController::WizardController(LoginDisplayHost* host, OobeUI* oobe_ui) |
254 : screen_manager_(this), | 254 : screen_manager_(this), |
255 host_(host), | 255 host_(host), |
256 oobe_ui_(oobe_ui), | 256 oobe_ui_(oobe_ui), |
257 weak_factory_(this) { | 257 weak_factory_(this) { |
258 DCHECK(default_controller_ == nullptr); | 258 DCHECK(default_controller_ == nullptr); |
259 default_controller_ = this; | 259 default_controller_ = this; |
| 260 |
| 261 oobe_ui_->GetCoreOobeView()->SetDelegate(&screen_manager_); |
| 262 |
260 if (!ash_util::IsRunningInMash()) { | 263 if (!ash_util::IsRunningInMash()) { |
261 AccessibilityManager* accessibility_manager = AccessibilityManager::Get(); | 264 AccessibilityManager* accessibility_manager = AccessibilityManager::Get(); |
262 CHECK(accessibility_manager); | 265 CHECK(accessibility_manager); |
263 accessibility_subscription_ = accessibility_manager->RegisterCallback( | 266 accessibility_subscription_ = accessibility_manager->RegisterCallback( |
264 base::Bind(&WizardController::OnAccessibilityStatusChanged, | 267 base::Bind(&WizardController::OnAccessibilityStatusChanged, |
265 base::Unretained(this))); | 268 base::Unretained(this))); |
266 } else { | 269 } else { |
267 NOTIMPLEMENTED(); | 270 NOTIMPLEMENTED(); |
268 } | 271 } |
269 } | 272 } |
270 | 273 |
271 WizardController::~WizardController() { | 274 WizardController::~WizardController() { |
| 275 // OobeUI handlers may have already been destroyed. |
| 276 if (oobe_ui_->GetCoreOobeView()) |
| 277 oobe_ui_->GetCoreOobeView()->SetDelegate(nullptr); |
| 278 |
272 if (shark_connection_listener_.get()) { | 279 if (shark_connection_listener_.get()) { |
273 base::ThreadTaskRunnerHandle::Get()->DeleteSoon( | 280 base::ThreadTaskRunnerHandle::Get()->DeleteSoon( |
274 FROM_HERE, shark_connection_listener_.release()); | 281 FROM_HERE, shark_connection_listener_.release()); |
275 } | 282 } |
276 if (default_controller_ == this) { | 283 if (default_controller_ == this) { |
277 default_controller_ = nullptr; | 284 default_controller_ = nullptr; |
278 } else { | 285 } else { |
279 NOTREACHED() << "More than one controller are alive."; | 286 NOTREACHED() << "More than one controller are alive."; |
280 } | 287 } |
281 } | 288 } |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
372 remora_controller_.get()); | 379 remora_controller_.get()); |
373 } else if (screen == OobeScreen::SCREEN_USER_IMAGE_PICKER) { | 380 } else if (screen == OobeScreen::SCREEN_USER_IMAGE_PICKER) { |
374 return new UserImageScreen(this, oobe_ui_->GetUserImageView()); | 381 return new UserImageScreen(this, oobe_ui_->GetUserImageView()); |
375 } else if (screen == OobeScreen::SCREEN_OOBE_EULA) { | 382 } else if (screen == OobeScreen::SCREEN_OOBE_EULA) { |
376 return new EulaScreen(this, this, oobe_ui_->GetEulaView()); | 383 return new EulaScreen(this, this, oobe_ui_->GetEulaView()); |
377 } else if (screen == OobeScreen::SCREEN_OOBE_ENROLLMENT) { | 384 } else if (screen == OobeScreen::SCREEN_OOBE_ENROLLMENT) { |
378 return new EnrollmentScreen(this, oobe_ui_->GetEnrollmentScreenView()); | 385 return new EnrollmentScreen(this, oobe_ui_->GetEnrollmentScreenView()); |
379 } else if (screen == OobeScreen::SCREEN_OOBE_RESET) { | 386 } else if (screen == OobeScreen::SCREEN_OOBE_RESET) { |
380 return new chromeos::ResetScreen(this, oobe_ui_->GetResetView()); | 387 return new chromeos::ResetScreen(this, oobe_ui_->GetResetView()); |
381 } else if (screen == OobeScreen::SCREEN_OOBE_ENABLE_DEBUGGING) { | 388 } else if (screen == OobeScreen::SCREEN_OOBE_ENABLE_DEBUGGING) { |
382 return new EnableDebuggingScreen(this, | 389 auto* result = new EnableDebuggingScreen(this, oobe_ui_->GetCoreOobeView()); |
383 oobe_ui_->GetEnableDebuggingScreenView()); | 390 // TODO(jdufault): When BaseScreen derives from CoreOobeView we can move the |
| 391 // AddDelegate call directly into ScreenManager. See crbug.com/672142. |
| 392 screen_manager_.AddDelegate(result); |
| 393 return result; |
384 } else if (screen == OobeScreen::SCREEN_KIOSK_ENABLE) { | 394 } else if (screen == OobeScreen::SCREEN_KIOSK_ENABLE) { |
385 return new KioskEnableScreen(this, oobe_ui_->GetKioskEnableScreenView()); | 395 return new KioskEnableScreen(this, oobe_ui_->GetKioskEnableScreenView()); |
386 } else if (screen == OobeScreen::SCREEN_KIOSK_AUTOLAUNCH) { | 396 } else if (screen == OobeScreen::SCREEN_KIOSK_AUTOLAUNCH) { |
387 return new KioskAutolaunchScreen(this, | 397 return new KioskAutolaunchScreen(this, |
388 oobe_ui_->GetKioskAutolaunchScreenView()); | 398 oobe_ui_->GetKioskAutolaunchScreenView()); |
389 } else if (screen == OobeScreen::SCREEN_TERMS_OF_SERVICE) { | 399 } else if (screen == OobeScreen::SCREEN_TERMS_OF_SERVICE) { |
390 return new TermsOfServiceScreen(this, | 400 return new TermsOfServiceScreen(this, |
391 oobe_ui_->GetTermsOfServiceScreenView()); | 401 oobe_ui_->GetTermsOfServiceScreenView()); |
392 } else if (screen == OobeScreen::SCREEN_ARC_TERMS_OF_SERVICE) { | 402 } else if (screen == OobeScreen::SCREEN_ARC_TERMS_OF_SERVICE) { |
393 return new ArcTermsOfServiceScreen( | 403 return new ArcTermsOfServiceScreen( |
(...skipping 1117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1511 : policy::EnrollmentConfig::MODE_MANUAL_REENROLLMENT; | 1521 : policy::EnrollmentConfig::MODE_MANUAL_REENROLLMENT; |
1512 } | 1522 } |
1513 | 1523 |
1514 EnrollmentScreen* screen = EnrollmentScreen::Get(screen_manager()); | 1524 EnrollmentScreen* screen = EnrollmentScreen::Get(screen_manager()); |
1515 screen->SetParameters(effective_config, shark_controller_.get()); | 1525 screen->SetParameters(effective_config, shark_controller_.get()); |
1516 SetStatusAreaVisible(true); | 1526 SetStatusAreaVisible(true); |
1517 SetCurrentScreen(screen); | 1527 SetCurrentScreen(screen); |
1518 } | 1528 } |
1519 | 1529 |
1520 } // namespace chromeos | 1530 } // namespace chromeos |
OLD | NEW |