summaryrefslogtreecommitdiff
path: root/chromium/components/autofill/core/browser/payments/credit_card_access_manager.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/components/autofill/core/browser/payments/credit_card_access_manager.cc')
-rw-r--r--chromium/components/autofill/core/browser/payments/credit_card_access_manager.cc90
1 files changed, 21 insertions, 69 deletions
diff --git a/chromium/components/autofill/core/browser/payments/credit_card_access_manager.cc b/chromium/components/autofill/core/browser/payments/credit_card_access_manager.cc
index c5529f871a9..ba148d01a98 100644
--- a/chromium/components/autofill/core/browser/payments/credit_card_access_manager.cc
+++ b/chromium/components/autofill/core/browser/payments/credit_card_access_manager.cc
@@ -49,9 +49,6 @@ constexpr int64_t kDelayForGetUnmaskDetails = 3 * 60 * 1000; // 3 min
// Suffix for server IDs in the cache indicating that a card is a virtual card.
const char kVirtualCardIdentifier[] = "_vcn";
-bool IsLocalCard(const CreditCard* card) {
- return card && card->record_type() == CreditCard::LOCAL_CARD;
-}
} // namespace
CreditCardAccessManager::CreditCardAccessManager(
@@ -65,10 +62,11 @@ CreditCardAccessManager::CreditCardAccessManager(
personal_data_manager_(personal_data_manager),
form_event_logger_(form_event_logger) {}
-CreditCardAccessManager::~CreditCardAccessManager() {}
+CreditCardAccessManager::~CreditCardAccessManager() = default;
void CreditCardAccessManager::UpdateCreditCardFormEventLogger() {
- std::vector<CreditCard*> credit_cards = GetCreditCards();
+ std::vector<CreditCard*> credit_cards =
+ personal_data_manager_->GetCreditCards();
size_t server_record_type_count = 0;
size_t local_record_type_count = 0;
@@ -83,23 +81,6 @@ void CreditCardAccessManager::UpdateCreditCardFormEventLogger() {
form_event_logger_->set_is_context_secure(client_->IsContextSecure());
}
-std::vector<CreditCard*> CreditCardAccessManager::GetCreditCards() {
- return personal_data_manager_->GetCreditCards();
-}
-
-std::vector<CreditCard*> CreditCardAccessManager::GetCreditCardsToSuggest() {
- const std::vector<CreditCard*> cards_to_suggest =
- personal_data_manager_->GetCreditCardsToSuggest(
- client_->AreServerCardsSupported());
-
- return cards_to_suggest;
-}
-
-bool CreditCardAccessManager::ShouldDisplayGPayLogo() {
- return base::ranges::all_of(GetCreditCardsToSuggest(),
- base::not_fn(&IsLocalCard));
-}
-
bool CreditCardAccessManager::UnmaskedCardCacheIsEmpty() {
return unmasked_card_cache_.empty();
}
@@ -118,14 +99,9 @@ bool CreditCardAccessManager::IsCardPresentInUnmaskedCache(
unmasked_card_cache_.end();
}
-bool CreditCardAccessManager::ServerCardsAvailable() {
- return base::ranges::any_of(GetCreditCardsToSuggest(),
- base::not_fn(&IsLocalCard));
-}
-
bool CreditCardAccessManager::DeleteCard(const CreditCard* card) {
// Server cards cannot be deleted from within Chrome.
- bool allowed_to_delete = IsLocalCard(card);
+ bool allowed_to_delete = CreditCard::IsLocalCard(card);
if (allowed_to_delete)
personal_data_manager_->DeleteLocalCreditCards({*card});
@@ -137,7 +113,7 @@ bool CreditCardAccessManager::GetDeletionConfirmationText(
const CreditCard* card,
std::u16string* title,
std::u16string* body) {
- if (!IsLocalCard(card))
+ if (!CreditCard::IsLocalCard(card))
return false;
if (title)
@@ -154,18 +130,14 @@ bool CreditCardAccessManager::ShouldClearPreviewedForm() {
return !is_authentication_in_progress_;
}
-CreditCard* CreditCardAccessManager::GetCreditCard(std::string guid) {
- if (base::IsValidGUID(guid)) {
- return personal_data_manager_->GetCreditCardByGUID(guid);
- }
- return nullptr;
-}
-
void CreditCardAccessManager::PrepareToFetchCreditCard() {
#if !BUILDFLAG(IS_IOS)
// No need to fetch details if there are no server cards.
- if (!ServerCardsAvailable())
+ if (!base::ranges::any_of(personal_data_manager_->GetCreditCardsToSuggest(
+ client_->AreServerCardsSupported()),
+ base::not_fn(&CreditCard::IsLocalCard))) {
return;
+ }
// Do not make a preflight call if unnecessary, such as if one is already in
// progress or a recently-returned call should be currently used.
@@ -276,9 +248,7 @@ void CreditCardAccessManager::FetchCreditCard(
return;
}
- if (base::FeatureList::IsEnabled(
- features::kAutofillEnableVirtualCardsRiskBasedAuthentication) &&
- card->record_type() == CreditCard::VIRTUAL_CARD) {
+ if (card->record_type() == CreditCard::VIRTUAL_CARD) {
AutofillMetrics::LogServerCardUnmaskAttempt(
AutofillClient::PaymentsRpcCardType::kVirtualCard);
}
@@ -294,9 +264,7 @@ void CreditCardAccessManager::FetchCreditCard(
? "Autofill.UsedCachedVirtualCard"
: "Autofill.UsedCachedServerCard";
base::UmaHistogramCounts1000(metrics_name, ++it->second.cache_uses);
- if (base::FeatureList::IsEnabled(
- features::kAutofillEnableVirtualCardsRiskBasedAuthentication) &&
- card->record_type() == CreditCard::VIRTUAL_CARD) {
+ if (card->record_type() == CreditCard::VIRTUAL_CARD) {
AutofillMetrics::LogServerCardUnmaskResult(
AutofillMetrics::ServerCardUnmaskResult::kLocalCacheHit,
AutofillClient::PaymentsRpcCardType::kVirtualCard,
@@ -327,13 +295,10 @@ void CreditCardAccessManager::FetchCreditCard(
accessor_ = accessor;
// Direct to different flows based on the card record type.
- if (base::FeatureList::IsEnabled(
- features::kAutofillEnableVirtualCardsRiskBasedAuthentication) &&
- card_->record_type() == CreditCard::VIRTUAL_CARD) {
+ if (card_->record_type() == CreditCard::VIRTUAL_CARD)
FetchVirtualCard();
- } else {
+ else
FetchMaskedServerCard();
- }
}
void CreditCardAccessManager::FIDOAuthOptChange(bool opt_in) {
@@ -382,13 +347,10 @@ void CreditCardAccessManager::GetAuthenticationType(bool fido_auth_enabled) {
// iOS either, so offer CVC auth immediately.
OnDidGetAuthenticationType(UnmaskAuthFlowType::kCvc);
#else
- if (base::FeatureList::IsEnabled(
- features::kAutofillEnableVirtualCardsRiskBasedAuthentication) &&
- card_->record_type() == CreditCard::VIRTUAL_CARD) {
+ if (card_->record_type() == CreditCard::VIRTUAL_CARD)
GetAuthenticationTypeForVirtualCard(fido_auth_enabled);
- } else {
+ else
GetAuthenticationTypeForMaskedServerCard(fido_auth_enabled);
- }
#endif
}
@@ -508,9 +470,7 @@ void CreditCardAccessManager::Authenticate() {
// UnmaskDetails.
base::Value fido_request_options;
absl::optional<std::string> context_token;
- if (base::FeatureList::IsEnabled(
- features::kAutofillEnableVirtualCardsRiskBasedAuthentication) &&
- card_->record_type() == CreditCard::VIRTUAL_CARD) {
+ if (card_->record_type() == CreditCard::VIRTUAL_CARD) {
context_token = virtual_card_unmask_response_details_.context_token;
fido_request_options = std::move(
virtual_card_unmask_response_details_.fido_request_options.value());
@@ -549,9 +509,7 @@ void CreditCardAccessManager::Authenticate() {
NOTREACHED();
accessor_->OnCreditCardFetched(CreditCardFetchResult::kTransientError);
client_->ShowVirtualCardErrorDialog(/*is_permanent_error=*/false);
- if (base::FeatureList::IsEnabled(
- features::kAutofillEnableVirtualCardsRiskBasedAuthentication) &&
- card_->record_type() == CreditCard::VIRTUAL_CARD) {
+ if (card_->record_type() == CreditCard::VIRTUAL_CARD) {
AutofillMetrics::LogServerCardUnmaskResult(
AutofillMetrics::ServerCardUnmaskResult::kUnexpectedError,
AutofillClient::PaymentsRpcCardType::kVirtualCard,
@@ -692,9 +650,7 @@ void CreditCardAccessManager::OnFIDOAuthenticationComplete(
response.card, response.cvc);
form_event_logger_->LogCardUnmaskAuthenticationPromptCompleted(
unmask_auth_flow_type_);
- if (base::FeatureList::IsEnabled(
- features::kAutofillEnableVirtualCardsRiskBasedAuthentication) &&
- card_->record_type() == CreditCard::VIRTUAL_CARD) {
+ if (card_->record_type() == CreditCard::VIRTUAL_CARD) {
AutofillMetrics::LogServerCardUnmaskResult(
AutofillMetrics::ServerCardUnmaskResult::kAuthenticationUnmasked,
AutofillClient::PaymentsRpcCardType::kVirtualCard,
@@ -719,9 +675,7 @@ void CreditCardAccessManager::OnFIDOAuthenticationComplete(
payments::FullCardRequest::VIRTUAL_CARD_RETRIEVAL_PERMANENT_FAILURE);
accessor_->OnCreditCardFetched(result);
- if (base::FeatureList::IsEnabled(
- features::kAutofillEnableVirtualCardsRiskBasedAuthentication) &&
- card_->record_type() == CreditCard::VIRTUAL_CARD) {
+ if (card_->record_type() == CreditCard::VIRTUAL_CARD) {
AutofillMetrics::LogServerCardUnmaskResult(
AutofillMetrics::ServerCardUnmaskResult::kVirtualCardRetrievalError,
AutofillClient::PaymentsRpcCardType::kVirtualCard,
@@ -732,9 +686,7 @@ void CreditCardAccessManager::OnFIDOAuthenticationComplete(
// If it is an authentication error, start the CVC authentication process
// for masked server cards or the OTP authentication process for virtual
// cards.
- if (card_->record_type() == CreditCard::VIRTUAL_CARD &&
- base::FeatureList::IsEnabled(
- features::kAutofillEnableVirtualCardsRiskBasedAuthentication)) {
+ if (card_->record_type() == CreditCard::VIRTUAL_CARD) {
GetAuthenticationTypeForVirtualCard(/*fido_auth_enabled=*/false);
} else {
unmask_auth_flow_type_ = UnmaskAuthFlowType::kCvcFallbackFromFido;
@@ -899,7 +851,7 @@ bool CreditCardAccessManager::ShouldOfferFidoOptInDialog(
// offer it.
if (GetOrCreateFIDOAuthenticator()
->GetOrCreateFidoAuthenticationStrikeDatabase()
- ->IsMaxStrikesLimitReached()) {
+ ->ShouldBlockFeature()) {
return false;
}