diff --git a/firefox-ios/Client/Frontend/Autofill/CreditCard/CreditCardSettingsView/CreditCardInputViewModel.swift b/firefox-ios/Client/Frontend/Autofill/CreditCard/CreditCardSettingsView/CreditCardInputViewModel.swift index 60a098cf8e9a..ec634be7b422 100644 --- a/firefox-ios/Client/Frontend/Autofill/CreditCard/CreditCardSettingsView/CreditCardInputViewModel.swift +++ b/firefox-ios/Client/Frontend/Autofill/CreditCard/CreditCardSettingsView/CreditCardInputViewModel.swift @@ -253,7 +253,7 @@ class CreditCardInputViewModel: ObservableObject { } func removeCreditCard(creditCard: CreditCard?, - completion: @escaping (CreditCardModifiedStatus, Bool) -> Void) { + completion: @escaping @Sendable (CreditCardModifiedStatus, Bool) -> Void) { guard let currentCreditCard = creditCard, !currentCreditCard.guid.isEmpty else { completion(.none, false) diff --git a/firefox-ios/Client/Frontend/Autofill/CreditCard/CreditCardSettingsView/CreditCardSettingsViewModel.swift b/firefox-ios/Client/Frontend/Autofill/CreditCard/CreditCardSettingsView/CreditCardSettingsViewModel.swift index 0ad63dbb8d33..43e9bd90291c 100644 --- a/firefox-ios/Client/Frontend/Autofill/CreditCard/CreditCardSettingsView/CreditCardSettingsViewModel.swift +++ b/firefox-ios/Client/Frontend/Autofill/CreditCard/CreditCardSettingsView/CreditCardSettingsViewModel.swift @@ -18,7 +18,8 @@ enum CreditCardSettingsState: String, Equatable, CaseIterable { case list = "List" } -class CreditCardSettingsViewModel { +// FIXME: FXIOS-14006 Class is not thread safe +final class CreditCardSettingsViewModel: @unchecked Sendable { var autofill: RustAutofill? var profile: Profile let windowUUID: WindowUUID @@ -67,7 +68,7 @@ class CreditCardSettingsViewModel { } } - func getCreditCardList(_ completionHandler: @escaping ([CreditCard]?) -> Void) { + func getCreditCardList(_ completionHandler: @escaping @Sendable ([CreditCard]?) -> Void) { autofill?.listCreditCards(completion: { creditCards, error in guard let cards = creditCards, error == nil else {