| Index: chrome/browser/ui/webui/signin/inline_login_handler.cc
|
| diff --git a/chrome/browser/ui/webui/signin/inline_login_handler.cc b/chrome/browser/ui/webui/signin/inline_login_handler.cc
|
| index 80d536314821f9d7964d1055917d2f1cff196391..f127b29914813fb01f54a5f82aa4f4a8c3b11b3f 100644
|
| --- a/chrome/browser/ui/webui/signin/inline_login_handler.cc
|
| +++ b/chrome/browser/ui/webui/signin/inline_login_handler.cc
|
| @@ -14,8 +14,10 @@
|
| #include "chrome/browser/extensions/signin/gaia_auth_extension_loader.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| #include "chrome/browser/signin/signin_promo.h"
|
| +#include "chrome/browser/ui/browser_finder.h"
|
| #include "chrome/browser/ui/browser_navigator.h"
|
| #include "chrome/browser/ui/browser_navigator_params.h"
|
| +#include "chrome/browser/ui/signin_view_controller_delegate.h"
|
| #include "chrome/common/pref_names.h"
|
| #include "components/metrics/metrics_pref_names.h"
|
| #include "components/prefs/pref_service.h"
|
| @@ -27,6 +29,19 @@
|
| #include "google_apis/gaia/gaia_urls.h"
|
| #include "net/base/url_util.h"
|
|
|
| +namespace {
|
| +
|
| +Browser* GetDesktopBrowser(content::WebUI* web_ui) {
|
| + Browser* browser = chrome::FindBrowserWithWebContents(
|
| + web_ui->GetWebContents());
|
| + if (!browser)
|
| + browser = chrome::FindLastActiveWithProfile(Profile::FromWebUI(web_ui));
|
| + DCHECK(browser);
|
| + return browser;
|
| +}
|
| +
|
| +} // namespace
|
| +
|
| InlineLoginHandler::InlineLoginHandler() : weak_ptr_factory_(this) {}
|
|
|
| InlineLoginHandler::~InlineLoginHandler() {}
|
| @@ -42,6 +57,9 @@ void InlineLoginHandler::RegisterMessages() {
|
| "switchToFullTab",
|
| base::Bind(&InlineLoginHandler::HandleSwitchToFullTabMessage,
|
| base::Unretained(this)));
|
| + web_ui()->RegisterMessageCallback("navigationButtonClicked",
|
| + base::Bind(&InlineLoginHandler::HandleNavigationButtonClicked,
|
| + base::Unretained(this)));
|
| }
|
|
|
| void InlineLoginHandler::HandleInitializeMessage(const base::ListValue* args) {
|
| @@ -235,3 +253,11 @@ void InlineLoginHandler::HandleSwitchToFullTabMessage(
|
|
|
| web_ui()->CallJavascriptFunction("inline.login.closeDialog");
|
| }
|
| +
|
| +void InlineLoginHandler::HandleNavigationButtonClicked(
|
| + const base::ListValue* args) {
|
| + Browser* browser = GetDesktopBrowser(web_ui());
|
| + DCHECK(browser);
|
| +
|
| + browser->signin_view_controller()->delegate()->PerformNavigation();
|
| +}
|
|
|