| 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 |