| 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) {
|
|
|