OLD | NEW |
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 <limits.h> | 7 #include <limits.h> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/metrics/user_metrics.h" |
10 #include "base/strings/string_number_conversions.h" | 11 #include "base/strings/string_number_conversions.h" |
11 #include "base/strings/utf_string_conversions.h" | 12 #include "base/strings/utf_string_conversions.h" |
12 #include "base/values.h" | 13 #include "base/values.h" |
13 #include "chrome/browser/browser_process.h" | 14 #include "chrome/browser/browser_process.h" |
14 #include "chrome/browser/extensions/signin/gaia_auth_extension_loader.h" | 15 #include "chrome/browser/extensions/signin/gaia_auth_extension_loader.h" |
15 #include "chrome/browser/profiles/profile.h" | 16 #include "chrome/browser/profiles/profile.h" |
16 #include "chrome/browser/signin/signin_promo.h" | 17 #include "chrome/browser/signin/signin_promo.h" |
17 #include "chrome/browser/ui/browser_navigator.h" | 18 #include "chrome/browser/ui/browser_navigator.h" |
18 #include "chrome/browser/ui/browser_navigator_params.h" | 19 #include "chrome/browser/ui/browser_navigator_params.h" |
19 #include "chrome/browser/ui/signin_view_controller_delegate.h" | 20 #include "chrome/browser/ui/signin_view_controller_delegate.h" |
20 #include "chrome/browser/ui/user_manager.h" | 21 #include "chrome/browser/ui/user_manager.h" |
21 #include "chrome/browser/ui/webui/signin/signin_utils.h" | 22 #include "chrome/browser/ui/webui/signin/signin_utils.h" |
22 #include "chrome/common/pref_names.h" | 23 #include "chrome/common/pref_names.h" |
23 #include "components/metrics/metrics_pref_names.h" | 24 #include "components/metrics/metrics_pref_names.h" |
24 #include "components/prefs/pref_service.h" | 25 #include "components/prefs/pref_service.h" |
25 #include "components/signin/core/common/signin_pref_names.h" | 26 #include "components/signin/core/common/signin_pref_names.h" |
26 #include "content/public/browser/storage_partition.h" | 27 #include "content/public/browser/storage_partition.h" |
27 #include "content/public/browser/user_metrics.h" | |
28 #include "content/public/browser/web_contents.h" | 28 #include "content/public/browser/web_contents.h" |
29 #include "content/public/browser/web_ui.h" | 29 #include "content/public/browser/web_ui.h" |
30 #include "google_apis/gaia/gaia_urls.h" | 30 #include "google_apis/gaia/gaia_urls.h" |
31 #include "net/base/url_util.h" | 31 #include "net/base/url_util.h" |
32 | 32 |
33 InlineLoginHandler::InlineLoginHandler() : weak_ptr_factory_(this) {} | 33 InlineLoginHandler::InlineLoginHandler() : weak_ptr_factory_(this) {} |
34 | 34 |
35 InlineLoginHandler::~InlineLoginHandler() {} | 35 InlineLoginHandler::~InlineLoginHandler() {} |
36 | 36 |
37 void InlineLoginHandler::RegisterMessages() { | 37 void InlineLoginHandler::RegisterMessages() { |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
82 } else { | 82 } else { |
83 ContinueHandleInitializeMessage(); | 83 ContinueHandleInitializeMessage(); |
84 } | 84 } |
85 } | 85 } |
86 } | 86 } |
87 | 87 |
88 void InlineLoginHandler::RecordSigninUserActionForAccessPoint( | 88 void InlineLoginHandler::RecordSigninUserActionForAccessPoint( |
89 signin_metrics::AccessPoint access_point) { | 89 signin_metrics::AccessPoint access_point) { |
90 switch (access_point) { | 90 switch (access_point) { |
91 case signin_metrics::AccessPoint::ACCESS_POINT_START_PAGE: | 91 case signin_metrics::AccessPoint::ACCESS_POINT_START_PAGE: |
92 content::RecordAction( | 92 base::RecordAction( |
93 base::UserMetricsAction("Signin_Signin_FromStartPage")); | 93 base::UserMetricsAction("Signin_Signin_FromStartPage")); |
94 break; | 94 break; |
95 case signin_metrics::AccessPoint::ACCESS_POINT_NTP_LINK: | 95 case signin_metrics::AccessPoint::ACCESS_POINT_NTP_LINK: |
96 content::RecordAction(base::UserMetricsAction("Signin_Signin_FromNTP")); | 96 base::RecordAction(base::UserMetricsAction("Signin_Signin_FromNTP")); |
97 break; | 97 break; |
98 case signin_metrics::AccessPoint::ACCESS_POINT_MENU: | 98 case signin_metrics::AccessPoint::ACCESS_POINT_MENU: |
99 content::RecordAction(base::UserMetricsAction("Signin_Signin_FromMenu")); | 99 base::RecordAction(base::UserMetricsAction("Signin_Signin_FromMenu")); |
100 break; | 100 break; |
101 case signin_metrics::AccessPoint::ACCESS_POINT_SETTINGS: | 101 case signin_metrics::AccessPoint::ACCESS_POINT_SETTINGS: |
102 content::RecordAction( | 102 base::RecordAction(base::UserMetricsAction("Signin_Signin_FromSettings")); |
103 base::UserMetricsAction("Signin_Signin_FromSettings")); | |
104 break; | 103 break; |
105 case signin_metrics::AccessPoint::ACCESS_POINT_SUPERVISED_USER: | 104 case signin_metrics::AccessPoint::ACCESS_POINT_SUPERVISED_USER: |
106 content::RecordAction( | 105 base::RecordAction( |
107 base::UserMetricsAction("Signin_Signin_FromSupervisedUser")); | 106 base::UserMetricsAction("Signin_Signin_FromSupervisedUser")); |
108 break; | 107 break; |
109 case signin_metrics::AccessPoint::ACCESS_POINT_EXTENSION_INSTALL_BUBBLE: | 108 case signin_metrics::AccessPoint::ACCESS_POINT_EXTENSION_INSTALL_BUBBLE: |
110 content::RecordAction( | 109 base::RecordAction( |
111 base::UserMetricsAction("Signin_Signin_FromExtensionInstallBubble")); | 110 base::UserMetricsAction("Signin_Signin_FromExtensionInstallBubble")); |
112 break; | 111 break; |
113 case signin_metrics::AccessPoint::ACCESS_POINT_EXTENSIONS: | 112 case signin_metrics::AccessPoint::ACCESS_POINT_EXTENSIONS: |
114 content::RecordAction( | 113 base::RecordAction( |
115 base::UserMetricsAction("Signin_Signin_FromExtensions")); | 114 base::UserMetricsAction("Signin_Signin_FromExtensions")); |
116 break; | 115 break; |
117 case signin_metrics::AccessPoint::ACCESS_POINT_APPS_PAGE_LINK: | 116 case signin_metrics::AccessPoint::ACCESS_POINT_APPS_PAGE_LINK: |
118 content::RecordAction( | 117 base::RecordAction( |
119 base::UserMetricsAction("Signin_Signin_FromAppsPageLink")); | 118 base::UserMetricsAction("Signin_Signin_FromAppsPageLink")); |
120 break; | 119 break; |
121 case signin_metrics::AccessPoint::ACCESS_POINT_BOOKMARK_BUBBLE: | 120 case signin_metrics::AccessPoint::ACCESS_POINT_BOOKMARK_BUBBLE: |
122 content::RecordAction( | 121 base::RecordAction( |
123 base::UserMetricsAction("Signin_Signin_FromBookmarkBubble")); | 122 base::UserMetricsAction("Signin_Signin_FromBookmarkBubble")); |
124 break; | 123 break; |
125 case signin_metrics::AccessPoint::ACCESS_POINT_BOOKMARK_MANAGER: | 124 case signin_metrics::AccessPoint::ACCESS_POINT_BOOKMARK_MANAGER: |
126 content::RecordAction( | 125 base::RecordAction( |
127 base::UserMetricsAction("Signin_Signin_FromBookmarkManager")); | 126 base::UserMetricsAction("Signin_Signin_FromBookmarkManager")); |
128 break; | 127 break; |
129 case signin_metrics::AccessPoint::ACCESS_POINT_AVATAR_BUBBLE_SIGN_IN: | 128 case signin_metrics::AccessPoint::ACCESS_POINT_AVATAR_BUBBLE_SIGN_IN: |
130 content::RecordAction( | 129 base::RecordAction( |
131 base::UserMetricsAction("Signin_Signin_FromAvatarBubbleSignin")); | 130 base::UserMetricsAction("Signin_Signin_FromAvatarBubbleSignin")); |
132 break; | 131 break; |
133 case signin_metrics::AccessPoint::ACCESS_POINT_USER_MANAGER: | 132 case signin_metrics::AccessPoint::ACCESS_POINT_USER_MANAGER: |
134 content::RecordAction( | 133 base::RecordAction( |
135 base::UserMetricsAction("Signin_Signin_FromUserManager")); | 134 base::UserMetricsAction("Signin_Signin_FromUserManager")); |
136 break; | 135 break; |
137 case signin_metrics::AccessPoint::ACCESS_POINT_DEVICES_PAGE: | 136 case signin_metrics::AccessPoint::ACCESS_POINT_DEVICES_PAGE: |
138 content::RecordAction( | 137 base::RecordAction( |
139 base::UserMetricsAction("Signin_Signin_FromDevicesPage")); | 138 base::UserMetricsAction("Signin_Signin_FromDevicesPage")); |
140 break; | 139 break; |
141 case signin_metrics::AccessPoint::ACCESS_POINT_CLOUD_PRINT: | 140 case signin_metrics::AccessPoint::ACCESS_POINT_CLOUD_PRINT: |
142 content::RecordAction( | 141 base::RecordAction( |
143 base::UserMetricsAction("Signin_Signin_FromCloudPrint")); | 142 base::UserMetricsAction("Signin_Signin_FromCloudPrint")); |
144 break; | 143 break; |
145 case signin_metrics::AccessPoint::ACCESS_POINT_CONTENT_AREA: | 144 case signin_metrics::AccessPoint::ACCESS_POINT_CONTENT_AREA: |
146 content::RecordAction( | 145 base::RecordAction( |
147 base::UserMetricsAction("Signin_Signin_FromContentArea")); | 146 base::UserMetricsAction("Signin_Signin_FromContentArea")); |
148 break; | 147 break; |
149 case signin_metrics::AccessPoint::ACCESS_POINT_SIGNIN_PROMO: | 148 case signin_metrics::AccessPoint::ACCESS_POINT_SIGNIN_PROMO: |
150 content::RecordAction( | 149 base::RecordAction( |
151 base::UserMetricsAction("Signin_Signin_FromSigninPromo")); | 150 base::UserMetricsAction("Signin_Signin_FromSigninPromo")); |
152 break; | 151 break; |
153 case signin_metrics::AccessPoint::ACCESS_POINT_RECENT_TABS: | 152 case signin_metrics::AccessPoint::ACCESS_POINT_RECENT_TABS: |
154 content::RecordAction( | 153 base::RecordAction( |
155 base::UserMetricsAction("Signin_Signin_FromRecentTabs")); | 154 base::UserMetricsAction("Signin_Signin_FromRecentTabs")); |
156 break; | 155 break; |
157 case signin_metrics::AccessPoint::ACCESS_POINT_UNKNOWN: | 156 case signin_metrics::AccessPoint::ACCESS_POINT_UNKNOWN: |
158 content::RecordAction( | 157 base::RecordAction( |
159 base::UserMetricsAction("Signin_Signin_FromUnknownAccessPoint")); | 158 base::UserMetricsAction("Signin_Signin_FromUnknownAccessPoint")); |
160 break; | 159 break; |
161 case signin_metrics::AccessPoint::ACCESS_POINT_PASSWORD_BUBBLE: | 160 case signin_metrics::AccessPoint::ACCESS_POINT_PASSWORD_BUBBLE: |
162 content::RecordAction( | 161 base::RecordAction( |
163 base::UserMetricsAction("Signin_Signin_FromPasswordBubble")); | 162 base::UserMetricsAction("Signin_Signin_FromPasswordBubble")); |
164 break; | 163 break; |
165 case signin_metrics::AccessPoint::ACCESS_POINT_AUTOFILL_DROPDOWN: | 164 case signin_metrics::AccessPoint::ACCESS_POINT_AUTOFILL_DROPDOWN: |
166 content::RecordAction( | 165 base::RecordAction( |
167 base::UserMetricsAction("Signin_Signin_FromAutofillDropdown")); | 166 base::UserMetricsAction("Signin_Signin_FromAutofillDropdown")); |
168 break; | 167 break; |
169 case signin_metrics::AccessPoint::ACCESS_POINT_NTP_CONTENT_SUGGESTIONS: | 168 case signin_metrics::AccessPoint::ACCESS_POINT_NTP_CONTENT_SUGGESTIONS: |
170 content::RecordAction( | 169 base::RecordAction( |
171 base::UserMetricsAction("Signin_Signin_FromNTPContentSuggestions")); | 170 base::UserMetricsAction("Signin_Signin_FromNTPContentSuggestions")); |
172 break; | 171 break; |
173 case signin_metrics::AccessPoint::ACCESS_POINT_RESIGNIN_INFOBAR: | 172 case signin_metrics::AccessPoint::ACCESS_POINT_RESIGNIN_INFOBAR: |
174 content::RecordAction( | 173 base::RecordAction( |
175 base::UserMetricsAction("Signin_Signin_FromReSigninInfobar")); | 174 base::UserMetricsAction("Signin_Signin_FromReSigninInfobar")); |
176 break; | 175 break; |
177 case signin_metrics::AccessPoint::ACCESS_POINT_TAB_SWITCHER: | 176 case signin_metrics::AccessPoint::ACCESS_POINT_TAB_SWITCHER: |
178 content::RecordAction( | 177 base::RecordAction( |
179 base::UserMetricsAction("Signin_Signin_FromTabSwitcher")); | 178 base::UserMetricsAction("Signin_Signin_FromTabSwitcher")); |
180 break; | 179 break; |
181 case signin_metrics::AccessPoint::ACCESS_POINT_MAX: | 180 case signin_metrics::AccessPoint::ACCESS_POINT_MAX: |
182 NOTREACHED(); | 181 NOTREACHED(); |
183 break; | 182 break; |
184 } | 183 } |
185 } | 184 } |
186 | 185 |
187 void InlineLoginHandler::ContinueHandleInitializeMessage() { | 186 void InlineLoginHandler::ContinueHandleInitializeMessage() { |
188 base::DictionaryValue params; | 187 base::DictionaryValue params; |
189 | 188 |
190 const std::string& app_locale = g_browser_process->GetApplicationLocale(); | 189 const std::string& app_locale = g_browser_process->GetApplicationLocale(); |
191 params.SetString("hl", app_locale); | 190 params.SetString("hl", app_locale); |
192 GaiaUrls* gaiaUrls = GaiaUrls::GetInstance(); | 191 GaiaUrls* gaiaUrls = GaiaUrls::GetInstance(); |
193 params.SetString("gaiaUrl", gaiaUrls->gaia_url().spec()); | 192 params.SetString("gaiaUrl", gaiaUrls->gaia_url().spec()); |
194 params.SetInteger("authMode", InlineLoginHandler::kDesktopAuthMode); | 193 params.SetInteger("authMode", InlineLoginHandler::kDesktopAuthMode); |
195 | 194 |
196 const GURL& current_url = web_ui()->GetWebContents()->GetURL(); | 195 const GURL& current_url = web_ui()->GetWebContents()->GetURL(); |
197 signin_metrics::AccessPoint access_point = | 196 signin_metrics::AccessPoint access_point = |
198 signin::GetAccessPointForPromoURL(current_url); | 197 signin::GetAccessPointForPromoURL(current_url); |
199 signin_metrics::Reason reason = | 198 signin_metrics::Reason reason = |
200 signin::GetSigninReasonForPromoURL(current_url); | 199 signin::GetSigninReasonForPromoURL(current_url); |
201 | 200 |
202 if (reason != signin_metrics::Reason::REASON_REAUTHENTICATION && | 201 if (reason != signin_metrics::Reason::REASON_REAUTHENTICATION && |
203 reason != signin_metrics::Reason::REASON_UNLOCK && | 202 reason != signin_metrics::Reason::REASON_UNLOCK && |
204 reason != signin_metrics::Reason::REASON_ADD_SECONDARY_ACCOUNT) { | 203 reason != signin_metrics::Reason::REASON_ADD_SECONDARY_ACCOUNT) { |
205 signin_metrics::LogSigninAccessPointStarted(access_point); | 204 signin_metrics::LogSigninAccessPointStarted(access_point); |
206 RecordSigninUserActionForAccessPoint(access_point); | 205 RecordSigninUserActionForAccessPoint(access_point); |
207 content::RecordAction(base::UserMetricsAction("Signin_SigninPage_Loading")); | 206 base::RecordAction(base::UserMetricsAction("Signin_SigninPage_Loading")); |
208 params.SetBoolean("isLoginPrimaryAccount", true); | 207 params.SetBoolean("isLoginPrimaryAccount", true); |
209 } | 208 } |
210 | 209 |
211 params.SetString("continueUrl", signin::GetLandingURL(access_point).spec()); | 210 params.SetString("continueUrl", signin::GetLandingURL(access_point).spec()); |
212 | 211 |
213 Profile* profile = Profile::FromWebUI(web_ui()); | 212 Profile* profile = Profile::FromWebUI(web_ui()); |
214 std::string default_email; | 213 std::string default_email; |
215 if (reason == signin_metrics::Reason::REASON_SIGNIN_PRIMARY_ACCOUNT) { | 214 if (reason == signin_metrics::Reason::REASON_SIGNIN_PRIMARY_ACCOUNT) { |
216 default_email = | 215 default_email = |
217 profile->GetPrefs()->GetString(prefs::kGoogleServicesLastUsername); | 216 profile->GetPrefs()->GetString(prefs::kGoogleServicesLastUsername); |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
284 browser->CloseModalSigninWindow(); | 283 browser->CloseModalSigninWindow(); |
285 | 284 |
286 // Does nothing if user manager is not showing. | 285 // Does nothing if user manager is not showing. |
287 UserManagerProfileDialog::HideDialog(); | 286 UserManagerProfileDialog::HideDialog(); |
288 } | 287 } |
289 | 288 |
290 void InlineLoginHandler::CloseDialogFromJavascript() { | 289 void InlineLoginHandler::CloseDialogFromJavascript() { |
291 if (IsJavascriptAllowed()) | 290 if (IsJavascriptAllowed()) |
292 CallJavascriptFunction("inline.login.closeDialog"); | 291 CallJavascriptFunction("inline.login.closeDialog"); |
293 } | 292 } |
OLD | NEW |