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

Side by Side Diff: chrome/browser/ui/webui/signin/inline_login_handler.cc

Issue 256623002: Implemented inline login dialog for Chrome OS. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Comments addressed. Created 6 years, 8 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/webui/signin/inline_login_handler.h" 5 #include "chrome/browser/ui/webui/signin/inline_login_handler.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/strings/utf_string_conversions.h"
8 #include "base/values.h" 9 #include "base/values.h"
9 #include "chrome/browser/browser_process.h" 10 #include "chrome/browser/browser_process.h"
11 #include "chrome/browser/profiles/profile.h"
12 #include "chrome/browser/ui/browser_navigator.h"
13 #include "content/public/browser/web_contents.h"
10 #include "content/public/browser/web_ui.h" 14 #include "content/public/browser/web_ui.h"
11 #include "google_apis/gaia/gaia_urls.h" 15 #include "google_apis/gaia/gaia_urls.h"
16 #include "net/base/url_util.h"
12 17
13 InlineLoginHandler::InlineLoginHandler() {} 18 InlineLoginHandler::InlineLoginHandler() {}
14 19
15 InlineLoginHandler::~InlineLoginHandler() {} 20 InlineLoginHandler::~InlineLoginHandler() {}
16 21
17 void InlineLoginHandler::RegisterMessages() { 22 void InlineLoginHandler::RegisterMessages() {
18 web_ui()->RegisterMessageCallback("initialize", 23 web_ui()->RegisterMessageCallback("initialize",
19 base::Bind(&InlineLoginHandler::HandleInitializeMessage, 24 base::Bind(&InlineLoginHandler::HandleInitializeMessage,
20 base::Unretained(this))); 25 base::Unretained(this)));
21 web_ui()->RegisterMessageCallback("completeLogin", 26 web_ui()->RegisterMessageCallback("completeLogin",
22 base::Bind(&InlineLoginHandler::HandleCompleteLoginMessage, 27 base::Bind(&InlineLoginHandler::HandleCompleteLoginMessage,
23 base::Unretained(this))); 28 base::Unretained(this)));
29 web_ui()->RegisterMessageCallback(
30 "switchToFullTab",
31 base::Bind(&InlineLoginHandler::HandleSwitchToFullTabMessage,
32 base::Unretained(this)));
24 } 33 }
25 34
26 void InlineLoginHandler::HandleInitializeMessage(const base::ListValue* args) { 35 void InlineLoginHandler::HandleInitializeMessage(const base::ListValue* args) {
27 base::DictionaryValue params; 36 base::DictionaryValue params;
28 37
29 const std::string& app_locale = g_browser_process->GetApplicationLocale(); 38 const std::string& app_locale = g_browser_process->GetApplicationLocale();
30 params.SetString("hl", app_locale); 39 params.SetString("hl", app_locale);
31 GaiaUrls* gaiaUrls = GaiaUrls::GetInstance(); 40 GaiaUrls* gaiaUrls = GaiaUrls::GetInstance();
32 params.SetString("gaiaUrl", gaiaUrls->gaia_url().spec()); 41 params.SetString("gaiaUrl", gaiaUrls->gaia_url().spec());
33 params.SetInteger("authMode", kDefaultAuthMode); 42 params.SetInteger("authMode", kDefaultAuthMode);
34 43
35 SetExtraInitParams(params); 44 SetExtraInitParams(params);
36 45
37 web_ui()->CallJavascriptFunction("inline.login.loadAuthExtension", params); 46 web_ui()->CallJavascriptFunction("inline.login.loadAuthExtension", params);
38 } 47 }
39 48
40 void InlineLoginHandler::HandleCompleteLoginMessage( 49 void InlineLoginHandler::HandleCompleteLoginMessage(
41 const base::ListValue* args) { 50 const base::ListValue* args) {
42 CompleteLogin(args); 51 CompleteLogin(args);
43 } 52 }
53
54 void InlineLoginHandler::HandleSwitchToFullTabMessage(
55 const base::ListValue* args) {
56 base::string16 url_str;
57 CHECK(args->GetString(0, &url_str));
58
59 content::WebContents* web_contents = web_ui()->GetWebContents();
60 GURL main_frame_url(web_contents->GetURL());
61 main_frame_url = net::AppendOrReplaceQueryParameter(
62 main_frame_url, "frameUrl", base::UTF16ToASCII(url_str));
63 chrome::NavigateParams params(
64 Profile::FromWebUI(web_ui()),
65 net::AppendOrReplaceQueryParameter(main_frame_url, "constrained", "0"),
66 content::PAGE_TRANSITION_AUTO_TOPLEVEL);
67 chrome::Navigate(&params);
68
69 web_ui()->CallJavascriptFunction("inline.login.closeDialog");
70 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698