Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(658)

Side by Side Diff: components/payments/content/payment_request_state.cc

Issue 2874873002: [Payments] Record use stats after payment request completion. (Closed)
Patch Set: Removed billing address log Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "components/payments/content/payment_request_state.h" 5 #include "components/payments/content/payment_request_state.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <set> 8 #include <set>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
99 99
100 void PaymentRequestState::GeneratePaymentResponse() { 100 void PaymentRequestState::GeneratePaymentResponse() {
101 DCHECK(is_ready_to_pay()); 101 DCHECK(is_ready_to_pay());
102 102
103 // Once the response is ready, will call back into OnPaymentResponseReady. 103 // Once the response is ready, will call back into OnPaymentResponseReady.
104 response_helper_ = base::MakeUnique<PaymentResponseHelper>( 104 response_helper_ = base::MakeUnique<PaymentResponseHelper>(
105 app_locale_, spec_, selected_instrument_, payment_request_delegate_, 105 app_locale_, spec_, selected_instrument_, payment_request_delegate_,
106 selected_shipping_profile_, selected_contact_profile_, this); 106 selected_shipping_profile_, selected_contact_profile_, this);
107 } 107 }
108 108
109 void PaymentRequestState::RecordUseStats() {
110 if (spec_->request_shipping()) {
111 DCHECK(selected_shipping_profile_);
112 personal_data_manager_->RecordUseOf(*selected_shipping_profile_);
113 }
114
115 if (spec_->request_payer_name() || spec_->request_payer_email() ||
116 spec_->request_payer_phone()) {
117 DCHECK(selected_contact_profile_);
118
119 // If the same address was used for both contact and shipping, the stats
120 // should only be updated once.
121 if (!spec_->request_shipping() || (selected_shipping_profile_->guid() !=
122 selected_contact_profile_->guid())) {
123 personal_data_manager_->RecordUseOf(*selected_contact_profile_);
124 }
125 }
126
127 selected_instrument_->RecordUse();
128 }
129
109 void PaymentRequestState::AddAutofillPaymentInstrument( 130 void PaymentRequestState::AddAutofillPaymentInstrument(
110 bool selected, 131 bool selected,
111 const autofill::CreditCard& card) { 132 const autofill::CreditCard& card) {
112 std::string basic_card_network = 133 std::string basic_card_network =
113 autofill::data_util::GetPaymentRequestData(card.network()) 134 autofill::data_util::GetPaymentRequestData(card.network())
114 .basic_card_issuer_network; 135 .basic_card_issuer_network;
115 if (!spec_->supported_card_networks_set().count(basic_card_network)) 136 if (!spec_->supported_card_networks_set().count(basic_card_network))
116 return; 137 return;
117 138
118 // AutofillPaymentInstrument makes a copy of |card| so it is effectively 139 // AutofillPaymentInstrument makes a copy of |card| so it is effectively
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
274 if (is_waiting_for_merchant_validation_) 295 if (is_waiting_for_merchant_validation_)
275 return false; 296 return false;
276 297
277 if (!profile_comparator()->IsShippingComplete(selected_shipping_profile_)) 298 if (!profile_comparator()->IsShippingComplete(selected_shipping_profile_))
278 return false; 299 return false;
279 300
280 return profile_comparator()->IsContactInfoComplete(selected_contact_profile_); 301 return profile_comparator()->IsContactInfoComplete(selected_contact_profile_);
281 } 302 }
282 303
283 } // namespace payments 304 } // namespace payments
OLDNEW
« no previous file with comments | « components/payments/content/payment_request_state.h ('k') | components/payments/core/autofill_payment_instrument.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698