OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |