Chromium Code Reviews| 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..765a1b03b0cc027e410d54607eca03439ab8aed7 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, |
| + base::Closure closure) { |
| if (!page_is_ready()) { |
| show_on_init_ = true; |
| return; |
| } |
| parent_screen_ = parent_screen; |
| + closure_.reset(new base::Closure(closure)); |
| ShowScreen(OobeUI::kScreenErrorMessage, params); |
| NetworkErrorShown(); |
| NetworkPortalDetector::Get()->SetStrategy( |
| @@ -68,12 +70,26 @@ 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))); |
| +} |
| + |
| 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); |
| + DCHECK(closure_.get()); |
|
ygorshenin1
2014/06/18 13:11:35
No need in DCHECK() as you're check closure_.get()
Roman Sorokin (ftl)
2014/06/19 11:57:38
Done.
|
| + if (closure_.get()) |
| + closure_->Run(); |
| NetworkPortalDetector::Get()->SetStrategy( |
| PortalDetectorStrategy::STRATEGY_ID_LOGIN_SCREEN); |
| if (delegate_) |