Index: components/autofill/core/browser/autofill_save_card_infobar_delegate_mobile.cc |
diff --git a/components/autofill/core/browser/autofill_save_card_infobar_delegate_mobile.cc b/components/autofill/core/browser/autofill_save_card_infobar_delegate_mobile.cc |
index 28f7aea7b079c8dc4ff9a9576bdbbe7fd7e44a89..f1275f1fde4071fd2dc4e05126270d00d8bb36f9 100644 |
--- a/components/autofill/core/browser/autofill_save_card_infobar_delegate_mobile.cc |
+++ b/components/autofill/core/browser/autofill_save_card_infobar_delegate_mobile.cc |
@@ -11,9 +11,11 @@ |
#include "components/autofill/core/browser/credit_card.h" |
#include "components/autofill/core/browser/legal_message_line.h" |
#include "components/autofill/core/common/autofill_constants.h" |
+#include "components/autofill/core/common/autofill_pref_names.h" |
#include "components/grit/components_scaled_resources.h" |
#include "components/infobars/core/infobar.h" |
#include "components/infobars/core/infobar_manager.h" |
+#include "components/prefs/pref_service.h" |
#include "components/strings/grit/components_strings.h" |
#include "ui/base/l10n/l10n_util.h" |
#include "ui/base/window_open_disposition.h" |
@@ -25,10 +27,12 @@ AutofillSaveCardInfoBarDelegateMobile::AutofillSaveCardInfoBarDelegateMobile( |
bool upload, |
const CreditCard& card, |
std::unique_ptr<base::DictionaryValue> legal_message, |
- const base::Closure& save_card_callback) |
+ const base::Closure& save_card_callback, |
+ PrefService* pref_service) |
: ConfirmInfoBarDelegate(), |
upload_(upload), |
save_card_callback_(save_card_callback), |
+ pref_service_(pref_service), |
had_user_interaction_(false), |
#if defined(OS_IOS) |
// TODO(jdonnelly): Use credit card issuer images on iOS. |
@@ -42,8 +46,10 @@ AutofillSaveCardInfoBarDelegateMobile::AutofillSaveCardInfoBarDelegateMobile( |
if (legal_message) |
LegalMessageLine::Parse(*legal_message, &legal_messages_); |
- AutofillMetrics::LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_SHOWN, |
- upload_); |
+ AutofillMetrics::LogCreditCardInfoBarMetric( |
+ AutofillMetrics::INFOBAR_SHOWN, upload_, |
+ pref_service_->GetBoolean( |
+ prefs::kAutofillAcceptSaveCreditCardPromptState)); |
} |
AutofillSaveCardInfoBarDelegateMobile:: |
@@ -120,8 +126,20 @@ void AutofillSaveCardInfoBarDelegateMobile::LogUserAction( |
AutofillMetrics::InfoBarMetric user_action) { |
DCHECK(!had_user_interaction_); |
- AutofillMetrics::LogCreditCardInfoBarMetric(user_action, upload_); |
+ const bool did_user_accept_previous_save_credit_card_prompt = |
+ pref_service_->GetBoolean( |
+ prefs::kAutofillAcceptSaveCreditCardPromptState); |
+ AutofillMetrics::LogCreditCardInfoBarMetric( |
+ user_action, upload_, did_user_accept_previous_save_credit_card_prompt); |
had_user_interaction_ = true; |
+ if (user_action == AutofillMetrics::INFOBAR_ACCEPTED) { |
sebsg
2017/04/25 15:32:28
could you just log like:
pref_service_->SetBoolea
csashi
2017/04/25 17:22:52
Done. I wasn't sure if it would be expensive to se
|
+ if (!did_user_accept_previous_save_credit_card_prompt) |
+ pref_service_->SetBoolean(prefs::kAutofillAcceptSaveCreditCardPromptState, |
+ true); |
+ } else if (did_user_accept_previous_save_credit_card_prompt) { |
+ pref_service_->SetBoolean(prefs::kAutofillAcceptSaveCreditCardPromptState, |
+ false); |
+ } |
} |
} // namespace autofill |