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

Unified Diff: chrome/browser/ui/webui/chromeos/login/error_screen_handler.cc

Issue 332243002: Network connectivity errors handling (incl. CP) for enrollment flow (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Implemented observer for webuiloginview Created 6 years, 6 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/ui/webui/chromeos/login/error_screen_handler.cc
diff --git a/chrome/browser/ui/webui/chromeos/login/error_screen_handler.cc b/chrome/browser/ui/webui/chromeos/login/error_screen_handler.cc
index 7215c15b9132ef0f8d14153fada6258deb98a8a9..d942cf31b4f08f1980cdaca9c1c294c7ca822a9b 100644
--- a/chrome/browser/ui/webui/chromeos/login/error_screen_handler.cc
+++ b/chrome/browser/ui/webui/chromeos/login/error_screen_handler.cc
@@ -53,12 +53,14 @@ void ErrorScreenHandler::SetDelegate(ErrorScreenActorDelegate* delegate) {
}
void ErrorScreenHandler::Show(OobeDisplay::Screen parent_screen,
- base::DictionaryValue* params) {
+ base::DictionaryValue* params,
+ const base::Closure& on_hide) {
if (!page_is_ready()) {
show_on_init_ = true;
return;
}
parent_screen_ = parent_screen;
+ on_hide_.reset(new base::Closure(on_hide));
ShowScreen(OobeUI::kScreenErrorMessage, params);
NetworkErrorShown();
NetworkPortalDetector::Get()->SetStrategy(
@@ -68,12 +70,25 @@ void ErrorScreenHandler::Show(OobeDisplay::Screen parent_screen,
LOG(WARNING) << "Offline message is displayed";
}
+void ErrorScreenHandler::CheckAndShowScreen() {
+ std::string screen_name;
+ if (GetScreenName(parent_screen(), &screen_name))
+ ShowScreen(screen_name.c_str(), NULL);
+}
+
+void ErrorScreenHandler::Show(OobeDisplay::Screen parent_screen,
+ base::DictionaryValue* params) {
+ Show(parent_screen,
+ params,
+ base::Bind(&ErrorScreenHandler::CheckAndShowScreen,
+ base::Unretained(this)));
Denis Kuznetsov (DE-MUC) 2014/06/23 17:42:01 Use weak-refs istead of Unretained.
Roman Sorokin (ftl) 2014/06/25 16:30:12 Done.
+}
+
void ErrorScreenHandler::Hide() {
if (parent_screen_ == OobeUI::SCREEN_UNKNOWN)
return;
- std::string screen_name;
- if (GetScreenName(parent_screen_, &screen_name))
- ShowScreen(screen_name.c_str(), NULL);
+ if (on_hide_.get())
+ on_hide_->Run();
Denis Kuznetsov (DE-MUC) 2014/06/23 17:42:01 What blocks you from using usual ShowScreen path,
Roman Sorokin (ftl) 2014/06/25 16:30:12 Cause we need to pass screen_data (which is DoShow
NetworkPortalDetector::Get()->SetStrategy(
PortalDetectorStrategy::STRATEGY_ID_LOGIN_SCREEN);
if (delegate_)

Powered by Google App Engine
This is Rietveld 408576698