OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/password_manager/save_password_infobar_delegate.h" | 5 #include "chrome/browser/password_manager/save_password_infobar_delegate.h" |
6 | 6 |
7 #include "base/metrics/histogram.h" | 7 #include "base/metrics/histogram.h" |
8 #include "base/strings/utf_string_conversions.h" | 8 #include "base/strings/utf_string_conversions.h" |
9 #include "chrome/browser/infobars/infobar_service.h" | 9 #include "chrome/browser/infobars/infobar_service.h" |
10 #include "chrome/browser/ui/sync/one_click_signin_helper.h" | 10 #include "chrome/browser/ui/sync/one_click_signin_helper.h" |
11 #include "components/infobars/core/infobar.h" | 11 #include "components/infobars/core/infobar.h" |
12 #include "components/password_manager/core/browser/password_form_manager.h" | 12 #include "components/password_manager/core/browser/password_form_manager.h" |
13 #include "components/signin/core/common/profile_management_switches.h" | 13 #include "components/signin/core/common/profile_management_switches.h" |
14 #include "content/public/browser/navigation_entry.h" | 14 #include "content/public/browser/navigation_entry.h" |
15 #include "content/public/browser/web_contents.h" | 15 #include "content/public/browser/web_contents.h" |
16 #include "google_apis/gaia/gaia_urls.h" | 16 #include "google_apis/gaia/gaia_urls.h" |
17 #include "grit/chromium_strings.h" | 17 #include "grit/chromium_strings.h" |
18 #include "grit/generated_resources.h" | 18 #include "grit/generated_resources.h" |
19 #include "grit/theme_resources.h" | 19 #include "grit/theme_resources.h" |
20 #include "ui/base/l10n/l10n_util.h" | 20 #include "ui/base/l10n/l10n_util.h" |
21 | 21 |
22 // static | 22 // static |
23 void SavePasswordInfoBarDelegate::Create( | 23 void SavePasswordInfoBarDelegate::Create( |
24 content::WebContents* web_contents, | 24 content::WebContents* web_contents, |
25 password_manager::PasswordFormManager* form_to_save, | 25 scoped_ptr<password_manager::PasswordFormManager> form_to_save, |
26 const std::string& uma_histogram_suffix) { | 26 const std::string& uma_histogram_suffix) { |
27 #if defined(ENABLE_ONE_CLICK_SIGNIN) | 27 #if defined(ENABLE_ONE_CLICK_SIGNIN) |
28 // Don't show the password manager infobar if this form is for a google | 28 // Don't show the password manager infobar if this form is for a google |
29 // account and we are going to show the one-click signin infobar. | 29 // account and we are going to show the one-click signin infobar. |
30 GURL realm(form_to_save->realm()); | 30 GURL realm(form_to_save->realm()); |
31 // TODO(mathp): Checking only against associated_username() causes a bug | 31 // TODO(mathp): Checking only against associated_username() causes a bug |
32 // referenced here: crbug.com/133275 | 32 // referenced here: crbug.com/133275 |
33 // TODO(vabr): The check IsEnableWebBasedSignin is a hack for the time when | 33 // TODO(vabr): The check IsEnableWebBasedSignin is a hack for the time when |
34 // OneClickSignin is disabled. http://crbug.com/339804 | 34 // OneClickSignin is disabled. http://crbug.com/339804 |
35 if (((realm == GaiaUrls::GetInstance()->gaia_login_form_realm()) || | 35 if (((realm == GaiaUrls::GetInstance()->gaia_login_form_realm()) || |
36 (realm == GURL("https://www.google.com/"))) && | 36 (realm == GURL("https://www.google.com/"))) && |
37 switches::IsEnableWebBasedSignin() && | 37 switches::IsEnableWebBasedSignin() && |
38 OneClickSigninHelper::CanOffer( | 38 OneClickSigninHelper::CanOffer( |
39 web_contents, | 39 web_contents, |
40 OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, | 40 OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
41 base::UTF16ToUTF8(form_to_save->associated_username()), | 41 base::UTF16ToUTF8(form_to_save->associated_username()), |
42 NULL)) | 42 NULL)) |
43 return; | 43 return; |
44 #endif | 44 #endif |
45 | 45 |
46 InfoBarService::FromWebContents(web_contents)->AddInfoBar( | 46 InfoBarService::FromWebContents(web_contents)->AddInfoBar( |
47 SavePasswordInfoBarDelegate::CreateInfoBar( | 47 SavePasswordInfoBarDelegate::CreateInfoBar( |
48 scoped_ptr<SavePasswordInfoBarDelegate>( | 48 scoped_ptr<SavePasswordInfoBarDelegate>( |
49 new SavePasswordInfoBarDelegate(form_to_save, | 49 new SavePasswordInfoBarDelegate(form_to_save.Pass(), |
50 uma_histogram_suffix)))); | 50 uma_histogram_suffix)))); |
51 } | 51 } |
52 | 52 |
53 SavePasswordInfoBarDelegate::~SavePasswordInfoBarDelegate() { | 53 SavePasswordInfoBarDelegate::~SavePasswordInfoBarDelegate() { |
54 UMA_HISTOGRAM_ENUMERATION("PasswordManager.InfoBarResponse", | 54 UMA_HISTOGRAM_ENUMERATION("PasswordManager.InfoBarResponse", |
55 infobar_response_, | 55 infobar_response_, |
56 password_manager::metrics_util::NUM_RESPONSE_TYPES); | 56 password_manager::metrics_util::NUM_RESPONSE_TYPES); |
57 | 57 |
58 password_manager::metrics_util::LogUIDismissalReason(infobar_response_); | 58 password_manager::metrics_util::LogUIDismissalReason(infobar_response_); |
59 | 59 |
(...skipping 15 matching lines...) Expand all Loading... |
75 } | 75 } |
76 } | 76 } |
77 | 77 |
78 void SavePasswordInfoBarDelegate::SetUseAdditionalPasswordAuthentication( | 78 void SavePasswordInfoBarDelegate::SetUseAdditionalPasswordAuthentication( |
79 bool use_additional_authentication) { | 79 bool use_additional_authentication) { |
80 form_to_save_->SetUseAdditionalPasswordAuthentication( | 80 form_to_save_->SetUseAdditionalPasswordAuthentication( |
81 use_additional_authentication); | 81 use_additional_authentication); |
82 } | 82 } |
83 | 83 |
84 SavePasswordInfoBarDelegate::SavePasswordInfoBarDelegate( | 84 SavePasswordInfoBarDelegate::SavePasswordInfoBarDelegate( |
85 password_manager::PasswordFormManager* form_to_save, | 85 scoped_ptr<password_manager::PasswordFormManager> form_to_save, |
86 const std::string& uma_histogram_suffix) | 86 const std::string& uma_histogram_suffix) |
87 : ConfirmInfoBarDelegate(), | 87 : ConfirmInfoBarDelegate(), |
88 form_to_save_(form_to_save), | 88 form_to_save_(form_to_save.Pass()), |
89 infobar_response_(password_manager::metrics_util::NO_RESPONSE), | 89 infobar_response_(password_manager::metrics_util::NO_RESPONSE), |
90 uma_histogram_suffix_(uma_histogram_suffix) { | 90 uma_histogram_suffix_(uma_histogram_suffix) { |
91 if (!uma_histogram_suffix_.empty()) { | 91 if (!uma_histogram_suffix_.empty()) { |
92 password_manager::metrics_util::LogUMAHistogramBoolean( | 92 password_manager::metrics_util::LogUMAHistogramBoolean( |
93 "PasswordManager.SavePasswordPromptDisplayed_" + uma_histogram_suffix_, | 93 "PasswordManager.SavePasswordPromptDisplayed_" + uma_histogram_suffix_, |
94 true); | 94 true); |
95 } | 95 } |
96 } | 96 } |
97 | 97 |
98 #if !defined(OS_ANDROID) | 98 #if !defined(OS_ANDROID) |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
151 | 151 |
152 void SavePasswordInfoBarDelegate::InfoBarDismissed() { | 152 void SavePasswordInfoBarDelegate::InfoBarDismissed() { |
153 DCHECK(form_to_save_.get()); | 153 DCHECK(form_to_save_.get()); |
154 infobar_response_ = password_manager::metrics_util::INFOBAR_DISMISSED; | 154 infobar_response_ = password_manager::metrics_util::INFOBAR_DISMISSED; |
155 } | 155 } |
156 | 156 |
157 infobars::InfoBarDelegate::InfoBarAutomationType | 157 infobars::InfoBarDelegate::InfoBarAutomationType |
158 SavePasswordInfoBarDelegate::GetInfoBarAutomationType() const { | 158 SavePasswordInfoBarDelegate::GetInfoBarAutomationType() const { |
159 return PASSWORD_INFOBAR; | 159 return PASSWORD_INFOBAR; |
160 } | 160 } |
OLD | NEW |