From 081766ef3cb79a01a32c71b09c490946933d2956 Mon Sep 17 00:00:00 2001 From: NejcZdovc Date: Sat, 2 Mar 2019 10:40:14 +0100 Subject: [PATCH] Fixes publisher info getting lost on publishers not in activity table Resolves https://github.com/brave/brave-browser/issues/3551 --- .../brave_rewards/browser/rewards_service_impl.cc | 10 +++++++--- .../brave_rewards/browser/rewards_service_impl.h | 3 ++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/components/brave_rewards/browser/rewards_service_impl.cc b/components/brave_rewards/browser/rewards_service_impl.cc index 0426079e0459..0533c9f1aeb2 100644 --- a/components/brave_rewards/browser/rewards_service_impl.cc +++ b/components/brave_rewards/browser/rewards_service_impl.cc @@ -1039,19 +1039,23 @@ void RewardsServiceImpl::LoadActivityInfo( 0, 2, filter, publisher_info_backend_.get()), base::Bind(&RewardsServiceImpl::OnActivityInfoLoaded, AsWeakPtr(), - callback)); + callback, + filter.id)); } void RewardsServiceImpl::OnActivityInfoLoaded( ledger::PublisherInfoCallback callback, + const std::string& publisher_key, const ledger::PublisherInfoList list) { if (!Connected()) { return; } + // activity info not found if (list.size() == 0) { - callback(ledger::Result::NOT_FOUND, - std::unique_ptr()); + // we need to try to get at least publisher info in this case + // this way we preserve publisher info + LoadPublisherInfo(publisher_key, callback); return; } else if (list.size() > 1) { callback(ledger::Result::TOO_MANY_RESULTS, diff --git a/components/brave_rewards/browser/rewards_service_impl.h b/components/brave_rewards/browser/rewards_service_impl.h index 39aaebd0b47b..c175001b8126 100644 --- a/components/brave_rewards/browser/rewards_service_impl.h +++ b/components/brave_rewards/browser/rewards_service_impl.h @@ -221,7 +221,8 @@ class RewardsServiceImpl : public RewardsService, std::unique_ptr info, bool success); void OnActivityInfoLoaded(ledger::PublisherInfoCallback callback, - const ledger::PublisherInfoList list); + const std::string& publisher_key, + const ledger::PublisherInfoList list); void OnMediaPublisherInfoSaved(bool success); void OnPublisherInfoLoaded(ledger::PublisherInfoCallback callback, std::unique_ptr info);