Chromium Code Reviews| 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 |