Index: chrome/browser/ui/webui/chromeos/login/oobe_ui.cc |
diff --git a/chrome/browser/ui/webui/chromeos/login/oobe_ui.cc b/chrome/browser/ui/webui/chromeos/login/oobe_ui.cc |
index 6402e03fed7fe9755da3bcd53de3eb90db4da926..2ace02f00040615a1006b10403b70c18dfe12e1a 100644 |
--- a/chrome/browser/ui/webui/chromeos/login/oobe_ui.cc |
+++ b/chrome/browser/ui/webui/chromeos/login/oobe_ui.cc |
@@ -47,6 +47,7 @@ |
#include "chrome/browser/ui/webui/chromeos/login/kiosk_app_menu_handler.h" |
#include "chrome/browser/ui/webui/chromeos/login/kiosk_autolaunch_screen_handler.h" |
#include "chrome/browser/ui/webui/chromeos/login/kiosk_enable_screen_handler.h" |
+#include "chrome/browser/ui/webui/chromeos/login/multicast_core_oobe_view.h" |
#include "chrome/browser/ui/webui/chromeos/login/network_dropdown_handler.h" |
#include "chrome/browser/ui/webui/chromeos/login/network_screen_handler.h" |
#include "chrome/browser/ui/webui/chromeos/login/network_state_informer.h" |
@@ -213,12 +214,14 @@ OobeUI::OobeUI(content::WebUI* web_ui, const GURL& url) |
network_state_informer_ = new NetworkStateInformer(); |
network_state_informer_->Init(); |
+ core_oobe_view_ = base::MakeUnique<MulticastCoreOobeView>(); |
js_calls_container = base::MakeUnique<JSCallsContainer>(); |
auto core_handler = |
base::MakeUnique<CoreOobeHandler>(this, js_calls_container.get()); |
core_handler_ = core_handler.get(); |
AddWebUIHandler(std::move(core_handler)); |
+ core_oobe_view_->AddView(core_handler_); |
auto network_dropdown_handler = base::MakeUnique<NetworkDropdownHandler>(); |
network_dropdown_handler_ = network_dropdown_handler.get(); |
@@ -227,11 +230,13 @@ OobeUI::OobeUI(content::WebUI* web_ui, const GURL& url) |
AddScreenHandler(base::MakeUnique<UpdateScreenHandler>()); |
if (display_type_ == kOobeDisplay) |
- AddScreenHandler(base::MakeUnique<NetworkScreenHandler>(core_handler_)); |
+ AddScreenHandler(base::MakeUnique<NetworkScreenHandler>(GetCoreOobeView())); |
- AddScreenHandler(base::MakeUnique<EnableDebuggingScreenHandler>()); |
+ auto enable_debugging = base::MakeUnique<EnableDebuggingScreenHandler>(); |
+ core_oobe_view_->AddView(enable_debugging.get()); |
+ AddScreenHandler(std::move(enable_debugging)); |
- AddScreenHandler(base::MakeUnique<EulaScreenHandler>(core_handler_)); |
+ AddScreenHandler(base::MakeUnique<EulaScreenHandler>(GetCoreOobeView())); |
AddScreenHandler(base::MakeUnique<ResetScreenHandler>()); |
@@ -249,7 +254,8 @@ OobeUI::OobeUI(content::WebUI* web_ui, const GURL& url) |
AddScreenHandler(base::MakeUnique<AutoEnrollmentCheckScreenHandler>()); |
- AddScreenHandler(base::MakeUnique<HIDDetectionScreenHandler>(core_handler_)); |
+ AddScreenHandler( |
+ base::MakeUnique<HIDDetectionScreenHandler>(GetCoreOobeView())); |
AddScreenHandler(base::MakeUnique<ErrorScreenHandler>()); |
network_dropdown_handler_->AddObserver(GetView<ErrorScreenHandler>()); |
@@ -261,7 +267,7 @@ OobeUI::OobeUI(content::WebUI* web_ui, const GURL& url) |
network_state_informer_, error_screen)); |
AddScreenHandler( |
- base::MakeUnique<TermsOfServiceScreenHandler>(core_handler_)); |
+ base::MakeUnique<TermsOfServiceScreenHandler>(GetCoreOobeView())); |
AddScreenHandler(base::MakeUnique<ArcTermsOfServiceScreenHandler>()); |
@@ -270,10 +276,10 @@ OobeUI::OobeUI(content::WebUI* web_ui, const GURL& url) |
AddScreenHandler(base::MakeUnique<UserBoardScreenHandler>()); |
AddScreenHandler(base::MakeUnique<GaiaScreenHandler>( |
- core_handler_, network_state_informer_)); |
+ GetCoreOobeView(), network_state_informer_)); |
auto signin_screen_handler = base::MakeUnique<SigninScreenHandler>( |
- network_state_informer_, error_screen, core_handler_, |
+ network_state_informer_, error_screen, GetCoreOobeView(), |
GetView<GaiaScreenHandler>(), js_calls_container.get()); |
signin_screen_handler_ = signin_screen_handler.get(); |
AddWebUIHandler(std::move(signin_screen_handler)); |
@@ -327,6 +333,7 @@ OobeUI::OobeUI(content::WebUI* web_ui, const GURL& url) |
} |
OobeUI::~OobeUI() { |
+ GetCoreOobeView()->SetDelegate(nullptr); |
network_dropdown_handler_->RemoveObserver(GetView<ErrorScreenHandler>()); |
if (ash_util::IsRunningInMash()) { |
// TODO: Ash needs to expose screen dimming api. See |
@@ -336,7 +343,7 @@ OobeUI::~OobeUI() { |
} |
CoreOobeView* OobeUI::GetCoreOobeView() { |
- return core_handler_; |
+ return core_oobe_view_.get(); |
} |
NetworkView* OobeUI::GetNetworkView() { |
@@ -351,10 +358,6 @@ UpdateView* OobeUI::GetUpdateView() { |
return GetView<UpdateScreenHandler>(); |
} |
-EnableDebuggingScreenView* OobeUI::GetEnableDebuggingScreenView() { |
- return GetView<EnableDebuggingScreenHandler>(); |
-} |
- |
EnrollmentScreenView* OobeUI::GetEnrollmentScreenView() { |
return GetView<EnrollmentScreenHandler>(); |
} |
@@ -588,7 +591,7 @@ void OobeUI::UpdateLocalizedStringsIfNeeded() { |
base::DictionaryValue localized_strings; |
GetLocalizedStrings(&localized_strings); |
- static_cast<CoreOobeView*>(core_handler_)->ReloadContent(localized_strings); |
+ GetCoreOobeView()->ReloadContent(localized_strings); |
} |
} // namespace chromeos |