diff --git a/vendor/bat-native-ads/src/bat/ads/internal/account/account.cc b/vendor/bat-native-ads/src/bat/ads/internal/account/account.cc index 51c5dbcd221..e249c4d1031 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/account/account.cc +++ b/vendor/bat-native-ads/src/bat/ads/internal/account/account.cc @@ -137,15 +137,9 @@ void Account::Deposit(const std::string& creative_instance_id, } deposit->GetValue( - creative_instance_id, [=](const bool success, const double value) { - if (!success) { - FailedToProcessDeposit(creative_instance_id, ad_type, - confirmation_type); - return; - } - - ProcessDeposit(creative_instance_id, ad_type, confirmation_type, value); - }); + creative_instance_id, + base::BindOnce(&Account::OnGetDepositValue, base::Unretained(this), + creative_instance_id, ad_type, confirmation_type)); } // static @@ -168,31 +162,50 @@ void Account::MaybeGetIssuers() const { issuers_->MaybeFetch(); } +void Account::OnGetDepositValue(const std::string& creative_instance_id, + const AdType& ad_type, + const ConfirmationType& confirmation_type, + const bool success, + const double value) const { + if (!success) { + FailedToProcessDeposit(creative_instance_id, ad_type, confirmation_type); + return; + } + + ProcessDeposit(creative_instance_id, ad_type, confirmation_type, value); +} + void Account::ProcessDeposit(const std::string& creative_instance_id, const AdType& ad_type, const ConfirmationType& confirmation_type, const double value) const { transactions::Add( creative_instance_id, value, ad_type, confirmation_type, - [=](const bool success, const TransactionInfo& transaction) { - if (!success) { - FailedToProcessDeposit(creative_instance_id, ad_type, - confirmation_type); - return; - } + base::BindOnce(&Account::OnDepositProcessed, base::Unretained(this), + creative_instance_id, ad_type, confirmation_type)); +} - BLOG(3, "Successfully processed deposit for " - << transaction.ad_type << " with creative instance id " - << transaction.creative_instance_id << " and " - << transaction.confirmation_type << " valued at " - << transaction.value); +void Account::OnDepositProcessed(const std::string& creative_instance_id, + const AdType& ad_type, + const ConfirmationType& confirmation_type, + const bool success, + const TransactionInfo& transaction) const { + if (!success) { + FailedToProcessDeposit(creative_instance_id, ad_type, confirmation_type); + return; + } - NotifyDidProcessDeposit(transaction); + BLOG(3, "Successfully processed deposit for " + << transaction.ad_type << " with creative instance id " + << transaction.creative_instance_id << " and " + << transaction.confirmation_type << " valued at " + << transaction.value); - NotifyStatementOfAccountsDidChange(); + NotifyDidProcessDeposit(transaction); - confirmations_->Confirm(transaction); - }); + NotifyStatementOfAccountsDidChange(); + + confirmations_->Confirm(transaction); } void Account::FailedToProcessDeposit( @@ -233,18 +246,21 @@ void Account::WalletDidChange(const WalletInfo& wallet) const { NotifyWalletDidChange(wallet); - ResetRewards([=](const bool success) { - if (!success) { - BLOG(0, "Failed to reset rewards state"); - return; - } + ResetRewards( + base::BindOnce(&Account::OnRewardsReset, base::Unretained(this))); +} - BLOG(3, "Successfully reset rewards state"); +void Account::OnRewardsReset(const bool success) const { + if (!success) { + BLOG(0, "Failed to reset rewards state"); + return; + } - NotifyStatementOfAccountsDidChange(); + BLOG(3, "Successfully reset rewards state"); - TopUpUnblindedTokens(); - }); + NotifyStatementOfAccountsDidChange(); + + TopUpUnblindedTokens(); } void Account::MaybeResetIssuersAndConfirmations() { diff --git a/vendor/bat-native-ads/src/bat/ads/internal/account/account.h b/vendor/bat-native-ads/src/bat/ads/internal/account/account.h index 1b65cef2c33..189b6c5d8fb 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/account/account.h +++ b/vendor/bat-native-ads/src/bat/ads/internal/account/account.h @@ -6,7 +6,6 @@ #ifndef BRAVE_VENDOR_BAT_NATIVE_ADS_SRC_BAT_ADS_INTERNAL_ACCOUNT_ACCOUNT_H_ #define BRAVE_VENDOR_BAT_NATIVE_ADS_SRC_BAT_ADS_INTERNAL_ACCOUNT_ACCOUNT_H_ -#include #include #include @@ -72,10 +71,20 @@ class Account final : public PrefManagerObserver, private: void MaybeGetIssuers() const; + void OnGetDepositValue(const std::string& creative_instance_id, + const AdType& ad_type, + const ConfirmationType& confirmation_type, + bool success, + double value) const; void ProcessDeposit(const std::string& creative_instance_id, const AdType& ad_type, const ConfirmationType& confirmation_type, double value) const; + void OnDepositProcessed(const std::string& creative_instance_id, + const AdType& ad_type, + const ConfirmationType& confirmation_type, + bool success, + const TransactionInfo& transaction) const; void FailedToProcessDeposit(const std::string& creative_instance_id, const AdType& ad_type, const ConfirmationType& confirmation_type) const; @@ -85,6 +94,7 @@ class Account final : public PrefManagerObserver, void WalletDidUpdate(const WalletInfo& wallet) const; void WalletDidChange(const WalletInfo& wallet) const; + void OnRewardsReset(bool success) const; void MaybeResetIssuersAndConfirmations(); diff --git a/vendor/bat-native-ads/src/bat/ads/internal/account/account_util.cc b/vendor/bat-native-ads/src/bat/ads/internal/account/account_util.cc index 7af20cc13dd..63f223e22ed 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/account/account_util.cc +++ b/vendor/bat-native-ads/src/bat/ads/internal/account/account_util.cc @@ -5,6 +5,10 @@ #include "bat/ads/internal/account/account_util.h" +#include + +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "bat/ads/internal/account/confirmations/confirmation_util.h" #include "bat/ads/internal/account/transactions/transactions.h" #include "bat/ads/internal/ads_client_helper.h" @@ -17,18 +21,20 @@ bool ShouldRewardUser() { return AdsClientHelper::GetInstance()->GetBooleanPref(prefs::kEnabled); } -void ResetRewards(const ResetRewardsCallback& callback) { - transactions::RemoveAll([callback](const bool success) { - if (!success) { - BLOG(0, "Failed to remove transactions"); - callback(/*success*/ false); - return; - } +void ResetRewards(ResetRewardsCallback callback) { + transactions::RemoveAll(base::BindOnce( + [](ResetRewardsCallback callback, const bool success) { + if (!success) { + BLOG(0, "Failed to remove transactions"); + std::move(callback).Run(/*success*/ false); + return; + } - ResetConfirmations(); + ResetConfirmations(); - callback(/*success*/ true); - }); + std::move(callback).Run(/*success*/ true); + }, + std::move(callback))); } } // namespace ads diff --git a/vendor/bat-native-ads/src/bat/ads/internal/account/account_util.h b/vendor/bat-native-ads/src/bat/ads/internal/account/account_util.h index bc3d18627f8..45f4c0fee7e 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/account/account_util.h +++ b/vendor/bat-native-ads/src/bat/ads/internal/account/account_util.h @@ -6,15 +6,15 @@ #ifndef BRAVE_VENDOR_BAT_NATIVE_ADS_SRC_BAT_ADS_INTERNAL_ACCOUNT_ACCOUNT_UTIL_H_ #define BRAVE_VENDOR_BAT_NATIVE_ADS_SRC_BAT_ADS_INTERNAL_ACCOUNT_ACCOUNT_UTIL_H_ -#include +#include "base/functional/callback_forward.h" namespace ads { -using ResetRewardsCallback = std::function; +using ResetRewardsCallback = base::OnceCallback; bool ShouldRewardUser(); -void ResetRewards(const ResetRewardsCallback& callback); +void ResetRewards(ResetRewardsCallback callback); } // namespace ads diff --git a/vendor/bat-native-ads/src/bat/ads/internal/account/account_util_unittest.cc b/vendor/bat-native-ads/src/bat/ads/internal/account/account_util_unittest.cc index 7459591fd34..429b61ccf61 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/account/account_util_unittest.cc +++ b/vendor/bat-native-ads/src/bat/ads/internal/account/account_util_unittest.cc @@ -64,7 +64,7 @@ TEST_F(BatAdsAccountUtilTest, ResetRewards) { privacy::GetUnblindedPaymentTokens()->AddTokens(unblinded_payment_tokens); // Act - ResetRewards([](const bool success) { + ResetRewards(base::BindOnce([](const bool success) { ASSERT_TRUE(success); const database::table::Transactions database_table; @@ -79,7 +79,7 @@ TEST_F(BatAdsAccountUtilTest, ResetRewards) { EXPECT_TRUE(failed_confirmations.empty()); EXPECT_TRUE(privacy::UnblindedPaymentTokensIsEmpty()); - }); + })); // Assert } @@ -88,7 +88,7 @@ TEST_F(BatAdsAccountUtilTest, ResetRewardsWithNoState) { // Arrange // Act - ResetRewards([](const bool success) { + ResetRewards(base::BindOnce([](const bool success) { ASSERT_TRUE(success); const database::table::Transactions database_table; @@ -103,7 +103,7 @@ TEST_F(BatAdsAccountUtilTest, ResetRewardsWithNoState) { EXPECT_TRUE(failed_confirmations.empty()); EXPECT_TRUE(privacy::UnblindedPaymentTokensIsEmpty()); - }); + })); // Assert } diff --git a/vendor/bat-native-ads/src/bat/ads/internal/account/confirmations/confirmation_user_data_builder.cc b/vendor/bat-native-ads/src/bat/ads/internal/account/confirmations/confirmation_user_data_builder.cc index 35563ea34b0..dd0036e9b40 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/account/confirmations/confirmation_user_data_builder.cc +++ b/vendor/bat-native-ads/src/bat/ads/internal/account/confirmations/confirmation_user_data_builder.cc @@ -8,6 +8,8 @@ #include #include "base/check_op.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/values.h" #include "bat/ads/internal/account/user_data/build_channel_user_data.h" #include "bat/ads/internal/account/user_data/catalog_user_data.h" @@ -40,22 +42,27 @@ void ConfirmationUserDataBuilder::Build( UserDataBuilderCallback callback) const { user_data::GetConversion( creative_instance_id_, confirmation_type_, - [=](base::Value::Dict user_data) { - user_data.Merge(user_data::GetBuildChannel()); - user_data.Merge(user_data::GetCatalog()); - user_data.Merge(user_data::GetCreatedAtTimestamp(created_at_)); - user_data.Merge(user_data::GetDiagnosticId()); - user_data.Merge(user_data::GetLocale()); - user_data.Merge(user_data::GetMutated()); - user_data.Merge(user_data::GetOdyssey()); - user_data.Merge(user_data::GetPlatform()); - user_data.Merge(user_data::GetRotatingHash(creative_instance_id_)); - user_data.Merge(user_data::GetStudies()); - user_data.Merge(user_data::GetSystemTimestamp()); - user_data.Merge(user_data::GetVersionNumber()); + base::BindOnce(&ConfirmationUserDataBuilder::OnGetConversion, + base::Unretained(this), std::move(callback))); +} - callback(user_data); - }); +void ConfirmationUserDataBuilder::OnGetConversion( + UserDataBuilderCallback callback, + base::Value::Dict user_data) const { + user_data.Merge(user_data::GetBuildChannel()); + user_data.Merge(user_data::GetCatalog()); + user_data.Merge(user_data::GetCreatedAtTimestamp(created_at_)); + user_data.Merge(user_data::GetDiagnosticId()); + user_data.Merge(user_data::GetLocale()); + user_data.Merge(user_data::GetMutated()); + user_data.Merge(user_data::GetOdyssey()); + user_data.Merge(user_data::GetPlatform()); + user_data.Merge(user_data::GetRotatingHash(creative_instance_id_)); + user_data.Merge(user_data::GetStudies()); + user_data.Merge(user_data::GetSystemTimestamp()); + user_data.Merge(user_data::GetVersionNumber()); + + std::move(callback).Run(user_data); } } // namespace ads diff --git a/vendor/bat-native-ads/src/bat/ads/internal/account/confirmations/confirmation_user_data_builder.h b/vendor/bat-native-ads/src/bat/ads/internal/account/confirmations/confirmation_user_data_builder.h index 321e69f3f44..30465d93c88 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/account/confirmations/confirmation_user_data_builder.h +++ b/vendor/bat-native-ads/src/bat/ads/internal/account/confirmations/confirmation_user_data_builder.h @@ -23,6 +23,9 @@ class ConfirmationUserDataBuilder final : public UserDataBuilderInterface { void Build(UserDataBuilderCallback callback) const override; private: + void OnGetConversion(UserDataBuilderCallback callback, + base::Value::Dict user_data) const; + base::Time created_at_; std::string creative_instance_id_; ConfirmationType confirmation_type_ = ConfirmationType::kUndefined; diff --git a/vendor/bat-native-ads/src/bat/ads/internal/account/confirmations/confirmation_user_data_builder_unittest.cc b/vendor/bat-native-ads/src/bat/ads/internal/account/confirmations/confirmation_user_data_builder_unittest.cc index 6e88e2b823a..efd6be476bd 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/account/confirmations/confirmation_user_data_builder_unittest.cc +++ b/vendor/bat-native-ads/src/bat/ads/internal/account/confirmations/confirmation_user_data_builder_unittest.cc @@ -5,6 +5,7 @@ #include +#include "base/functional/bind.h" #include "base/json/json_writer.h" #include "base/values.h" #include "bat/ads/internal/account/confirmations/confirmation_user_data_builder.h" @@ -56,14 +57,15 @@ TEST_F(BatAdsConfirmationUserDataBuilderTest, // Assert const ConfirmationUserDataBuilder user_data_builder( Now(), kCreativeInstanceId, ConfirmationType::kViewed); - user_data_builder.Build([](const base::Value::Dict& user_data) { + user_data_builder.Build(base::BindOnce([](const base::Value::Dict& + user_data) { std::string json; ASSERT_TRUE(base::JSONWriter::Write(user_data, &json)); const std::string pattern = R"~({"buildChannel":"release","catalog":\[{"id":"29e5c8bc0ba319069980bb390d8e8f9b58c05a20"}],"countryCode":"US","createdAtTimestamp":"2020-11-18T12:00:00.000Z","mutated":true,"odyssey":"host","platform":"windows","rotating_hash":"p3QDOuQ3HakWNXLBZCP8dktH\+zyu7FsHpKONKhWliJE=","studies":\[],"systemTimestamp":"2020-11-18T12:00:00.000Z","versionNumber":"\d{1,}\.\d{1,}\.\d{1,}\.\d{1,}"})~"; EXPECT_TRUE(RE2::FullMatch(json, pattern)); - }); + })); } TEST_F(BatAdsConfirmationUserDataBuilderTest, @@ -89,14 +91,15 @@ TEST_F(BatAdsConfirmationUserDataBuilderTest, // Assert const ConfirmationUserDataBuilder user_data_builder( Now(), kCreativeInstanceId, ConfirmationType::kConversion); - user_data_builder.Build([](const base::Value::Dict& user_data) { + user_data_builder.Build(base::BindOnce([](const base::Value::Dict& + user_data) { std::string json; ASSERT_TRUE(base::JSONWriter::Write(user_data, &json)); const std::string pattern = R"~({"buildChannel":"release","catalog":\[{"id":"29e5c8bc0ba319069980bb390d8e8f9b58c05a20"}],"conversionEnvelope":{"alg":"crypto_box_curve25519xsalsa20poly1305","ciphertext":"(.{64})","epk":"(.{44})","nonce":"(.{32})"},"countryCode":"US","createdAtTimestamp":"2020-11-18T12:00:00.000Z","mutated":true,"odyssey":"host","platform":"windows","rotating_hash":"p3QDOuQ3HakWNXLBZCP8dktH\+zyu7FsHpKONKhWliJE=","studies":\[],"systemTimestamp":"2020-11-18T12:00:00.000Z","versionNumber":"\d{1,}\.\d{1,}\.\d{1,}\.\d{1,}"})~"; EXPECT_TRUE(RE2::FullMatch(json, pattern)); - }); + })); } } // namespace ads diff --git a/vendor/bat-native-ads/src/bat/ads/internal/account/confirmations/confirmations.cc b/vendor/bat-native-ads/src/bat/ads/internal/account/confirmations/confirmations.cc index 63813377147..73a8ecc676c 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/account/confirmations/confirmations.cc +++ b/vendor/bat-native-ads/src/bat/ads/internal/account/confirmations/confirmations.cc @@ -94,18 +94,9 @@ void Confirmations::Confirm(const TransactionInfo& transaction) { const ConfirmationUserDataBuilder user_data_builder( created_at, transaction.creative_instance_id, transaction.confirmation_type); - user_data_builder.Build([=](const base::Value::Dict& user_data) { - const absl::optional confirmation = CreateConfirmation( - token_generator_, created_at, transaction.id, - transaction.creative_instance_id, transaction.confirmation_type, - transaction.ad_type, user_data); - if (!confirmation) { - BLOG(0, "Failed to confirm confirmation"); - return; - } - - redeem_unblinded_token_->Redeem(*confirmation); - }); + user_data_builder.Build( + base::BindOnce(&Confirmations::CreateConfirmationAndRedeemToken, + base::Unretained(this), transaction, created_at)); } void Confirmations::ProcessRetryQueue() { @@ -153,26 +144,35 @@ void Confirmations::StopRetrying() { retry_timer_.Stop(); } +void Confirmations::CreateConfirmationAndRedeemToken( + const TransactionInfo& transaction, + const base::Time& created_at, + const base::Value::Dict& user_data) { + const absl::optional confirmation = CreateConfirmation( + token_generator_, created_at, transaction.id, + transaction.creative_instance_id, transaction.confirmation_type, + transaction.ad_type, user_data); + if (!confirmation) { + BLOG(0, "Failed to confirm confirmation"); + return; + } + + redeem_unblinded_token_->Redeem(*confirmation); +} + void Confirmations::CreateNewConfirmationAndAppendToRetryQueue( - const ConfirmationInfo& confirmation) { - DCHECK(IsValid(confirmation)); + const ConfirmationInfo& confirmation, + const base::Value::Dict& user_data) { + const absl::optional new_confirmation = CreateConfirmation( + token_generator_, confirmation.created_at, confirmation.transaction_id, + confirmation.creative_instance_id, confirmation.type, + confirmation.ad_type, user_data); + if (!new_confirmation) { + AppendToRetryQueue(confirmation); + return; + } - const ConfirmationUserDataBuilder user_data_builder( - confirmation.created_at, confirmation.creative_instance_id, - confirmation.type); - user_data_builder.Build([=](const base::Value::Dict& user_data) { - const absl::optional new_confirmation = - CreateConfirmation(token_generator_, confirmation.created_at, - confirmation.transaction_id, - confirmation.creative_instance_id, confirmation.type, - confirmation.ad_type, user_data); - if (!new_confirmation) { - AppendToRetryQueue(confirmation); - return; - } - - AppendToRetryQueue(*new_confirmation); - }); + AppendToRetryQueue(*new_confirmation); } void Confirmations::OnDidSendConfirmation( @@ -234,9 +234,16 @@ void Confirmations::OnFailedToRedeemUnblindedToken( const ConfirmationInfo& confirmation, const bool should_retry, const bool should_backoff) { + DCHECK(IsValid(confirmation)); + if (should_retry) { if (!confirmation.was_created) { - CreateNewConfirmationAndAppendToRetryQueue(confirmation); + const ConfirmationUserDataBuilder user_data_builder( + confirmation.created_at, confirmation.creative_instance_id, + confirmation.type); + user_data_builder.Build(base::BindOnce( + &Confirmations::CreateNewConfirmationAndAppendToRetryQueue, + base::Unretained(this), confirmation)); } else { AppendToRetryQueue(confirmation); } diff --git a/vendor/bat-native-ads/src/bat/ads/internal/account/confirmations/confirmations.h b/vendor/bat-native-ads/src/bat/ads/internal/account/confirmations/confirmations.h index 893e96f15bc..df9dd4e50b0 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/account/confirmations/confirmations.h +++ b/vendor/bat-native-ads/src/bat/ads/internal/account/confirmations/confirmations.h @@ -9,6 +9,7 @@ #include #include "base/memory/raw_ptr.h" +#include "base/values.h" #include "bat/ads/internal/account/confirmations/confirmations_delegate.h" #include "bat/ads/internal/account/utility/redeem_unblinded_token/redeem_unblinded_token_delegate.h" #include "bat/ads/internal/common/timer/backoff_timer.h" @@ -49,8 +50,13 @@ class Confirmations final : public RedeemUnblindedTokenDelegate { void OnRetry(); void StopRetrying(); + void CreateConfirmationAndRedeemToken(const TransactionInfo& transaction, + const base::Time& created_at, + const base::Value::Dict& user_data); + void CreateNewConfirmationAndAppendToRetryQueue( - const ConfirmationInfo& confirmation); + const ConfirmationInfo& confirmation, + const base::Value::Dict& user_data); // RedeemUnblindedTokenDelegate: void OnDidSendConfirmation(const ConfirmationInfo& confirmation) override; diff --git a/vendor/bat-native-ads/src/bat/ads/internal/account/deposits/cash_deposit.cc b/vendor/bat-native-ads/src/bat/ads/internal/account/deposits/cash_deposit.cc index 08b3f1abb9f..2abe2b2b600 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/account/deposits/cash_deposit.cc +++ b/vendor/bat-native-ads/src/bat/ads/internal/account/deposits/cash_deposit.cc @@ -5,7 +5,11 @@ #include "bat/ads/internal/account/deposits/cash_deposit.h" +#include + #include "absl/types/optional.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "bat/ads/internal/account/deposits/deposit_info.h" #include "bat/ads/internal/account/deposits/deposits_database_table.h" @@ -16,20 +20,22 @@ void CashDeposit::GetValue(const std::string& creative_instance_id, const database::table::Deposits database_table; database_table.GetForCreativeInstanceId( creative_instance_id, - [callback](const bool success, - const absl::optional& deposit) { - if (!success) { - callback(/*success */ false, /* value*/ 0.0); - return; - } + base::BindOnce( + [](GetDepositCallback callback, const bool success, + const absl::optional& deposit) { + if (!success) { + std::move(callback).Run(/*success */ false, /* value*/ 0.0); + return; + } - if (!deposit) { - callback(/*success */ false, /* value*/ 0.0); - return; - } + if (!deposit) { + std::move(callback).Run(/*success */ false, /* value*/ 0.0); + return; + } - callback(/*success*/ true, deposit->value); - }); + std::move(callback).Run(/*success*/ true, deposit->value); + }, + std::move(callback))); } } // namespace ads diff --git a/vendor/bat-native-ads/src/bat/ads/internal/account/deposits/cash_deposit_test.cc b/vendor/bat-native-ads/src/bat/ads/internal/account/deposits/cash_deposit_test.cc index 66ef1aafe1d..0ef78e1e74e 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/account/deposits/cash_deposit_test.cc +++ b/vendor/bat-native-ads/src/bat/ads/internal/account/deposits/cash_deposit_test.cc @@ -5,6 +5,7 @@ #include "bat/ads/internal/account/deposits/cash_deposit.h" +#include "base/functional/bind.h" #include "bat/ads/internal/common/unittest/unittest_base.h" #include "bat/ads/internal/common/unittest/unittest_mock_util.h" #include "net/http/http_status_code.h" @@ -42,10 +43,10 @@ TEST_F(BatAdsCashDepositIntegrationTest, GetValue) { // Assert deposit.GetValue(kCreativeInstanceId, - [](const bool success, const double value) { + base::BindOnce([](const bool success, const double value) { EXPECT_TRUE(success); EXPECT_EQ(1.0, value); - }); + })); } TEST_F(BatAdsCashDepositIntegrationTest, @@ -57,10 +58,10 @@ TEST_F(BatAdsCashDepositIntegrationTest, // Assert deposit.GetValue(kMissingCreativeInstanceId, - [](const bool success, const double value) { + base::BindOnce([](const bool success, const double value) { EXPECT_FALSE(success); EXPECT_EQ(0.0, value); - }); + })); } } // namespace ads diff --git a/vendor/bat-native-ads/src/bat/ads/internal/account/deposits/deposit_interface.h b/vendor/bat-native-ads/src/bat/ads/internal/account/deposits/deposit_interface.h index 8f1b6e2c632..0e3101e4c23 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/account/deposits/deposit_interface.h +++ b/vendor/bat-native-ads/src/bat/ads/internal/account/deposits/deposit_interface.h @@ -6,12 +6,13 @@ #ifndef BRAVE_VENDOR_BAT_NATIVE_ADS_SRC_BAT_ADS_INTERNAL_ACCOUNT_DEPOSITS_DEPOSIT_INTERFACE_H_ #define BRAVE_VENDOR_BAT_NATIVE_ADS_SRC_BAT_ADS_INTERNAL_ACCOUNT_DEPOSITS_DEPOSIT_INTERFACE_H_ -#include #include +#include "base/functional/callback_forward.h" + namespace ads { -using GetDepositCallback = std::function; +using GetDepositCallback = base::OnceCallback; class DepositInterface { public: diff --git a/vendor/bat-native-ads/src/bat/ads/internal/account/deposits/deposits_database_table.cc b/vendor/bat-native-ads/src/bat/ads/internal/account/deposits/deposits_database_table.cc index 8c575f99d82..c15ed88d60f 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/account/deposits/deposits_database_table.cc +++ b/vendor/bat-native-ads/src/bat/ads/internal/account/deposits/deposits_database_table.cc @@ -63,17 +63,17 @@ DepositInfo GetFromRecord(mojom::DBRecordInfo* record) { } void OnGetForCreativeInstanceId(const std::string& /*creative_instance_id*/, - const GetDepositsCallback& callback, + GetDepositsCallback callback, mojom::DBCommandResponseInfoPtr response) { if (!response || response->status != mojom::DBCommandResponseInfo::StatusType::RESPONSE_OK) { BLOG(0, "Failed to get deposit value"); - callback(/*success*/ false, absl::nullopt); + std::move(callback).Run(/*success*/ false, absl::nullopt); return; } if (response->result->get_records().empty()) { - callback(/*success*/ true, absl::nullopt); + std::move(callback).Run(/*success*/ true, absl::nullopt); return; } @@ -81,7 +81,7 @@ void OnGetForCreativeInstanceId(const std::string& /*creative_instance_id*/, std::move(response->result->get_records().front()); DepositInfo deposit = GetFromRecord(record.get()); - callback(/*success*/ true, std::move(deposit)); + std::move(callback).Run(/*success*/ true, std::move(deposit)); } void MigrateToV24(mojom::DBTransactionInfo* transaction) { @@ -149,7 +149,7 @@ void Deposits::InsertOrUpdate(mojom::DBTransactionInfo* transaction, void Deposits::GetForCreativeInstanceId(const std::string& creative_instance_id, GetDepositsCallback callback) const { if (creative_instance_id.empty()) { - callback(/*success*/ false, absl::nullopt); + std::move(callback).Run(/*success*/ false, absl::nullopt); return; } @@ -177,8 +177,9 @@ void Deposits::GetForCreativeInstanceId(const std::string& creative_instance_id, transaction->commands.push_back(std::move(command)); AdsClientHelper::GetInstance()->RunDBTransaction( - std::move(transaction), base::BindOnce(&OnGetForCreativeInstanceId, - creative_instance_id, callback)); + std::move(transaction), + base::BindOnce(&OnGetForCreativeInstanceId, creative_instance_id, + std::move(callback))); } void Deposits::PurgeExpired(ResultCallback callback) const { diff --git a/vendor/bat-native-ads/src/bat/ads/internal/account/deposits/deposits_database_table.h b/vendor/bat-native-ads/src/bat/ads/internal/account/deposits/deposits_database_table.h index 3b84f8c8cfa..bf39a0dfc94 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/account/deposits/deposits_database_table.h +++ b/vendor/bat-native-ads/src/bat/ads/internal/account/deposits/deposits_database_table.h @@ -6,10 +6,10 @@ #ifndef BRAVE_VENDOR_BAT_NATIVE_ADS_SRC_BAT_ADS_INTERNAL_ACCOUNT_DEPOSITS_DEPOSITS_DATABASE_TABLE_H_ #define BRAVE_VENDOR_BAT_NATIVE_ADS_SRC_BAT_ADS_INTERNAL_ACCOUNT_DEPOSITS_DEPOSITS_DATABASE_TABLE_H_ -#include #include #include "absl/types/optional.h" +#include "base/functional/callback_forward.h" #include "bat/ads/ads_client_callback.h" #include "bat/ads/internal/account/deposits/deposit_info.h" #include "bat/ads/internal/creatives/creative_ad_info.h" @@ -19,8 +19,8 @@ namespace ads::database::table { using GetDepositsCallback = - std::function& deposit)>; + base::OnceCallback& deposit)>; class Deposits final : public TableInterface { public: diff --git a/vendor/bat-native-ads/src/bat/ads/internal/account/deposits/non_cash_deposit.cc b/vendor/bat-native-ads/src/bat/ads/internal/account/deposits/non_cash_deposit.cc index 86776d0f4dc..e42b9dcc2c0 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/account/deposits/non_cash_deposit.cc +++ b/vendor/bat-native-ads/src/bat/ads/internal/account/deposits/non_cash_deposit.cc @@ -5,11 +5,15 @@ #include "bat/ads/internal/account/deposits/non_cash_deposit.h" +#include + +#include "base/functional/callback.h" + namespace ads { void NonCashDeposit::GetValue(const std::string& /*creative_instance_id*/, GetDepositCallback callback) { - callback(/*success */ true, /* value*/ 0.0); + std::move(callback).Run(/*success */ true, /* value*/ 0.0); } } // namespace ads diff --git a/vendor/bat-native-ads/src/bat/ads/internal/account/deposits/non_cash_deposit_unittest.cc b/vendor/bat-native-ads/src/bat/ads/internal/account/deposits/non_cash_deposit_unittest.cc index fc1b08e7425..24762bcf838 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/account/deposits/non_cash_deposit_unittest.cc +++ b/vendor/bat-native-ads/src/bat/ads/internal/account/deposits/non_cash_deposit_unittest.cc @@ -5,6 +5,7 @@ #include "bat/ads/internal/account/deposits/non_cash_deposit.h" +#include "base/functional/bind.h" #include "bat/ads/internal/common/unittest/unittest_base.h" // npm run test -- brave_unit_tests --filter=BatAds* @@ -23,10 +24,10 @@ TEST_F(BatAdsNonCashDepositTest, GetValue) { // Act deposit.GetValue(kCreativeInstanceId, - [](const bool success, const double value) { + base::BindOnce([](const bool success, const double value) { EXPECT_TRUE(success); EXPECT_EQ(0.0, value); - }); + })); // Assert } diff --git a/vendor/bat-native-ads/src/bat/ads/internal/account/transactions/transactions.cc b/vendor/bat-native-ads/src/bat/ads/internal/account/transactions/transactions.cc index 6b61f21e014..1308fbf204b 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/account/transactions/transactions.cc +++ b/vendor/bat-native-ads/src/bat/ads/internal/account/transactions/transactions.cc @@ -39,16 +39,16 @@ TransactionInfo Add(const std::string& creative_instance_id, database_table.Save( {transaction}, base::BindOnce( - [](const AddCallback& callback, const TransactionInfo& transaction, + [](AddCallback callback, const TransactionInfo& transaction, const bool success) { if (!success) { - callback(/*success*/ false, {}); + std::move(callback).Run(/*success*/ false, {}); return; } - callback(/*success*/ true, transaction); + std::move(callback).Run(/*success*/ true, transaction); }, - callback, transaction)); + std::move(callback), transaction)); return transaction; } @@ -75,15 +75,15 @@ void GetForDateRange(const base::Time from_time, void RemoveAll(RemoveAllCallback callback) { const database::table::Transactions database_table; database_table.Delete(base::BindOnce( - [](const RemoveAllCallback& callback, const bool success) { + [](RemoveAllCallback callback, const bool success) { if (!success) { - callback(/*success*/ false); + std::move(callback).Run(/*success*/ false); return; } - callback(/*success*/ true); + std::move(callback).Run(/*success*/ true); }, - callback)); + std::move(callback))); } } // namespace ads::transactions diff --git a/vendor/bat-native-ads/src/bat/ads/internal/account/transactions/transactions.h b/vendor/bat-native-ads/src/bat/ads/internal/account/transactions/transactions.h index 75524ec5c65..9bbebfba126 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/account/transactions/transactions.h +++ b/vendor/bat-native-ads/src/bat/ads/internal/account/transactions/transactions.h @@ -6,7 +6,6 @@ #ifndef BRAVE_VENDOR_BAT_NATIVE_ADS_SRC_BAT_ADS_INTERNAL_ACCOUNT_TRANSACTIONS_TRANSACTIONS_H_ #define BRAVE_VENDOR_BAT_NATIVE_ADS_SRC_BAT_ADS_INTERNAL_ACCOUNT_TRANSACTIONS_TRANSACTIONS_H_ -#include #include #include "base/functional/callback_forward.h" @@ -24,12 +23,12 @@ class ConfirmationType; namespace transactions { using AddCallback = - std::function; + base::OnceCallback; using GetCallback = base::OnceCallback; -using RemoveAllCallback = std::function; +using RemoveAllCallback = base::OnceCallback; TransactionInfo Add(const std::string& creative_instance_id, double value, diff --git a/vendor/bat-native-ads/src/bat/ads/internal/account/transactions/transactions_unittest.cc b/vendor/bat-native-ads/src/bat/ads/internal/account/transactions/transactions_unittest.cc index 88533060045..eceb60f9553 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/account/transactions/transactions_unittest.cc +++ b/vendor/bat-native-ads/src/bat/ads/internal/account/transactions/transactions_unittest.cc @@ -7,6 +7,7 @@ #include +#include "base/functional/bind.h" #include "bat/ads/internal/account/transactions/transaction_info.h" #include "bat/ads/internal/account/transactions/transactions_unittest_util.h" #include "bat/ads/internal/common/unittest/unittest_base.h" @@ -25,9 +26,10 @@ TEST_F(BatAdsTransactionsTest, Add) { const TransactionInfo transaction = transactions::Add( "42a33833-0a08-4cbb-ab3e-458e020221ab", 0.01, AdType::kNotificationAd, ConfirmationType::kViewed, - [](const bool success, const TransactionInfo& /*transaction*/) { - ASSERT_TRUE(success); - }); + base::BindOnce( + [](const bool success, const TransactionInfo& /*transaction*/) { + ASSERT_TRUE(success); + })); // Assert TransactionList expected_transactions = {transaction}; @@ -96,7 +98,8 @@ TEST_F(BatAdsTransactionsTest, RemoveAll) { SaveTransactions(transactions); // Act - transactions::RemoveAll([](const bool success) { ASSERT_TRUE(success); }); + transactions::RemoveAll( + base::BindOnce([](const bool success) { ASSERT_TRUE(success); })); // Assert transactions::GetForDateRange( diff --git a/vendor/bat-native-ads/src/bat/ads/internal/account/user_data/conversion_user_data.cc b/vendor/bat-native-ads/src/bat/ads/internal/account/user_data/conversion_user_data.cc index 3e696da6fe0..86d8fc6f3eb 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/account/user_data/conversion_user_data.cc +++ b/vendor/bat-native-ads/src/bat/ads/internal/account/user_data/conversion_user_data.cc @@ -5,7 +5,10 @@ #include "bat/ads/internal/account/user_data/conversion_user_data.h" +#include + #include "base/check_op.h" +#include "base/functional/callback.h" #include "bat/ads/confirmation_type.h" #include "bat/ads/internal/account/user_data/conversion_user_data_builder.h" @@ -13,19 +16,22 @@ namespace ads::user_data { void GetConversion(const std::string& creative_instance_id, const ConfirmationType& confirmation_type, - const ConversionCallback& callback) { + ConversionCallback callback) { DCHECK(!creative_instance_id.empty()); DCHECK_NE(ConfirmationType::kUndefined, confirmation_type.value()); if (confirmation_type != ConfirmationType::kConversion) { - callback(base::Value::Dict()); + std::move(callback).Run(base::Value::Dict()); return; } - builder::BuildConversion(creative_instance_id, - [callback](const base::Value::Dict& user_data) { - callback(user_data.Clone()); - }); + builder::BuildConversion( + creative_instance_id, + base::BindOnce( + [](ConversionCallback callback, base::Value::Dict user_data) { + std::move(callback).Run(user_data.Clone()); + }, + std::move(callback))); } } // namespace ads::user_data diff --git a/vendor/bat-native-ads/src/bat/ads/internal/account/user_data/conversion_user_data.h b/vendor/bat-native-ads/src/bat/ads/internal/account/user_data/conversion_user_data.h index f63403ae73e..3ec1078be50 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/account/user_data/conversion_user_data.h +++ b/vendor/bat-native-ads/src/bat/ads/internal/account/user_data/conversion_user_data.h @@ -6,22 +6,21 @@ #ifndef BRAVE_VENDOR_BAT_NATIVE_ADS_SRC_BAT_ADS_INTERNAL_ACCOUNT_USER_DATA_CONVERSION_USER_DATA_H_ #define BRAVE_VENDOR_BAT_NATIVE_ADS_SRC_BAT_ADS_INTERNAL_ACCOUNT_USER_DATA_CONVERSION_USER_DATA_H_ -#include #include +#include "base/functional/callback_forward.h" #include "base/values.h" - namespace ads { class ConfirmationType; namespace user_data { -using ConversionCallback = std::function; +using ConversionCallback = base::OnceCallback; void GetConversion(const std::string& creative_instance_id, const ConfirmationType& confirmation_type, - const ConversionCallback& callback); + ConversionCallback callback); } // namespace user_data } // namespace ads diff --git a/vendor/bat-native-ads/src/bat/ads/internal/account/user_data/conversion_user_data_builder.cc b/vendor/bat-native-ads/src/bat/ads/internal/account/user_data/conversion_user_data_builder.cc index 2ca4e5d5443..eafcad289fc 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/account/user_data/conversion_user_data_builder.cc +++ b/vendor/bat-native-ads/src/bat/ads/internal/account/user_data/conversion_user_data_builder.cc @@ -9,6 +9,8 @@ #include "absl/types/optional.h" #include "base/check.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "bat/ads/internal/account/user_data/conversion_user_data_util.h" #include "bat/ads/internal/conversions/conversion_queue_database_table.h" #include "bat/ads/internal/conversions/conversion_queue_item_info.h" @@ -25,56 +27,60 @@ constexpr char kEphemeralPublicKeyKey[] = "epk"; constexpr char kNonceKey[] = "nonce"; constexpr char kConversionEnvelopeKey[] = "conversionEnvelope"; -void ReportConversionDoesNotExist(const BuildConversionCallback& callback) { - callback(base::Value::Dict()); +void ReportConversionDoesNotExist(BuildConversionCallback callback) { + std::move(callback).Run(base::Value::Dict()); } } // namespace void BuildConversion(const std::string& creative_instance_id, - const BuildConversionCallback& callback) { + BuildConversionCallback callback) { DCHECK(!creative_instance_id.empty()); const database::table::ConversionQueue database_table; database_table.GetForCreativeInstanceId( creative_instance_id, - [callback](const bool success, - const std::string& /*creative_instance_id*/, - const ConversionQueueItemList& conversion_queue_items) { - if (!success) { - ReportConversionDoesNotExist(callback); - return; - } + base::BindOnce( + [](BuildConversionCallback callback, const bool success, + const std::string& /*creative_instance_id*/, + const ConversionQueueItemList& conversion_queue_items) { + if (!success) { + ReportConversionDoesNotExist(std::move(callback)); + return; + } - if (conversion_queue_items.empty()) { - ReportConversionDoesNotExist(callback); - return; - } + if (conversion_queue_items.empty()) { + ReportConversionDoesNotExist(std::move(callback)); + return; + } - const ConversionQueueItemInfo& conversion_queue_item = - conversion_queue_items.front(); - const absl::optional - verifiable_conversion_envelope = GetEnvelope(conversion_queue_item); - if (!verifiable_conversion_envelope) { - ReportConversionDoesNotExist(callback); - return; - } + const ConversionQueueItemInfo& conversion_queue_item = + conversion_queue_items.front(); + const absl::optional + verifiable_conversion_envelope = + GetEnvelope(conversion_queue_item); + if (!verifiable_conversion_envelope) { + ReportConversionDoesNotExist(std::move(callback)); + return; + } - base::Value::Dict conversion_envelope; - conversion_envelope.Set(kAlgorithmKey, kAlgorithm); - conversion_envelope.Set(kCipherTextKey, - verifiable_conversion_envelope->ciphertext); - conversion_envelope.Set( - kEphemeralPublicKeyKey, - verifiable_conversion_envelope->ephemeral_public_key); - conversion_envelope.Set(kNonceKey, - verifiable_conversion_envelope->nonce); + base::Value::Dict conversion_envelope; + conversion_envelope.Set(kAlgorithmKey, kAlgorithm); + conversion_envelope.Set(kCipherTextKey, + verifiable_conversion_envelope->ciphertext); + conversion_envelope.Set( + kEphemeralPublicKeyKey, + verifiable_conversion_envelope->ephemeral_public_key); + conversion_envelope.Set(kNonceKey, + verifiable_conversion_envelope->nonce); - base::Value::Dict user_data; - user_data.Set(kConversionEnvelopeKey, std::move(conversion_envelope)); + base::Value::Dict user_data; + user_data.Set(kConversionEnvelopeKey, + std::move(conversion_envelope)); - callback(std::move(user_data)); - }); + std::move(callback).Run(std::move(user_data)); + }, + std::move(callback))); } } // namespace ads::user_data::builder diff --git a/vendor/bat-native-ads/src/bat/ads/internal/account/user_data/conversion_user_data_builder.h b/vendor/bat-native-ads/src/bat/ads/internal/account/user_data/conversion_user_data_builder.h index 0e81348186d..5fc2a6e6c0d 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/account/user_data/conversion_user_data_builder.h +++ b/vendor/bat-native-ads/src/bat/ads/internal/account/user_data/conversion_user_data_builder.h @@ -6,17 +6,17 @@ #ifndef BRAVE_VENDOR_BAT_NATIVE_ADS_SRC_BAT_ADS_INTERNAL_ACCOUNT_USER_DATA_CONVERSION_USER_DATA_BUILDER_H_ #define BRAVE_VENDOR_BAT_NATIVE_ADS_SRC_BAT_ADS_INTERNAL_ACCOUNT_USER_DATA_CONVERSION_USER_DATA_BUILDER_H_ -#include #include +#include "base/functional/callback_forward.h" #include "base/values.h" namespace ads::user_data::builder { -using BuildConversionCallback = std::function; +using BuildConversionCallback = base::OnceCallback; void BuildConversion(const std::string& creative_instance_id, - const BuildConversionCallback& callback); + BuildConversionCallback callback); } // namespace ads::user_data::builder diff --git a/vendor/bat-native-ads/src/bat/ads/internal/account/user_data/conversion_user_data_builder_unittest.cc b/vendor/bat-native-ads/src/bat/ads/internal/account/user_data/conversion_user_data_builder_unittest.cc index d4bbd3a4d6e..08a6d14a86d 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/account/user_data/conversion_user_data_builder_unittest.cc +++ b/vendor/bat-native-ads/src/bat/ads/internal/account/user_data/conversion_user_data_builder_unittest.cc @@ -6,6 +6,7 @@ #include "bat/ads/internal/account/user_data/conversion_user_data_builder.h" #include "absl/types/optional.h" +#include "base/functional/bind.h" #include "base/test/values_test_util.h" #include "bat/ads/internal/common/unittest/unittest_base.h" #include "bat/ads/internal/conversions/conversion_queue_item_unittest_util.h" @@ -40,15 +41,16 @@ TEST_F(BatAdsConversionUserDataBuilderTest, BuildConversion) { BuildAndSaveConversionQueueItem(kConversionId, kAdvertiserPublicKey); // Act - BuildConversion(kCreativeInstanceId, [](base::Value::Dict user_data) { - const absl::optional message = - security::OpenEnvelopeForUserDataAndAdvertiserSecretKey( - user_data, kAdvertiserSecretKey); - ASSERT_TRUE(message); + BuildConversion(kCreativeInstanceId, + base::BindOnce([](base::Value::Dict user_data) { + const absl::optional message = + security::OpenEnvelopeForUserDataAndAdvertiserSecretKey( + user_data, kAdvertiserSecretKey); + ASSERT_TRUE(message); - const std::string expected_message = kConversionId; - EXPECT_EQ(expected_message, *message); - }); + const std::string expected_message = kConversionId; + EXPECT_EQ(expected_message, *message); + })); // Assert } @@ -59,13 +61,15 @@ TEST_F(BatAdsConversionUserDataBuilderTest, BuildAndSaveConversionQueueItem(kConversionId, kAdvertiserPublicKey); // Act - BuildConversion(kMissingCreativeInstanceId, [](base::Value::Dict user_data) { - // Assert - const base::Value expected_user_data = base::test::ParseJson("{}"); - ASSERT_TRUE(expected_user_data.is_dict()); + BuildConversion(kMissingCreativeInstanceId, + base::BindOnce([](base::Value::Dict user_data) { + // Assert + const base::Value expected_user_data = + base::test::ParseJson("{}"); + ASSERT_TRUE(expected_user_data.is_dict()); - EXPECT_EQ(expected_user_data, user_data); - }); + EXPECT_EQ(expected_user_data, user_data); + })); // Assert } @@ -77,13 +81,14 @@ TEST_F(BatAdsConversionUserDataBuilderTest, kEmptyAdvertiserPublicKey); // Act - BuildConversion(kCreativeInstanceId, [](base::Value::Dict user_data) { - // Assert - const base::Value expected_user_data = base::test::ParseJson("{}"); - ASSERT_TRUE(expected_user_data.is_dict()); + BuildConversion( + kCreativeInstanceId, base::BindOnce([](base::Value::Dict user_data) { + // Assert + const base::Value expected_user_data = base::test::ParseJson("{}"); + ASSERT_TRUE(expected_user_data.is_dict()); - EXPECT_EQ(expected_user_data, user_data); - }); + EXPECT_EQ(expected_user_data, user_data); + })); // Assert } diff --git a/vendor/bat-native-ads/src/bat/ads/internal/account/user_data/conversion_user_data_unittest.cc b/vendor/bat-native-ads/src/bat/ads/internal/account/user_data/conversion_user_data_unittest.cc index 9e3d9de6bb6..7416d4ac25b 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/account/user_data/conversion_user_data_unittest.cc +++ b/vendor/bat-native-ads/src/bat/ads/internal/account/user_data/conversion_user_data_unittest.cc @@ -6,6 +6,7 @@ #include "bat/ads/internal/account/user_data/conversion_user_data.h" #include "absl/types/optional.h" +#include "base/functional/bind.h" #include "bat/ads/confirmation_type.h" #include "bat/ads/internal/common/unittest/unittest_base.h" #include "bat/ads/internal/conversions/conversion_queue_item_unittest_util.h" @@ -34,12 +35,12 @@ TEST_F(BatAdsConversionUserDataTest, GetForConversionConfirmationType) { // Act GetConversion( kCreativeInstanceId, ConfirmationType::kConversion, - [](base::Value::Dict user_data) { + base::BindOnce([](base::Value::Dict user_data) { const absl::optional verifiable_conversion_envelope = security::GetVerifiableConversionEnvelopeForUserData(user_data); ASSERT_TRUE(verifiable_conversion_envelope); - }); + })); // Assert } @@ -51,12 +52,12 @@ TEST_F(BatAdsConversionUserDataTest, DoNotGetForNonConversionConfirmationType) { // Act GetConversion( kCreativeInstanceId, ConfirmationType::kViewed, - [](base::Value::Dict user_data) { + base::BindOnce([](base::Value::Dict user_data) { const absl::optional verifiable_conversion_envelope = security::GetVerifiableConversionEnvelopeForUserData(user_data); ASSERT_FALSE(verifiable_conversion_envelope); - }); + })); // Assert } diff --git a/vendor/bat-native-ads/src/bat/ads/internal/account/user_data/user_data_builder_interface.h b/vendor/bat-native-ads/src/bat/ads/internal/account/user_data/user_data_builder_interface.h index 971925c048a..a0128ec5076 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/account/user_data/user_data_builder_interface.h +++ b/vendor/bat-native-ads/src/bat/ads/internal/account/user_data/user_data_builder_interface.h @@ -6,13 +6,13 @@ #ifndef BRAVE_VENDOR_BAT_NATIVE_ADS_SRC_BAT_ADS_INTERNAL_ACCOUNT_USER_DATA_USER_DATA_BUILDER_INTERFACE_H_ #define BRAVE_VENDOR_BAT_NATIVE_ADS_SRC_BAT_ADS_INTERNAL_ACCOUNT_USER_DATA_USER_DATA_BUILDER_INTERFACE_H_ -#include - +#include "base/functional/callback_forward.h" #include "base/values.h" namespace ads { -using UserDataBuilderCallback = std::function; +using UserDataBuilderCallback = + base::OnceCallback; class UserDataBuilderInterface { public: diff --git a/vendor/bat-native-ads/src/bat/ads/internal/account/utility/redeem_unblinded_payment_tokens/redeem_unblinded_payment_tokens.cc b/vendor/bat-native-ads/src/bat/ads/internal/account/utility/redeem_unblinded_payment_tokens/redeem_unblinded_payment_tokens.cc index 24020205ca7..bed2b78cc49 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/account/utility/redeem_unblinded_payment_tokens/redeem_unblinded_payment_tokens.cc +++ b/vendor/bat-native-ads/src/bat/ads/internal/account/utility/redeem_unblinded_payment_tokens/redeem_unblinded_payment_tokens.cc @@ -8,6 +8,7 @@ #include #include +#include "base/functional/bind.h" #include "base/time/time.h" #include "base/values.h" #include "bat/ads/internal/account/utility/redeem_unblinded_payment_tokens/redeem_unblinded_payment_tokens_url_request_builder.h" @@ -119,18 +120,27 @@ void RedeemUnblindedPaymentTokens::Redeem() { const RedeemUnblindedPaymentTokensUserDataBuilder user_data_builder( unblinded_payment_tokens); - user_data_builder.Build([=](const base::Value::Dict& user_data) { - RedeemUnblindedPaymentTokensUrlRequestBuilder url_request_builder( - wallet_, unblinded_payment_tokens, user_data); - mojom::UrlRequestInfoPtr url_request = url_request_builder.Build(); - BLOG(6, UrlRequestToString(url_request)); - BLOG(7, UrlRequestHeadersToString(url_request)); + user_data_builder.Build( + base::BindOnce(&RedeemUnblindedPaymentTokens:: + OnRedeemUnblindedPaymentTokensUserDataBuilt, + base::Unretained(this))); +} - AdsClientHelper::GetInstance()->UrlRequest( - std::move(url_request), - base::BindOnce(&RedeemUnblindedPaymentTokens::OnRedeem, - base::Unretained(this), unblinded_payment_tokens)); - }); +void RedeemUnblindedPaymentTokens::OnRedeemUnblindedPaymentTokensUserDataBuilt( + const base::Value::Dict& user_data) { + const privacy::UnblindedPaymentTokenList& unblinded_payment_tokens = + privacy::GetAllUnblindedPaymentTokens(); + + RedeemUnblindedPaymentTokensUrlRequestBuilder url_request_builder( + wallet_, unblinded_payment_tokens, user_data); + mojom::UrlRequestInfoPtr url_request = url_request_builder.Build(); + BLOG(6, UrlRequestToString(url_request)); + BLOG(7, UrlRequestHeadersToString(url_request)); + + AdsClientHelper::GetInstance()->UrlRequest( + std::move(url_request), + base::BindOnce(&RedeemUnblindedPaymentTokens::OnRedeem, + base::Unretained(this), unblinded_payment_tokens)); } void RedeemUnblindedPaymentTokens::OnRedeem( diff --git a/vendor/bat-native-ads/src/bat/ads/internal/account/utility/redeem_unblinded_payment_tokens/redeem_unblinded_payment_tokens.h b/vendor/bat-native-ads/src/bat/ads/internal/account/utility/redeem_unblinded_payment_tokens/redeem_unblinded_payment_tokens.h index 9e81ff10b6f..27d715c7962 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/account/utility/redeem_unblinded_payment_tokens/redeem_unblinded_payment_tokens.h +++ b/vendor/bat-native-ads/src/bat/ads/internal/account/utility/redeem_unblinded_payment_tokens/redeem_unblinded_payment_tokens.h @@ -8,6 +8,7 @@ #include "base/check_op.h" #include "base/memory/raw_ptr.h" +#include "base/values.h" #include "bat/ads/internal/account/utility/redeem_unblinded_payment_tokens/redeem_unblinded_payment_tokens_delegate.h" #include "bat/ads/internal/account/wallet/wallet_info.h" #include "bat/ads/internal/common/timer/backoff_timer.h" @@ -42,6 +43,8 @@ class RedeemUnblindedPaymentTokens final { private: void Redeem(); + void OnRedeemUnblindedPaymentTokensUserDataBuilt( + const base::Value::Dict& user_data); void OnRedeem( const privacy::UnblindedPaymentTokenList& unblinded_payment_tokens, const mojom::UrlResponseInfo& url_response); diff --git a/vendor/bat-native-ads/src/bat/ads/internal/account/utility/redeem_unblinded_payment_tokens/redeem_unblinded_payment_tokens_url_request_builder_unittest.cc b/vendor/bat-native-ads/src/bat/ads/internal/account/utility/redeem_unblinded_payment_tokens/redeem_unblinded_payment_tokens_url_request_builder_unittest.cc index 97792a6571c..2888d14ae5e 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/account/utility/redeem_unblinded_payment_tokens/redeem_unblinded_payment_tokens_url_request_builder_unittest.cc +++ b/vendor/bat-native-ads/src/bat/ads/internal/account/utility/redeem_unblinded_payment_tokens/redeem_unblinded_payment_tokens_url_request_builder_unittest.cc @@ -8,6 +8,8 @@ #include #include "base/check.h" +#include "base/functional/bind.h" +#include "base/strings/stringprintf.h" #include "bat/ads/internal/account/utility/redeem_unblinded_payment_tokens/redeem_unblinded_payment_tokens_user_data_builder.h" #include "bat/ads/internal/account/wallet/wallet_info.h" #include "bat/ads/internal/account/wallet/wallet_unittest_util.h" @@ -25,6 +27,41 @@ namespace ads { namespace { +constexpr char kExpectedUrlRequestContent[] = + R"({"odyssey":"%s","payload":"{\"paymentId\":\"27a39b2f-9b2e-4eb0-bbb2-)" + R"(2f84447496e7\"}","paymentCredentials":[{"confirmationType":"view","cred)" + R"(ential":{"signature":"wQXvy7chZlrrVCe/RYIiL/siGUFYF0tCxx7M0xIOPvThR4TCB)" + R"(wmH9IDWQKyqQy9g2wUw5jcKszqBHEhPyidrlA==","t":"PLowz2WF2eGD5zfwZjk9p76HX)" + R"(BLDKMq/3EAZHeG/fE2XGQ48jyte+Ve50ZlasOuYL5mwA8CU2aFMlJrt3DDgCw=="},"publ)" + R"(icKey":"RJ2i/o/pZkrH+i0aGEMY1G9FXtd7Q7gfRi3YdNRnDDk="},{"confirmationTy)" + R"(pe":"view","credential":{"signature":"AemGBdoUXbp25pGZJuWv6yiImtfXC4Atb)" + R"(oJMGR1Z6nQm178ier7hLJDVCJ11HWEO1UdlAYFRrJqyuD5uUBxgug==","t":"hfrMEltWL)" + R"(uzbKQ02Qixh5C/DWiJbdOoaGaidKZ7Mv+cRq5fyxJqemE/MPlARPhl6NgXPHUeyaxzd6/Lk)" + R"(6YHlfQ=="},"publicKey":"RJ2i/o/pZkrH+i0aGEMY1G9FXtd7Q7gfRi3YdNRnDDk="},)" + R"({"confirmationType":"view","credential":{"signature":"krVZeadk/ElvsaYiU)" + R"(E4Ma/hkicRDjvS8O7QVkrWl0n2zsGYyAa/hodVb1aDn8tT3CMOV/l1JZdTVSXHrSHBHGg==)" + R"(","t":"bbpQ1DcxfDA+ycNg9WZvIwinjO0GKnCon1UFxDLoDOLZVnKG3ufruNZi/n8dO+G2)" + R"(AkTiWkUKbi78xCyKsqsXnA=="},"publicKey":"RJ2i/o/pZkrH+i0aGEMY1G9FXtd7Q7g)" + R"(fRi3YdNRnDDk="},{"confirmationType":"view","credential":{"signature":"1)" + R"(HwlWbhUewzvEWfGlOhmEo8x4FR3w82iRan+ZyBl1h3laOiXTVHXe5EraDiUd3G6bZlLJ+x9)" + R"(snDXPcd4wI5tpA==","t":"OlDIXpWRR1/B+1pjPbLyc5sx0V+d7QzQb4NDGUI6F676jy8t)" + R"(L++u57SF4DQhvdEpBrKID+j27RLrbjsecXSjRw=="},"publicKey":"RJ2i/o/pZkrH+i0)" + R"(aGEMY1G9FXtd7Q7gfRi3YdNRnDDk="},{"confirmationType":"view","credential")" + R"(:{"signature":"c9wbOwh7xT3Fx89HKh6D4isUU8ki9vTq+1MR81bRyPWCv0lDHYchd7Kk)" + R"(9EFtz3qNip4nZpSDUDDqV5Gu3ac2DA==","t":"Y579V5BUcCzAFj6qNX7YnIr+DvH0mugb)" + R"(/nnY5UINdjxziyDJlejJwi0kPaRGmqbVT3+B51lpErt8e66z0jTbAw=="},"publicKey":)" + R"("RJ2i/o/pZkrH+i0aGEMY1G9FXtd7Q7gfRi3YdNRnDDk="},{"confirmationType":"vi)" + R"(ew","credential":{"signature":"PW8G57q6/hoj0GzBoiRPilmPyWSYrFfOpJJ9I0tL)" + R"(sNfNF+DNOASnBoRpUy6nGJLX1vWcJnUQGGVr9hfwBNTGfg==","t":"+MPQfSo6UcaZNWtf)" + R"(mbd5je9UIr+FVrCWHl6I5C1ZFD7y7bjP/yz7flTjV+l5mKulbCvsRna7++MhbBz6iC0FvQ=)" + R"(="},"publicKey":"RJ2i/o/pZkrH+i0aGEMY1G9FXtd7Q7gfRi3YdNRnDDk="},{"confi)" + R"(rmationType":"view","credential":{"signature":"Rn9mRKy6B0Sysx6+y3scWE+Z)" + R"(E6EWVA/pYTp1XqOLFZH3IVVh+WnIVP/FNA7GuexDmVaq8/an8+9Gv7puKpQPWA==","t":")" + R"(CRXUzo7S0X//u0RGsO534vCoIbrsXgbzLfWw8CLML0CkgMltEGxM6XwBTICl4dqqfhIcLhD)" + R"(0f1WFod7JpuEkjw=="},"publicKey":"RJ2i/o/pZkrH+i0aGEMY1G9FXtd7Q7gfRi3YdN)" + R"(RnDDk="}],"platform":"windows","totals":[{"ad_format":"ad_notification")" + R"(,"view":"7"}]})"; + privacy::UnblindedPaymentTokenList GetUnblindedPaymentTokens(const int count) { const std::vector unblinded_payment_tokens_base64 = { R"(PLowz2WF2eGD5zfwZjk9p76HXBLDKMq/3EAZHeG/fE2XGQ48jyte+Ve50ZlasOuYL5mwA8CU2aFMlJrt3DDgC3B1+VD/uyHPfa/+bwYRrpVH5YwNSDEydVx8S4r+BYVY)", @@ -38,7 +75,7 @@ privacy::UnblindedPaymentTokenList GetUnblindedPaymentTokens(const int count) { R"(6tKJHOtQqpNzFjLGT0gvXlCF0GGKrqQlK82e2tc7gJvQkorg60Y21jEAg8JHbU8D3mBK/riZCILoi1cPCiBDAdhWJNVm003mZ0ShjmbESnKhL/NxRv/0/PB3GQ5iydoc)", R"(ujGlRHnz+UF0h8i6gYDnfeZDUj7qZZz6o29ZJFa3XN2g+yVXgRTws1yv6RAtLCr39OQso6FAT12o8GAvHVEzmRqyzm2XU9gMK5WrNtT/fhr8gQ9RvupdznGKOqmVbuIc)"}; - const int modulo = unblinded_payment_tokens_base64.size(); + const size_t modulo = unblinded_payment_tokens_base64.size(); privacy::UnblindedPaymentTokenList unblinded_payment_tokens; for (int i = 0; i < count; i++) { @@ -86,12 +123,14 @@ TEST_F(BatAdsRedeemUnblindedPaymentTokensUrlRequestBuilderTest, unblinded_payment_tokens); // Act - user_data_builder.Build([&unblinded_payment_tokens]( - const base::Value::Dict& user_data) { - RedeemUnblindedPaymentTokensUrlRequestBuilder url_request_builder( - GetWalletForTesting(), unblinded_payment_tokens, user_data); + user_data_builder.Build(base::BindOnce( + [](const privacy::UnblindedPaymentTokenList& unblinded_payment_tokens, + const base::Value::Dict& user_data) { + RedeemUnblindedPaymentTokensUrlRequestBuilder url_request_builder( + GetWalletForTesting(), unblinded_payment_tokens, user_data); - const mojom::UrlRequestInfoPtr url_request = url_request_builder.Build(); + const mojom::UrlRequestInfoPtr url_request = + url_request_builder.Build(); mojom::UrlRequestInfoPtr expected_url_request = mojom::UrlRequestInfo::New(); @@ -102,12 +141,13 @@ TEST_F(BatAdsRedeemUnblindedPaymentTokensUrlRequestBuilderTest, "Via: 1.1 brave, 1.1 ads-serve.brave.com (Apache/1.1)", "accept: application/json"}; expected_url_request->content = - R"({"odyssey":"guest","payload":"{\"paymentId\":\"27a39b2f-9b2e-4eb0-bbb2-2f84447496e7\"}","paymentCredentials":[{"confirmationType":"view","credential":{"signature":"H9HPNdEVJBvc9d8RZig/Gihlrcgug/n/rRaAJzeZI20gKPCivIj9Ig8StvqMSc5GfgLrBaJDibwBghnhRhqYRQ==","t":"PLowz2WF2eGD5zfwZjk9p76HXBLDKMq/3EAZHeG/fE2XGQ48jyte+Ve50ZlasOuYL5mwA8CU2aFMlJrt3DDgCw=="},"publicKey":"RJ2i/o/pZkrH+i0aGEMY1G9FXtd7Q7gfRi3YdNRnDDk="},{"confirmationType":"view","credential":{"signature":"mfv+HJP5K/q9ogcGwD4uqOd98sb2fx96h+QnsdtGwJ4wdZfvrukbP4whyz46Ro3gm2FIMhPWZ5wM2Hhg9OGPtg==","t":"hfrMEltWLuzbKQ02Qixh5C/DWiJbdOoaGaidKZ7Mv+cRq5fyxJqemE/MPlARPhl6NgXPHUeyaxzd6/Lk6YHlfQ=="},"publicKey":"RJ2i/o/pZkrH+i0aGEMY1G9FXtd7Q7gfRi3YdNRnDDk="},{"confirmationType":"view","credential":{"signature":"acj3J7aaf/rN/uleCnaGTOzNceo9m9Dz/2D1+NDIVN4MnZG2BF1hYl5qHY/VRZNh5/uhnRbqgsuPn6SXvaTXVA==","t":"bbpQ1DcxfDA+ycNg9WZvIwinjO0GKnCon1UFxDLoDOLZVnKG3ufruNZi/n8dO+G2AkTiWkUKbi78xCyKsqsXnA=="},"publicKey":"RJ2i/o/pZkrH+i0aGEMY1G9FXtd7Q7gfRi3YdNRnDDk="},{"confirmationType":"view","credential":{"signature":"zETc7kPZQhzNaufsUiBHiBtnwEhk3oQYUh5HZeNbTOiHvm5pAzNl/TuR/fjQcusN5EqH7e1B+ycsO5CeF5FmAw==","t":"OlDIXpWRR1/B+1pjPbLyc5sx0V+d7QzQb4NDGUI6F676jy8tL++u57SF4DQhvdEpBrKID+j27RLrbjsecXSjRw=="},"publicKey":"RJ2i/o/pZkrH+i0aGEMY1G9FXtd7Q7gfRi3YdNRnDDk="},{"confirmationType":"view","credential":{"signature":"d1oVe9XnwRs7bNcMzxp+/q7zL5hDHLD13f4tazz79a+ImszJfVRYIcf1fxvc7d2Pstciu1i11jRYGUWIDttYVg==","t":"Y579V5BUcCzAFj6qNX7YnIr+DvH0mugb/nnY5UINdjxziyDJlejJwi0kPaRGmqbVT3+B51lpErt8e66z0jTbAw=="},"publicKey":"RJ2i/o/pZkrH+i0aGEMY1G9FXtd7Q7gfRi3YdNRnDDk="},{"confirmationType":"view","credential":{"signature":"rQkn3xdJu/GFfkGUREqvV69lQNQWsa5a9RQIXaig7CQtlS/PVLsUvM6plG4IeboK0E6gR8Do5Gg40OK59/ZyUQ==","t":"+MPQfSo6UcaZNWtfmbd5je9UIr+FVrCWHl6I5C1ZFD7y7bjP/yz7flTjV+l5mKulbCvsRna7++MhbBz6iC0FvQ=="},"publicKey":"RJ2i/o/pZkrH+i0aGEMY1G9FXtd7Q7gfRi3YdNRnDDk="},{"confirmationType":"view","credential":{"signature":"GohmRsNFp8Vd47PB5MzgFvM7o/8XjkY+9gjCOJY/MAcpmLBgoS6v373A0Tvkq3T/t0z9GYM0yrs6LikJggwnmg==","t":"CRXUzo7S0X//u0RGsO534vCoIbrsXgbzLfWw8CLML0CkgMltEGxM6XwBTICl4dqqfhIcLhD0f1WFod7JpuEkjw=="},"publicKey":"RJ2i/o/pZkrH+i0aGEMY1G9FXtd7Q7gfRi3YdNRnDDk="}],"platform":"windows","totals":[{"ad_format":"ad_notification","view":"7"}]})"; + base::StringPrintf(kExpectedUrlRequestContent, "guest"); expected_url_request->content_type = "application/json"; expected_url_request->method = mojom::UrlRequestMethodType::kPut; - EXPECT_EQ(url_request, expected_url_request); - }); + EXPECT_EQ(url_request, expected_url_request); + }, + unblinded_payment_tokens)); // Assert } @@ -129,12 +169,14 @@ TEST_F(BatAdsRedeemUnblindedPaymentTokensUrlRequestBuilderTest, unblinded_payment_tokens); // Act - user_data_builder.Build([&unblinded_payment_tokens]( - const base::Value::Dict& user_data) { - RedeemUnblindedPaymentTokensUrlRequestBuilder url_request_builder( - GetWalletForTesting(), unblinded_payment_tokens, user_data); + user_data_builder.Build(base::BindOnce( + [](const privacy::UnblindedPaymentTokenList& unblinded_payment_tokens, + const base::Value::Dict& user_data) { + RedeemUnblindedPaymentTokensUrlRequestBuilder url_request_builder( + GetWalletForTesting(), unblinded_payment_tokens, user_data); - const mojom::UrlRequestInfoPtr url_request = url_request_builder.Build(); + const mojom::UrlRequestInfoPtr url_request = + url_request_builder.Build(); mojom::UrlRequestInfoPtr expected_url_request = mojom::UrlRequestInfo::New(); @@ -145,12 +187,13 @@ TEST_F(BatAdsRedeemUnblindedPaymentTokensUrlRequestBuilderTest, "Via: 1.0 brave, 1.1 ads-serve.brave.com (Apache/1.1)", "accept: application/json"}; expected_url_request->content = - R"({"odyssey":"host","payload":"{\"paymentId\":\"27a39b2f-9b2e-4eb0-bbb2-2f84447496e7\"}","paymentCredentials":[{"confirmationType":"view","credential":{"signature":"H9HPNdEVJBvc9d8RZig/Gihlrcgug/n/rRaAJzeZI20gKPCivIj9Ig8StvqMSc5GfgLrBaJDibwBghnhRhqYRQ==","t":"PLowz2WF2eGD5zfwZjk9p76HXBLDKMq/3EAZHeG/fE2XGQ48jyte+Ve50ZlasOuYL5mwA8CU2aFMlJrt3DDgCw=="},"publicKey":"RJ2i/o/pZkrH+i0aGEMY1G9FXtd7Q7gfRi3YdNRnDDk="},{"confirmationType":"view","credential":{"signature":"mfv+HJP5K/q9ogcGwD4uqOd98sb2fx96h+QnsdtGwJ4wdZfvrukbP4whyz46Ro3gm2FIMhPWZ5wM2Hhg9OGPtg==","t":"hfrMEltWLuzbKQ02Qixh5C/DWiJbdOoaGaidKZ7Mv+cRq5fyxJqemE/MPlARPhl6NgXPHUeyaxzd6/Lk6YHlfQ=="},"publicKey":"RJ2i/o/pZkrH+i0aGEMY1G9FXtd7Q7gfRi3YdNRnDDk="},{"confirmationType":"view","credential":{"signature":"acj3J7aaf/rN/uleCnaGTOzNceo9m9Dz/2D1+NDIVN4MnZG2BF1hYl5qHY/VRZNh5/uhnRbqgsuPn6SXvaTXVA==","t":"bbpQ1DcxfDA+ycNg9WZvIwinjO0GKnCon1UFxDLoDOLZVnKG3ufruNZi/n8dO+G2AkTiWkUKbi78xCyKsqsXnA=="},"publicKey":"RJ2i/o/pZkrH+i0aGEMY1G9FXtd7Q7gfRi3YdNRnDDk="},{"confirmationType":"view","credential":{"signature":"zETc7kPZQhzNaufsUiBHiBtnwEhk3oQYUh5HZeNbTOiHvm5pAzNl/TuR/fjQcusN5EqH7e1B+ycsO5CeF5FmAw==","t":"OlDIXpWRR1/B+1pjPbLyc5sx0V+d7QzQb4NDGUI6F676jy8tL++u57SF4DQhvdEpBrKID+j27RLrbjsecXSjRw=="},"publicKey":"RJ2i/o/pZkrH+i0aGEMY1G9FXtd7Q7gfRi3YdNRnDDk="},{"confirmationType":"view","credential":{"signature":"d1oVe9XnwRs7bNcMzxp+/q7zL5hDHLD13f4tazz79a+ImszJfVRYIcf1fxvc7d2Pstciu1i11jRYGUWIDttYVg==","t":"Y579V5BUcCzAFj6qNX7YnIr+DvH0mugb/nnY5UINdjxziyDJlejJwi0kPaRGmqbVT3+B51lpErt8e66z0jTbAw=="},"publicKey":"RJ2i/o/pZkrH+i0aGEMY1G9FXtd7Q7gfRi3YdNRnDDk="},{"confirmationType":"view","credential":{"signature":"rQkn3xdJu/GFfkGUREqvV69lQNQWsa5a9RQIXaig7CQtlS/PVLsUvM6plG4IeboK0E6gR8Do5Gg40OK59/ZyUQ==","t":"+MPQfSo6UcaZNWtfmbd5je9UIr+FVrCWHl6I5C1ZFD7y7bjP/yz7flTjV+l5mKulbCvsRna7++MhbBz6iC0FvQ=="},"publicKey":"RJ2i/o/pZkrH+i0aGEMY1G9FXtd7Q7gfRi3YdNRnDDk="},{"confirmationType":"view","credential":{"signature":"GohmRsNFp8Vd47PB5MzgFvM7o/8XjkY+9gjCOJY/MAcpmLBgoS6v373A0Tvkq3T/t0z9GYM0yrs6LikJggwnmg==","t":"CRXUzo7S0X//u0RGsO534vCoIbrsXgbzLfWw8CLML0CkgMltEGxM6XwBTICl4dqqfhIcLhD0f1WFod7JpuEkjw=="},"publicKey":"RJ2i/o/pZkrH+i0aGEMY1G9FXtd7Q7gfRi3YdNRnDDk="}],"platform":"windows","totals":[{"ad_format":"ad_notification","view":"7"}]})"; + base::StringPrintf(kExpectedUrlRequestContent, "host"); expected_url_request->content_type = "application/json"; expected_url_request->method = mojom::UrlRequestMethodType::kPut; - EXPECT_EQ(url_request, expected_url_request); - }); + EXPECT_EQ(url_request, expected_url_request); + }, + unblinded_payment_tokens)); // Assert } diff --git a/vendor/bat-native-ads/src/bat/ads/internal/account/utility/redeem_unblinded_payment_tokens/redeem_unblinded_payment_tokens_user_data_builder.cc b/vendor/bat-native-ads/src/bat/ads/internal/account/utility/redeem_unblinded_payment_tokens/redeem_unblinded_payment_tokens_user_data_builder.cc index 5d41b0814ce..bdc6e878ccf 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/account/utility/redeem_unblinded_payment_tokens/redeem_unblinded_payment_tokens_user_data_builder.cc +++ b/vendor/bat-native-ads/src/bat/ads/internal/account/utility/redeem_unblinded_payment_tokens/redeem_unblinded_payment_tokens_user_data_builder.cc @@ -7,6 +7,7 @@ #include +#include "base/functional/callback.h" #include "base/values.h" #include "bat/ads/internal/account/user_data/odyssey_user_data.h" #include "bat/ads/internal/account/user_data/platform_user_data.h" @@ -29,7 +30,7 @@ void RedeemUnblindedPaymentTokensUserDataBuilder::Build( user_data.Merge(user_data::GetPlatform()); user_data.Merge(user_data::GetTotals(unblinded_payment_tokens_)); - callback(user_data); + std::move(callback).Run(user_data); } } // namespace ads diff --git a/vendor/bat-native-ads/src/bat/ads/internal/account/utility/redeem_unblinded_payment_tokens/redeem_unblinded_payment_tokens_user_data_builder_unittest.cc b/vendor/bat-native-ads/src/bat/ads/internal/account/utility/redeem_unblinded_payment_tokens/redeem_unblinded_payment_tokens_user_data_builder_unittest.cc index 40b0c34a4f0..c850e7f0ae2 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/account/utility/redeem_unblinded_payment_tokens/redeem_unblinded_payment_tokens_user_data_builder_unittest.cc +++ b/vendor/bat-native-ads/src/bat/ads/internal/account/utility/redeem_unblinded_payment_tokens/redeem_unblinded_payment_tokens_user_data_builder_unittest.cc @@ -5,6 +5,7 @@ #include "bat/ads/internal/account/utility/redeem_unblinded_payment_tokens/redeem_unblinded_payment_tokens_user_data_builder.h" +#include "base/functional/bind.h" #include "base/test/values_test_util.h" #include "base/values.h" #include "bat/ads/internal/common/unittest/unittest_base.h" @@ -32,13 +33,14 @@ TEST_F(BatAdsRedeemUnblindedPaymentTokensUserDataBuilderTest, BuildUserData) { unblinded_payment_tokens); // Act - user_data_builder.Build([](const base::Value::Dict& user_data) { + user_data_builder.Build(base::BindOnce([](const base::Value::Dict& + user_data) { const base::Value expected_user_data = base::test::ParseJson( R"({"odyssey":"host","platform":"windows","totals":[{"ad_format":"ad_notification","view":"2"}]})"); ASSERT_TRUE(expected_user_data.is_dict()); EXPECT_EQ(expected_user_data, user_data); - }); + })); // Assert } diff --git a/vendor/bat-native-ads/src/bat/ads/internal/ads/ad_events/ad_events.cc b/vendor/bat-native-ads/src/bat/ads/internal/ads/ad_events/ad_events.cc index dd028d77698..cea8983a741 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/ads/ad_events/ad_events.cc +++ b/vendor/bat-native-ads/src/bat/ads/internal/ads/ad_events/ad_events.cc @@ -82,20 +82,21 @@ void PurgeOrphanedAdEvents(const mojom::AdType ad_type, void RebuildAdEventHistoryFromDatabase() { const database::table::AdEvents database_table; - database_table.GetAll([](const bool success, const AdEventList& ad_events) { - if (!success) { - BLOG(1, "Failed to get ad events"); - return; - } + database_table.GetAll( + base::BindOnce([](const bool success, const AdEventList& ad_events) { + if (!success) { + BLOG(1, "Failed to get ad events"); + return; + } - const std::string& id = GetInstanceId(); + const std::string& id = GetInstanceId(); - AdsClientHelper::GetInstance()->ResetAdEventHistoryForId(id); + AdsClientHelper::GetInstance()->ResetAdEventHistoryForId(id); - for (const auto& ad_event : ad_events) { - RecordAdEvent(ad_event); - } - }); + for (const auto& ad_event : ad_events) { + RecordAdEvent(ad_event); + } + })); } void RecordAdEvent(const AdEventInfo& ad_event) { diff --git a/vendor/bat-native-ads/src/bat/ads/internal/ads/ad_events/ad_events.h b/vendor/bat-native-ads/src/bat/ads/internal/ads/ad_events/ad_events.h index 5c7cd22f1bf..275122b068c 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/ads/ad_events/ad_events.h +++ b/vendor/bat-native-ads/src/bat/ads/internal/ads/ad_events/ad_events.h @@ -6,7 +6,6 @@ #ifndef BRAVE_VENDOR_BAT_NATIVE_ADS_SRC_BAT_ADS_INTERNAL_ADS_AD_EVENTS_AD_EVENTS_H_ #define BRAVE_VENDOR_BAT_NATIVE_ADS_SRC_BAT_ADS_INTERNAL_ADS_AD_EVENTS_AD_EVENTS_H_ -#include #include #include "base/functional/callback.h" diff --git a/vendor/bat-native-ads/src/bat/ads/internal/ads/ad_events/ad_events_database_table.cc b/vendor/bat-native-ads/src/bat/ads/internal/ads/ad_events/ad_events_database_table.cc index 20f235376d3..67bb584c4e3 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/ads/ad_events/ad_events_database_table.cc +++ b/vendor/bat-native-ads/src/bat/ads/internal/ads/ad_events/ad_events_database_table.cc @@ -196,7 +196,7 @@ void AdEvents::LogEvent(const AdEventInfo& ad_event, ResultCallback callback) { } void AdEvents::GetIf(const std::string& condition, - const GetAdEventsCallbackDeprecated& callback) const { + GetAdEventsCallback callback) const { const std::string query = base::StringPrintf( "SELECT " "ae.uuid, " @@ -212,15 +212,10 @@ void AdEvents::GetIf(const std::string& condition, "ORDER BY timestamp DESC ", GetTableName().c_str(), condition.c_str()); - RunTransaction( - query, - base::BindOnce( - [](const GetAdEventsCallbackDeprecated& callback, const bool success, - const AdEventList& ad_events) { callback(success, ad_events); }, - callback)); + RunTransaction(query, std::move(callback)); } -void AdEvents::GetAll(const GetAdEventsCallbackDeprecated& callback) const { +void AdEvents::GetAll(GetAdEventsCallback callback) const { const std::string query = base::StringPrintf( "SELECT " "ae.uuid, " @@ -235,22 +230,7 @@ void AdEvents::GetAll(const GetAdEventsCallbackDeprecated& callback) const { "ORDER BY timestamp DESC", GetTableName().c_str()); - RunTransaction( - query, - base::BindOnce( - [](const GetAdEventsCallbackDeprecated& callback, const bool success, - const AdEventList& ad_events) { callback(success, ad_events); }, - callback)); -} - -void AdEvents::GetForType(const mojom::AdType ad_type, - const GetAdEventsCallbackDeprecated& callback) const { - GetForType(ad_type, base::BindOnce( - [](const GetAdEventsCallbackDeprecated& callback, - const bool success, const AdEventList& ad_events) { - callback(success, ad_events); - }, - callback)); + RunTransaction(query, std::move(callback)); } void AdEvents::GetForType(const mojom::AdType ad_type, diff --git a/vendor/bat-native-ads/src/bat/ads/internal/ads/ad_events/ad_events_database_table.h b/vendor/bat-native-ads/src/bat/ads/internal/ads/ad_events/ad_events_database_table.h index e6c02bb16e3..f2f6d694cbd 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/ads/ad_events/ad_events_database_table.h +++ b/vendor/bat-native-ads/src/bat/ads/internal/ads/ad_events/ad_events_database_table.h @@ -6,7 +6,6 @@ #ifndef BRAVE_VENDOR_BAT_NATIVE_ADS_SRC_BAT_ADS_INTERNAL_ADS_AD_EVENTS_AD_EVENTS_DATABASE_TABLE_H_ #define BRAVE_VENDOR_BAT_NATIVE_ADS_SRC_BAT_ADS_INTERNAL_ADS_AD_EVENTS_AD_EVENTS_DATABASE_TABLE_H_ -#include #include #include "base/functional/callback.h" @@ -17,9 +16,6 @@ namespace ads::database::table { -using GetAdEventsCallbackDeprecated = - std::function; - using GetAdEventsCallback = base::OnceCallback; @@ -27,13 +23,9 @@ class AdEvents final : public TableInterface { public: void LogEvent(const AdEventInfo& ad_event, ResultCallback callback); - void GetIf(const std::string& condition, - const GetAdEventsCallbackDeprecated& callback) const; + void GetIf(const std::string& condition, GetAdEventsCallback callback) const; - void GetAll(const GetAdEventsCallbackDeprecated& callback) const; - - void GetForType(mojom::AdType ad_type, - const GetAdEventsCallbackDeprecated& callback) const; + void GetAll(GetAdEventsCallback callback) const; void GetForType(mojom::AdType ad_type, GetAdEventsCallback callback) const; diff --git a/vendor/bat-native-ads/src/bat/ads/internal/ads/ad_events/inline_content_ads/inline_content_ad_event_handler.cc b/vendor/bat-native-ads/src/bat/ads/internal/ads/ad_events/inline_content_ads/inline_content_ad_event_handler.cc index 5f914ef00cb..bcd26837033 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/ads/ad_events/inline_content_ads/inline_content_ad_event_handler.cc +++ b/vendor/bat-native-ads/src/bat/ads/internal/ads/ad_events/inline_content_ads/inline_content_ad_event_handler.cc @@ -6,8 +6,8 @@ #include "bat/ads/internal/ads/ad_events/inline_content_ads/inline_content_ad_event_handler.h" #include "base/check.h" +#include "base/functional/bind.h" #include "bat/ads/inline_content_ad_info.h" -#include "bat/ads/internal/ads/ad_events/ad_event_info.h" #include "bat/ads/internal/ads/ad_events/ad_event_util.h" #include "bat/ads/internal/ads/ad_events/ad_events_database_table.h" #include "bat/ads/internal/ads/ad_events/inline_content_ads/inline_content_ad_event_factory.h" @@ -108,25 +108,31 @@ void EventHandler::FireEvent(const std::string& placement_id, const database::table::CreativeInlineContentAds database_table; database_table.GetForCreativeInstanceId( creative_instance_id, - [=](const bool success, const std::string& creative_instance_id, - const CreativeInlineContentAdInfo& creative_ad) { - if (!success) { - BLOG(1, - "Failed to fire inline content ad event due to missing creative " - "instance id " - << creative_instance_id); - return FailedToFireEvent(placement_id, creative_instance_id, - event_type); - } - - const InlineContentAdInfo ad = - BuildInlineContentAd(creative_ad, placement_id); - FireEvent(ad, event_type); - }); + base::BindOnce(&EventHandler::OnGetForCreativeInstanceId, + base::Unretained(this), placement_id, event_type)); } /////////////////////////////////////////////////////////////////////////////// +void EventHandler::OnGetForCreativeInstanceId( + const std::string& placement_id, + const mojom::InlineContentAdEventType event_type, + const bool success, + const std::string& creative_instance_id, + const CreativeInlineContentAdInfo& creative_ad) { + if (!success) { + BLOG(1, + "Failed to fire inline content ad event due to missing creative " + "instance id " + << creative_instance_id); + return FailedToFireEvent(placement_id, creative_instance_id, event_type); + } + + const InlineContentAdInfo ad = + BuildInlineContentAd(creative_ad, placement_id); + FireEvent(ad, event_type); +} + void EventHandler::FireEvent(const InlineContentAdInfo& ad, const mojom::InlineContentAdEventType event_type) { DCHECK(mojom::IsKnownEnumValue(event_type)); @@ -134,35 +140,41 @@ void EventHandler::FireEvent(const InlineContentAdInfo& ad, const database::table::AdEvents database_table; database_table.GetForType( mojom::AdType::kInlineContentAd, - [=](const bool success, const AdEventList& ad_events) { - if (!success) { - BLOG(1, "Inline content ad: Failed to get ad events"); - return FailedToFireEvent(ad.placement_id, ad.creative_instance_id, - event_type); - } + base::BindOnce(&EventHandler::OnGetAdEvents, base::Unretained(this), ad, + event_type)); +} - if (!WasAdServed(ad, ad_events, event_type)) { - BLOG(1, - "Inline content ad: Not allowed because an ad was not served " - "for placement id " - << ad.placement_id); - return FailedToFireEvent(ad.placement_id, ad.creative_instance_id, - event_type); - } +void EventHandler::OnGetAdEvents( + const InlineContentAdInfo& ad, + const mojom::InlineContentAdEventType event_type, + const bool success, + const AdEventList& ad_events) { + if (!success) { + BLOG(1, "Inline content ad: Failed to get ad events"); + return FailedToFireEvent(ad.placement_id, ad.creative_instance_id, + event_type); + } - if (ShouldDebounceAdEvent(ad, ad_events, event_type)) { - BLOG(1, "Inline content ad: Not allowed as debounced " - << event_type << " event for placement id " - << ad.placement_id); - return FailedToFireEvent(ad.placement_id, ad.creative_instance_id, - event_type); - } + if (!WasAdServed(ad, ad_events, event_type)) { + BLOG(1, + "Inline content ad: Not allowed because an ad was not served " + "for placement id " + << ad.placement_id); + return FailedToFireEvent(ad.placement_id, ad.creative_instance_id, + event_type); + } - const auto ad_event = AdEventFactory::Build(event_type); - ad_event->FireEvent(ad); + if (ShouldDebounceAdEvent(ad, ad_events, event_type)) { + BLOG(1, "Inline content ad: Not allowed as debounced " + << event_type << " event for placement id " << ad.placement_id); + return FailedToFireEvent(ad.placement_id, ad.creative_instance_id, + event_type); + } - NotifyInlineContentAdEvent(ad, event_type); - }); + const auto ad_event = AdEventFactory::Build(event_type); + ad_event->FireEvent(ad); + + NotifyInlineContentAdEvent(ad, event_type); } void EventHandler::FailedToFireEvent( diff --git a/vendor/bat-native-ads/src/bat/ads/internal/ads/ad_events/inline_content_ads/inline_content_ad_event_handler.h b/vendor/bat-native-ads/src/bat/ads/internal/ads/ad_events/inline_content_ads/inline_content_ad_event_handler.h index e2dce5cf4b5..edf6a89c94d 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/ads/ad_events/inline_content_ads/inline_content_ad_event_handler.h +++ b/vendor/bat-native-ads/src/bat/ads/internal/ads/ad_events/inline_content_ads/inline_content_ad_event_handler.h @@ -9,15 +9,16 @@ #include #include "base/observer_list.h" +#include "bat/ads/internal/ads/ad_events/ad_event_info.h" #include "bat/ads/internal/ads/ad_events/inline_content_ads/inline_content_ad_event_handler_observer.h" #include "bat/ads/public/interfaces/ads.mojom-shared.h" namespace ads { +struct CreativeInlineContentAdInfo; struct InlineContentAdInfo; namespace inline_content_ads { - class EventHandler final : public EventHandlerObserver { public: EventHandler(); @@ -38,8 +39,19 @@ class EventHandler final : public EventHandlerObserver { mojom::InlineContentAdEventType event_type); private: + void OnGetForCreativeInstanceId( + const std::string& placement_id, + mojom::InlineContentAdEventType event_type, + bool success, + const std::string& creative_instance_id, + const CreativeInlineContentAdInfo& creative_ad); + void FireEvent(const InlineContentAdInfo& ad, mojom::InlineContentAdEventType event_type); + void OnGetAdEvents(const InlineContentAdInfo& ad, + mojom::InlineContentAdEventType event_type, + bool success, + const AdEventList& ad_events); void FailedToFireEvent(const std::string& placement_id, const std::string& creative_instance_id, mojom::InlineContentAdEventType event_type) const; diff --git a/vendor/bat-native-ads/src/bat/ads/internal/ads/ad_events/new_tab_page_ads/new_tab_page_ad_event_handler.cc b/vendor/bat-native-ads/src/bat/ads/internal/ads/ad_events/new_tab_page_ads/new_tab_page_ad_event_handler.cc index f1d6b642de2..547504d081b 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/ads/ad_events/new_tab_page_ads/new_tab_page_ad_event_handler.cc +++ b/vendor/bat-native-ads/src/bat/ads/internal/ads/ad_events/new_tab_page_ads/new_tab_page_ad_event_handler.cc @@ -6,8 +6,8 @@ #include "bat/ads/internal/ads/ad_events/new_tab_page_ads/new_tab_page_ad_event_handler.h" #include "base/check.h" +#include "base/functional/bind.h" #include "bat/ads/internal/account/account_util.h" -#include "bat/ads/internal/ads/ad_events/ad_event_info.h" #include "bat/ads/internal/ads/ad_events/ad_event_util.h" #include "bat/ads/internal/ads/ad_events/ad_events_database_table.h" #include "bat/ads/internal/ads/ad_events/new_tab_page_ads/new_tab_page_ad_event_factory.h" @@ -118,25 +118,30 @@ void EventHandler::FireEvent(const std::string& placement_id, const database::table::CreativeNewTabPageAds database_table; database_table.GetForCreativeInstanceId( creative_instance_id, - [=](const bool success, const std::string& creative_instance_id, - const CreativeNewTabPageAdInfo& creative_ad) { - if (!success) { - BLOG(1, - "Failed to fire new tab page ad event due to missing creative " - "instance id " - << creative_instance_id); - return FailedToFireEvent(placement_id, creative_instance_id, - event_type); - } - - const NewTabPageAdInfo ad = - BuildNewTabPageAd(creative_ad, placement_id); - FireEvent(ad, event_type); - }); + base::BindOnce(&EventHandler::OnGetForCreativeInstanceId, + base::Unretained(this), placement_id, event_type)); } /////////////////////////////////////////////////////////////////////////////// +void EventHandler::OnGetForCreativeInstanceId( + const std::string& placement_id, + const mojom::NewTabPageAdEventType event_type, + const bool success, + const std::string& creative_instance_id, + const CreativeNewTabPageAdInfo& creative_ad) { + if (!success) { + BLOG(1, + "Failed to fire new tab page ad event due to missing creative " + "instance id " + << creative_instance_id); + return FailedToFireEvent(placement_id, creative_instance_id, event_type); + } + + const NewTabPageAdInfo ad = BuildNewTabPageAd(creative_ad, placement_id); + FireEvent(ad, event_type); +} + void EventHandler::FireEvent(const NewTabPageAdInfo& ad, const mojom::NewTabPageAdEventType event_type) { DCHECK(mojom::IsKnownEnumValue(event_type)); @@ -144,35 +149,40 @@ void EventHandler::FireEvent(const NewTabPageAdInfo& ad, const database::table::AdEvents database_table; database_table.GetForType( mojom::AdType::kNewTabPageAd, - [=](const bool success, const AdEventList& ad_events) { - if (!success) { - BLOG(1, "New tab page ad: Failed to get ad events"); - return FailedToFireEvent(ad.placement_id, ad.creative_instance_id, - event_type); - } + base::BindOnce(&EventHandler::OnGetAdEvents, base::Unretained(this), ad, + event_type)); +} - if (!WasAdServed(ad, ad_events, event_type)) { - BLOG(1, - "New tab page ad: Not allowed because an ad was not served " - "for placement id " - << ad.placement_id); - return FailedToFireEvent(ad.placement_id, ad.creative_instance_id, - event_type); - } +void EventHandler::OnGetAdEvents(const NewTabPageAdInfo& ad, + const mojom::NewTabPageAdEventType event_type, + const bool success, + const AdEventList& ad_events) { + if (!success) { + BLOG(1, "New tab page ad: Failed to get ad events"); + return FailedToFireEvent(ad.placement_id, ad.creative_instance_id, + event_type); + } - if (ShouldDebounceAdEvent(ad, ad_events, event_type)) { - BLOG(1, "New tab page ad: Not allowed as debounced " - << event_type << " event for placement id " - << ad.placement_id); - return FailedToFireEvent(ad.placement_id, ad.creative_instance_id, - event_type); - } + if (!WasAdServed(ad, ad_events, event_type)) { + BLOG(1, + "New tab page ad: Not allowed because an ad was not served " + "for placement id " + << ad.placement_id); + return FailedToFireEvent(ad.placement_id, ad.creative_instance_id, + event_type); + } - const auto ad_event = AdEventFactory::Build(event_type); - ad_event->FireEvent(ad); + if (ShouldDebounceAdEvent(ad, ad_events, event_type)) { + BLOG(1, "New tab page ad: Not allowed as debounced " + << event_type << " event for placement id " << ad.placement_id); + return FailedToFireEvent(ad.placement_id, ad.creative_instance_id, + event_type); + } - NotifyNewTabPageAdEvent(ad, event_type); - }); + const auto ad_event = AdEventFactory::Build(event_type); + ad_event->FireEvent(ad); + + NotifyNewTabPageAdEvent(ad, event_type); } void EventHandler::FailedToFireEvent( diff --git a/vendor/bat-native-ads/src/bat/ads/internal/ads/ad_events/new_tab_page_ads/new_tab_page_ad_event_handler.h b/vendor/bat-native-ads/src/bat/ads/internal/ads/ad_events/new_tab_page_ads/new_tab_page_ad_event_handler.h index cdf88dd1b51..35f8ebc6de5 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/ads/ad_events/new_tab_page_ads/new_tab_page_ad_event_handler.h +++ b/vendor/bat-native-ads/src/bat/ads/internal/ads/ad_events/new_tab_page_ads/new_tab_page_ad_event_handler.h @@ -9,11 +9,13 @@ #include #include "base/observer_list.h" +#include "bat/ads/internal/ads/ad_events/ad_event_info.h" #include "bat/ads/internal/ads/ad_events/new_tab_page_ads/new_tab_page_ad_event_handler_observer.h" #include "bat/ads/public/interfaces/ads.mojom-shared.h" namespace ads { +struct CreativeNewTabPageAdInfo; struct NewTabPageAdInfo; namespace new_tab_page_ads { @@ -38,8 +40,18 @@ class EventHandler final : public EventHandlerObserver { mojom::NewTabPageAdEventType event_type); private: + void OnGetForCreativeInstanceId(const std::string& placement_id, + mojom::NewTabPageAdEventType event_type, + bool success, + const std::string& creative_instance_id, + const CreativeNewTabPageAdInfo& creative_ad); + void FireEvent(const NewTabPageAdInfo& ad, mojom::NewTabPageAdEventType event_type); + void OnGetAdEvents(const NewTabPageAdInfo& ad, + mojom::NewTabPageAdEventType event_type, + bool success, + const AdEventList& ad_events); void FailedToFireEvent(const std::string& placement_id, const std::string& creative_instance_id, mojom::NewTabPageAdEventType event_type) const; diff --git a/vendor/bat-native-ads/src/bat/ads/internal/ads/ad_events/promoted_content_ads/promoted_content_ad_event_handler.cc b/vendor/bat-native-ads/src/bat/ads/internal/ads/ad_events/promoted_content_ads/promoted_content_ad_event_handler.cc index 6d58e8817c9..bd50a2d6ea3 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/ads/ad_events/promoted_content_ads/promoted_content_ad_event_handler.cc +++ b/vendor/bat-native-ads/src/bat/ads/internal/ads/ad_events/promoted_content_ads/promoted_content_ad_event_handler.cc @@ -6,7 +6,7 @@ #include "bat/ads/internal/ads/ad_events/promoted_content_ads/promoted_content_ad_event_handler.h" #include "base/check.h" -#include "bat/ads/internal/ads/ad_events/ad_event_info.h" +#include "base/functional/bind.h" #include "bat/ads/internal/ads/ad_events/ad_event_util.h" #include "bat/ads/internal/ads/ad_events/ad_events_database_table.h" #include "bat/ads/internal/ads/ad_events/promoted_content_ads/promoted_content_ad_event_factory.h" @@ -117,21 +117,27 @@ void EventHandler::FireEvent( const database::table::CreativePromotedContentAds database_table; database_table.GetForCreativeInstanceId( creative_instance_id, - [=](const bool success, const std::string& creative_instance_id, - const CreativePromotedContentAdInfo& creative_ad) { - if (!success) { - BLOG(1, - "Failed to fire promoted content ad event due to missing " - "creative instance id " - << creative_instance_id); - return FailedToFireEvent(placement_id, creative_instance_id, - event_type); - } + base::BindOnce(&EventHandler::OnGetForCreativeInstanceId, + base::Unretained(this), placement_id, event_type)); +} - const PromotedContentAdInfo ad = - BuildPromotedContentAd(creative_ad, placement_id); - FireEvent(ad, event_type); - }); +void EventHandler::OnGetForCreativeInstanceId( + const std::string& placement_id, + const mojom::PromotedContentAdEventType event_type, + const bool success, + const std::string& creative_instance_id, + const CreativePromotedContentAdInfo& creative_ad) { + if (!success) { + BLOG(1, + "Failed to fire promoted content ad event due to missing " + "creative instance id " + << creative_instance_id); + return FailedToFireEvent(placement_id, creative_instance_id, event_type); + } + + const PromotedContentAdInfo ad = + BuildPromotedContentAd(creative_ad, placement_id); + FireEvent(ad, event_type); } /////////////////////////////////////////////////////////////////////////////// @@ -144,35 +150,41 @@ void EventHandler::FireEvent( const database::table::AdEvents database_table; database_table.GetForType( mojom::AdType::kPromotedContentAd, - [=](const bool success, const AdEventList& ad_events) { - if (!success) { - BLOG(1, "Promoted content ad: Failed to get ad events"); - return FailedToFireEvent(ad.placement_id, ad.creative_instance_id, - event_type); - } + base::BindOnce(&EventHandler::OnGetAdEvents, base::Unretained(this), ad, + event_type)); +} - if (!WasAdServed(ad, ad_events, event_type)) { - BLOG(1, - "Promoted content ad: Not allowed because an ad was not served " - "for placement id " - << ad.placement_id); - return FailedToFireEvent(ad.placement_id, ad.creative_instance_id, - event_type); - } +void EventHandler::OnGetAdEvents( + const PromotedContentAdInfo& ad, + const mojom::PromotedContentAdEventType event_type, + const bool success, + const AdEventList& ad_events) { + if (!success) { + BLOG(1, "Promoted content ad: Failed to get ad events"); + return FailedToFireEvent(ad.placement_id, ad.creative_instance_id, + event_type); + } - if (ShouldDebounceAdEvent(ad, ad_events, event_type)) { - BLOG(1, "Promoted content ad: Not allowed as debounced " - << event_type << " event for placement id " - << ad.placement_id); - return FailedToFireEvent(ad.placement_id, ad.creative_instance_id, - event_type); - } + if (!WasAdServed(ad, ad_events, event_type)) { + BLOG(1, + "Promoted content ad: Not allowed because an ad was not served " + "for placement id " + << ad.placement_id); + return FailedToFireEvent(ad.placement_id, ad.creative_instance_id, + event_type); + } - const auto ad_event = AdEventFactory::Build(event_type); - ad_event->FireEvent(ad); + if (ShouldDebounceAdEvent(ad, ad_events, event_type)) { + BLOG(1, "Promoted content ad: Not allowed as debounced " + << event_type << " event for placement id " << ad.placement_id); + return FailedToFireEvent(ad.placement_id, ad.creative_instance_id, + event_type); + } - NotifyPromotedContentAdEvent(ad, event_type); - }); + const auto ad_event = AdEventFactory::Build(event_type); + ad_event->FireEvent(ad); + + NotifyPromotedContentAdEvent(ad, event_type); } void EventHandler::FailedToFireEvent( diff --git a/vendor/bat-native-ads/src/bat/ads/internal/ads/ad_events/promoted_content_ads/promoted_content_ad_event_handler.h b/vendor/bat-native-ads/src/bat/ads/internal/ads/ad_events/promoted_content_ads/promoted_content_ad_event_handler.h index 702008ad8e0..b674a5e0bb5 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/ads/ad_events/promoted_content_ads/promoted_content_ad_event_handler.h +++ b/vendor/bat-native-ads/src/bat/ads/internal/ads/ad_events/promoted_content_ads/promoted_content_ad_event_handler.h @@ -9,11 +9,13 @@ #include #include "base/observer_list.h" +#include "bat/ads/internal/ads/ad_events/ad_event_info.h" #include "bat/ads/internal/ads/ad_events/promoted_content_ads/promoted_content_ad_event_handler_observer.h" #include "bat/ads/public/interfaces/ads.mojom-shared.h" namespace ads { +struct CreativePromotedContentAdInfo; struct PromotedContentAdInfo; namespace promoted_content_ads { @@ -38,8 +40,19 @@ class EventHandler final : public EventHandlerObserver { mojom::PromotedContentAdEventType event_type); private: + void OnGetForCreativeInstanceId( + const std::string& placement_id, + mojom::PromotedContentAdEventType event_type, + bool success, + const std::string& creative_instance_id, + const CreativePromotedContentAdInfo& creative_ad); + void FireEvent(const PromotedContentAdInfo& ad, mojom::PromotedContentAdEventType event_type); + void OnGetAdEvents(const PromotedContentAdInfo& ad, + mojom::PromotedContentAdEventType event_type, + bool success, + const AdEventList& ad_events); void FailedToFireEvent(const std::string& placement_id, const std::string& creative_instance_id, mojom::PromotedContentAdEventType event_type) const; diff --git a/vendor/bat-native-ads/src/bat/ads/internal/ads/ad_events/search_result_ads/search_result_ad_event_handler.cc b/vendor/bat-native-ads/src/bat/ads/internal/ads/ad_events/search_result_ads/search_result_ad_event_handler.cc index d7b075f233c..c33356db497 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/ads/ad_events/search_result_ads/search_result_ad_event_handler.cc +++ b/vendor/bat-native-ads/src/bat/ads/internal/ads/ad_events/search_result_ads/search_result_ad_event_handler.cc @@ -9,11 +9,11 @@ #include "base/check.h" #include "base/functional/bind.h" +#include "base/functional/callback.h" #include "bat/ads/ad_info.h" #include "bat/ads/internal/account/deposits/deposit_builder.h" #include "bat/ads/internal/account/deposits/deposit_info.h" #include "bat/ads/internal/account/deposits/deposits_database_table.h" -#include "bat/ads/internal/ads/ad_events/ad_event_info.h" #include "bat/ads/internal/ads/ad_events/ad_event_util.h" #include "bat/ads/internal/ads/ad_events/ad_events_database_table.h" #include "bat/ads/internal/ads/ad_events/search_result_ads/search_result_ad_event_factory.h" @@ -99,7 +99,7 @@ void EventHandler::RemoveObserver(EventHandlerObserver* observer) { void EventHandler::FireEvent(mojom::SearchResultAdInfoPtr ad_mojom, const mojom::SearchResultAdEventType event_type, - const FireAdEventHandlerCallback& callback) const { + FireAdEventHandlerCallback callback) const { DCHECK(ad_mojom); DCHECK(mojom::IsKnownEnumValue(event_type)); @@ -107,28 +107,28 @@ void EventHandler::FireEvent(mojom::SearchResultAdInfoPtr ad_mojom, if (!ad.IsValid()) { BLOG(1, "Failed to fire event due to an invalid search result ad"); - return FailedToFireEvent(ad, event_type, callback); + return FailedToFireEvent(ad, event_type, std::move(callback)); } if (event_type == mojom::SearchResultAdEventType::kServed && !PermissionRules::HasPermission()) { BLOG(1, "Search result ad: Not allowed due to permission rules"); - return FailedToFireEvent(ad, event_type, callback); + return FailedToFireEvent(ad, event_type, std::move(callback)); } switch (event_type) { case mojom::SearchResultAdEventType::kServed: { - FireEvent(ad, event_type, callback); + FireEvent(ad, event_type, std::move(callback)); break; } case mojom::SearchResultAdEventType::kViewed: { - FireViewedEvent(std::move(ad_mojom), callback); + FireViewedEvent(std::move(ad_mojom), std::move(callback)); break; } case mojom::SearchResultAdEventType::kClicked: { - FireClickedEvent(ad, callback); + FireClickedEvent(ad, std::move(callback)); break; } } @@ -138,18 +138,17 @@ void EventHandler::FireEvent(mojom::SearchResultAdInfoPtr ad_mojom, void EventHandler::FireEvent(const SearchResultAdInfo& ad, const mojom::SearchResultAdEventType event_type, - const FireAdEventHandlerCallback& callback) const { + FireAdEventHandlerCallback callback) const { DCHECK(mojom::IsKnownEnumValue(event_type)); const auto ad_event = AdEventFactory::Build(event_type); ad_event->FireEvent(ad); - NotifySearchResultAdEvent(ad, event_type, callback); + NotifySearchResultAdEvent(ad, event_type, std::move(callback)); } -void EventHandler::FireViewedEvent( - mojom::SearchResultAdInfoPtr ad_mojom, - const FireAdEventHandlerCallback& callback) const { +void EventHandler::FireViewedEvent(mojom::SearchResultAdInfoPtr ad_mojom, + FireAdEventHandlerCallback callback) const { DCHECK(ad_mojom); const DepositInfo deposit = BuildDeposit(ad_mojom); @@ -158,11 +157,11 @@ void EventHandler::FireViewedEvent( deposits_database_table.Save( deposit, base::BindOnce(&EventHandler::OnSaveDeposits, base::Unretained(this), - std::move(ad_mojom), callback)); + std::move(ad_mojom), std::move(callback))); } void EventHandler::OnSaveDeposits(mojom::SearchResultAdInfoPtr ad_mojom, - const FireAdEventHandlerCallback& callback, + FireAdEventHandlerCallback callback, const bool success) const { DCHECK(ad_mojom); @@ -171,7 +170,7 @@ void EventHandler::OnSaveDeposits(mojom::SearchResultAdInfoPtr ad_mojom, if (!success) { BLOG(0, "Failed to save deposits state"); return FailedToFireEvent(ad, mojom::SearchResultAdEventType::kViewed, - callback); + std::move(callback)); } BLOG(3, "Successfully saved deposits state"); @@ -183,17 +182,18 @@ void EventHandler::OnSaveDeposits(mojom::SearchResultAdInfoPtr ad_mojom, database::table::Conversions conversion_database_table; conversion_database_table.Save( - conversions, base::BindOnce(&EventHandler::OnSaveConversions, - base::Unretained(this), ad, callback)); + conversions, + base::BindOnce(&EventHandler::OnSaveConversions, base::Unretained(this), + ad, std::move(callback))); } void EventHandler::OnSaveConversions(const SearchResultAdInfo& ad, - const FireAdEventHandlerCallback& callback, + FireAdEventHandlerCallback callback, const bool success) const { if (!success) { BLOG(0, "Failed to save conversions state"); return FailedToFireEvent(ad, mojom::SearchResultAdEventType::kViewed, - callback); + std::move(callback)); } BLOG(3, "Successfully saved conversions state"); @@ -201,47 +201,60 @@ void EventHandler::OnSaveConversions(const SearchResultAdInfo& ad, const database::table::AdEvents database_table; database_table.GetForType( mojom::AdType::kSearchResultAd, - [=](const bool success, const AdEventList& ad_events) { - const mojom::SearchResultAdEventType event_type = - mojom::SearchResultAdEventType::kViewed; - - if (!success) { - BLOG(1, "Search result ad: Failed to get ad events"); - return FailedToFireEvent(ad, event_type, callback); - } - - if (!WasAdServed(ad, ad_events, event_type)) { - BLOG(1, - "Search result ad: Not allowed because an ad was not served " - "for placement id " - << ad.placement_id); - return FailedToFireEvent(ad, event_type, callback); - } - - if (ShouldDebounceAdEvent(ad, ad_events, event_type)) { - BLOG(1, "Search result ad: Not allowed as debounced " - << event_type << " event for placement id " - << ad.placement_id); - return FailedToFireEvent(ad, event_type, callback); - } - - FireEvent(ad, event_type, callback); - }); + base::BindOnce(&EventHandler::OnGetAdEventsForViewedSearchResultAd, + base::Unretained(this), ad, std::move(callback))); } -void EventHandler::FireClickedEvent( +void EventHandler::OnGetAdEventsForViewedSearchResultAd( const SearchResultAdInfo& ad, - const FireAdEventHandlerCallback& callback) const { + FireAdEventHandlerCallback callback, + const bool success, + const AdEventList& ad_events) const { + const mojom::SearchResultAdEventType event_type = + mojom::SearchResultAdEventType::kViewed; + + if (!success) { + BLOG(1, "Search result ad: Failed to get ad events"); + return FailedToFireEvent(ad, event_type, std::move(callback)); + } + + if (!WasAdServed(ad, ad_events, event_type)) { + BLOG(1, + "Search result ad: Not allowed because an ad was not served " + "for placement id " + << ad.placement_id); + return FailedToFireEvent(ad, event_type, std::move(callback)); + } + + if (ShouldDebounceAdEvent(ad, ad_events, event_type)) { + BLOG(1, "Search result ad: Not allowed as debounced " + << event_type << " event for placement id " << ad.placement_id); + return FailedToFireEvent(ad, event_type, std::move(callback)); + } + + FireEvent(ad, event_type, std::move(callback)); +} + +void EventHandler::FireClickedEvent(const SearchResultAdInfo& ad, + FireAdEventHandlerCallback callback) const { const database::table::AdEvents database_table; database_table.GetForType( mojom::AdType::kSearchResultAd, - [=](const bool success, const AdEventList& ad_events) { - const mojom::SearchResultAdEventType event_type = - mojom::SearchResultAdEventType::kClicked; + base::BindOnce(&EventHandler::OnGetAdEventsForClickedSearchResultAd, + base::Unretained(this), ad, std::move(callback))); +} + +void EventHandler::OnGetAdEventsForClickedSearchResultAd( + const SearchResultAdInfo& ad, + FireAdEventHandlerCallback callback, + const bool success, + const AdEventList& ad_events) const { + const mojom::SearchResultAdEventType event_type = + mojom::SearchResultAdEventType::kClicked; if (!success) { BLOG(1, "Search result ad: Failed to get ad events"); - return FailedToFireEvent(ad, event_type, callback); + return FailedToFireEvent(ad, event_type, std::move(callback)); } if (!WasAdServed(ad, ad_events, event_type)) { @@ -249,37 +262,36 @@ void EventHandler::FireClickedEvent( "Search result ad: Not allowed because an ad was not served " "for placement id " << ad.placement_id); - return FailedToFireEvent(ad, event_type, callback); + return FailedToFireEvent(ad, event_type, std::move(callback)); } if (ShouldDebounceAdEvent(ad, ad_events, event_type)) { BLOG(1, "Search result ad: Not allowed as debounced " << event_type << " event for placement id " << ad.placement_id); - return FailedToFireEvent(ad, event_type, callback); + return FailedToFireEvent(ad, event_type, std::move(callback)); } - FireEvent(ad, event_type, callback); - }); + FireEvent(ad, event_type, std::move(callback)); } void EventHandler::FailedToFireEvent( const SearchResultAdInfo& ad, const mojom::SearchResultAdEventType event_type, - const FireAdEventHandlerCallback& callback) const { + FireAdEventHandlerCallback callback) const { DCHECK(mojom::IsKnownEnumValue(event_type)); BLOG(1, "Failed to fire search result ad " << event_type << " event for placement_id " << ad.placement_id << " and creative instance id " << ad.creative_instance_id); - NotifySearchResultAdEventFailed(ad, event_type, callback); + NotifySearchResultAdEventFailed(ad, event_type, std::move(callback)); } void EventHandler::NotifySearchResultAdEvent( const SearchResultAdInfo& ad, const mojom::SearchResultAdEventType event_type, - const FireAdEventHandlerCallback& callback) const { + FireAdEventHandlerCallback callback) const { DCHECK(mojom::IsKnownEnumValue(event_type)); switch (event_type) { @@ -299,7 +311,7 @@ void EventHandler::NotifySearchResultAdEvent( } } - callback(/*success*/ true, ad.placement_id, event_type); + std::move(callback).Run(/*success*/ true, ad.placement_id, event_type); } void EventHandler::NotifySearchResultAdServed( @@ -326,14 +338,14 @@ void EventHandler::NotifySearchResultAdClicked( void EventHandler::NotifySearchResultAdEventFailed( const SearchResultAdInfo& ad, const mojom::SearchResultAdEventType event_type, - const FireAdEventHandlerCallback& callback) const { + FireAdEventHandlerCallback callback) const { DCHECK(mojom::IsKnownEnumValue(event_type)); for (EventHandlerObserver& observer : observers_) { observer.OnSearchResultAdEventFailed(ad, event_type); } - callback(/*success*/ false, ad.placement_id, event_type); + std::move(callback).Run(/*success*/ false, ad.placement_id, event_type); } } // namespace ads::search_result_ads diff --git a/vendor/bat-native-ads/src/bat/ads/internal/ads/ad_events/search_result_ads/search_result_ad_event_handler.h b/vendor/bat-native-ads/src/bat/ads/internal/ads/ad_events/search_result_ads/search_result_ad_event_handler.h index 41ff2b60148..d15cf81e2ac 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/ads/ad_events/search_result_ads/search_result_ad_event_handler.h +++ b/vendor/bat-native-ads/src/bat/ads/internal/ads/ad_events/search_result_ads/search_result_ad_event_handler.h @@ -6,10 +6,11 @@ #ifndef BRAVE_VENDOR_BAT_NATIVE_ADS_SRC_BAT_ADS_INTERNAL_ADS_AD_EVENTS_SEARCH_RESULT_ADS_SEARCH_RESULT_AD_EVENT_HANDLER_H_ #define BRAVE_VENDOR_BAT_NATIVE_ADS_SRC_BAT_ADS_INTERNAL_ADS_AD_EVENTS_SEARCH_RESULT_ADS_SEARCH_RESULT_AD_EVENT_HANDLER_H_ -#include #include +#include "base/functional/callback_forward.h" #include "base/observer_list.h" +#include "bat/ads/internal/ads/ad_events/ad_event_info.h" #include "bat/ads/internal/ads/ad_events/search_result_ads/search_result_ad_event_handler_observer.h" #include "bat/ads/public/interfaces/ads.mojom-forward.h" #include "bat/ads/public/interfaces/ads.mojom-shared.h" @@ -20,10 +21,8 @@ struct SearchResultAdInfo; namespace search_result_ads { -using FireAdEventHandlerCallback = - std::function; +using FireAdEventHandlerCallback = base::OnceCallback< + void(const bool, const std::string&, const mojom::SearchResultAdEventType)>; class EventHandler final : public EventHandlerObserver { public: @@ -42,40 +41,48 @@ class EventHandler final : public EventHandlerObserver { void FireEvent(mojom::SearchResultAdInfoPtr ad_mojom, mojom::SearchResultAdEventType event_type, - const FireAdEventHandlerCallback& callback) const; + FireAdEventHandlerCallback callback) const; private: void FireEvent(const SearchResultAdInfo& ad, mojom::SearchResultAdEventType event_type, - const FireAdEventHandlerCallback& callback) const; + FireAdEventHandlerCallback callback) const; void FireViewedEvent(mojom::SearchResultAdInfoPtr ad_mojom, - const FireAdEventHandlerCallback& callback) const; + FireAdEventHandlerCallback callback) const; void OnSaveDeposits(mojom::SearchResultAdInfoPtr ad_mojom, - const FireAdEventHandlerCallback& callback, + FireAdEventHandlerCallback callback, bool success) const; void OnSaveConversions(const SearchResultAdInfo& ad, - const FireAdEventHandlerCallback& callback, + FireAdEventHandlerCallback callback, bool success) const; + void OnGetAdEventsForViewedSearchResultAd(const SearchResultAdInfo& ad, + FireAdEventHandlerCallback callback, + bool success, + const AdEventList& ad_events) const; void FireClickedEvent(const SearchResultAdInfo& ad, - const FireAdEventHandlerCallback& callback) const; + FireAdEventHandlerCallback callback) const; + void OnGetAdEventsForClickedSearchResultAd( + const SearchResultAdInfo& ad, + FireAdEventHandlerCallback callback, + bool success, + const AdEventList& ad_events) const; void FailedToFireEvent(const SearchResultAdInfo& ad, mojom::SearchResultAdEventType event_type, - const FireAdEventHandlerCallback& callback) const; + FireAdEventHandlerCallback callback) const; - void NotifySearchResultAdEvent( - const SearchResultAdInfo& ad, - mojom::SearchResultAdEventType event_type, - const FireAdEventHandlerCallback& callback) const; + void NotifySearchResultAdEvent(const SearchResultAdInfo& ad, + mojom::SearchResultAdEventType event_type, + FireAdEventHandlerCallback callback) const; void NotifySearchResultAdServed(const SearchResultAdInfo& ad) const; void NotifySearchResultAdViewed(const SearchResultAdInfo& ad) const; void NotifySearchResultAdClicked(const SearchResultAdInfo& ad) const; void NotifySearchResultAdEventFailed( const SearchResultAdInfo& ad, mojom::SearchResultAdEventType event_type, - const FireAdEventHandlerCallback& callback) const; + FireAdEventHandlerCallback callback) const; base::ObserverList observers_; }; diff --git a/vendor/bat-native-ads/src/bat/ads/internal/ads/ad_events/search_result_ads/search_result_ad_event_handler_unittest.cc b/vendor/bat-native-ads/src/bat/ads/internal/ads/ad_events/search_result_ads/search_result_ad_event_handler_unittest.cc index 6312ae02c82..75f9caafb72 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/ads/ad_events/search_result_ads/search_result_ad_event_handler_unittest.cc +++ b/vendor/bat-native-ads/src/bat/ads/internal/ads/ad_events/search_result_ads/search_result_ad_event_handler_unittest.cc @@ -10,6 +10,7 @@ #include #include "absl/types/optional.h" +#include "base/functional/bind.h" #include "bat/ads/internal/account/deposits/deposit_info.h" #include "bat/ads/internal/account/deposits/deposits_database_table.h" #include "bat/ads/internal/ads/ad_events/ad_event_info.h" @@ -75,21 +76,24 @@ void ExpectDepositExistsForCreativeInstanceId( const database::table::Deposits database_table; database_table.GetForCreativeInstanceId( creative_instance_id, - [](const bool success, const absl::optional& deposit) { - ASSERT_TRUE(success); + base::BindOnce( + [](const bool success, const absl::optional& deposit) { + ASSERT_TRUE(success); - EXPECT_TRUE(deposit); - }); + EXPECT_TRUE(deposit); + })); } void ExpectConversionCountEquals(const size_t expected_count) { const database::table::Conversions database_table; - database_table.GetAll( - [expected_count](const bool success, const ConversionList& conversions) { + database_table.GetAll(base::BindOnce( + [](const size_t expected_count, const bool success, + const ConversionList& conversions) { ASSERT_TRUE(success); EXPECT_EQ(expected_count, conversions.size()); - }); + }, + expected_count)); } } // namespace @@ -114,8 +118,8 @@ class BatAdsSearchResultAdEventHandlerTest : public EventHandlerObserver, const mojom::SearchResultAdEventType event_type) { event_handler_->FireEvent( std::move(ad_mojom), event_type, - [](const bool success, const std::string& placement_id, - const mojom::SearchResultAdEventType event_type) {}); + base::BindOnce([](const bool success, const std::string& placement_id, + const mojom::SearchResultAdEventType event_type) {})); } void OnSearchResultAdServed(const SearchResultAdInfo& ad) override { diff --git a/vendor/bat-native-ads/src/bat/ads/internal/ads/search_result_ad.cc b/vendor/bat-native-ads/src/bat/ads/internal/ads/search_result_ad.cc index 4f7a9530567..aa928eedbd5 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/ads/search_result_ad.cc +++ b/vendor/bat-native-ads/src/bat/ads/internal/ads/search_result_ad.cc @@ -9,6 +9,7 @@ #include #include "base/check.h" +#include "base/functional/bind.h" #include "bat/ads/confirmation_type.h" #include "bat/ads/history_item_info.h" #include "bat/ads/internal/account/account.h" @@ -52,10 +53,10 @@ void SearchResultAd::TriggerEvent( event_handler_->FireEvent( std::move(ad_mojom), event_type, - [](const bool success, const std::string& placement_id, - const mojom::SearchResultAdEventType event_type) { + base::BindOnce([](const bool success, const std::string& placement_id, + const mojom::SearchResultAdEventType event_type) { // Intentionally do nothing. - }); + })); } // static @@ -90,19 +91,25 @@ void SearchResultAd::MaybeTriggerAdViewedEventFromQueue() { std::move(ad_viewed_event_queue_.back()); ad_viewed_event_queue_.pop_back(); - event_handler_->FireEvent( - std::move(ad_mojom), mojom::SearchResultAdEventType::kViewed, - [=](const bool /*success*/, const std::string& /*placement_id*/, - const mojom::SearchResultAdEventType event_type) { - DCHECK(mojom::IsKnownEnumValue(event_type)); + event_handler_->FireEvent(std::move(ad_mojom), + mojom::SearchResultAdEventType::kViewed, + base::BindOnce(&SearchResultAd::OnFireAdViewedEvent, + base::Unretained(this))); +} - if (g_defer_triggering_of_ad_viewed_event_for_testing) { - g_deferred_search_result_ad_for_testing = this; - return; - } - trigger_ad_viewed_event_in_progress_ = false; - MaybeTriggerAdViewedEventFromQueue(); - }); +void SearchResultAd::OnFireAdViewedEvent( + const bool /*success*/, + const std::string& /*placement_id*/, + const mojom::SearchResultAdEventType event_type) { + DCHECK(mojom::IsKnownEnumValue(event_type)); + DCHECK_EQ(event_type, mojom::SearchResultAdEventType::kViewed); + + if (g_defer_triggering_of_ad_viewed_event_for_testing) { + g_deferred_search_result_ad_for_testing = this; + return; + } + trigger_ad_viewed_event_in_progress_ = false; + MaybeTriggerAdViewedEventFromQueue(); } void SearchResultAd::OnSearchResultAdViewed(const SearchResultAdInfo& ad) { diff --git a/vendor/bat-native-ads/src/bat/ads/internal/ads/search_result_ad.h b/vendor/bat-native-ads/src/bat/ads/internal/ads/search_result_ad.h index a0f37e62c05..c370da41cb0 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/ads/search_result_ad.h +++ b/vendor/bat-native-ads/src/bat/ads/internal/ads/search_result_ad.h @@ -7,6 +7,7 @@ #define BRAVE_VENDOR_BAT_NATIVE_ADS_SRC_BAT_ADS_INTERNAL_ADS_SEARCH_RESULT_AD_H_ #include +#include #include "base/containers/circular_deque.h" #include "base/memory/raw_ptr.h" @@ -44,6 +45,9 @@ class SearchResultAd final : public search_result_ads::EventHandlerObserver { private: void MaybeTriggerAdViewedEventFromQueue(); + void OnFireAdViewedEvent(bool success, + const std::string& placement_id, + mojom::SearchResultAdEventType event_type); // search_result_ads::EventHandlerObserver: void OnSearchResultAdViewed(const SearchResultAdInfo& ad) override; diff --git a/vendor/bat-native-ads/src/bat/ads/internal/ads/serving/eligible_ads/eligible_ads_callback.h b/vendor/bat-native-ads/src/bat/ads/internal/ads/serving/eligible_ads/eligible_ads_callback.h index 6bf11115109..b24e24c7388 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/ads/serving/eligible_ads/eligible_ads_callback.h +++ b/vendor/bat-native-ads/src/bat/ads/internal/ads/serving/eligible_ads/eligible_ads_callback.h @@ -6,8 +6,6 @@ #ifndef BRAVE_VENDOR_BAT_NATIVE_ADS_SRC_BAT_ADS_INTERNAL_ADS_SERVING_ELIGIBLE_ADS_ELIGIBLE_ADS_CALLBACK_H_ #define BRAVE_VENDOR_BAT_NATIVE_ADS_SRC_BAT_ADS_INTERNAL_ADS_SERVING_ELIGIBLE_ADS_ELIGIBLE_ADS_CALLBACK_H_ -#include - #include "base/functional/callback.h" namespace ads { diff --git a/vendor/bat-native-ads/src/bat/ads/internal/conversions/conversion_queue_database_table.cc b/vendor/bat-native-ads/src/bat/ads/internal/conversions/conversion_queue_database_table.cc index 7c36b18b710..bfa92d10522 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/conversions/conversion_queue_database_table.cc +++ b/vendor/bat-native-ads/src/bat/ads/internal/conversions/conversion_queue_database_table.cc @@ -71,12 +71,12 @@ ConversionQueueItemInfo GetFromRecord(mojom::DBRecordInfo* record) { return conversion_queue_item; } -void OnGetAll(const GetConversionQueueCallback& callback, +void OnGetAll(GetConversionQueueCallback callback, mojom::DBCommandResponseInfoPtr response) { if (!response || response->status != mojom::DBCommandResponseInfo::StatusType::RESPONSE_OK) { BLOG(0, "Failed to get conversion queue"); - callback(/*success*/ false, {}); + std::move(callback).Run(/*success*/ false, {}); return; } @@ -88,17 +88,17 @@ void OnGetAll(const GetConversionQueueCallback& callback, conversion_queue_items.push_back(conversion_queue_item); } - callback(/*success*/ true, conversion_queue_items); + std::move(callback).Run(/*success*/ true, conversion_queue_items); } void OnGetForCreativeInstanceId( const std::string& creative_instance_id, - const GetConversionQueueForCreativeInstanceIdCallback& callback, + GetConversionQueueForCreativeInstanceIdCallback callback, mojom::DBCommandResponseInfoPtr response) { if (!response || response->status != mojom::DBCommandResponseInfo::StatusType::RESPONSE_OK) { BLOG(0, "Failed to get conversion queue"); - callback(/*success*/ false, creative_instance_id, {}); + std::move(callback).Run(/*success*/ false, creative_instance_id, {}); return; } @@ -110,7 +110,8 @@ void OnGetForCreativeInstanceId( conversion_queue_items.push_back(conversion_queue_item); } - callback(/*success*/ true, creative_instance_id, conversion_queue_items); + std::move(callback).Run(/*success*/ true, creative_instance_id, + conversion_queue_items); } void MigrateToV10(mojom::DBTransactionInfo* transaction) { @@ -337,7 +338,7 @@ void ConversionQueue::GetAll(GetConversionQueueCallback callback) const { transaction->commands.push_back(std::move(command)); AdsClientHelper::GetInstance()->RunDBTransaction( - std::move(transaction), base::BindOnce(&OnGetAll, callback)); + std::move(transaction), base::BindOnce(&OnGetAll, std::move(callback))); } void ConversionQueue::GetUnprocessed( @@ -380,14 +381,14 @@ void ConversionQueue::GetUnprocessed( transaction->commands.push_back(std::move(command)); AdsClientHelper::GetInstance()->RunDBTransaction( - std::move(transaction), base::BindOnce(&OnGetAll, callback)); + std::move(transaction), base::BindOnce(&OnGetAll, std::move(callback))); } void ConversionQueue::GetForCreativeInstanceId( const std::string& creative_instance_id, GetConversionQueueForCreativeInstanceIdCallback callback) const { if (creative_instance_id.empty()) { - callback(/*success*/ false, creative_instance_id, {}); + std::move(callback).Run(/*success*/ false, creative_instance_id, {}); return; } @@ -429,8 +430,9 @@ void ConversionQueue::GetForCreativeInstanceId( transaction->commands.push_back(std::move(command)); AdsClientHelper::GetInstance()->RunDBTransaction( - std::move(transaction), base::BindOnce(&OnGetForCreativeInstanceId, - creative_instance_id, callback)); + std::move(transaction), + base::BindOnce(&OnGetForCreativeInstanceId, creative_instance_id, + std::move(callback))); } std::string ConversionQueue::GetTableName() const { diff --git a/vendor/bat-native-ads/src/bat/ads/internal/conversions/conversion_queue_database_table.h b/vendor/bat-native-ads/src/bat/ads/internal/conversions/conversion_queue_database_table.h index 161e44dfd68..34dba1fd4b4 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/conversions/conversion_queue_database_table.h +++ b/vendor/bat-native-ads/src/bat/ads/internal/conversions/conversion_queue_database_table.h @@ -6,10 +6,10 @@ #ifndef BRAVE_VENDOR_BAT_NATIVE_ADS_SRC_BAT_ADS_INTERNAL_CONVERSIONS_CONVERSION_QUEUE_DATABASE_TABLE_H_ #define BRAVE_VENDOR_BAT_NATIVE_ADS_SRC_BAT_ADS_INTERNAL_CONVERSIONS_CONVERSION_QUEUE_DATABASE_TABLE_H_ -#include #include #include "base/check_op.h" +#include "base/functional/callback_forward.h" #include "bat/ads/ads_client_callback.h" #include "bat/ads/internal/conversions/conversion_queue_item_info.h" #include "bat/ads/internal/database/database_table_interface.h" @@ -18,12 +18,12 @@ namespace ads::database::table { using GetConversionQueueCallback = - std::function; + base::OnceCallback; using GetConversionQueueForCreativeInstanceIdCallback = - std::function; + base::OnceCallback; class ConversionQueue final : public TableInterface { public: diff --git a/vendor/bat-native-ads/src/bat/ads/internal/conversions/conversion_queue_database_table_unittest.cc b/vendor/bat-native-ads/src/bat/ads/internal/conversions/conversion_queue_database_table_unittest.cc index 9ee914b114e..8119650b872 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/conversions/conversion_queue_database_table_unittest.cc +++ b/vendor/bat-native-ads/src/bat/ads/internal/conversions/conversion_queue_database_table_unittest.cc @@ -6,6 +6,7 @@ #include "bat/ads/internal/conversions/conversion_queue_database_table.h" #include +#include #include "base/functional/bind.h" #include "bat/ads/internal/common/unittest/unittest_base.h" @@ -66,13 +67,14 @@ TEST_F(BatAdsConversionQueueDatabaseTableTest, SaveConversionQueue) { const ConversionQueueItemList expected_conversion_queue_items = conversion_queue_items; - database_table_->GetAll( - [&expected_conversion_queue_items]( - const bool success, - const ConversionQueueItemList& conversion_queue_items) { + database_table_->GetAll(base::BindOnce( + [](const ConversionQueueItemList& expected_conversion_queue_items, + const bool success, + const ConversionQueueItemList& conversion_queue_items) { ASSERT_TRUE(success); EXPECT_EQ(expected_conversion_queue_items, conversion_queue_items); - }); + }, + expected_conversion_queue_items)); } TEST_F(BatAdsConversionQueueDatabaseTableTest, @@ -97,13 +99,14 @@ TEST_F(BatAdsConversionQueueDatabaseTableTest, // Assert const ConversionQueueItemList expected_conversion_queue_items = {info, info}; - database_table_->GetAll( - [&expected_conversion_queue_items]( - const bool success, - const ConversionQueueItemList& conversion_queue_items) { + database_table_->GetAll(base::BindOnce( + [](const ConversionQueueItemList& expected_conversion_queue_items, + const bool success, + const ConversionQueueItemList& conversion_queue_items) { ASSERT_TRUE(success); EXPECT_EQ(expected_conversion_queue_items, conversion_queue_items); - }); + }, + expected_conversion_queue_items)); } TEST_F(BatAdsConversionQueueDatabaseTableTest, @@ -147,13 +150,14 @@ TEST_F(BatAdsConversionQueueDatabaseTableTest, const ConversionQueueItemList expected_conversion_queue_items = conversion_queue_items; - database_table_->GetAll( - [&expected_conversion_queue_items]( - const bool success, - const ConversionQueueItemList& conversion_queue_items) { + database_table_->GetAll(base::BindOnce( + [](const ConversionQueueItemList& expected_conversion_queue_items, + const bool success, + const ConversionQueueItemList& conversion_queue_items) { ASSERT_TRUE(success); EXPECT_EQ(expected_conversion_queue_items, conversion_queue_items); - }); + }, + expected_conversion_queue_items)); } TEST_F(BatAdsConversionQueueDatabaseTableTest, @@ -191,12 +195,14 @@ TEST_F(BatAdsConversionQueueDatabaseTableTest, database_table_->GetForCreativeInstanceId( creative_instance_id, - [&expected_conversion_queue_items]( - const bool success, const std::string& /*creative_instance_id*/, - const ConversionQueueItemList& conversion_queue_items) { - ASSERT_TRUE(success); - EXPECT_EQ(expected_conversion_queue_items, conversion_queue_items); - }); + base::BindOnce( + [](const ConversionQueueItemList& expected_conversion_queue_items, + const bool success, const std::string& /*creative_instance_id*/, + const ConversionQueueItemList& conversion_queue_items) { + ASSERT_TRUE(success); + EXPECT_EQ(expected_conversion_queue_items, conversion_queue_items); + }, + expected_conversion_queue_items)); } TEST_F(BatAdsConversionQueueDatabaseTableTest, @@ -230,13 +236,14 @@ TEST_F(BatAdsConversionQueueDatabaseTableTest, // Assert const ConversionQueueItemList expected_conversion_queue_items = {info_2}; - database_table_->GetUnprocessed( - [&expected_conversion_queue_items]( - const bool success, - const ConversionQueueItemList& conversion_queue_items) { + database_table_->GetUnprocessed(base::BindOnce( + [](const ConversionQueueItemList& expected_conversion_queue_items, + const bool success, + const ConversionQueueItemList& conversion_queue_items) { ASSERT_TRUE(success); EXPECT_EQ(expected_conversion_queue_items, conversion_queue_items); - }); + }, + expected_conversion_queue_items)); } TEST_F(BatAdsConversionQueueDatabaseTableTest, @@ -279,13 +286,14 @@ TEST_F(BatAdsConversionQueueDatabaseTableTest, const ConversionQueueItemList expected_conversion_queue_items = { info_2, info_3, info_1}; - database_table_->GetAll( - [&expected_conversion_queue_items]( - const bool success, - const ConversionQueueItemList& conversion_queue_items) { + database_table_->GetAll(base::BindOnce( + [](const ConversionQueueItemList& expected_conversion_queue_items, + const bool success, + const ConversionQueueItemList& conversion_queue_items) { ASSERT_TRUE(success); EXPECT_EQ(expected_conversion_queue_items, conversion_queue_items); - }); + }, + expected_conversion_queue_items)); } TEST_F(BatAdsConversionQueueDatabaseTableTest, DeleteConversionQueueItem) { @@ -319,13 +327,14 @@ TEST_F(BatAdsConversionQueueDatabaseTableTest, DeleteConversionQueueItem) { // Assert const ConversionQueueItemList expected_conversion_queue_items = {info_2}; - database_table_->GetAll( - [&expected_conversion_queue_items]( - const bool success, - const ConversionQueueItemList& conversion_queue_items) { + database_table_->GetAll(base::BindOnce( + [](const ConversionQueueItemList& expected_conversion_queue_items, + const bool success, + const ConversionQueueItemList& conversion_queue_items) { ASSERT_TRUE(success); EXPECT_EQ(expected_conversion_queue_items, conversion_queue_items); - }); + }, + expected_conversion_queue_items)); } TEST_F(BatAdsConversionQueueDatabaseTableTest, @@ -373,13 +382,14 @@ TEST_F(BatAdsConversionQueueDatabaseTableTest, const ConversionQueueItemList expected_conversion_queue_items = conversion_queue_items; - database_table_->GetAll( - [&expected_conversion_queue_items]( - const bool success, - const ConversionQueueItemList& conversion_queue_items) { + database_table_->GetAll(base::BindOnce( + [](const ConversionQueueItemList& expected_conversion_queue_items, + const bool success, + const ConversionQueueItemList& conversion_queue_items) { ASSERT_TRUE(success); EXPECT_EQ(expected_conversion_queue_items, conversion_queue_items); - }); + }, + expected_conversion_queue_items)); } TEST_F(BatAdsConversionQueueDatabaseTableTest, UpdateConversionQueueItem) { @@ -413,13 +423,14 @@ TEST_F(BatAdsConversionQueueDatabaseTableTest, UpdateConversionQueueItem) { // Assert const ConversionQueueItemList expected_conversion_queue_items = {info_2}; - database_table_->GetUnprocessed( - [&expected_conversion_queue_items]( - const bool success, - const ConversionQueueItemList& conversion_queue_items) { + database_table_->GetUnprocessed(base::BindOnce( + [](const ConversionQueueItemList& expected_conversion_queue_items, + const bool success, + const ConversionQueueItemList& conversion_queue_items) { ASSERT_TRUE(success); EXPECT_EQ(expected_conversion_queue_items, conversion_queue_items); - }); + }, + expected_conversion_queue_items)); } TEST_F(BatAdsConversionQueueDatabaseTableTest, @@ -467,13 +478,14 @@ TEST_F(BatAdsConversionQueueDatabaseTableTest, const ConversionQueueItemList expected_conversion_queue_items = conversion_queue_items; - database_table_->GetAll( - [&expected_conversion_queue_items]( - const bool success, - const ConversionQueueItemList& conversion_queue_items) { + database_table_->GetAll(base::BindOnce( + [](const ConversionQueueItemList& expected_conversion_queue_items, + const bool success, + const ConversionQueueItemList& conversion_queue_items) { ASSERT_TRUE(success); EXPECT_EQ(expected_conversion_queue_items, conversion_queue_items); - }); + }, + expected_conversion_queue_items)); } TEST_F(BatAdsConversionQueueDatabaseTableTest, TableName) { diff --git a/vendor/bat-native-ads/src/bat/ads/internal/conversions/conversions.cc b/vendor/bat-native-ads/src/bat/ads/internal/conversions/conversions.cc index 60b4c369c37..39c2e211e15 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/conversions/conversions.cc +++ b/vendor/bat-native-ads/src/bat/ads/internal/conversions/conversions.cc @@ -6,6 +6,7 @@ #include "bat/ads/internal/conversions/conversions.h" #include +#include #include "base/check.h" #include "base/functional/bind.h" @@ -13,15 +14,12 @@ #include "base/ranges/algorithm.h" #include "base/time/time.h" #include "bat/ads/internal/account/account_util.h" -#include "bat/ads/internal/ads/ad_events/ad_event_info.h" #include "bat/ads/internal/ads/ad_events/ad_events.h" #include "bat/ads/internal/ads/ad_events/ad_events_database_table.h" #include "bat/ads/internal/common/logging_util.h" #include "bat/ads/internal/common/time/time_formatting_util.h" #include "bat/ads/internal/common/url/url_util.h" -#include "bat/ads/internal/conversions/conversion_info.h" #include "bat/ads/internal/conversions/conversion_queue_database_table.h" -#include "bat/ads/internal/conversions/conversion_queue_item_info.h" #include "bat/ads/internal/conversions/conversions_database_table.h" #include "bat/ads/internal/conversions/conversions_features.h" #include "bat/ads/internal/conversions/sorts/conversions_sort_factory.h" @@ -252,28 +250,31 @@ void Conversions::MaybeConvert( void Conversions::Process() { const database::table::ConversionQueue database_table; - database_table.GetUnprocessed( - [=](const bool success, - const ConversionQueueItemList& conversion_queue_items) { - if (!success) { - BLOG(1, "Failed to get unprocessed conversions"); - return; - } - - if (conversion_queue_items.empty()) { - BLOG(1, "Conversion queue is empty"); - return; - } - - const ConversionQueueItemInfo& conversion_queue_item = - conversion_queue_items.front(); - - StartTimer(conversion_queue_item); - }); + database_table.GetUnprocessed(base::BindOnce( + &Conversions::OnGetUnprocessedConversions, base::Unretained(this))); } /////////////////////////////////////////////////////////////////////////////// +void Conversions::OnGetUnprocessedConversions( + const bool success, + const ConversionQueueItemList& conversion_queue_items) { + if (!success) { + BLOG(1, "Failed to get unprocessed conversions"); + return; + } + + if (conversion_queue_items.empty()) { + BLOG(1, "Conversion queue is empty"); + return; + } + + const ConversionQueueItemInfo& conversion_queue_item = + conversion_queue_items.front(); + + StartTimer(conversion_queue_item); +} + void Conversions::CheckRedirectChain( const std::vector& redirect_chain, const std::string& html, @@ -281,72 +282,88 @@ void Conversions::CheckRedirectChain( BLOG(1, "Checking URL for conversions"); const database::table::AdEvents ad_events_database_table; - ad_events_database_table.GetAll([=](const bool success, - const AdEventList& ad_events) { - if (!success) { - BLOG(1, "Failed to get ad events"); - return; + ad_events_database_table.GetAll( + base::BindOnce(&Conversions::OnGetAllAdEvents, base::Unretained(this), + redirect_chain, html, conversion_id_patterns)); +} + +void Conversions::OnGetAllAdEvents( + std::vector redirect_chain, + std::string html, + ConversionIdPatternMap conversion_id_patterns, + const bool success, + const AdEventList& ad_events) { + if (!success) { + BLOG(1, "Failed to get ad events"); + return; + } + + const database::table::Conversions conversions_database_table; + conversions_database_table.GetAll( + base::BindOnce(&Conversions::OnGetAllConversions, base::Unretained(this), + std::move(redirect_chain), std::move(html), + std::move(conversion_id_patterns), ad_events)); +} + +void Conversions::OnGetAllConversions( + const std::vector& redirect_chain, + const std::string& html, + const ConversionIdPatternMap& conversion_id_patterns, + const AdEventList& ad_events, + const bool success, + const ConversionList& conversions) { + if (!success) { + BLOG(1, "Failed to get conversions"); + return; + } + + if (conversions.empty()) { + BLOG(1, "There are no conversions"); + return; + } + + // Filter conversions by url pattern + ConversionList filtered_conversions = + FilterConversions(redirect_chain, conversions); + + // Sort conversions in descending order + filtered_conversions = SortConversions(filtered_conversions); + + // Create list of creative set ids for already converted ads + std::set creative_set_ids = GetConvertedCreativeSets(ad_events); + + bool converted = false; + + // Check for conversions + for (const auto& conversion : filtered_conversions) { + const AdEventList filtered_ad_events = + FilterAdEventsForConversion(ad_events, conversion); + + for (const auto& ad_event : filtered_ad_events) { + if (creative_set_ids.find(conversion.creative_set_id) != + creative_set_ids.cend()) { + // Creative set id has already been converted + continue; + } + + creative_set_ids.insert(ad_event.creative_set_id); + + VerifiableConversionInfo verifiable_conversion; + verifiable_conversion.id = ExtractConversionIdFromText( + html, redirect_chain, conversion.url_pattern, conversion_id_patterns); + verifiable_conversion.public_key = conversion.advertiser_public_key; + + Convert(ad_event, verifiable_conversion); + + converted = true; } + } - const database::table::Conversions conversions_database_table; - conversions_database_table.GetAll([=](const bool success, - const ConversionList& conversions) { - if (!success) { - BLOG(1, "Failed to get conversions"); - return; - } - - if (conversions.empty()) { - BLOG(1, "There are no conversions"); - return; - } - - // Filter conversions by url pattern - ConversionList filtered_conversions = - FilterConversions(redirect_chain, conversions); - - // Sort conversions in descending order - filtered_conversions = SortConversions(filtered_conversions); - - // Create list of creative set ids for already converted ads - std::set creative_set_ids = - GetConvertedCreativeSets(ad_events); - - bool converted = false; - - // Check for conversions - for (const auto& conversion : filtered_conversions) { - const AdEventList filtered_ad_events = - FilterAdEventsForConversion(ad_events, conversion); - - for (const auto& ad_event : filtered_ad_events) { - if (creative_set_ids.find(conversion.creative_set_id) != - creative_set_ids.cend()) { - // Creative set id has already been converted - continue; - } - - creative_set_ids.insert(ad_event.creative_set_id); - - VerifiableConversionInfo verifiable_conversion; - verifiable_conversion.id = ExtractConversionIdFromText( - html, redirect_chain, conversion.url_pattern, - conversion_id_patterns); - verifiable_conversion.public_key = conversion.advertiser_public_key; - - Convert(ad_event, verifiable_conversion); - - converted = true; - } - } - - if (!converted) { - BLOG(1, "There were no conversion matches"); - } else { - BLOG(1, "There was a conversion match"); - } - }); - }); + if (!converted) { + BLOG(1, "There were no conversion matches"); + } else { + BLOG(1, "There was a conversion match"); + } } void Conversions::Convert( @@ -457,24 +474,27 @@ void Conversions::ConvertedQueueItem( void Conversions::ProcessQueue() { const database::table::ConversionQueue database_table; - database_table.GetUnprocessed( - [=](const bool success, - const ConversionQueueItemList& conversion_queue_items) { - if (!success) { - BLOG(1, "Failed to get conversion queue"); - return; - } + database_table.GetUnprocessed(base::BindOnce( + &Conversions::OnGetConversionQueue, base::Unretained(this))); +} - if (conversion_queue_items.empty()) { - BLOG(1, "Conversion queue is empty"); - return; - } +void Conversions::OnGetConversionQueue( + const bool success, + const ConversionQueueItemList& conversion_queue_items) { + if (!success) { + BLOG(1, "Failed to get conversion queue"); + return; + } - const ConversionQueueItemInfo& conversion_queue_item = - conversion_queue_items.front(); + if (conversion_queue_items.empty()) { + BLOG(1, "Conversion queue is empty"); + return; + } - ProcessQueueItem(conversion_queue_item); - }); + const ConversionQueueItemInfo& conversion_queue_item = + conversion_queue_items.front(); + + ProcessQueueItem(conversion_queue_item); } void Conversions::RemoveInvalidQueueItem( diff --git a/vendor/bat-native-ads/src/bat/ads/internal/conversions/conversions.h b/vendor/bat-native-ads/src/bat/ads/internal/conversions/conversions.h index 443b8db07b7..7ed2564445a 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/conversions/conversions.h +++ b/vendor/bat-native-ads/src/bat/ads/internal/conversions/conversions.h @@ -12,7 +12,10 @@ #include #include "base/observer_list.h" +#include "bat/ads/internal/ads/ad_events/ad_event_info.h" #include "bat/ads/internal/common/timer/timer.h" +#include "bat/ads/internal/conversions/conversion_info.h" +#include "bat/ads/internal/conversions/conversion_queue_item_info.h" #include "bat/ads/internal/conversions/conversions_observer.h" #include "bat/ads/internal/locale/locale_manager_observer.h" #include "bat/ads/internal/resources/behavioral/conversions/conversion_id_pattern_info.h" @@ -28,7 +31,6 @@ class Conversions; } // namespace resource struct AdEventInfo; -struct ConversionQueueItemInfo; struct VerifiableConversionInfo; class Conversions final : public LocaleManagerObserver, @@ -57,9 +59,24 @@ class Conversions final : public LocaleManagerObserver, void Process(); private: + void OnGetUnprocessedConversions( + bool success, + const ConversionQueueItemList& conversion_queue_items); + void CheckRedirectChain(const std::vector& redirect_chain, const std::string& html, const ConversionIdPatternMap& conversion_id_patterns); + void OnGetAllAdEvents(std::vector redirect_chain, + std::string html, + ConversionIdPatternMap conversion_id_patterns, + bool success, + const AdEventList& ad_events); + void OnGetAllConversions(const std::vector& redirect_chain, + const std::string& html, + const ConversionIdPatternMap& conversion_id_patterns, + const AdEventList& ad_events, + bool success, + const ConversionList& conversions); void Convert(const AdEventInfo& ad_event, const VerifiableConversionInfo& verifiable_conversion); @@ -69,6 +86,9 @@ class Conversions final : public LocaleManagerObserver, void OnSaveConversionQueue(bool success); void ProcessQueueItem(const ConversionQueueItemInfo& queue_item); + void OnGetConversionQueue( + bool success, + const ConversionQueueItemList& conversion_queue_items); void ProcessQueue(); void RemoveInvalidQueueItem( diff --git a/vendor/bat-native-ads/src/bat/ads/internal/conversions/conversions_database_table.cc b/vendor/bat-native-ads/src/bat/ads/internal/conversions/conversions_database_table.cc index 7fe0d597d04..1fad50cd346 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/conversions/conversions_database_table.cc +++ b/vendor/bat-native-ads/src/bat/ads/internal/conversions/conversions_database_table.cc @@ -62,12 +62,12 @@ ConversionInfo GetFromRecord(mojom::DBRecordInfo* record) { return conversion; } -void OnGetConversions(const GetConversionsCallback& callback, +void OnGetConversions(GetConversionsCallback callback, mojom::DBCommandResponseInfoPtr response) { if (!response || response->status != mojom::DBCommandResponseInfo::StatusType::RESPONSE_OK) { BLOG(0, "Failed to get creative conversions"); - callback(/*success*/ false, {}); + std::move(callback).Run(/*success*/ false, {}); return; } @@ -78,7 +78,7 @@ void OnGetConversions(const GetConversionsCallback& callback, conversions.push_back(conversion); } - callback(/*success*/ true, conversions); + std::move(callback).Run(/*success*/ true, conversions); } void MigrateToV23(mojom::DBTransactionInfo* transaction) { @@ -153,7 +153,8 @@ void Conversions::GetAll(GetConversionsCallback callback) const { transaction->commands.push_back(std::move(command)); AdsClientHelper::GetInstance()->RunDBTransaction( - std::move(transaction), base::BindOnce(&OnGetConversions, callback)); + std::move(transaction), + base::BindOnce(&OnGetConversions, std::move(callback))); } void Conversions::PurgeExpired(ResultCallback callback) const { diff --git a/vendor/bat-native-ads/src/bat/ads/internal/conversions/conversions_database_table.h b/vendor/bat-native-ads/src/bat/ads/internal/conversions/conversions_database_table.h index e8cf6d8e7fc..fc40f3e74ce 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/conversions/conversions_database_table.h +++ b/vendor/bat-native-ads/src/bat/ads/internal/conversions/conversions_database_table.h @@ -6,9 +6,9 @@ #ifndef BRAVE_VENDOR_BAT_NATIVE_ADS_SRC_BAT_ADS_INTERNAL_CONVERSIONS_CONVERSIONS_DATABASE_TABLE_H_ #define BRAVE_VENDOR_BAT_NATIVE_ADS_SRC_BAT_ADS_INTERNAL_CONVERSIONS_CONVERSIONS_DATABASE_TABLE_H_ -#include #include +#include "base/functional/callback_forward.h" #include "bat/ads/ads_client_callback.h" #include "bat/ads/internal/conversions/conversion_info.h" #include "bat/ads/internal/database/database_table_interface.h" @@ -17,7 +17,7 @@ namespace ads::database::table { using GetConversionsCallback = - std::function; + base::OnceCallback; class Conversions final : public TableInterface { public: diff --git a/vendor/bat-native-ads/src/bat/ads/internal/conversions/conversions_database_table_test.cc b/vendor/bat-native-ads/src/bat/ads/internal/conversions/conversions_database_table_test.cc index b83ca9d4543..7b72b16c989 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/conversions/conversions_database_table_test.cc +++ b/vendor/bat-native-ads/src/bat/ads/internal/conversions/conversions_database_table_test.cc @@ -5,6 +5,7 @@ #include "bat/ads/internal/conversions/conversions_database_table.h" +#include "base/functional/bind.h" #include "bat/ads/internal/common/unittest/unittest_base.h" #include "bat/ads/internal/common/unittest/unittest_mock_util.h" #include "net/http/http_status_code.h" @@ -34,10 +35,11 @@ TEST_F(BatAdsConversionsDatabaseTableIntegrationTest, // Assert const database::table::Conversions conversions; - conversions.GetAll([](const bool success, const ConversionList& conversions) { - EXPECT_TRUE(success); - EXPECT_EQ(2UL, conversions.size()); - }); + conversions.GetAll( + base::BindOnce([](const bool success, const ConversionList& conversions) { + EXPECT_TRUE(success); + EXPECT_EQ(2UL, conversions.size()); + })); } } // namespace ads diff --git a/vendor/bat-native-ads/src/bat/ads/internal/conversions/conversions_database_table_unittest.cc b/vendor/bat-native-ads/src/bat/ads/internal/conversions/conversions_database_table_unittest.cc index 415882da799..8cb2a21cda4 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/conversions/conversions_database_table_unittest.cc +++ b/vendor/bat-native-ads/src/bat/ads/internal/conversions/conversions_database_table_unittest.cc @@ -43,14 +43,13 @@ TEST_F(BatAdsConversionsDatabaseTableTest, EmptySave) { SaveConversions(conversions); // Assert - const ConversionList expected_conversions = conversions; - - database_table_->GetAll( - [&expected_conversions](const bool success, - const ConversionList& conversions) { + database_table_->GetAll(base::BindOnce( + [](const ConversionList& expected_conversions, const bool success, + const ConversionList& conversions) { ASSERT_TRUE(success); - EXPECT_TRUE(ContainersEq(expected_conversions, conversions)); - }); + EXPECT_TRUE(CompareAsSets(expected_conversions, conversions)); + }, + conversions)); } TEST_F(BatAdsConversionsDatabaseTableTest, SaveConversions) { @@ -79,12 +78,13 @@ TEST_F(BatAdsConversionsDatabaseTableTest, SaveConversions) { // Assert const ConversionList expected_conversions = conversions; - database_table_->GetAll( - [&expected_conversions](const bool success, - const ConversionList& conversions) { + database_table_->GetAll(base::BindOnce( + [](const ConversionList& expected_conversions, const bool success, + const ConversionList& conversions) { ASSERT_TRUE(success); - EXPECT_TRUE(ContainersEq(expected_conversions, conversions)); - }); + EXPECT_TRUE(CompareAsSets(expected_conversions, conversions)); + }, + expected_conversions)); } TEST_F(BatAdsConversionsDatabaseTableTest, DoNotSaveDuplicateConversion) { @@ -107,12 +107,13 @@ TEST_F(BatAdsConversionsDatabaseTableTest, DoNotSaveDuplicateConversion) { // Assert const ConversionList expected_conversions = conversions; - database_table_->GetAll( - [&expected_conversions](const bool success, - const ConversionList& conversions) { + database_table_->GetAll(base::BindOnce( + [](const ConversionList& expected_conversions, const bool success, + const ConversionList& conversions) { ASSERT_TRUE(success); - EXPECT_TRUE(ContainersEq(expected_conversions, conversions)); - }); + EXPECT_TRUE(CompareAsSets(expected_conversions, conversions)); + }, + expected_conversions)); } TEST_F(BatAdsConversionsDatabaseTableTest, PurgeExpiredConversions) { @@ -155,12 +156,13 @@ TEST_F(BatAdsConversionsDatabaseTableTest, PurgeExpiredConversions) { expected_conversions.push_back(info_1); expected_conversions.push_back(info_3); - database_table_->GetAll( - [&expected_conversions](const bool success, - const ConversionList& conversions) { + database_table_->GetAll(base::BindOnce( + [](const ConversionList& expected_conversions, const bool success, + const ConversionList& conversions) { ASSERT_TRUE(success); - EXPECT_TRUE(ContainersEq(expected_conversions, conversions)); - }); + EXPECT_TRUE(CompareAsSets(expected_conversions, conversions)); + }, + expected_conversions)); } TEST_F(BatAdsConversionsDatabaseTableTest, @@ -193,12 +195,13 @@ TEST_F(BatAdsConversionsDatabaseTableTest, ConversionList expected_conversions; expected_conversions.push_back(info_2); - database_table_->GetAll( - [&expected_conversions](const bool success, - const ConversionList& conversions) { + database_table_->GetAll(base::BindOnce( + [](const ConversionList& expected_conversions, const bool success, + const ConversionList& conversions) { ASSERT_TRUE(success); - EXPECT_TRUE(ContainersEq(expected_conversions, conversions)); - }); + EXPECT_TRUE(CompareAsSets(expected_conversions, conversions)); + }, + expected_conversions)); } TEST_F(BatAdsConversionsDatabaseTableTest, TableName) { diff --git a/vendor/bat-native-ads/src/bat/ads/internal/conversions/conversions_unittest.cc b/vendor/bat-native-ads/src/bat/ads/internal/conversions/conversions_unittest.cc index 79b06ad62fe..e76107d4bb9 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/conversions/conversions_unittest.cc +++ b/vendor/bat-native-ads/src/bat/ads/internal/conversions/conversions_unittest.cc @@ -5,6 +5,9 @@ #include "bat/ads/internal/conversions/conversions.h" +#include + +#include "base/functional/bind.h" #include "base/strings/stringprintf.h" #include "bat/ads/internal/ads/ad_events/ad_event_unittest_util.h" #include "bat/ads/internal/ads/ad_events/ad_events_database_table.h" @@ -81,11 +84,12 @@ TEST_F(BatAdsConversionsTest, conversion.creative_set_id.c_str()); ad_events_database_table_->GetIf( - condition, [](const bool success, const AdEventList& ad_events) { + condition, + base::BindOnce([](const bool success, const AdEventList& ad_events) { ASSERT_TRUE(success); EXPECT_TRUE(ad_events.empty()); - }); + })); } TEST_F(BatAdsConversionsTest, ConvertViewedNotificationAdWhenAdsAreEnabled) { @@ -116,15 +120,18 @@ TEST_F(BatAdsConversionsTest, ConvertViewedNotificationAdWhenAdsAreEnabled) { conversion.creative_set_id.c_str()); ad_events_database_table_->GetIf( - condition, - [&conversion](const bool success, const AdEventList& ad_events) { - ASSERT_TRUE(success); + condition, base::BindOnce( + [](const ConversionInfo& conversion, const bool success, + const AdEventList& ad_events) { + ASSERT_TRUE(success); - EXPECT_EQ(1UL, ad_events.size()); + EXPECT_EQ(1UL, ad_events.size()); - const AdEventInfo& ad_event = ad_events.front(); - EXPECT_EQ(conversion.creative_set_id, ad_event.creative_set_id); - }); + const AdEventInfo& ad_event = ad_events.front(); + EXPECT_EQ(conversion.creative_set_id, + ad_event.creative_set_id); + }, + std::move(conversion))); } TEST_F(BatAdsConversionsTest, @@ -159,11 +166,12 @@ TEST_F(BatAdsConversionsTest, conversion.creative_set_id.c_str()); ad_events_database_table_->GetIf( - condition, [](const bool success, const AdEventList& ad_events) { + condition, + base::BindOnce([](const bool success, const AdEventList& ad_events) { ASSERT_TRUE(success); EXPECT_TRUE(ad_events.empty()); - }); + })); } TEST_F(BatAdsConversionsTest, ConvertClickedNotificationAdWhenAdsAreEnabled) { @@ -197,15 +205,18 @@ TEST_F(BatAdsConversionsTest, ConvertClickedNotificationAdWhenAdsAreEnabled) { conversion.creative_set_id.c_str()); ad_events_database_table_->GetIf( - condition, - [&conversion](const bool success, const AdEventList& ad_events) { - ASSERT_TRUE(success); + condition, base::BindOnce( + [](const ConversionInfo& conversion, const bool success, + const AdEventList& ad_events) { + ASSERT_TRUE(success); - EXPECT_EQ(1UL, ad_events.size()); + EXPECT_EQ(1UL, ad_events.size()); - const AdEventInfo& ad_event = ad_events.front(); - EXPECT_EQ(conversion.creative_set_id, ad_event.creative_set_id); - }); + const AdEventInfo& ad_event = ad_events.front(); + EXPECT_EQ(conversion.creative_set_id, + ad_event.creative_set_id); + }, + std::move(conversion))); } TEST_F(BatAdsConversionsTest, @@ -237,11 +248,12 @@ TEST_F(BatAdsConversionsTest, conversion.creative_set_id.c_str()); ad_events_database_table_->GetIf( - condition, [](const bool success, const AdEventList& ad_events) { + condition, + base::BindOnce([](const bool success, const AdEventList& ad_events) { ASSERT_TRUE(success); EXPECT_TRUE(ad_events.empty()); - }); + })); } TEST_F(BatAdsConversionsTest, ConvertViewedNewTabPageAdWhenAdsAreEnabled) { @@ -272,15 +284,18 @@ TEST_F(BatAdsConversionsTest, ConvertViewedNewTabPageAdWhenAdsAreEnabled) { conversion.creative_set_id.c_str()); ad_events_database_table_->GetIf( - condition, - [&conversion](const bool success, const AdEventList& ad_events) { - ASSERT_TRUE(success); + condition, base::BindOnce( + [](const ConversionInfo& conversion, const bool success, + const AdEventList& ad_events) { + ASSERT_TRUE(success); - EXPECT_EQ(1UL, ad_events.size()); + EXPECT_EQ(1UL, ad_events.size()); - const AdEventInfo& ad_event = ad_events.front(); - EXPECT_EQ(conversion.creative_set_id, ad_event.creative_set_id); - }); + const AdEventInfo& ad_event = ad_events.front(); + EXPECT_EQ(conversion.creative_set_id, + ad_event.creative_set_id); + }, + std::move(conversion))); } TEST_F(BatAdsConversionsTest, @@ -315,11 +330,12 @@ TEST_F(BatAdsConversionsTest, conversion.creative_set_id.c_str()); ad_events_database_table_->GetIf( - condition, [](const bool success, const AdEventList& ad_events) { + condition, + base::BindOnce([](const bool success, const AdEventList& ad_events) { ASSERT_TRUE(success); EXPECT_TRUE(ad_events.empty()); - }); + })); } TEST_F(BatAdsConversionsTest, ConvertClickedNewTabPageAdWhenAdsAreEnabled) { @@ -353,15 +369,18 @@ TEST_F(BatAdsConversionsTest, ConvertClickedNewTabPageAdWhenAdsAreEnabled) { conversion.creative_set_id.c_str()); ad_events_database_table_->GetIf( - condition, - [&conversion](const bool success, const AdEventList& ad_events) { - ASSERT_TRUE(success); + condition, base::BindOnce( + [](const ConversionInfo& conversion, const bool success, + const AdEventList& ad_events) { + ASSERT_TRUE(success); - EXPECT_EQ(1UL, ad_events.size()); + EXPECT_EQ(1UL, ad_events.size()); - const AdEventInfo& ad_event = ad_events.front(); - EXPECT_EQ(conversion.creative_set_id, ad_event.creative_set_id); - }); + const AdEventInfo& ad_event = ad_events.front(); + EXPECT_EQ(conversion.creative_set_id, + ad_event.creative_set_id); + }, + std::move(conversion))); } TEST_F(BatAdsConversionsTest, @@ -394,11 +413,12 @@ TEST_F(BatAdsConversionsTest, conversion.creative_set_id.c_str()); ad_events_database_table_->GetIf( - condition, [](const bool success, const AdEventList& ad_events) { + condition, + base::BindOnce([](const bool success, const AdEventList& ad_events) { ASSERT_TRUE(success); EXPECT_TRUE(ad_events.empty()); - }); + })); } TEST_F(BatAdsConversionsTest, ConvertViewedPromotedContentAdWhenAdsAreEnabled) { @@ -430,15 +450,18 @@ TEST_F(BatAdsConversionsTest, ConvertViewedPromotedContentAdWhenAdsAreEnabled) { conversion.creative_set_id.c_str()); ad_events_database_table_->GetIf( - condition, - [&conversion](const bool success, const AdEventList& ad_events) { - ASSERT_TRUE(success); + condition, base::BindOnce( + [](const ConversionInfo& conversion, const bool success, + const AdEventList& ad_events) { + ASSERT_TRUE(success); - EXPECT_EQ(1UL, ad_events.size()); + EXPECT_EQ(1UL, ad_events.size()); - const AdEventInfo& ad_event = ad_events.front(); - EXPECT_EQ(conversion.creative_set_id, ad_event.creative_set_id); - }); + const AdEventInfo& ad_event = ad_events.front(); + EXPECT_EQ(conversion.creative_set_id, + ad_event.creative_set_id); + }, + std::move(conversion))); } TEST_F(BatAdsConversionsTest, @@ -475,11 +498,12 @@ TEST_F(BatAdsConversionsTest, conversion.creative_set_id.c_str()); ad_events_database_table_->GetIf( - condition, [](const bool success, const AdEventList& ad_events) { + condition, + base::BindOnce([](const bool success, const AdEventList& ad_events) { ASSERT_TRUE(success); EXPECT_TRUE(ad_events.empty()); - }); + })); } TEST_F(BatAdsConversionsTest, @@ -516,15 +540,18 @@ TEST_F(BatAdsConversionsTest, conversion.creative_set_id.c_str()); ad_events_database_table_->GetIf( - condition, - [&conversion](const bool success, const AdEventList& ad_events) { - ASSERT_TRUE(success); + condition, base::BindOnce( + [](const ConversionInfo& conversion, const bool success, + const AdEventList& ad_events) { + ASSERT_TRUE(success); - EXPECT_EQ(1UL, ad_events.size()); + EXPECT_EQ(1UL, ad_events.size()); - const AdEventInfo& ad_event = ad_events.front(); - EXPECT_EQ(conversion.creative_set_id, ad_event.creative_set_id); - }); + const AdEventInfo& ad_event = ad_events.front(); + EXPECT_EQ(conversion.creative_set_id, + ad_event.creative_set_id); + }, + std::move(conversion))); } TEST_F(BatAdsConversionsTest, @@ -556,11 +583,12 @@ TEST_F(BatAdsConversionsTest, conversion.creative_set_id.c_str()); ad_events_database_table_->GetIf( - condition, [](const bool success, const AdEventList& ad_events) { + condition, + base::BindOnce([](const bool success, const AdEventList& ad_events) { ASSERT_TRUE(success); EXPECT_TRUE(ad_events.empty()); - }); + })); } TEST_F(BatAdsConversionsTest, @@ -592,11 +620,12 @@ TEST_F(BatAdsConversionsTest, conversion.creative_set_id.c_str()); ad_events_database_table_->GetIf( - condition, [](const bool success, const AdEventList& ad_events) { + condition, + base::BindOnce([](const bool success, const AdEventList& ad_events) { ASSERT_TRUE(success); EXPECT_TRUE(ad_events.empty()); - }); + })); } TEST_F(BatAdsConversionsTest, ConvertClickedInlineContentAdWhenAdsAreDisabled) { @@ -630,15 +659,18 @@ TEST_F(BatAdsConversionsTest, ConvertClickedInlineContentAdWhenAdsAreDisabled) { conversion.creative_set_id.c_str()); ad_events_database_table_->GetIf( - condition, - [&conversion](const bool success, const AdEventList& ad_events) { - ASSERT_TRUE(success); + condition, base::BindOnce( + [](const ConversionInfo& conversion, const bool success, + const AdEventList& ad_events) { + ASSERT_TRUE(success); - EXPECT_EQ(1UL, ad_events.size()); + EXPECT_EQ(1UL, ad_events.size()); - const AdEventInfo& ad_event = ad_events.front(); - EXPECT_EQ(conversion.creative_set_id, ad_event.creative_set_id); - }); + const AdEventInfo& ad_event = ad_events.front(); + EXPECT_EQ(conversion.creative_set_id, + ad_event.creative_set_id); + }, + std::move(conversion))); } TEST_F(BatAdsConversionsTest, ConvertClickedInlineContentAdWhenAdsAreEnabled) { @@ -672,15 +704,18 @@ TEST_F(BatAdsConversionsTest, ConvertClickedInlineContentAdWhenAdsAreEnabled) { conversion.creative_set_id.c_str()); ad_events_database_table_->GetIf( - condition, - [&conversion](const bool success, const AdEventList& ad_events) { - ASSERT_TRUE(success); + condition, base::BindOnce( + [](const ConversionInfo& conversion, const bool success, + const AdEventList& ad_events) { + ASSERT_TRUE(success); - EXPECT_EQ(1UL, ad_events.size()); + EXPECT_EQ(1UL, ad_events.size()); - const AdEventInfo& ad_event = ad_events.front(); - EXPECT_EQ(conversion.creative_set_id, ad_event.creative_set_id); - }); + const AdEventInfo& ad_event = ad_events.front(); + EXPECT_EQ(conversion.creative_set_id, + ad_event.creative_set_id); + }, + std::move(conversion))); } TEST_F(BatAdsConversionsTest, @@ -712,11 +747,12 @@ TEST_F(BatAdsConversionsTest, conversion.creative_set_id.c_str()); ad_events_database_table_->GetIf( - condition, [](const bool success, const AdEventList& ad_events) { + condition, + base::BindOnce([](const bool success, const AdEventList& ad_events) { ASSERT_TRUE(success); EXPECT_TRUE(ad_events.empty()); - }); + })); } TEST_F(BatAdsConversionsTest, ConvertViewedSearchResultAdWhenAdsAreEnabled) { @@ -747,15 +783,18 @@ TEST_F(BatAdsConversionsTest, ConvertViewedSearchResultAdWhenAdsAreEnabled) { conversion.creative_set_id.c_str()); ad_events_database_table_->GetIf( - condition, - [&conversion](const bool success, const AdEventList& ad_events) { - ASSERT_TRUE(success); + condition, base::BindOnce( + [](const ConversionInfo& conversion, const bool success, + const AdEventList& ad_events) { + ASSERT_TRUE(success); - EXPECT_EQ(1UL, ad_events.size()); + EXPECT_EQ(1UL, ad_events.size()); - const AdEventInfo& ad_event = ad_events.front(); - EXPECT_EQ(conversion.creative_set_id, ad_event.creative_set_id); - }); + const AdEventInfo& ad_event = ad_events.front(); + EXPECT_EQ(conversion.creative_set_id, + ad_event.creative_set_id); + }, + std::move(conversion))); } TEST_F(BatAdsConversionsTest, @@ -790,11 +829,12 @@ TEST_F(BatAdsConversionsTest, conversion.creative_set_id.c_str()); ad_events_database_table_->GetIf( - condition, [](const bool success, const AdEventList& ad_events) { + condition, + base::BindOnce([](const bool success, const AdEventList& ad_events) { ASSERT_TRUE(success); EXPECT_TRUE(ad_events.empty()); - }); + })); } TEST_F(BatAdsConversionsTest, ConvertClickedSearchResultAdWhenAdsAreEnabled) { @@ -828,15 +868,18 @@ TEST_F(BatAdsConversionsTest, ConvertClickedSearchResultAdWhenAdsAreEnabled) { conversion.creative_set_id.c_str()); ad_events_database_table_->GetIf( - condition, - [&conversion](const bool success, const AdEventList& ad_events) { - ASSERT_TRUE(success); + condition, base::BindOnce( + [](const ConversionInfo& conversion, const bool success, + const AdEventList& ad_events) { + ASSERT_TRUE(success); - EXPECT_EQ(1UL, ad_events.size()); + EXPECT_EQ(1UL, ad_events.size()); - const AdEventInfo& ad_event = ad_events.front(); - EXPECT_EQ(conversion.creative_set_id, ad_event.creative_set_id); - }); + const AdEventInfo& ad_event = ad_events.front(); + EXPECT_EQ(conversion.creative_set_id, + ad_event.creative_set_id); + }, + std::move(conversion))); } TEST_F(BatAdsConversionsTest, ConvertMultipleAds) { @@ -893,19 +936,22 @@ TEST_F(BatAdsConversionsTest, ConvertMultipleAds) { ad_events_database_table_->GetIf( condition, - [&conversions](const bool success, const AdEventList& ad_events) { - ASSERT_TRUE(success); + base::BindOnce( + [](const ConversionList& conversions, const bool success, + const AdEventList& ad_events) { + ASSERT_TRUE(success); - EXPECT_EQ(2UL, ad_events.size()); + EXPECT_EQ(2UL, ad_events.size()); - const ConversionInfo& conversion_1 = conversions.at(0); - const AdEventInfo& ad_event_1 = ad_events.at(1); - EXPECT_EQ(conversion_1.creative_set_id, ad_event_1.creative_set_id); + const ConversionInfo& conversion_1 = conversions.at(0); + const AdEventInfo& ad_event_1 = ad_events.at(1); + EXPECT_EQ(conversion_1.creative_set_id, ad_event_1.creative_set_id); - const ConversionInfo& conversion_2 = conversions.at(1); - const AdEventInfo& ad_event_2 = ad_events.at(0); - EXPECT_EQ(conversion_2.creative_set_id, ad_event_2.creative_set_id); - }); + const ConversionInfo& conversion_2 = conversions.at(1); + const AdEventInfo& ad_event_2 = ad_events.at(0); + EXPECT_EQ(conversion_2.creative_set_id, ad_event_2.creative_set_id); + }, + std::move(conversions))); } TEST_F(BatAdsConversionsTest, ConvertViewedAdWhenAdWasDismissed) { @@ -938,15 +984,18 @@ TEST_F(BatAdsConversionsTest, ConvertViewedAdWhenAdWasDismissed) { conversion.creative_set_id.c_str()); ad_events_database_table_->GetIf( - condition, - [&conversion](const bool success, const AdEventList& ad_events) { - ASSERT_TRUE(success); + condition, base::BindOnce( + [](const ConversionInfo& conversion, const bool success, + const AdEventList& ad_events) { + ASSERT_TRUE(success); - EXPECT_EQ(1UL, ad_events.size()); - const AdEventInfo& ad_event = ad_events.front(); + EXPECT_EQ(1UL, ad_events.size()); + const AdEventInfo& ad_event = ad_events.front(); - EXPECT_EQ(conversion.creative_set_id, ad_event.creative_set_id); - }); + EXPECT_EQ(conversion.creative_set_id, + ad_event.creative_set_id); + }, + std::move(conversion))); } TEST_F(BatAdsConversionsTest, DoNotConvertNonViewedOrClickedAds) { @@ -994,11 +1043,12 @@ TEST_F(BatAdsConversionsTest, DoNotConvertNonViewedOrClickedAds) { conversion.creative_set_id.c_str()); ad_events_database_table_->GetIf( - condition, [](const bool success, const AdEventList& ad_events) { + condition, + base::BindOnce([](const bool success, const AdEventList& ad_events) { ASSERT_TRUE(success); EXPECT_TRUE(ad_events.empty()); - }); + })); } TEST_F(BatAdsConversionsTest, DoNotConvertViewedAdForPostClick) { @@ -1028,11 +1078,12 @@ TEST_F(BatAdsConversionsTest, DoNotConvertViewedAdForPostClick) { conversion.creative_set_id.c_str()); ad_events_database_table_->GetIf( - condition, [](const bool success, const AdEventList& ad_events) { + condition, + base::BindOnce([](const bool success, const AdEventList& ad_events) { ASSERT_TRUE(success); EXPECT_TRUE(ad_events.empty()); - }); + })); } TEST_F(BatAdsConversionsTest, DoNotConvertAdIfConversionDoesNotExist) { @@ -1052,11 +1103,12 @@ TEST_F(BatAdsConversionsTest, DoNotConvertAdIfConversionDoesNotExist) { "confirmation_type = 'conversion'"; ad_events_database_table_->GetIf( - condition, [](const bool success, const AdEventList& ad_events) { + condition, + base::BindOnce([](const bool success, const AdEventList& ad_events) { ASSERT_TRUE(success); EXPECT_TRUE(ad_events.empty()); - }); + })); } TEST_F(BatAdsConversionsTest, @@ -1089,15 +1141,18 @@ TEST_F(BatAdsConversionsTest, conversion.creative_set_id.c_str()); ad_events_database_table_->GetIf( - condition, - [&conversion](const bool success, const AdEventList& ad_events) { - ASSERT_TRUE(success); + condition, base::BindOnce( + [](const ConversionInfo& conversion, const bool success, + const AdEventList& ad_events) { + ASSERT_TRUE(success); - EXPECT_EQ(1UL, ad_events.size()); - const AdEventInfo& ad_event = ad_events.front(); + EXPECT_EQ(1UL, ad_events.size()); + const AdEventInfo& ad_event = ad_events.front(); - EXPECT_EQ(conversion.creative_set_id, ad_event.creative_set_id); - }); + EXPECT_EQ(conversion.creative_set_id, + ad_event.creative_set_id); + }, + std::move(conversion))); } TEST_F(BatAdsConversionsTest, @@ -1128,11 +1183,12 @@ TEST_F(BatAdsConversionsTest, conversion.creative_set_id.c_str()); ad_events_database_table_->GetIf( - condition, [](const bool success, const AdEventList& ad_events) { + condition, + base::BindOnce([](const bool success, const AdEventList& ad_events) { ASSERT_TRUE(success); EXPECT_TRUE(ad_events.empty()); - }); + })); } TEST_F(BatAdsConversionsTest, ConvertAdWhenTheConversionIsOnTheCuspOfExpiring) { @@ -1164,15 +1220,18 @@ TEST_F(BatAdsConversionsTest, ConvertAdWhenTheConversionIsOnTheCuspOfExpiring) { conversion.creative_set_id.c_str()); ad_events_database_table_->GetIf( - condition, - [&conversion](const bool success, const AdEventList& ad_events) { - ASSERT_TRUE(success); + condition, base::BindOnce( + [](const ConversionInfo& conversion, const bool success, + const AdEventList& ad_events) { + ASSERT_TRUE(success); - EXPECT_EQ(1UL, ad_events.size()); - const AdEventInfo& ad_event = ad_events.front(); + EXPECT_EQ(1UL, ad_events.size()); + const AdEventInfo& ad_event = ad_events.front(); - EXPECT_EQ(conversion.creative_set_id, ad_event.creative_set_id); - }); + EXPECT_EQ(conversion.creative_set_id, + ad_event.creative_set_id); + }, + std::move(conversion))); } TEST_F(BatAdsConversionsTest, DoNotConvertAdWhenTheConversionHasExpired) { @@ -1204,11 +1263,12 @@ TEST_F(BatAdsConversionsTest, DoNotConvertAdWhenTheConversionHasExpired) { conversion.creative_set_id.c_str()); ad_events_database_table_->GetIf( - condition, [](const bool success, const AdEventList& ad_events) { + condition, + base::BindOnce([](const bool success, const AdEventList& ad_events) { ASSERT_TRUE(success); EXPECT_TRUE(ad_events.empty()); - }); + })); } TEST_F(BatAdsConversionsTest, ConvertAdForRedirectChainIntermediateUrl) { @@ -1241,15 +1301,18 @@ TEST_F(BatAdsConversionsTest, ConvertAdForRedirectChainIntermediateUrl) { conversion.creative_set_id.c_str()); ad_events_database_table_->GetIf( - condition, - [&conversion](const bool success, const AdEventList& ad_events) { - ASSERT_TRUE(success); + condition, base::BindOnce( + [](const ConversionInfo& conversion, const bool success, + const AdEventList& ad_events) { + ASSERT_TRUE(success); - EXPECT_EQ(1UL, ad_events.size()); - const AdEventInfo& ad_event = ad_events.front(); + EXPECT_EQ(1UL, ad_events.size()); + const AdEventInfo& ad_event = ad_events.front(); - EXPECT_EQ(conversion.creative_set_id, ad_event.creative_set_id); - }); + EXPECT_EQ(conversion.creative_set_id, + ad_event.creative_set_id); + }, + std::move(conversion))); } TEST_F(BatAdsConversionsTest, ConvertAdForRedirectChainOriginalUrl) { @@ -1282,15 +1345,18 @@ TEST_F(BatAdsConversionsTest, ConvertAdForRedirectChainOriginalUrl) { conversion.creative_set_id.c_str()); ad_events_database_table_->GetIf( - condition, - [&conversion](const bool success, const AdEventList& ad_events) { - ASSERT_TRUE(success); + condition, base::BindOnce( + [](const ConversionInfo& conversion, const bool success, + const AdEventList& ad_events) { + ASSERT_TRUE(success); - EXPECT_EQ(1UL, ad_events.size()); - const AdEventInfo& ad_event = ad_events.front(); + EXPECT_EQ(1UL, ad_events.size()); + const AdEventInfo& ad_event = ad_events.front(); - EXPECT_EQ(conversion.creative_set_id, ad_event.creative_set_id); - }); + EXPECT_EQ(conversion.creative_set_id, + ad_event.creative_set_id); + }, + std::move(conversion))); } TEST_F(BatAdsConversionsTest, ConvertAdForRedirectChainUrl) { @@ -1323,15 +1389,18 @@ TEST_F(BatAdsConversionsTest, ConvertAdForRedirectChainUrl) { conversion.creative_set_id.c_str()); ad_events_database_table_->GetIf( - condition, - [&conversion](const bool success, const AdEventList& ad_events) { - ASSERT_TRUE(success); + condition, base::BindOnce( + [](const ConversionInfo& conversion, const bool success, + const AdEventList& ad_events) { + ASSERT_TRUE(success); - EXPECT_EQ(1UL, ad_events.size()); - const AdEventInfo& ad_event = ad_events.front(); + EXPECT_EQ(1UL, ad_events.size()); + const AdEventInfo& ad_event = ad_events.front(); - EXPECT_EQ(conversion.creative_set_id, ad_event.creative_set_id); - }); + EXPECT_EQ(conversion.creative_set_id, + ad_event.creative_set_id); + }, + std::move(conversion))); } TEST_F(BatAdsConversionsTest, ExtractConversionId) { @@ -1365,9 +1434,9 @@ TEST_F(BatAdsConversionsTest, ExtractConversionId) { resource.get()->id_patterns); // Assert - conversion_queue_database_table_->GetAll( - [conversion](const bool success, - const ConversionQueueItemList& conversion_queue_items) { + conversion_queue_database_table_->GetAll(base::BindOnce( + [](const ConversionInfo& conversion, const bool success, + const ConversionQueueItemList& conversion_queue_items) { ASSERT_TRUE(success); ASSERT_EQ(1UL, conversion_queue_items.size()); @@ -1381,7 +1450,8 @@ TEST_F(BatAdsConversionsTest, ExtractConversionId) { const std::string expected_conversion_id = "abc123"; EXPECT_EQ(expected_conversion_id, conversion_queue_item.conversion_id); - }); + }, + conversion)); } TEST_F(BatAdsConversionsTest, ExtractConversionIdWithResourcePatternFromHtml) { @@ -1417,9 +1487,9 @@ TEST_F(BatAdsConversionsTest, ExtractConversionIdWithResourcePatternFromHtml) { resource.get()->id_patterns); // Assert - conversion_queue_database_table_->GetAll( - [conversion](const bool success, - const ConversionQueueItemList& conversion_queue_items) { + conversion_queue_database_table_->GetAll(base::BindOnce( + [](const ConversionInfo& conversion, const bool success, + const ConversionQueueItemList& conversion_queue_items) { ASSERT_TRUE(success); ASSERT_EQ(1UL, conversion_queue_items.size()); @@ -1433,7 +1503,8 @@ TEST_F(BatAdsConversionsTest, ExtractConversionIdWithResourcePatternFromHtml) { const std::string expected_conversion_id = "abc123"; EXPECT_EQ(expected_conversion_id, conversion_queue_item.conversion_id); - }); + }, + conversion)); } TEST_F(BatAdsConversionsTest, ExtractConversionIdWithResourcePatternFromUrl) { @@ -1470,9 +1541,9 @@ TEST_F(BatAdsConversionsTest, ExtractConversionIdWithResourcePatternFromUrl) { resource.get()->id_patterns); // Assert - conversion_queue_database_table_->GetAll( - [conversion](const bool success, - const ConversionQueueItemList& conversion_queue_items) { + conversion_queue_database_table_->GetAll(base::BindOnce( + [](const ConversionInfo& conversion, const bool success, + const ConversionQueueItemList& conversion_queue_items) { ASSERT_TRUE(success); ASSERT_EQ(1UL, conversion_queue_items.size()); @@ -1486,7 +1557,8 @@ TEST_F(BatAdsConversionsTest, ExtractConversionIdWithResourcePatternFromUrl) { const std::string expected_conversion_id = "abc123"; EXPECT_EQ(expected_conversion_id, conversion_queue_item.conversion_id); - }); + }, + conversion)); } } // namespace ads diff --git a/vendor/bat-native-ads/src/bat/ads/internal/creatives/creative_ads_database_table.cc b/vendor/bat-native-ads/src/bat/ads/internal/creatives/creative_ads_database_table.cc index 68af62b2aa7..3857a78f386 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/creatives/creative_ads_database_table.cc +++ b/vendor/bat-native-ads/src/bat/ads/internal/creatives/creative_ads_database_table.cc @@ -11,6 +11,7 @@ #include "base/check.h" #include "base/containers/contains.h" #include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/strings/stringprintf.h" #include "bat/ads/internal/ads_client_helper.h" #include "bat/ads/internal/common/database/database_bind_util.h" @@ -121,12 +122,12 @@ CreativeAdList GetCreativeAdsFromResponse( } void OnGetForCreativeInstanceId(const std::string& creative_instance_id, - const GetCreativeAdCallback& callback, + GetCreativeAdCallback callback, mojom::DBCommandResponseInfoPtr response) { if (!response || response->status != mojom::DBCommandResponseInfo::StatusType::RESPONSE_OK) { BLOG(0, "Failed to get creative ad"); - callback(/*success*/ false, creative_instance_id, {}); + std::move(callback).Run(/*success*/ false, creative_instance_id, {}); return; } @@ -135,13 +136,13 @@ void OnGetForCreativeInstanceId(const std::string& creative_instance_id, if (creative_ads.size() != 1) { BLOG(0, "Failed to get creative ad"); - callback(/*success*/ false, creative_instance_id, {}); + std::move(callback).Run(/*success*/ false, creative_instance_id, {}); return; } const CreativeAdInfo& creative_ad = creative_ads.front(); - callback(/*success*/ true, creative_instance_id, creative_ad); + std::move(callback).Run(/*success*/ true, creative_instance_id, creative_ad); } void MigrateToV24(mojom::DBTransactionInfo* transaction) { @@ -202,7 +203,8 @@ void CreativeAds::GetForCreativeInstanceId( const CreativeAdInfo creative_ad; if (creative_instance_id.empty()) { - callback(/*success*/ false, creative_instance_id, creative_ad); + std::move(callback).Run(/*success*/ false, creative_instance_id, + creative_ad); return; } @@ -242,8 +244,9 @@ void CreativeAds::GetForCreativeInstanceId( transaction->commands.push_back(std::move(command)); AdsClientHelper::GetInstance()->RunDBTransaction( - std::move(transaction), base::BindOnce(&OnGetForCreativeInstanceId, - creative_instance_id, callback)); + std::move(transaction), + base::BindOnce(&OnGetForCreativeInstanceId, creative_instance_id, + std::move(callback))); } std::string CreativeAds::GetTableName() const { diff --git a/vendor/bat-native-ads/src/bat/ads/internal/creatives/creative_ads_database_table.h b/vendor/bat-native-ads/src/bat/ads/internal/creatives/creative_ads_database_table.h index 9f84ce17110..ea987734c93 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/creatives/creative_ads_database_table.h +++ b/vendor/bat-native-ads/src/bat/ads/internal/creatives/creative_ads_database_table.h @@ -6,9 +6,9 @@ #ifndef BRAVE_VENDOR_BAT_NATIVE_ADS_SRC_BAT_ADS_INTERNAL_CREATIVES_CREATIVE_ADS_DATABASE_TABLE_H_ #define BRAVE_VENDOR_BAT_NATIVE_ADS_SRC_BAT_ADS_INTERNAL_CREATIVES_CREATIVE_ADS_DATABASE_TABLE_H_ -#include #include +#include "base/functional/callback_forward.h" #include "bat/ads/ads_client_callback.h" #include "bat/ads/internal/creatives/creative_ad_info.h" #include "bat/ads/internal/database/database_table_interface.h" @@ -17,9 +17,9 @@ namespace ads::database::table { using GetCreativeAdCallback = - std::function; + base::OnceCallback; class CreativeAds final : public TableInterface { public: diff --git a/vendor/bat-native-ads/src/bat/ads/internal/creatives/inline_content_ads/creative_inline_content_ads_database_table.cc b/vendor/bat-native-ads/src/bat/ads/internal/creatives/inline_content_ads/creative_inline_content_ads_database_table.cc index aa528e499f1..1c4809cec02 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/creatives/inline_content_ads/creative_inline_content_ads_database_table.cc +++ b/vendor/bat-native-ads/src/bat/ads/internal/creatives/inline_content_ads/creative_inline_content_ads_database_table.cc @@ -11,6 +11,7 @@ #include "base/containers/contains.h" #include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/strings/string_util.h" #include "base/strings/stringprintf.h" #include "base/time/time.h" @@ -156,14 +157,13 @@ CreativeInlineContentAdList GetCreativeAdsFromResponse( return creative_ads; } -void OnGetForCreativeInstanceId( - const std::string& creative_instance_id, - const GetCreativeInlineContentAdCallback& callback, - mojom::DBCommandResponseInfoPtr response) { +void OnGetForCreativeInstanceId(const std::string& creative_instance_id, + GetCreativeInlineContentAdCallback callback, + mojom::DBCommandResponseInfoPtr response) { if (!response || response->status != mojom::DBCommandResponseInfo::StatusType::RESPONSE_OK) { BLOG(0, "Failed to get creative inline content ad"); - callback(/*success*/ false, creative_instance_id, {}); + std::move(callback).Run(/*success*/ false, creative_instance_id, {}); return; } @@ -172,13 +172,13 @@ void OnGetForCreativeInstanceId( if (creative_ads.size() != 1) { BLOG(0, "Failed to get creative inline content ad"); - callback(/*success*/ false, creative_instance_id, {}); + std::move(callback).Run(/*success*/ false, creative_instance_id, {}); return; } const CreativeInlineContentAdInfo& creative_ad = creative_ads.front(); - callback(/*success*/ true, creative_instance_id, creative_ad); + std::move(callback).Run(/*success*/ true, creative_instance_id, creative_ad); } void OnGetForSegmentsAndDimensions(const SegmentList& segments, @@ -316,7 +316,7 @@ void CreativeInlineContentAds::GetForCreativeInstanceId( const std::string& creative_instance_id, GetCreativeInlineContentAdCallback callback) const { if (creative_instance_id.empty()) { - callback(/*success*/ false, creative_instance_id, {}); + std::move(callback).Run(/*success*/ false, creative_instance_id, {}); return; } @@ -403,8 +403,9 @@ void CreativeInlineContentAds::GetForCreativeInstanceId( transaction->commands.push_back(std::move(command)); AdsClientHelper::GetInstance()->RunDBTransaction( - std::move(transaction), base::BindOnce(&OnGetForCreativeInstanceId, - creative_instance_id, callback)); + std::move(transaction), + base::BindOnce(&OnGetForCreativeInstanceId, creative_instance_id, + std::move(callback))); } void CreativeInlineContentAds::GetForSegmentsAndDimensions( diff --git a/vendor/bat-native-ads/src/bat/ads/internal/creatives/inline_content_ads/creative_inline_content_ads_database_table.h b/vendor/bat-native-ads/src/bat/ads/internal/creatives/inline_content_ads/creative_inline_content_ads_database_table.h index 112c261af7b..1791bd7f3f1 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/creatives/inline_content_ads/creative_inline_content_ads_database_table.h +++ b/vendor/bat-native-ads/src/bat/ads/internal/creatives/inline_content_ads/creative_inline_content_ads_database_table.h @@ -6,11 +6,11 @@ #ifndef BRAVE_VENDOR_BAT_NATIVE_ADS_SRC_BAT_ADS_INTERNAL_CREATIVES_INLINE_CONTENT_ADS_CREATIVE_INLINE_CONTENT_ADS_DATABASE_TABLE_H_ #define BRAVE_VENDOR_BAT_NATIVE_ADS_SRC_BAT_ADS_INTERNAL_CREATIVES_INLINE_CONTENT_ADS_CREATIVE_INLINE_CONTENT_ADS_DATABASE_TABLE_H_ -#include #include #include #include "base/check_op.h" +#include "base/functional/callback_forward.h" #include "bat/ads/ads_client_callback.h" #include "bat/ads/internal/creatives/inline_content_ads/creative_inline_content_ad_info.h" #include "bat/ads/internal/database/database_table_interface.h" @@ -27,9 +27,9 @@ class GeoTargets; class Segments; using GetCreativeInlineContentAdCallback = - std::function; + base::OnceCallback; using GetCreativeInlineContentAdsCallback = base::OnceCallbackGetForCreativeInstanceId( creative_instance_id, - [&expected_creative_ad](const bool success, - const std::string& /*creative_instance_id*/, - const CreativeInlineContentAdInfo& creative_ad) { - ASSERT_TRUE(success); - EXPECT_EQ(expected_creative_ad, creative_ad); - }); + base::BindOnce( + [](const CreativeInlineContentAdInfo& expected_creative_ad, + const bool success, const std::string& /*creative_instance_id*/, + const CreativeInlineContentAdInfo& creative_ad) { + ASSERT_TRUE(success); + EXPECT_EQ(expected_creative_ad, creative_ad); + }, + info)); } TEST_F(BatAdsCreativeInlineContentAdsDatabaseTableTest, @@ -424,10 +424,11 @@ TEST_F(BatAdsCreativeInlineContentAdsDatabaseTableTest, database_table_->GetForCreativeInstanceId( creative_instance_id, - [](const bool success, const std::string& /*creative_instance_id*/, - const CreativeInlineContentAdInfo& /*creative_ad*/) { + base::BindOnce([](const bool success, + const std::string& /*creative_instance_id*/, + const CreativeInlineContentAdInfo& /*creative_ad*/) { EXPECT_FALSE(success); - }); + })); } TEST_F(BatAdsCreativeInlineContentAdsDatabaseTableTest, diff --git a/vendor/bat-native-ads/src/bat/ads/internal/creatives/new_tab_page_ads/creative_new_tab_page_ads_database_table.cc b/vendor/bat-native-ads/src/bat/ads/internal/creatives/new_tab_page_ads/creative_new_tab_page_ads_database_table.cc index 4d17038fb0d..ecff18a2a25 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/creatives/new_tab_page_ads/creative_new_tab_page_ads_database_table.cc +++ b/vendor/bat-native-ads/src/bat/ads/internal/creatives/new_tab_page_ads/creative_new_tab_page_ads_database_table.cc @@ -10,6 +10,7 @@ #include "base/containers/contains.h" #include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/strings/string_util.h" #include "base/strings/stringprintf.h" #include "base/time/time.h" @@ -162,12 +163,12 @@ CreativeNewTabPageAdList GetCreativeAdsFromResponse( } void OnGetForCreativeInstanceId(const std::string& creative_instance_id, - const GetCreativeNewTabPageAdCallback& callback, + GetCreativeNewTabPageAdCallback callback, mojom::DBCommandResponseInfoPtr response) { if (!response || response->status != mojom::DBCommandResponseInfo::StatusType::RESPONSE_OK) { BLOG(0, "Failed to get creative new tab page ad"); - callback(/*success*/ false, creative_instance_id, {}); + std::move(callback).Run(/*success*/ false, creative_instance_id, {}); return; } @@ -176,13 +177,13 @@ void OnGetForCreativeInstanceId(const std::string& creative_instance_id, if (creative_ads.size() != 1) { BLOG(0, "Failed to get creative new tab page ad"); - callback(/*success*/ false, creative_instance_id, {}); + std::move(callback).Run(/*success*/ false, creative_instance_id, {}); return; } const CreativeNewTabPageAdInfo& creative_ad = creative_ads.front(); - callback(/*success*/ true, creative_instance_id, creative_ad); + std::move(callback).Run(/*success*/ true, creative_instance_id, creative_ad); } void OnGetForSegments(const SegmentList& segments, @@ -305,7 +306,7 @@ void CreativeNewTabPageAds::GetForCreativeInstanceId( const std::string& creative_instance_id, GetCreativeNewTabPageAdCallback callback) const { if (creative_instance_id.empty()) { - callback(/*success*/ false, creative_instance_id, {}); + std::move(callback).Run(/*success*/ false, creative_instance_id, {}); return; } @@ -398,8 +399,9 @@ void CreativeNewTabPageAds::GetForCreativeInstanceId( transaction->commands.push_back(std::move(command)); AdsClientHelper::GetInstance()->RunDBTransaction( - std::move(transaction), base::BindOnce(&OnGetForCreativeInstanceId, - creative_instance_id, callback)); + std::move(transaction), + base::BindOnce(&OnGetForCreativeInstanceId, creative_instance_id, + std::move(callback))); } void CreativeNewTabPageAds::GetForSegments( diff --git a/vendor/bat-native-ads/src/bat/ads/internal/creatives/new_tab_page_ads/creative_new_tab_page_ads_database_table.h b/vendor/bat-native-ads/src/bat/ads/internal/creatives/new_tab_page_ads/creative_new_tab_page_ads_database_table.h index 398f45ea92f..f729cbb7c89 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/creatives/new_tab_page_ads/creative_new_tab_page_ads_database_table.h +++ b/vendor/bat-native-ads/src/bat/ads/internal/creatives/new_tab_page_ads/creative_new_tab_page_ads_database_table.h @@ -6,13 +6,12 @@ #ifndef BRAVE_VENDOR_BAT_NATIVE_ADS_SRC_BAT_ADS_INTERNAL_CREATIVES_NEW_TAB_PAGE_ADS_CREATIVE_NEW_TAB_PAGE_ADS_DATABASE_TABLE_H_ #define BRAVE_VENDOR_BAT_NATIVE_ADS_SRC_BAT_ADS_INTERNAL_CREATIVES_NEW_TAB_PAGE_ADS_CREATIVE_NEW_TAB_PAGE_ADS_DATABASE_TABLE_H_ -#include #include #include #include #include "base/check_op.h" -#include "base/functional/callback.h" +#include "base/functional/callback_forward.h" #include "bat/ads/ads_client_callback.h" #include "bat/ads/internal/creatives/new_tab_page_ads/creative_new_tab_page_ad_info.h" #include "bat/ads/internal/database/database_table_interface.h" @@ -30,9 +29,9 @@ class GeoTargets; class Segments; using GetCreativeNewTabPageAdCallback = - std::function; + base::OnceCallback; using GetCreativeNewTabPageAdsCallback = base::OnceCallback #include #include #include diff --git a/vendor/bat-native-ads/src/bat/ads/internal/creatives/promoted_content_ads/creative_promoted_content_ads_database_table.cc b/vendor/bat-native-ads/src/bat/ads/internal/creatives/promoted_content_ads/creative_promoted_content_ads_database_table.cc index 86dfaf861b7..d71b4839c44 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/creatives/promoted_content_ads/creative_promoted_content_ads_database_table.cc +++ b/vendor/bat-native-ads/src/bat/ads/internal/creatives/promoted_content_ads/creative_promoted_content_ads_database_table.cc @@ -10,6 +10,7 @@ #include "base/containers/contains.h" #include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/strings/string_util.h" #include "base/strings/stringprintf.h" #include "base/time/time.h" @@ -148,14 +149,13 @@ CreativePromotedContentAdList GetCreativeAdsFromResponse( return creative_ads; } -void OnGetForCreativeInstanceId( - const std::string& creative_instance_id, - const GetCreativePromotedContentAdCallback& callback, - mojom::DBCommandResponseInfoPtr response) { +void OnGetForCreativeInstanceId(const std::string& creative_instance_id, + GetCreativePromotedContentAdCallback callback, + mojom::DBCommandResponseInfoPtr response) { if (!response || response->status != mojom::DBCommandResponseInfo::StatusType::RESPONSE_OK) { BLOG(0, "Failed to get creative promoted content ad"); - callback(/*success*/ false, creative_instance_id, {}); + std::move(callback).Run(/*success*/ false, creative_instance_id, {}); return; } @@ -164,37 +164,37 @@ void OnGetForCreativeInstanceId( if (creative_ads.size() != 1) { BLOG(0, "Failed to get creative promoted content ad"); - callback(/*success*/ false, creative_instance_id, {}); + std::move(callback).Run(/*success*/ false, creative_instance_id, {}); return; } const CreativePromotedContentAdInfo& creative_ad = creative_ads.front(); - callback(/*success*/ true, creative_instance_id, creative_ad); + std::move(callback).Run(/*success*/ true, creative_instance_id, creative_ad); } void OnGetForSegments(const SegmentList& segments, - const GetCreativePromotedContentAdsCallback& callback, + GetCreativePromotedContentAdsCallback callback, mojom::DBCommandResponseInfoPtr response) { if (!response || response->status != mojom::DBCommandResponseInfo::StatusType::RESPONSE_OK) { BLOG(0, "Failed to get creative promoted content ads"); - callback(/*success*/ false, segments, {}); + std::move(callback).Run(/*success*/ false, segments, {}); return; } const CreativePromotedContentAdList creative_ads = GetCreativeAdsFromResponse(std::move(response)); - callback(/*success*/ true, segments, creative_ads); + std::move(callback).Run(/*success*/ true, segments, creative_ads); } -void OnGetAll(const GetCreativePromotedContentAdsCallback& callback, +void OnGetAll(GetCreativePromotedContentAdsCallback callback, mojom::DBCommandResponseInfoPtr response) { if (!response || response->status != mojom::DBCommandResponseInfo::StatusType::RESPONSE_OK) { BLOG(0, "Failed to get all creative new tab page ads"); - callback(/*success*/ false, {}, {}); + std::move(callback).Run(/*success*/ false, {}, {}); return; } @@ -203,7 +203,7 @@ void OnGetAll(const GetCreativePromotedContentAdsCallback& callback, const SegmentList segments = GetSegments(creative_ads); - callback(/*success*/ true, segments, creative_ads); + std::move(callback).Run(/*success*/ true, segments, creative_ads); } void MigrateToV24(mojom::DBTransactionInfo* transaction) { @@ -289,7 +289,7 @@ void CreativePromotedContentAds::GetForCreativeInstanceId( const std::string& creative_instance_id, GetCreativePromotedContentAdCallback callback) const { if (creative_instance_id.empty()) { - callback(/*success*/ false, creative_instance_id, {}); + std::move(callback).Run(/*success*/ false, creative_instance_id, {}); return; } @@ -368,15 +368,16 @@ void CreativePromotedContentAds::GetForCreativeInstanceId( transaction->commands.push_back(std::move(command)); AdsClientHelper::GetInstance()->RunDBTransaction( - std::move(transaction), base::BindOnce(&OnGetForCreativeInstanceId, - creative_instance_id, callback)); + std::move(transaction), + base::BindOnce(&OnGetForCreativeInstanceId, creative_instance_id, + std::move(callback))); } void CreativePromotedContentAds::GetForSegments( const SegmentList& segments, GetCreativePromotedContentAdsCallback callback) const { if (segments.empty()) { - callback(/*success*/ true, segments, {}); + std::move(callback).Run(/*success*/ true, segments, {}); return; } @@ -465,7 +466,7 @@ void CreativePromotedContentAds::GetForSegments( AdsClientHelper::GetInstance()->RunDBTransaction( std::move(transaction), - base::BindOnce(&OnGetForSegments, segments, callback)); + base::BindOnce(&OnGetForSegments, segments, std::move(callback))); } void CreativePromotedContentAds::GetAll( @@ -545,7 +546,7 @@ void CreativePromotedContentAds::GetAll( transaction->commands.push_back(std::move(command)); AdsClientHelper::GetInstance()->RunDBTransaction( - std::move(transaction), base::BindOnce(&OnGetAll, callback)); + std::move(transaction), base::BindOnce(&OnGetAll, std::move(callback))); } std::string CreativePromotedContentAds::GetTableName() const { diff --git a/vendor/bat-native-ads/src/bat/ads/internal/creatives/promoted_content_ads/creative_promoted_content_ads_database_table.h b/vendor/bat-native-ads/src/bat/ads/internal/creatives/promoted_content_ads/creative_promoted_content_ads_database_table.h index d1c085c27ce..83365c01b03 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/creatives/promoted_content_ads/creative_promoted_content_ads_database_table.h +++ b/vendor/bat-native-ads/src/bat/ads/internal/creatives/promoted_content_ads/creative_promoted_content_ads_database_table.h @@ -6,12 +6,12 @@ #ifndef BRAVE_VENDOR_BAT_NATIVE_ADS_SRC_BAT_ADS_INTERNAL_CREATIVES_PROMOTED_CONTENT_ADS_CREATIVE_PROMOTED_CONTENT_ADS_DATABASE_TABLE_H_ #define BRAVE_VENDOR_BAT_NATIVE_ADS_SRC_BAT_ADS_INTERNAL_CREATIVES_PROMOTED_CONTENT_ADS_CREATIVE_PROMOTED_CONTENT_ADS_DATABASE_TABLE_H_ -#include #include #include #include #include "base/check_op.h" +#include "base/functional/callback_forward.h" #include "bat/ads/ads_client_callback.h" #include "bat/ads/internal/creatives/promoted_content_ads/creative_promoted_content_ad_info.h" #include "bat/ads/internal/database/database_table_interface.h" @@ -28,14 +28,14 @@ class GeoTargets; class Segments; using GetCreativePromotedContentAdCallback = - std::function; + base::OnceCallback; using GetCreativePromotedContentAdsCallback = - std::function&, - const CreativePromotedContentAdList&)>; + base::OnceCallback&, + const CreativePromotedContentAdList&)>; class CreativePromotedContentAds final : public TableInterface { public: diff --git a/vendor/bat-native-ads/src/bat/ads/internal/creatives/promoted_content_ads/creative_promoted_content_ads_database_table_test.cc b/vendor/bat-native-ads/src/bat/ads/internal/creatives/promoted_content_ads/creative_promoted_content_ads_database_table_test.cc index ef64d1ccce9..dbf7c869537 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/creatives/promoted_content_ads/creative_promoted_content_ads_database_table_test.cc +++ b/vendor/bat-native-ads/src/bat/ads/internal/creatives/promoted_content_ads/creative_promoted_content_ads_database_table_test.cc @@ -5,6 +5,7 @@ #include "bat/ads/internal/creatives/promoted_content_ads/creative_promoted_content_ads_database_table.h" +#include "base/functional/bind.h" #include "bat/ads/internal/common/unittest/unittest_base.h" #include "bat/ads/internal/common/unittest/unittest_mock_util.h" #include "net/http/http_status_code.h" @@ -40,11 +41,12 @@ TEST_F(BatAdsCreativePromotedContentAdsDatabaseTableIntegrationTest, creative_promoted_content_ads; creative_promoted_content_ads.GetForSegments( segments, - [](const bool success, const SegmentList& /*segments*/, - const CreativePromotedContentAdList& creative_promoted_content_ads) { + base::BindOnce([](const bool success, const SegmentList& /*segments*/, + const CreativePromotedContentAdList& + creative_promoted_content_ads) { EXPECT_TRUE(success); EXPECT_EQ(1UL, creative_promoted_content_ads.size()); - }); + })); } } // namespace ads diff --git a/vendor/bat-native-ads/src/bat/ads/internal/creatives/promoted_content_ads/creative_promoted_content_ads_database_table_unittest.cc b/vendor/bat-native-ads/src/bat/ads/internal/creatives/promoted_content_ads/creative_promoted_content_ads_database_table_unittest.cc index a598d0735e4..fcece2db093 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/creatives/promoted_content_ads/creative_promoted_content_ads_database_table_unittest.cc +++ b/vendor/bat-native-ads/src/bat/ads/internal/creatives/promoted_content_ads/creative_promoted_content_ads_database_table_unittest.cc @@ -99,13 +99,17 @@ TEST_F(BatAdsCreativePromotedContentAdsDatabaseTableTest, database_table_->GetForSegments( segments, - [&expected_creative_promoted_content_ads]( - const bool success, const SegmentList& /*segments*/, - const CreativePromotedContentAdList& creative_promoted_content_ads) { - EXPECT_TRUE(success); - EXPECT_TRUE(ContainersEq(expected_creative_promoted_content_ads, - creative_promoted_content_ads)); - }); + base::BindOnce( + [](const CreativePromotedContentAdList& + expected_creative_promoted_content_ads, + const bool success, const SegmentList& /*segments*/, + const CreativePromotedContentAdList& + creative_promoted_content_ads) { + EXPECT_TRUE(success); + EXPECT_TRUE(ContainersEq(expected_creative_promoted_content_ads, + creative_promoted_content_ads)); + }, + expected_creative_promoted_content_ads)); } TEST_F(BatAdsCreativePromotedContentAdsDatabaseTableTest, @@ -196,13 +200,17 @@ TEST_F(BatAdsCreativePromotedContentAdsDatabaseTableTest, database_table_->GetForSegments( segments, - [&expected_creative_promoted_content_ads]( - const bool success, const SegmentList& /*segments*/, - const CreativePromotedContentAdList& creative_promoted_content_ads) { - EXPECT_TRUE(success); - EXPECT_TRUE(ContainersEq(expected_creative_promoted_content_ads, - creative_promoted_content_ads)); - }); + base::BindOnce( + [](const CreativePromotedContentAdList& + expected_creative_promoted_content_ads, + const bool success, const SegmentList& /*segments*/, + const CreativePromotedContentAdList& + creative_promoted_content_ads) { + EXPECT_TRUE(success); + EXPECT_TRUE(ContainersEq(expected_creative_promoted_content_ads, + creative_promoted_content_ads)); + }, + expected_creative_promoted_content_ads)); } TEST_F(BatAdsCreativePromotedContentAdsDatabaseTableTest, @@ -247,13 +255,17 @@ TEST_F(BatAdsCreativePromotedContentAdsDatabaseTableTest, database_table_->GetForSegments( segments, - [&expected_creative_promoted_content_ads]( - const bool success, const SegmentList& /*segments*/, - const CreativePromotedContentAdList& creative_promoted_content_ads) { - EXPECT_TRUE(success); - EXPECT_TRUE(ContainersEq(expected_creative_promoted_content_ads, - creative_promoted_content_ads)); - }); + base::BindOnce( + [](const CreativePromotedContentAdList& + expected_creative_promoted_content_ads, + const bool success, const SegmentList& /*segments*/, + const CreativePromotedContentAdList& + creative_promoted_content_ads) { + EXPECT_TRUE(success); + EXPECT_TRUE(ContainersEq(expected_creative_promoted_content_ads, + creative_promoted_content_ads)); + }, + expected_creative_promoted_content_ads)); } TEST_F(BatAdsCreativePromotedContentAdsDatabaseTableTest, GetForSegments) { @@ -320,13 +332,17 @@ TEST_F(BatAdsCreativePromotedContentAdsDatabaseTableTest, GetForSegments) { database_table_->GetForSegments( segments, - [&expected_creative_promoted_content_ads]( - const bool success, const SegmentList& /*segments*/, - const CreativePromotedContentAdList& creative_promoted_content_ads) { - EXPECT_TRUE(success); - EXPECT_TRUE(ContainersEq(expected_creative_promoted_content_ads, - creative_promoted_content_ads)); - }); + base::BindOnce( + [](const CreativePromotedContentAdList& + expected_creative_promoted_content_ads, + const bool success, const SegmentList& /*segments*/, + const CreativePromotedContentAdList& + creative_promoted_content_ads) { + EXPECT_TRUE(success); + EXPECT_TRUE(ContainersEq(expected_creative_promoted_content_ads, + creative_promoted_content_ads)); + }, + expected_creative_promoted_content_ads)); } TEST_F(BatAdsCreativePromotedContentAdsDatabaseTableTest, @@ -380,13 +396,17 @@ TEST_F(BatAdsCreativePromotedContentAdsDatabaseTableTest, database_table_->GetForCreativeInstanceId( creative_instance_id, - [&expected_creative_promoted_content_ad]( - const bool success, const std::string& /*creative_instance_id*/, - const CreativePromotedContentAdInfo& creative_promoted_content_ad) { - ASSERT_TRUE(success); - EXPECT_EQ(expected_creative_promoted_content_ad, - creative_promoted_content_ad); - }); + base::BindOnce( + [](const CreativePromotedContentAdInfo& + expected_creative_promoted_content_ad, + const bool success, const std::string& /*creative_instance_id*/, + const CreativePromotedContentAdInfo& + creative_promoted_content_ad) { + ASSERT_TRUE(success); + EXPECT_EQ(expected_creative_promoted_content_ad, + creative_promoted_content_ad); + }, + expected_creative_promoted_content_ad)); } TEST_F(BatAdsCreativePromotedContentAdsDatabaseTableTest, @@ -428,9 +448,10 @@ TEST_F(BatAdsCreativePromotedContentAdsDatabaseTableTest, database_table_->GetForCreativeInstanceId( creative_instance_id, - [](const bool success, const std::string& /*creative_instance_id*/, - const CreativePromotedContentAdInfo& - /*creative_promoted_content_ad*/) { EXPECT_FALSE(success); }); + base::BindOnce( + [](const bool success, const std::string& /*creative_instance_id*/, + const CreativePromotedContentAdInfo& + /*creative_promoted_content_ad*/) { EXPECT_FALSE(success); })); } TEST_F(BatAdsCreativePromotedContentAdsDatabaseTableTest, @@ -474,13 +495,17 @@ TEST_F(BatAdsCreativePromotedContentAdsDatabaseTableTest, database_table_->GetForSegments( segments, - [&expected_creative_promoted_content_ads]( - const bool success, const SegmentList& /*segments*/, - const CreativePromotedContentAdList& creative_promoted_content_ads) { - EXPECT_TRUE(success); - EXPECT_TRUE(ContainersEq(expected_creative_promoted_content_ads, - creative_promoted_content_ads)); - }); + base::BindOnce( + [](const CreativePromotedContentAdList& + expected_creative_promoted_content_ads, + const bool success, const SegmentList& /*segments*/, + const CreativePromotedContentAdList& + creative_promoted_content_ads) { + EXPECT_TRUE(success); + EXPECT_TRUE(ContainersEq(expected_creative_promoted_content_ads, + creative_promoted_content_ads)); + }, + expected_creative_promoted_content_ads)); } TEST_F(BatAdsCreativePromotedContentAdsDatabaseTableTest, @@ -524,13 +549,17 @@ TEST_F(BatAdsCreativePromotedContentAdsDatabaseTableTest, database_table_->GetForSegments( segments, - [&expected_creative_promoted_content_ads]( - const bool success, const SegmentList& /*segments*/, - const CreativePromotedContentAdList& creative_promoted_content_ads) { - EXPECT_TRUE(success); - EXPECT_TRUE(ContainersEq(expected_creative_promoted_content_ads, - creative_promoted_content_ads)); - }); + base::BindOnce( + [](const CreativePromotedContentAdList& + expected_creative_promoted_content_ads, + const bool success, const SegmentList& /*segments*/, + const CreativePromotedContentAdList& + creative_promoted_content_ads) { + EXPECT_TRUE(success); + EXPECT_TRUE(ContainersEq(expected_creative_promoted_content_ads, + creative_promoted_content_ads)); + }, + expected_creative_promoted_content_ads)); } TEST_F(BatAdsCreativePromotedContentAdsDatabaseTableTest, @@ -622,13 +651,17 @@ TEST_F(BatAdsCreativePromotedContentAdsDatabaseTableTest, database_table_->GetForSegments( segments, - [&expected_creative_promoted_content_ads]( - const bool success, const SegmentList& /*segments*/, - const CreativePromotedContentAdList& creative_promoted_content_ads) { - EXPECT_TRUE(success); - EXPECT_TRUE(ContainersEq(expected_creative_promoted_content_ads, - creative_promoted_content_ads)); - }); + base::BindOnce( + [](const CreativePromotedContentAdList& + expected_creative_promoted_content_ads, + const bool success, const SegmentList& /*segments*/, + const CreativePromotedContentAdList& + creative_promoted_content_ads) { + EXPECT_TRUE(success); + EXPECT_TRUE(ContainersEq(expected_creative_promoted_content_ads, + creative_promoted_content_ads)); + }, + expected_creative_promoted_content_ads)); } TEST_F(BatAdsCreativePromotedContentAdsDatabaseTableTest, @@ -696,13 +729,17 @@ TEST_F(BatAdsCreativePromotedContentAdsDatabaseTableTest, database_table_->GetForSegments( segments, - [&expected_creative_promoted_content_ads]( - const bool success, const SegmentList& /*segments*/, - const CreativePromotedContentAdList& creative_promoted_content_ads) { - EXPECT_TRUE(success); - EXPECT_TRUE(ContainersEq(expected_creative_promoted_content_ads, - creative_promoted_content_ads)); - }); + base::BindOnce( + [](const CreativePromotedContentAdList& + expected_creative_promoted_content_ads, + const bool success, const SegmentList& /*segments*/, + const CreativePromotedContentAdList& + creative_promoted_content_ads) { + EXPECT_TRUE(success); + EXPECT_TRUE(ContainersEq(expected_creative_promoted_content_ads, + creative_promoted_content_ads)); + }, + expected_creative_promoted_content_ads)); } TEST_F(BatAdsCreativePromotedContentAdsDatabaseTableTest, @@ -769,13 +806,17 @@ TEST_F(BatAdsCreativePromotedContentAdsDatabaseTableTest, database_table_->GetForSegments( segments, - [&expected_creative_promoted_content_ads]( - const bool success, const SegmentList& /*segments*/, - const CreativePromotedContentAdList& creative_promoted_content_ads) { - EXPECT_TRUE(success); - EXPECT_TRUE(ContainersEq(expected_creative_promoted_content_ads, - creative_promoted_content_ads)); - }); + base::BindOnce( + [](const CreativePromotedContentAdList& + expected_creative_promoted_content_ads, + const bool success, const SegmentList& /*segments*/, + const CreativePromotedContentAdList& + creative_promoted_content_ads) { + EXPECT_TRUE(success); + EXPECT_TRUE(ContainersEq(expected_creative_promoted_content_ads, + creative_promoted_content_ads)); + }, + expected_creative_promoted_content_ads)); } TEST_F(BatAdsCreativePromotedContentAdsDatabaseTableTest, TableName) { diff --git a/vendor/bat-native-ads/src/bat/ads/internal/legacy_migration/database/database_migration_issue_17231_unittest.cc b/vendor/bat-native-ads/src/bat/ads/internal/legacy_migration/database/database_migration_issue_17231_unittest.cc index f472705dfa0..1444bb4d60a 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/legacy_migration/database/database_migration_issue_17231_unittest.cc +++ b/vendor/bat-native-ads/src/bat/ads/internal/legacy_migration/database/database_migration_issue_17231_unittest.cc @@ -3,6 +3,7 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this file, * You can obtain one at https://mozilla.org/MPL/2.0/. */ +#include "base/functional/bind.h" #include "base/time/time.h" #include "bat/ads/internal/common/unittest/unittest_base.h" #include "bat/ads/internal/common/unittest/unittest_constants.h" @@ -31,8 +32,8 @@ TEST_F(BatAdsDatabaseMigrationIssue17231Test, ConversionQueueDatabase) { // Act database_table.GetAll( - [](const bool success, - const ConversionQueueItemList& conversion_queue_items) { + base::BindOnce([](const bool success, + const ConversionQueueItemList& conversion_queue_items) { ASSERT_TRUE(success); ConversionQueueItemInfo conversion_queue_item; @@ -53,7 +54,7 @@ TEST_F(BatAdsDatabaseMigrationIssue17231Test, ConversionQueueDatabase) { expected_conversion_queue_items.push_back(conversion_queue_item); EXPECT_EQ(expected_conversion_queue_items, conversion_queue_items); - }); + })); // Assert } @@ -65,8 +66,8 @@ TEST_F(BatAdsDatabaseMigrationIssue17231Test, ConversionsDatabase) { AdvanceClockTo(TimeFromString("28 July 2021", /*is_local*/ false)); // Act - database_table.GetAll([](const bool success, - const ConversionList& conversions) { + database_table.GetAll(base::BindOnce([](const bool success, + const ConversionList& conversions) { ASSERT_TRUE(success); const std::vector creative_set_ids = { @@ -553,7 +554,7 @@ TEST_F(BatAdsDatabaseMigrationIssue17231Test, ConversionsDatabase) { } EXPECT_TRUE(ContainersEq(expected_conversions, conversions)); - }); + })); // Assert } diff --git a/vendor/bat-native-ads/src/bat/ads/internal/processors/contextual/text_embedding/text_embedding_html_events.cc b/vendor/bat-native-ads/src/bat/ads/internal/processors/contextual/text_embedding/text_embedding_html_events.cc index 024c8c8a1e0..472cf1e0877 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/processors/contextual/text_embedding/text_embedding_html_events.cc +++ b/vendor/bat-native-ads/src/bat/ads/internal/processors/contextual/text_embedding/text_embedding_html_events.cc @@ -5,6 +5,9 @@ #include "bat/ads/internal/processors/contextual/text_embedding/text_embedding_html_events.h" +#include + +#include "base/functional/callback.h" #include "base/time/time.h" #include "bat/ads/internal/common/logging_util.h" #include "bat/ads/internal/processors/contextual/text_embedding/text_embedding_html_event_info.h" @@ -32,33 +35,38 @@ void LogTextEmbeddingHtmlEvent( database::table::TextEmbeddingHtmlEvents database_table; database_table.LogEvent( text_embedding_html_event, - base::BindOnce([](const TextEmbeddingHtmlEventCallback& callback, - const bool success) { callback(success); }, - callback)); + base::BindOnce( + [](TextEmbeddingHtmlEventCallback callback, const bool success) { + std::move(callback).Run(success); + }, + std::move(callback))); } void PurgeStaleTextEmbeddingHtmlEvents( TextEmbeddingHtmlEventCallback callback) { const database::table::TextEmbeddingHtmlEvents database_table; - database_table.PurgeStale( - base::BindOnce([](const TextEmbeddingHtmlEventCallback& callback, - const bool success) { callback(success); }, - callback)); + database_table.PurgeStale(base::BindOnce( + [](TextEmbeddingHtmlEventCallback callback, const bool success) { + std::move(callback).Run(success); + }, + std::move(callback))); } void GetTextEmbeddingHtmlEventsFromDatabase( - const database::table::GetTextEmbeddingHtmlEventsCallback& callback) { + database::table::GetTextEmbeddingHtmlEventsCallback callback) { const database::table::TextEmbeddingHtmlEvents database_table; - database_table.GetAll( - [=](const bool success, - const TextEmbeddingHtmlEventList& text_embedding_html_events) { + database_table.GetAll(base::BindOnce( + [](database::table::GetTextEmbeddingHtmlEventsCallback callback, + const bool success, + const TextEmbeddingHtmlEventList& text_embedding_html_events) { if (!success) { BLOG(1, "Failed to get text embedding HTML events"); - callback(success, /* text_embedding_html_events */ {}); + std::move(callback).Run(success, /* text_embedding_html_events */ {}); return; } - callback(success, text_embedding_html_events); - }); + std::move(callback).Run(success, text_embedding_html_events); + }, + std::move(callback))); } } // namespace ads diff --git a/vendor/bat-native-ads/src/bat/ads/internal/processors/contextual/text_embedding/text_embedding_html_events.h b/vendor/bat-native-ads/src/bat/ads/internal/processors/contextual/text_embedding/text_embedding_html_events.h index ae878155b6a..7aab943f930 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/processors/contextual/text_embedding/text_embedding_html_events.h +++ b/vendor/bat-native-ads/src/bat/ads/internal/processors/contextual/text_embedding/text_embedding_html_events.h @@ -6,14 +6,13 @@ #ifndef BRAVE_VENDOR_BAT_NATIVE_ADS_SRC_BAT_ADS_INTERNAL_PROCESSORS_CONTEXTUAL_TEXT_EMBEDDING_TEXT_EMBEDDING_HTML_EVENTS_H_ #define BRAVE_VENDOR_BAT_NATIVE_ADS_SRC_BAT_ADS_INTERNAL_PROCESSORS_CONTEXTUAL_TEXT_EMBEDDING_TEXT_EMBEDDING_HTML_EVENTS_H_ -#include - +#include "base/functional/callback_forward.h" #include "bat/ads/internal/ml/pipeline/text_processing/embedding_info.h" #include "bat/ads/internal/processors/contextual/text_embedding/text_embedding_html_events_database_table.h" namespace ads { -using TextEmbeddingHtmlEventCallback = std::function; +using TextEmbeddingHtmlEventCallback = base::OnceCallback; struct TextEmbeddingHtmlEventInfo; @@ -27,7 +26,7 @@ void LogTextEmbeddingHtmlEvent( void PurgeStaleTextEmbeddingHtmlEvents(TextEmbeddingHtmlEventCallback callback); void GetTextEmbeddingHtmlEventsFromDatabase( - const database::table::GetTextEmbeddingHtmlEventsCallback& callback); + database::table::GetTextEmbeddingHtmlEventsCallback callback); } // namespace ads diff --git a/vendor/bat-native-ads/src/bat/ads/internal/processors/contextual/text_embedding/text_embedding_html_events_database_table.cc b/vendor/bat-native-ads/src/bat/ads/internal/processors/contextual/text_embedding/text_embedding_html_events_database_table.cc index d53e2fa673a..4856e50e926 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/processors/contextual/text_embedding/text_embedding_html_events_database_table.cc +++ b/vendor/bat-native-ads/src/bat/ads/internal/processors/contextual/text_embedding/text_embedding_html_events_database_table.cc @@ -8,6 +8,7 @@ #include #include "base/check.h" +#include "base/functional/callback.h" #include "base/strings/string_number_conversions.h" #include "base/strings/stringprintf.h" #include "base/time/time.h" @@ -61,13 +62,13 @@ TextEmbeddingHtmlEventInfo GetFromRecord(mojom::DBRecordInfo* record) { return text_embedding_html_event; } -void OnGetTextEmbeddingHtmlEvents( - const GetTextEmbeddingHtmlEventsCallback& callback, - mojom::DBCommandResponseInfoPtr response) { +void OnGetTextEmbeddingHtmlEvents(GetTextEmbeddingHtmlEventsCallback callback, + mojom::DBCommandResponseInfoPtr response) { if (!response || response->status != mojom::DBCommandResponseInfo::StatusType::RESPONSE_OK) { BLOG(0, "Failed to get embeddings"); - callback(/* success */ false, /* text_embedding_html_events */ {}); + std::move(callback).Run(/* success */ false, + /* text_embedding_html_events */ {}); return; } @@ -79,7 +80,7 @@ void OnGetTextEmbeddingHtmlEvents( text_embedding_html_events.push_back(text_embedding_html_event); } - callback(/* success */ true, text_embedding_html_events); + std::move(callback).Run(/* success */ true, text_embedding_html_events); } void RunTransaction(const std::string& query, @@ -101,7 +102,7 @@ void RunTransaction(const std::string& query, AdsClientHelper::GetInstance()->RunDBTransaction( std::move(transaction), - base::BindOnce(&OnGetTextEmbeddingHtmlEvents, callback)); + base::BindOnce(&OnGetTextEmbeddingHtmlEvents, std::move(callback))); } void MigrateToV25(mojom::DBTransactionInfo* transaction) { diff --git a/vendor/bat-native-ads/src/bat/ads/internal/processors/contextual/text_embedding/text_embedding_html_events_database_table.h b/vendor/bat-native-ads/src/bat/ads/internal/processors/contextual/text_embedding/text_embedding_html_events_database_table.h index ebf38988c78..54ad7792ab7 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/processors/contextual/text_embedding/text_embedding_html_events_database_table.h +++ b/vendor/bat-native-ads/src/bat/ads/internal/processors/contextual/text_embedding/text_embedding_html_events_database_table.h @@ -6,9 +6,9 @@ #ifndef BRAVE_VENDOR_BAT_NATIVE_ADS_SRC_BAT_ADS_INTERNAL_PROCESSORS_CONTEXTUAL_TEXT_EMBEDDING_TEXT_EMBEDDING_HTML_EVENTS_DATABASE_TABLE_H_ #define BRAVE_VENDOR_BAT_NATIVE_ADS_SRC_BAT_ADS_INTERNAL_PROCESSORS_CONTEXTUAL_TEXT_EMBEDDING_TEXT_EMBEDDING_HTML_EVENTS_DATABASE_TABLE_H_ -#include #include +#include "base/functional/callback_forward.h" #include "bat/ads/ads_client_callback.h" #include "bat/ads/internal/database/database_table_interface.h" #include "bat/ads/internal/processors/contextual/text_embedding/text_embedding_html_event_info.h" @@ -17,7 +17,7 @@ namespace ads::database::table { using GetTextEmbeddingHtmlEventsCallback = - std::function; + base::OnceCallback; class TextEmbeddingHtmlEvents final : public TableInterface { public: diff --git a/vendor/bat-native-ads/src/bat/ads/internal/processors/contextual/text_embedding/text_embedding_html_events_unittest.cc b/vendor/bat-native-ads/src/bat/ads/internal/processors/contextual/text_embedding/text_embedding_html_events_unittest.cc index 1f531b48453..b69f8441ce0 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/processors/contextual/text_embedding/text_embedding_html_events_unittest.cc +++ b/vendor/bat-native-ads/src/bat/ads/internal/processors/contextual/text_embedding/text_embedding_html_events_unittest.cc @@ -38,19 +38,22 @@ TEST_F(BatAdsTextEmbeddingHtmlEventsTest, LogEvent) { const ml::pipeline::TextEmbeddingInfo text_embedding = BuildTextEmbedding(); // Act - LogTextEmbeddingHtmlEvent(BuildTextEmbeddingHtmlEvent(text_embedding), - [=](const bool success) { ASSERT_TRUE(success); }); + LogTextEmbeddingHtmlEvent( + BuildTextEmbeddingHtmlEvent(text_embedding), + base::BindOnce([](const bool success) { ASSERT_TRUE(success); })); - GetTextEmbeddingHtmlEventsFromDatabase( - [=](const bool success, - const TextEmbeddingHtmlEventList& text_embedding_html_events) { + GetTextEmbeddingHtmlEventsFromDatabase(base::BindOnce( + [](const ml::pipeline::TextEmbeddingInfo& text_embedding, + const bool success, + const TextEmbeddingHtmlEventList& text_embedding_html_events) { ASSERT_TRUE(!text_embedding_html_events.empty()); ASSERT_TRUE(success); // Assert EXPECT_EQ(text_embedding.hashed_text_base64, text_embedding_html_events.front().hashed_text_base64); - }); + }, + text_embedding)); } TEST_F(BatAdsTextEmbeddingHtmlEventsTest, PurgeEvents) { @@ -58,25 +61,27 @@ TEST_F(BatAdsTextEmbeddingHtmlEventsTest, PurgeEvents) { for (int i = 0; i < targeting::features::GetTextEmbeddingsHistorySize() + 4; i++) { const ml::pipeline::TextEmbeddingInfo text_embedding = BuildTextEmbedding(); - LogTextEmbeddingHtmlEvent(BuildTextEmbeddingHtmlEvent(text_embedding), - [](const bool success) { ASSERT_TRUE(success); }); + LogTextEmbeddingHtmlEvent( + BuildTextEmbeddingHtmlEvent(text_embedding), + base::BindOnce([](const bool success) { ASSERT_TRUE(success); })); } // Act PurgeStaleTextEmbeddingHtmlEvents( - [](const bool success) { ASSERT_TRUE(success); }); + base::BindOnce([](const bool success) { ASSERT_TRUE(success); })); // Assert - GetTextEmbeddingHtmlEventsFromDatabase( + GetTextEmbeddingHtmlEventsFromDatabase(base::BindOnce( [](const bool success, const TextEmbeddingHtmlEventList& text_embedding_html_events) { ASSERT_TRUE(success); - const int text_embedding_html_event_count = + const size_t text_embedding_html_event_count = text_embedding_html_events.size(); - EXPECT_TRUE(text_embedding_html_event_count <= - targeting::features::GetTextEmbeddingsHistorySize()); - }); + EXPECT_LE(text_embedding_html_event_count, + static_cast( + targeting::features::GetTextEmbeddingsHistorySize())); + })); } } // namespace ads diff --git a/vendor/bat-native-ads/src/bat/ads/internal/processors/contextual/text_embedding/text_embedding_processor.cc b/vendor/bat-native-ads/src/bat/ads/internal/processors/contextual/text_embedding/text_embedding_processor.cc index e60180b3d36..6b186949fda 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/processors/contextual/text_embedding/text_embedding_processor.cc +++ b/vendor/bat-native-ads/src/bat/ads/internal/processors/contextual/text_embedding/text_embedding_processor.cc @@ -68,7 +68,8 @@ void TextEmbedding::Process(const std::string& html) { } LogTextEmbeddingHtmlEvent( - BuildTextEmbeddingHtmlEvent(text_embedding), [](const bool success) { + BuildTextEmbeddingHtmlEvent(text_embedding), + base::BindOnce([](const bool success) { if (!success) { BLOG(1, "Failed to log text embedding HTML event"); return; @@ -76,15 +77,16 @@ void TextEmbedding::Process(const std::string& html) { BLOG(3, "Successfully logged text embedding HTML event"); - PurgeStaleTextEmbeddingHtmlEvents([](const bool success) { - if (!success) { - BLOG(1, "Failed to purge stale text embedding HTML events"); - return; - } + PurgeStaleTextEmbeddingHtmlEvents( + base::BindOnce([](const bool success) { + if (!success) { + BLOG(1, "Failed to purge stale text embedding HTML events"); + return; + } - BLOG(3, "Successfully purged stale text embedding HTML events"); - }); - }); + BLOG(3, "Successfully purged stale text embedding HTML events"); + })); + })); } ///////////////////////////////////////////////////////////////////////////////