| 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 6c6e9110734ab67b83de49c47ce2690d505587c6..d104d14195d86b725cd0f42b67935b57331db581 100644
|
| --- a/chrome/browser/ui/webui/signin/inline_login_handler.cc
|
| +++ b/chrome/browser/ui/webui/signin/inline_login_handler.cc
|
| @@ -5,10 +5,15 @@
|
| #include "chrome/browser/ui/webui/signin/inline_login_handler.h"
|
|
|
| #include "base/bind.h"
|
| +#include "base/strings/utf_string_conversions.h"
|
| #include "base/values.h"
|
| #include "chrome/browser/browser_process.h"
|
| +#include "chrome/browser/profiles/profile.h"
|
| +#include "chrome/browser/ui/browser_navigator.h"
|
| +#include "content/public/browser/web_contents.h"
|
| #include "content/public/browser/web_ui.h"
|
| #include "google_apis/gaia/gaia_urls.h"
|
| +#include "net/base/url_util.h"
|
|
|
| InlineLoginHandler::InlineLoginHandler() {}
|
|
|
| @@ -21,6 +26,10 @@ void InlineLoginHandler::RegisterMessages() {
|
| web_ui()->RegisterMessageCallback("completeLogin",
|
| base::Bind(&InlineLoginHandler::HandleCompleteLoginMessage,
|
| base::Unretained(this)));
|
| + web_ui()->RegisterMessageCallback(
|
| + "switchToFullTab",
|
| + base::Bind(&InlineLoginHandler::HandleSwitchToFullTabMessage,
|
| + base::Unretained(this)));
|
| }
|
|
|
| void InlineLoginHandler::HandleInitializeMessage(const base::ListValue* args) {
|
| @@ -41,3 +50,21 @@ void InlineLoginHandler::HandleCompleteLoginMessage(
|
| const base::ListValue* args) {
|
| CompleteLogin(args);
|
| }
|
| +
|
| +void InlineLoginHandler::HandleSwitchToFullTabMessage(
|
| + const base::ListValue* args) {
|
| + base::string16 url_str;
|
| + CHECK(args->GetString(0, &url_str));
|
| +
|
| + content::WebContents* web_contents = web_ui()->GetWebContents();
|
| + GURL main_frame_url(web_contents->GetURL());
|
| + main_frame_url = net::AppendOrReplaceQueryParameter(
|
| + main_frame_url, "frameUrl", base::UTF16ToASCII(url_str));
|
| + chrome::NavigateParams params(
|
| + Profile::FromWebUI(web_ui()),
|
| + net::AppendOrReplaceQueryParameter(main_frame_url, "constrained", "0"),
|
| + content::PAGE_TRANSITION_AUTO_TOPLEVEL);
|
| + chrome::Navigate(¶ms);
|
| +
|
| + web_ui()->CallJavascriptFunction("inline.login.closeDialog");
|
| +}
|
|
|