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

Side by Side Diff: chrome/browser/autofill/android/personal_data_manager_android.cc

Issue 2254353002: Prompt for CVC in credit card assist. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Better callback names Created 4 years, 3 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
« no previous file with comments | « no previous file | components/autofill/core/browser/autofill_assistant.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/autofill/android/personal_data_manager_android.h" 5 #include "chrome/browser/autofill/android/personal_data_manager_android.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <algorithm> 8 #include <algorithm>
9 #include <memory> 9 #include <memory>
10 #include <utility> 10 #include <utility>
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after
241 241
242 // Takes ownership of |card|. 242 // Takes ownership of |card|.
243 void GetFullCard(JNIEnv* env, 243 void GetFullCard(JNIEnv* env,
244 const base::android::JavaParamRef<jobject>& jweb_contents, 244 const base::android::JavaParamRef<jobject>& jweb_contents,
245 const base::android::JavaParamRef<jobject>& jdelegate, 245 const base::android::JavaParamRef<jobject>& jdelegate,
246 std::unique_ptr<CreditCard> card) { 246 std::unique_ptr<CreditCard> card) {
247 card_ = std::move(card); 247 card_ = std::move(card);
248 jdelegate_.Reset(env, jdelegate); 248 jdelegate_.Reset(env, jdelegate);
249 249
250 if (!card_) { 250 if (!card_) {
251 OnFullCardError(); 251 OnFullCardRequestFailed();
252 return; 252 return;
253 } 253 }
254 254
255 content::WebContents* contents = 255 content::WebContents* contents =
256 content::WebContents::FromJavaWebContents(jweb_contents); 256 content::WebContents::FromJavaWebContents(jweb_contents);
257 if (!contents) { 257 if (!contents) {
258 OnFullCardError(); 258 OnFullCardRequestFailed();
259 return; 259 return;
260 } 260 }
261 261
262 ContentAutofillDriverFactory* factory = 262 ContentAutofillDriverFactory* factory =
263 ContentAutofillDriverFactory::FromWebContents(contents); 263 ContentAutofillDriverFactory::FromWebContents(contents);
264 if (!factory) { 264 if (!factory) {
265 OnFullCardError(); 265 OnFullCardRequestFailed();
266 return; 266 return;
267 } 267 }
268 268
269 ContentAutofillDriver* driver = 269 ContentAutofillDriver* driver =
270 factory->DriverForFrame(contents->GetMainFrame()); 270 factory->DriverForFrame(contents->GetMainFrame());
271 if (!driver) { 271 if (!driver) {
272 OnFullCardError(); 272 OnFullCardRequestFailed();
273 return; 273 return;
274 } 274 }
275 275
276 driver->autofill_manager()->GetOrCreateFullCardRequest()->GetFullCard( 276 driver->autofill_manager()->GetOrCreateFullCardRequest()->GetFullCard(
277 *card_, AutofillClient::UNMASK_FOR_PAYMENT_REQUEST, AsWeakPtr()); 277 *card_, AutofillClient::UNMASK_FOR_PAYMENT_REQUEST, AsWeakPtr());
278 } 278 }
279 279
280 private: 280 private:
281 virtual ~FullCardRequester() {} 281 virtual ~FullCardRequester() {}
282 282
283 // payments::FullCardRequest::Delegate: 283 // payments::FullCardRequest::Delegate:
284 void OnFullCardDetails(const CreditCard& card, 284 void OnFullCardRequestSucceeded(const CreditCard& card,
285 const base::string16& cvc) override { 285 const base::string16& cvc) override {
286 JNIEnv* env = base::android::AttachCurrentThread(); 286 JNIEnv* env = base::android::AttachCurrentThread();
287 Java_FullCardRequestDelegate_onFullCardDetails( 287 Java_FullCardRequestDelegate_onFullCardDetails(
288 env, jdelegate_, CreateJavaCreditCardFromNative(env, card), 288 env, jdelegate_, CreateJavaCreditCardFromNative(env, card),
289 base::android::ConvertUTF16ToJavaString(env, cvc)); 289 base::android::ConvertUTF16ToJavaString(env, cvc));
290 delete this; 290 delete this;
291 } 291 }
292 292
293 // payments::FullCardRequest::Delegate: 293 // payments::FullCardRequest::Delegate:
294 void OnFullCardError() override { 294 void OnFullCardRequestFailed() override {
295 JNIEnv* env = base::android::AttachCurrentThread(); 295 JNIEnv* env = base::android::AttachCurrentThread();
296 Java_FullCardRequestDelegate_onFullCardError(env, jdelegate_); 296 Java_FullCardRequestDelegate_onFullCardError(env, jdelegate_);
297 delete this; 297 delete this;
298 } 298 }
299 299
300 std::unique_ptr<CreditCard> card_; 300 std::unique_ptr<CreditCard> card_;
301 ScopedJavaGlobalRef<jobject> jdelegate_; 301 ScopedJavaGlobalRef<jobject> jdelegate_;
302 302
303 DISALLOW_COPY_AND_ASSIGN(FullCardRequester); 303 DISALLOW_COPY_AND_ASSIGN(FullCardRequester);
304 }; 304 };
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
454 454
455 if (guid.empty()) { 455 if (guid.empty()) {
456 personal_data_manager_->AddCreditCard(card); 456 personal_data_manager_->AddCreditCard(card);
457 } else { 457 } else {
458 card.set_guid(guid); 458 card.set_guid(guid);
459 personal_data_manager_->UpdateCreditCard(card); 459 personal_data_manager_->UpdateCreditCard(card);
460 } 460 }
461 return ConvertUTF8ToJavaString(env, card.guid()); 461 return ConvertUTF8ToJavaString(env, card.guid());
462 } 462 }
463 463
464
465 void PersonalDataManagerAndroid::UpdateServerCardBillingAddress( 464 void PersonalDataManagerAndroid::UpdateServerCardBillingAddress(
466 JNIEnv* env, 465 JNIEnv* env,
467 const JavaParamRef<jobject>& unused_obj, 466 const JavaParamRef<jobject>& unused_obj,
468 const JavaParamRef<jstring>& jcard_server_id, 467 const JavaParamRef<jstring>& jcard_server_id,
469 const JavaParamRef<jstring>& jbilling_address_id) { 468 const JavaParamRef<jstring>& jbilling_address_id) {
470 CreditCard card("", kSettingsOrigin); 469 CreditCard card("", kSettingsOrigin);
471 card.set_record_type(CreditCard::MASKED_SERVER_CARD); 470 card.set_record_type(CreditCard::MASKED_SERVER_CARD);
472 card.set_server_id(ConvertJavaStringToUTF8(env, jcard_server_id)); 471 card.set_server_id(ConvertJavaStringToUTF8(env, jcard_server_id));
473 card.set_billing_address_id(ConvertJavaStringToUTF8(env, 472 card.set_billing_address_id(ConvertJavaStringToUTF8(env,
474 jbilling_address_id)); 473 jbilling_address_id));
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
614 const base::android::JavaParamRef<jobject>& unused_obj, 613 const base::android::JavaParamRef<jobject>& unused_obj,
615 const base::android::JavaParamRef<jstring>& jguid) { 614 const base::android::JavaParamRef<jstring>& jguid) {
616 CreditCard* card = personal_data_manager_->GetCreditCardByGUID( 615 CreditCard* card = personal_data_manager_->GetCreditCardByGUID(
617 ConvertJavaStringToUTF8(env, jguid)); 616 ConvertJavaStringToUTF8(env, jguid));
618 return card->use_count(); 617 return card->use_count();
619 } 618 }
620 619
621 jlong PersonalDataManagerAndroid::GetCreditCardUseDateForTesting( 620 jlong PersonalDataManagerAndroid::GetCreditCardUseDateForTesting(
622 JNIEnv* env, 621 JNIEnv* env,
623 const base::android::JavaParamRef<jobject>& unused_obj, 622 const base::android::JavaParamRef<jobject>& unused_obj,
624 const base::android::JavaParamRef<jstring>& jguid){ 623 const base::android::JavaParamRef<jstring>& jguid) {
625 CreditCard* card = personal_data_manager_->GetCreditCardByGUID( 624 CreditCard* card = personal_data_manager_->GetCreditCardByGUID(
626 ConvertJavaStringToUTF8(env, jguid)); 625 ConvertJavaStringToUTF8(env, jguid));
627 return card->use_date().ToTimeT(); 626 return card->use_date().ToTimeT();
628 } 627 }
629 628
630 // TODO(crbug.com/629507): Use a mock clock for testing. 629 // TODO(crbug.com/629507): Use a mock clock for testing.
631 jlong PersonalDataManagerAndroid::GetCurrentDateForTesting( 630 jlong PersonalDataManagerAndroid::GetCurrentDateForTesting(
632 JNIEnv* env, 631 JNIEnv* env,
633 const base::android::JavaParamRef<jobject>& unused_obj) { 632 const base::android::JavaParamRef<jobject>& unused_obj) {
634 return base::Time::Now().ToTimeT(); 633 return base::Time::Now().ToTimeT();
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
726 base::android::ConvertJavaStringToUTF16(env, jcountry_name))); 725 base::android::ConvertJavaStringToUTF16(env, jcountry_name)));
727 } 726 }
728 727
729 static jlong Init(JNIEnv* env, const JavaParamRef<jobject>& obj) { 728 static jlong Init(JNIEnv* env, const JavaParamRef<jobject>& obj) {
730 PersonalDataManagerAndroid* personal_data_manager_android = 729 PersonalDataManagerAndroid* personal_data_manager_android =
731 new PersonalDataManagerAndroid(env, obj); 730 new PersonalDataManagerAndroid(env, obj);
732 return reinterpret_cast<intptr_t>(personal_data_manager_android); 731 return reinterpret_cast<intptr_t>(personal_data_manager_android);
733 } 732 }
734 733
735 } // namespace autofill 734 } // namespace autofill
OLDNEW
« no previous file with comments | « no previous file | components/autofill/core/browser/autofill_assistant.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698