Index: chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc |
diff --git a/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc b/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc |
index ef384de9c236d68f0cd6d7ccf4a6331cd5dc1dbf..c4e3e606be4717d66f9146772607395c90474bcd 100644 |
--- a/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc |
+++ b/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc |
@@ -442,6 +442,9 @@ void SigninScreenHandler::RegisterMessages() { |
web_ui()->RegisterMessageCallback("fixCaptivePortal", |
base::Bind(&SigninScreenHandler::HandleFixCaptivePortal, |
base::Unretained(this))); |
+ web_ui()->RegisterMessageCallback("showCaptivePortal", |
+ base::Bind(&SigninScreenHandler::HandleShowCaptivePortal, |
+ base::Unretained(this))); |
web_ui()->RegisterMessageCallback("hideCaptivePortal", |
base::Bind(&SigninScreenHandler::HandleHideCaptivePortal, |
base::Unretained(this))); |
@@ -733,6 +736,13 @@ void SigninScreenHandler::HandleFixCaptivePortal(const base::ListValue* args) { |
captive_portal_window_proxy_->ShowIfRedirected(); |
} |
+void SigninScreenHandler::HandleShowCaptivePortal(const base::ListValue* args) { |
+ // This call is an explicit user action |
+ // i.e. clicking on link so force dialog show. |
+ HandleFixCaptivePortal(args); |
+ captive_portal_window_proxy_->Show(); |
+} |
+ |
void SigninScreenHandler::HandleHideCaptivePortal(const base::ListValue* args) { |
if (captive_portal_window_proxy_.get()) |
captive_portal_window_proxy_->Close(); |