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

Unified Diff: chrome/browser/chromeos/login/wizard_controller.cc

Issue 2738973003: cros: WIP patch to remove EnableDebuggingScreenView
Patch Set: Initial upload Created 3 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/login/wizard_controller.cc
diff --git a/chrome/browser/chromeos/login/wizard_controller.cc b/chrome/browser/chromeos/login/wizard_controller.cc
index b06e37f0a7071f936fa8e7a69d85900dfc898785..970ad33d508d565033a27842dae7acc3809f3f4b 100644
--- a/chrome/browser/chromeos/login/wizard_controller.cc
+++ b/chrome/browser/chromeos/login/wizard_controller.cc
@@ -257,6 +257,9 @@ WizardController::WizardController(LoginDisplayHost* host, OobeUI* oobe_ui)
weak_factory_(this) {
DCHECK(default_controller_ == nullptr);
default_controller_ = this;
+
+ oobe_ui_->GetCoreOobeView()->SetDelegate(&screen_manager_);
+
if (!ash_util::IsRunningInMash()) {
AccessibilityManager* accessibility_manager = AccessibilityManager::Get();
CHECK(accessibility_manager);
@@ -269,6 +272,10 @@ WizardController::WizardController(LoginDisplayHost* host, OobeUI* oobe_ui)
}
WizardController::~WizardController() {
+ // OobeUI handlers may have already been destroyed.
+ if (oobe_ui_->GetCoreOobeView())
+ oobe_ui_->GetCoreOobeView()->SetDelegate(nullptr);
+
if (shark_connection_listener_.get()) {
base::ThreadTaskRunnerHandle::Get()->DeleteSoon(
FROM_HERE, shark_connection_listener_.release());
@@ -379,8 +386,11 @@ BaseScreen* WizardController::CreateScreen(OobeScreen screen) {
} else if (screen == OobeScreen::SCREEN_OOBE_RESET) {
return new chromeos::ResetScreen(this, oobe_ui_->GetResetView());
} else if (screen == OobeScreen::SCREEN_OOBE_ENABLE_DEBUGGING) {
- return new EnableDebuggingScreen(this,
- oobe_ui_->GetEnableDebuggingScreenView());
+ auto* result = new EnableDebuggingScreen(this, oobe_ui_->GetCoreOobeView());
+ // TODO(jdufault): When BaseScreen derives from CoreOobeView we can move the
+ // AddDelegate call directly into ScreenManager. See crbug.com/672142.
+ screen_manager_.AddDelegate(result);
+ return result;
} else if (screen == OobeScreen::SCREEN_KIOSK_ENABLE) {
return new KioskEnableScreen(this, oobe_ui_->GetKioskEnableScreenView());
} else if (screen == OobeScreen::SCREEN_KIOSK_AUTOLAUNCH) {

Powered by Google App Engine
This is Rietveld 408576698