| Index: components/autofill/core/browser/autofill_external_delegate.cc
|
| diff --git a/components/autofill/core/browser/autofill_external_delegate.cc b/components/autofill/core/browser/autofill_external_delegate.cc
|
| index 82a6d670a75666653ddc900ea3b480499efa17c8..c31dcd03b223be0674b9beb334351d87e499abed 100644
|
| --- a/components/autofill/core/browser/autofill_external_delegate.cc
|
| +++ b/components/autofill/core/browser/autofill_external_delegate.cc
|
| @@ -63,6 +63,7 @@ AutofillExternalDelegate::AutofillExternalDelegate(AutofillManager* manager,
|
| display_warning_if_disabled_(false),
|
| has_suggestion_(false),
|
| has_shown_popup_for_current_edit_(false),
|
| + should_show_scan_credit_card_(false),
|
| has_shown_address_book_prompt(false),
|
| weak_ptr_factory_(this) {
|
| DCHECK(manager);
|
| @@ -83,6 +84,8 @@ void AutofillExternalDelegate::OnQuery(int query_id,
|
| display_warning_if_disabled_ = display_warning_if_disabled;
|
| query_id_ = query_id;
|
| element_bounds_ = element_bounds;
|
| + should_show_scan_credit_card_ =
|
| + manager_->ShouldShowScanCreditCard(query_form_, query_field_);
|
| }
|
|
|
| void AutofillExternalDelegate::OnSuggestionsReturned(
|
| @@ -108,11 +111,16 @@ void AutofillExternalDelegate::OnSuggestionsReturned(
|
| icons.push_back(base::string16());
|
| ids.push_back(POPUP_ITEM_ID_SEPARATOR);
|
|
|
| - if (manager_->ShouldShowScanCreditCard(query_form_, query_field_)) {
|
| + if (should_show_scan_credit_card_) {
|
| values.push_back(l10n_util::GetStringUTF16(IDS_AUTOFILL_SCAN_CREDIT_CARD));
|
| labels.push_back(base::string16());
|
| icons.push_back(base::string16());
|
| ids.push_back(POPUP_ITEM_ID_SCAN_CREDIT_CARD);
|
| +
|
| + if (!has_shown_popup_for_current_edit_) {
|
| + AutofillMetrics::LogScanCreditCardPromptMetric(
|
| + AutofillMetrics::SCAN_CARD_ITEM_SHOWN);
|
| + }
|
| }
|
|
|
| // Only include "Autofill Options" special menu item if we have Autofill
|
| @@ -268,6 +276,13 @@ void AutofillExternalDelegate::DidAcceptSuggestion(const base::string16& value,
|
| FillAutofillFormData(identifier, false);
|
| }
|
|
|
| + if (should_show_scan_credit_card_) {
|
| + AutofillMetrics::LogScanCreditCardPromptMetric(
|
| + identifier == POPUP_ITEM_ID_SCAN_CREDIT_CARD
|
| + ? AutofillMetrics::SCAN_CARD_ITEM_SELECTED
|
| + : AutofillMetrics::SCAN_CARD_OTHER_ITEM_SELECTED);
|
| + }
|
| +
|
| manager_->client()->HideAutofillPopup();
|
| }
|
|
|
|
|