From 2a3bff2c05a6588ce54eb82c85bb6b52c5dccc5f Mon Sep 17 00:00:00 2001 From: NejcZdovc Date: Wed, 27 Feb 2019 20:53:34 +0100 Subject: [PATCH] Fixes exclude being out of sync in ac table Resolves https://github.com/brave/brave-browser/issues/3510 --- browser/ui/webui/brave_rewards_ui.cc | 35 +++-- .../browser/publisher_info_database.cc | 23 +++ .../browser/publisher_info_database.h | 2 + .../publisher_info_database_unittest.cc | 39 +++++ .../brave_rewards/browser/rewards_service.h | 6 +- .../browser/rewards_service_impl.cc | 37 ++++- .../browser/rewards_service_impl.h | 10 +- .../reducers/rewards_panel_reducer.ts | 7 +- .../resources/ui/actions/rewards_actions.ts | 6 +- .../resources/ui/brave_rewards.tsx | 6 +- .../resources/ui/components/contributeBox.tsx | 6 +- .../resources/ui/components/settingsPage.tsx | 1 + .../resources/ui/constants/rewards_types.ts | 5 +- .../ui/reducers/publishers_reducer.ts | 59 ++----- .../brave_rewards/resources/ui/storage.ts | 3 +- components/definitions/rewards.d.ts | 3 +- .../bat_ledger_client_mojo_proxy.cc | 16 ++ .../bat_ledger/bat_ledger_client_mojo_proxy.h | 3 + .../services/bat_ledger/bat_ledger_impl.cc | 17 +- .../services/bat_ledger/bat_ledger_impl.h | 6 +- .../public/cpp/ledger_client_mojo_proxy.cc | 19 +++ .../public/cpp/ledger_client_mojo_proxy.h | 6 + .../public/interfaces/bat_ledger.mojom | 4 +- .../ui/reducers/publishers_reducer_test.ts | 147 ++---------------- .../test/confirmations_client_mock.h | 3 + .../include/bat/ledger/ledger.h | 4 +- .../include/bat/ledger/ledger_client.h | 4 + vendor/bat-native-ledger/src/bat_helper.cc | 6 - vendor/bat-native-ledger/src/bat_helper.h | 1 - .../bat-native-ledger/src/bat_publishers.cc | 22 +-- vendor/bat-native-ledger/src/bat_publishers.h | 6 - vendor/bat-native-ledger/src/ledger_impl.cc | 6 +- vendor/bat-native-ledger/src/ledger_impl.h | 3 +- 33 files changed, 253 insertions(+), 268 deletions(-) diff --git a/browser/ui/webui/brave_rewards_ui.cc b/browser/ui/webui/brave_rewards_ui.cc index f81c16b63eb7..32fc130c2290 100644 --- a/browser/ui/webui/brave_rewards_ui.cc +++ b/browser/ui/webui/brave_rewards_ui.cc @@ -91,7 +91,7 @@ class RewardsDOMHandler : public WebUIMessageHandler, void OnGetContributionAmount(double amount); void OnGetAddresses(const std::string func_name, const std::map& addresses); - void OnGetNumExcludedSites(const std::string& publisher_id, uint32_t num); + void OnGetExcludedPublishersNumber(uint32_t num); void OnGetAutoContributeProps( int error_code, std::unique_ptr wallet_properties, @@ -107,6 +107,8 @@ class RewardsDOMHandler : public WebUIMessageHandler, void GetAddressesForPaymentId(const base::ListValue* args); void GetConfirmationsHistory(const base::ListValue* args); + void GetExcludedPublishersNumber(const base::ListValue* args); + void OnConfirmationsHistory(int total_viewed, double estimated_earnings); // RewardsServiceObserver implementation @@ -273,6 +275,9 @@ void RewardsDOMHandler::RegisterMessages() { web_ui()->RegisterMessageCallback("brave_rewards.getConfirmationsHistory", base::BindRepeating(&RewardsDOMHandler::GetConfirmationsHistory, base::Unretained(this))); + web_ui()->RegisterMessageCallback("brave_rewards.getExcludedPublishersNumber", + base::BindRepeating(&RewardsDOMHandler::GetExcludedPublishersNumber, + base::Unretained(this))); } void RewardsDOMHandler::Init() { @@ -608,27 +613,20 @@ void RewardsDOMHandler::OnContentSiteUpdated( weak_factory_.GetWeakPtr())); } -void RewardsDOMHandler::OnGetNumExcludedSites(const std::string& publisher_id, - uint32_t num) { +void RewardsDOMHandler::OnGetExcludedPublishersNumber(uint32_t num) { if (web_ui()->CanCallJavascript()) { - base::DictionaryValue excludedSitesInfo; - excludedSitesInfo.SetString("num", std::to_string(num)); - excludedSitesInfo.SetString("publisherKey", publisher_id); - - web_ui()->CallJavascriptFunctionUnsafe("brave_rewards.numExcludedSites", - excludedSitesInfo); + web_ui()->CallJavascriptFunctionUnsafe("brave_rewards.excludedNumber", + base::Value(std::to_string(num))); } } - void RewardsDOMHandler::OnExcludedSitesChanged( brave_rewards::RewardsService* rewards_service, std::string publisher_id, bool excluded) { if (rewards_service_) - rewards_service_->GetNumExcludedSites(base::Bind( - &RewardsDOMHandler::OnGetNumExcludedSites, - weak_factory_.GetWeakPtr(), - publisher_id)); + rewards_service_->GetExcludedPublishersNumber( + base::Bind(&RewardsDOMHandler::OnGetExcludedPublishersNumber, + weak_factory_.GetWeakPtr())); } void RewardsDOMHandler::OnNotificationAdded( @@ -993,6 +991,15 @@ void RewardsDOMHandler::OnConfirmationsHistoryChanged( } } +void RewardsDOMHandler::GetExcludedPublishersNumber( + const base::ListValue* args) { + if (rewards_service_) { + rewards_service_->GetExcludedPublishersNumber( + base::Bind(&RewardsDOMHandler::OnGetExcludedPublishersNumber, + weak_factory_.GetWeakPtr())); + } +} + } // namespace BraveRewardsUI::BraveRewardsUI(content::WebUI* web_ui, const std::string& name) diff --git a/components/brave_rewards/browser/publisher_info_database.cc b/components/brave_rewards/browser/publisher_info_database.cc index 2f8e16781c85..0110227310d8 100644 --- a/components/brave_rewards/browser/publisher_info_database.cc +++ b/components/brave_rewards/browser/publisher_info_database.cc @@ -389,6 +389,29 @@ bool PublisherInfoDatabase::RestorePublishers() { return restore_q.Run(); } +int PublisherInfoDatabase::GetExcludedPublishersCount() { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + + bool initialized = Init(); + DCHECK(initialized); + + if (!initialized) { + return 0; + } + + sql::Statement query(db_.GetUniqueStatement( + "SELECT COUNT(*) FROM publisher_info WHERE excluded=?")); + + query.BindInt(0, static_cast( + ledger::PUBLISHER_EXCLUDE::EXCLUDED)); + + if (query.Step()) { + return query.ColumnInt(0); + } + + return 0; +} + /** * * ACTIVITY INFO diff --git a/components/brave_rewards/browser/publisher_info_database.h b/components/brave_rewards/browser/publisher_info_database.h index e8f54cbf512b..6e451e1ae9a8 100644 --- a/components/brave_rewards/browser/publisher_info_database.h +++ b/components/brave_rewards/browser/publisher_info_database.h @@ -52,6 +52,8 @@ class PublisherInfoDatabase { bool RestorePublishers(); + int GetExcludedPublishersCount(); + bool InsertOrUpdateActivityInfo(const ledger::PublisherInfo& info); bool InsertOrUpdateActivityInfos(const ledger::PublisherInfoList& list); diff --git a/components/brave_rewards/browser/publisher_info_database_unittest.cc b/components/brave_rewards/browser/publisher_info_database_unittest.cc index 95ee19e5fda7..66dfde35c23a 100644 --- a/components/brave_rewards/browser/publisher_info_database_unittest.cc +++ b/components/brave_rewards/browser/publisher_info_database_unittest.cc @@ -825,4 +825,43 @@ TEST_F(PublisherInfoDatabaseTest, Migrationv4tov6) { EXPECT_EQ(publisher_info_database_->GetTableVersionNumber(), 6); } +TEST_F(PublisherInfoDatabaseTest, GetExcludedPublishersCount) { + base::ScopedTempDir temp_dir; + base::FilePath db_file; + CreateTempDatabase(&temp_dir, &db_file); + + // empty table + EXPECT_EQ(publisher_info_database_->GetExcludedPublishersCount(), 0); + + // with data + ledger::PublisherInfo info; + info.id = "publisher_1"; + info.verified = false; + info.excluded = ledger::PUBLISHER_EXCLUDE::DEFAULT; + info.name = "name"; + info.url = "https://brave.com"; + info.provider = ""; + info.favicon_url = "0"; + + EXPECT_TRUE(publisher_info_database_->InsertOrUpdatePublisherInfo(info)); + + info.id = "publisher_2"; + EXPECT_TRUE(publisher_info_database_->InsertOrUpdatePublisherInfo(info)); + + info.id = "publisher_3"; + info.excluded = ledger::PUBLISHER_EXCLUDE::INCLUDED; + EXPECT_TRUE(publisher_info_database_->InsertOrUpdatePublisherInfo(info)); + + info.id = "publisher_4"; + info.excluded = ledger::PUBLISHER_EXCLUDE::EXCLUDED; + EXPECT_TRUE(publisher_info_database_->InsertOrUpdatePublisherInfo(info)); + + info.id = "publisher_5"; + info.excluded = ledger::PUBLISHER_EXCLUDE::EXCLUDED; + EXPECT_TRUE(publisher_info_database_->InsertOrUpdatePublisherInfo(info)); + EXPECT_EQ(CountTableRows("publisher_info"), 5); + + EXPECT_EQ(publisher_info_database_->GetExcludedPublishersCount(), 2); +} + } // namespace brave_rewards diff --git a/components/brave_rewards/browser/rewards_service.h b/components/brave_rewards/browser/rewards_service.h index 5b1eeeb7c57c..5c9f72758263 100644 --- a/components/brave_rewards/browser/rewards_service.h +++ b/components/brave_rewards/browser/rewards_service.h @@ -55,7 +55,7 @@ using GetWalletPassphraseCallback = base::Callback; using GetContributionAmountCallback = base::Callback; using GetAddressesCallback = base::Callback&)>; -using GetNumExcludedSitesCallback = base::Callback; +using GetExcludedPublishersNumberCallback = base::Callback; using GetAutoContributePropsCallback = base::Callback)>; using GetPublisherMinVisitTimeCallback = base::Callback; @@ -91,8 +91,8 @@ class RewardsService : public KeyedService { const std::string& promotionId) const = 0; virtual void GetWalletPassphrase( const GetWalletPassphraseCallback& callback) = 0; - virtual void GetNumExcludedSites( - const GetNumExcludedSitesCallback& callback) = 0; + virtual void GetExcludedPublishersNumber( + const GetExcludedPublishersNumberCallback& callback) = 0; virtual void RecoverWallet(const std::string passPhrase) const = 0; virtual void ExcludePublisher(const std::string publisherKey) const = 0; virtual void RestorePublishers() = 0; diff --git a/components/brave_rewards/browser/rewards_service_impl.cc b/components/brave_rewards/browser/rewards_service_impl.cc index 0533c9f1aeb2..259df5f4d325 100644 --- a/components/brave_rewards/browser/rewards_service_impl.cc +++ b/components/brave_rewards/browser/rewards_service_impl.cc @@ -1314,13 +1314,13 @@ void RewardsServiceImpl::GetWalletPassphrase( bat_ledger_->GetWalletPassphrase(callback); } -void RewardsServiceImpl::GetNumExcludedSites( - const GetNumExcludedSitesCallback& callback) { +void RewardsServiceImpl::GetExcludedPublishersNumber( + const GetExcludedPublishersNumberCallback& callback) { if (!Connected()) { return; } - bat_ledger_->GetNumExcludedSites(callback); + bat_ledger_->GetExcludedPublishersNumber(callback); } void RewardsServiceImpl::RecoverWallet(const std::string passPhrase) const { @@ -2667,4 +2667,35 @@ void RewardsServiceImpl::GetAddressesForPaymentId( callback)); } +int GetExcludedPublishersNumberOnFileTaskRunner(PublisherInfoDatabase* backend) { + if (!backend) { + return 0; + } + + return backend->GetExcludedPublishersCount(); +} + +void RewardsServiceImpl::OnGetExcludedPublishersNumberDB( + ledger::GetExcludedPublishersNumberDBCallback callback, + int number) { + if (!Connected()) { + callback(0); + return; + } + + callback(number); +} + +void RewardsServiceImpl::GetExcludedPublishersNumberDB( + ledger::GetExcludedPublishersNumberDBCallback callback) { + base::PostTaskAndReplyWithResult( + file_task_runner_.get(), + FROM_HERE, + base::BindOnce(&GetExcludedPublishersNumberOnFileTaskRunner, + publisher_info_backend_.get()), + base::BindOnce(&RewardsServiceImpl::OnGetExcludedPublishersNumberDB, + AsWeakPtr(), + callback)); +} + } // namespace brave_rewards diff --git a/components/brave_rewards/browser/rewards_service_impl.h b/components/brave_rewards/browser/rewards_service_impl.h index c175001b8126..883a5a565f24 100644 --- a/components/brave_rewards/browser/rewards_service_impl.h +++ b/components/brave_rewards/browser/rewards_service_impl.h @@ -91,8 +91,8 @@ class RewardsServiceImpl : public RewardsService, const std::string& promotionId) const override; void GetWalletPassphrase( const GetWalletPassphraseCallback& callback) override; - void GetNumExcludedSites( - const GetNumExcludedSitesCallback& callback) override; + void GetExcludedPublishersNumber( + const GetExcludedPublishersNumberCallback& callback) override; void RecoverWallet(const std::string passPhrase) const override; void GetContentSiteList( uint32_t start, @@ -392,6 +392,12 @@ class RewardsServiceImpl : public RewardsService, void SaveNormalizedPublisherList( const ledger::PublisherInfoListStruct& list) override; + void GetExcludedPublishersNumberDB( + ledger::GetExcludedPublishersNumberDBCallback callback) override; + + void OnGetExcludedPublishersNumberDB(ledger::GetExcludedPublishersNumberDBCallback callback, + int number); + // URLFetcherDelegate impl void OnURLFetchComplete(const net::URLFetcher* source) override; diff --git a/components/brave_rewards/resources/extension/brave_rewards/background/reducers/rewards_panel_reducer.ts b/components/brave_rewards/resources/extension/brave_rewards/background/reducers/rewards_panel_reducer.ts index b36648d0c3c4..052731f90cd4 100644 --- a/components/brave_rewards/resources/extension/brave_rewards/background/reducers/rewards_panel_reducer.ts +++ b/components/brave_rewards/resources/extension/brave_rewards/background/reducers/rewards_panel_reducer.ts @@ -272,11 +272,6 @@ export const rewardsPanelReducer = (state: RewardsExtension.State | undefined, a } const publisherKey: string = payload.properties.publisher_key - - if (!publisherKey) { - break - } - const excluded: boolean = payload.properties.excluded let publishers: Record = state.publishers @@ -286,6 +281,8 @@ export const rewardsPanelReducer = (state: RewardsExtension.State | undefined, a if (publisher.publisher_key === publisherKey) { publisher.excluded = !!excluded + } else if (publisherKey === '-1') { + publisher.excluded = false } } diff --git a/components/brave_rewards/resources/ui/actions/rewards_actions.ts b/components/brave_rewards/resources/ui/actions/rewards_actions.ts index 828689cab35e..8f50bb258f5f 100644 --- a/components/brave_rewards/resources/ui/actions/rewards_actions.ts +++ b/components/brave_rewards/resources/ui/actions/rewards_actions.ts @@ -109,8 +109,8 @@ export const onWalletExists = (exists: boolean) => action(types.ON_WALLET_EXISTS export const restorePublishers = () => action(types.ON_RESTORE_PUBLISHERS) -export const onNumExcludedSites = (excludedSitesInfo: {num: string, publisherKey: string}) => action(types.ON_NUM_EXCLUDED_SITES, { - excludedSitesInfo +export const onExcludedNumber = (num: number) => action(types.ON_EXCLUDED_PUBLISHERS_NUMBER, { + num }) export const onContributionAmount = (amount: number) => action(types.ON_CONTRIBUTION_AMOUNT, { @@ -183,3 +183,5 @@ export const onConfirmationsHistory = (data: {adsTotalPages: number, adsEstimate export const getConfirmationsHistory = () => action(types.GET_CONFIRMATIONS_HISTORY) export const onConfirmationsHistoryChanged = () => action(types.ON_CONFIRMATIONS_HISTORY_CHANGED) + +export const getExcludedPublishersNumber = () => action(types.GET_EXCLUDED_PUBLISHERS_NUMBER) diff --git a/components/brave_rewards/resources/ui/brave_rewards.tsx b/components/brave_rewards/resources/ui/brave_rewards.tsx index d6f3c5c5fd7f..a28ed35d95d9 100644 --- a/components/brave_rewards/resources/ui/brave_rewards.tsx +++ b/components/brave_rewards/resources/ui/brave_rewards.tsx @@ -93,8 +93,8 @@ window.cr.define('brave_rewards', function () { getActions().onContributeList(list) } - function numExcludedSites (excludedSitesInfo: {num: string, publisherKey: string}) { - getActions().onNumExcludedSites(excludedSitesInfo) + function excludedNumber (num: number) { + getActions().onExcludedNumber(num) } function balanceReports (reports: Record) { @@ -168,7 +168,7 @@ window.cr.define('brave_rewards', function () { reconcileStamp, addresses, contributeList, - numExcludedSites, + excludedNumber, balanceReports, walletExists, contributionAmount, diff --git a/components/brave_rewards/resources/ui/components/contributeBox.tsx b/components/brave_rewards/resources/ui/components/contributeBox.tsx index 40e9e10a338b..2e3b5529e9eb 100644 --- a/components/brave_rewards/resources/ui/components/contributeBox.tsx +++ b/components/brave_rewards/resources/ui/components/contributeBox.tsx @@ -189,7 +189,7 @@ class ContributeBox extends React.Component { contributionMonthly, enabledContribute, reconcileStamp, - numExcludedSites, + excludedPublishersNumber, autoContributeList } = this.props.rewardsData const monthlyList: MonthlyChoice[] = utils.generateContributionMonthly(walletInfo.choices, walletInfo.rates) @@ -218,7 +218,7 @@ class ContributeBox extends React.Component { ? : null @@ -258,7 +258,7 @@ class ContributeBox extends React.Component { rows={topRows} allSites={allSites} numSites={numRows} - numExcludedSites={numExcludedSites} + numExcludedSites={excludedPublishersNumber} onRestore={this.onRestore} onShowAll={this.onModalContributeToggle} headerColor={true} diff --git a/components/brave_rewards/resources/ui/components/settingsPage.tsx b/components/brave_rewards/resources/ui/components/settingsPage.tsx index e14b0ccc5574..54f1b96b404d 100644 --- a/components/brave_rewards/resources/ui/components/settingsPage.tsx +++ b/components/brave_rewards/resources/ui/components/settingsPage.tsx @@ -39,6 +39,7 @@ class SettingsPage extends React.Component { this.actions.getPendingContributionsTotal() this.actions.getReconcileStamp() this.actions.getConfirmationsHistory() + this.actions.getExcludedPublishersNumber() } componentDidMount () { diff --git a/components/brave_rewards/resources/ui/constants/rewards_types.ts b/components/brave_rewards/resources/ui/constants/rewards_types.ts index 036b903b7aa0..622874ef61aa 100644 --- a/components/brave_rewards/resources/ui/constants/rewards_types.ts +++ b/components/brave_rewards/resources/ui/constants/rewards_types.ts @@ -34,7 +34,7 @@ export const enum types { ON_RESTORE_PUBLISHERS = '@@rewards/ON_RESTORE_PUBLISHERS', CHECK_WALLET_EXISTENCE = '@@rewards/CHECK_WALLET_EXISTENCE', ON_WALLET_EXISTS = '@@rewards/ON_WALLET_EXISTS', - ON_NUM_EXCLUDED_SITES = '@@rewards/ON_NUM_EXCLUDED_SITES', + ON_EXCLUDED_PUBLISHERS_NUMBER = '@@rewards/ON_EXCLUDED_PUBLISHERS_NUMBER', ON_CONTRIBUTION_AMOUNT = '@@rewards/ON_CONTRIBUTION_AMOUNT', ON_RECURRING_DONATION_UPDATE = '@@rewards/ON_RECURRING_DONATION_UPDATE', ON_REMOVE_RECURRING = '@@rewards/ON_REMOVE_RECURRING', @@ -56,5 +56,6 @@ export const enum types { ON_ADDRESSES_FOR_PAYMENT_ID = '@@rewards/ON_ADDRESSES_FOR_PAYMENT_ID', GET_CONFIRMATIONS_HISTORY = '@@rewards/GET_CONFIRMATIONS_HISTORY', ON_CONFIRMATIONS_HISTORY = '@@rewards/ON_CONFIRMATIONS_HISTORY', - ON_CONFIRMATIONS_HISTORY_CHANGED = '@@rewards/ON_CONFIRMATIONS_HISTORY_CHANGED' + ON_CONFIRMATIONS_HISTORY_CHANGED = '@@rewards/ON_CONFIRMATIONS_HISTORY_CHANGED', + GET_EXCLUDED_PUBLISHERS_NUMBER = '@@rewards/GET_EXCLUDED_PUBLISHERS_NUMBER' } diff --git a/components/brave_rewards/resources/ui/reducers/publishers_reducer.ts b/components/brave_rewards/resources/ui/reducers/publishers_reducer.ts index f88139c2dd0d..c4de8b895220 100644 --- a/components/brave_rewards/resources/ui/reducers/publishers_reducer.ts +++ b/components/brave_rewards/resources/ui/reducers/publishers_reducer.ts @@ -16,68 +16,32 @@ const publishersReducer: Reducer = (state: Rewards.St } else { state.contributeLoad = true } - // Ensure that state.excluded is respected at all times - if (!state.excluded) { - state.excluded = [] - } - state.autoContributeList = action.payload.list.filter((item: Rewards.Publisher) => { - return !state.excluded.includes(item.id) - }) + + state.autoContributeList = action.payload.list break - case types.ON_NUM_EXCLUDED_SITES: + case types.ON_EXCLUDED_PUBLISHERS_NUMBER: { state = { ...state } + let num = parseInt(action.payload.num, 10) - if (action.payload.excludedSitesInfo != null) { - const previousNum = state.numExcludedSites - const newNum = action.payload.excludedSitesInfo.num - const publisherKey = action.payload.excludedSitesInfo.publisherKey - - state.numExcludedSites = parseInt(newNum, 10) - - if (publisherKey.length > 0) { - if (previousNum < newNum) { - // On a new excluded publisher, add to excluded state - if (!state.excluded.includes(publisherKey)) { - state.excluded.push(publisherKey) - } - } else { - // Remove the publisher from excluded if it has been re-included - if (state.excluded.includes(publisherKey)) { - state.excluded = state.excluded.filter((key: string) => key !== publisherKey) - } - } - } - - state = { - ...state, - excluded: state.excluded - } + if (isNaN(num)) { + num = 0 } + state.excludedPublishersNumber = num + break + } case types.ON_EXCLUDE_PUBLISHER: { const publisherKey: string = action.payload.publisherKey if (!publisherKey) { break } - if (!state.excluded) { - state.excluded = [] - } - - if (!state.excluded.includes(publisherKey)) { - chrome.send('brave_rewards.excludePublisher', [publisherKey]) - state.excluded.push(publisherKey) - state = { - ...state, - excluded: state.excluded - } - } + chrome.send('brave_rewards.excludePublisher', [publisherKey]) break } case types.ON_RESTORE_PUBLISHERS: state = { ...state } - state.excluded = [] chrome.send('brave_rewards.restorePublishers', []) break case types.ON_RECURRING_DONATION_UPDATE: @@ -104,6 +68,9 @@ const publishersReducer: Reducer = (state: Rewards.St } state.tipsList = action.payload.list break + case types.GET_EXCLUDED_PUBLISHERS_NUMBER: + chrome.send('brave_rewards.getExcludedPublishersNumber') + break } return state diff --git a/components/brave_rewards/resources/ui/storage.ts b/components/brave_rewards/resources/ui/storage.ts index a5756df34e57..a97a17d5680f 100644 --- a/components/brave_rewards/resources/ui/storage.ts +++ b/components/brave_rewards/resources/ui/storage.ts @@ -22,7 +22,7 @@ export const defaultState: Rewards.State = { contributionVideos: true, donationAbilityYT: true, donationAbilityTwitter: true, - numExcludedSites: 0, + excludedPublishersNumber: 0, walletInfo: { balance: 0, choices: [5.0, 7.5, 10.0, 17.5, 25.0, 50.0, 75.0, 100.0], @@ -48,7 +48,6 @@ export const defaultState: Rewards.State = { contributeLoad: false, recurringLoad: false, tipsLoad: false, - excluded: [], adsData: { adsEnabled: false, adsPerHour: 0, diff --git a/components/definitions/rewards.d.ts b/components/definitions/rewards.d.ts index 1a8bb46ee920..7ce0e4c76071 100644 --- a/components/definitions/rewards.d.ts +++ b/components/definitions/rewards.d.ts @@ -41,10 +41,9 @@ declare namespace Rewards { enabledAds: boolean enabledContribute: boolean enabledMain: boolean - excluded: string[] firstLoad: boolean | null grants?: Grant[] - numExcludedSites: number + excludedPublishersNumber: number pendingContributionTotal: number reconcileStamp: number recoveryKey: string diff --git a/components/services/bat_ledger/bat_ledger_client_mojo_proxy.cc b/components/services/bat_ledger/bat_ledger_client_mojo_proxy.cc index 84967213ec94..6315dc272378 100644 --- a/components/services/bat_ledger/bat_ledger_client_mojo_proxy.cc +++ b/components/services/bat_ledger/bat_ledger_client_mojo_proxy.cc @@ -90,6 +90,11 @@ void OnResetState(const ledger::OnSaveCallback& callback, callback(ToLedgerResult(result)); } +void OnExcludedNumberDB(const ledger::GetExcludedPublishersNumberDBCallback& callback, + uint32_t result) { + callback(result); +} + } // namespace BatLedgerClientMojoProxy::BatLedgerClientMojoProxy( @@ -744,4 +749,15 @@ bool BatLedgerClientMojoProxy::Connected() const { return bat_ledger_client_.is_bound(); } +void BatLedgerClientMojoProxy::GetExcludedPublishersNumberDB( + ledger::GetExcludedPublishersNumberDBCallback callback) { + if (!Connected()) { + callback(0); + return; + } + + bat_ledger_client_->GetExcludedPublishersNumberDB( + base::BindOnce(&OnExcludedNumberDB, std::move(callback))); +} + } // namespace bat_ledger diff --git a/components/services/bat_ledger/bat_ledger_client_mojo_proxy.h b/components/services/bat_ledger/bat_ledger_client_mojo_proxy.h index be8aea837104..23a0a7fcd69f 100644 --- a/components/services/bat_ledger/bat_ledger_client_mojo_proxy.h +++ b/components/services/bat_ledger/bat_ledger_client_mojo_proxy.h @@ -136,6 +136,9 @@ class BatLedgerClientMojoProxy : public ledger::LedgerClient, void ConfirmationsTransactionHistoryDidChange() override; + void GetExcludedPublishersNumberDB( + ledger::GetExcludedPublishersNumberDBCallback callback) override; + private: bool Connected() const; diff --git a/components/services/bat_ledger/bat_ledger_impl.cc b/components/services/bat_ledger/bat_ledger_impl.cc index 7a372087fc71..0e311613be3e 100644 --- a/components/services/bat_ledger/bat_ledger_impl.cc +++ b/components/services/bat_ledger/bat_ledger_impl.cc @@ -186,8 +186,21 @@ void BatLedgerImpl::GetWalletPassphrase(GetWalletPassphraseCallback callback) { std::move(callback).Run(ledger_->GetWalletPassphrase()); } -void BatLedgerImpl::GetNumExcludedSites(GetNumExcludedSitesCallback callback) { - std::move(callback).Run(ledger_->GetNumExcludedSites()); +// static +void BatLedgerImpl::OnGetExcludedPublishersNumber( + CallbackHolder* holder, + uint32_t number) { + if (holder->is_valid()) + std::move(holder->get()).Run(number); + delete holder; +} + +void BatLedgerImpl::GetExcludedPublishersNumber(GetExcludedPublishersNumberCallback callback) { + // delete in OnGetExcludedPublishersNumber + auto* holder = new CallbackHolder( + AsWeakPtr(), std::move(callback)); + ledger_->GetExcludedPublishersNumber( + std::bind(BatLedgerImpl::OnGetExcludedPublishersNumber, holder, _1)); } void BatLedgerImpl::RecoverWallet(const std::string& passPhrase) { diff --git a/components/services/bat_ledger/bat_ledger_impl.h b/components/services/bat_ledger/bat_ledger_impl.h index d2883b1bb154..a09b7dd2dd44 100644 --- a/components/services/bat_ledger/bat_ledger_impl.h +++ b/components/services/bat_ledger/bat_ledger_impl.h @@ -75,7 +75,7 @@ class BatLedgerImpl : public mojom::BatLedger, const std::string& lang, const std::string& payment_id) override; void GetGrantCaptcha() override; void GetWalletPassphrase(GetWalletPassphraseCallback callback) override; - void GetNumExcludedSites(GetNumExcludedSitesCallback callback) override; + void GetExcludedPublishersNumber(GetExcludedPublishersNumberCallback callback) override; void RecoverWallet(const std::string& passPhrase) override; void SolveGrantCaptcha( const std::string& solution, @@ -164,6 +164,10 @@ class BatLedgerImpl : public mojom::BatLedger, CallbackHolder* holder, std::unique_ptr history); + static void OnGetExcludedPublishersNumber( + CallbackHolder* holder, + uint32_t number); + std::unique_ptr bat_ledger_client_mojo_proxy_; std::unique_ptr ledger_; diff --git a/components/services/bat_ledger/public/cpp/ledger_client_mojo_proxy.cc b/components/services/bat_ledger/public/cpp/ledger_client_mojo_proxy.cc index aba537b16d82..11853f085116 100644 --- a/components/services/bat_ledger/public/cpp/ledger_client_mojo_proxy.cc +++ b/components/services/bat_ledger/public/cpp/ledger_client_mojo_proxy.cc @@ -680,4 +680,23 @@ void LedgerClientMojoProxy::ConfirmationsTransactionHistoryDidChange() { ledger_client_->ConfirmationsTransactionHistoryDidChange(); } +// static +void LedgerClientMojoProxy::OnGetExcludedPublishersNumberDB( + CallbackHolder* holder, + uint32_t number) { + if (holder->is_valid()) + std::move(holder->get()).Run(number); + delete holder; +} + +void LedgerClientMojoProxy::GetExcludedPublishersNumberDB( + GetExcludedPublishersNumberDBCallback callback) { + // deleted in OnGetRecurringDonations + auto* holder = new CallbackHolder( + AsWeakPtr(), std::move(callback)); + ledger_client_->GetExcludedPublishersNumberDB( + std::bind(LedgerClientMojoProxy::OnGetExcludedPublishersNumberDB, + holder, _1)); +} + } // namespace bat_ledger diff --git a/components/services/bat_ledger/public/cpp/ledger_client_mojo_proxy.h b/components/services/bat_ledger/public/cpp/ledger_client_mojo_proxy.h index 6c2042834ea8..26694fc75deb 100644 --- a/components/services/bat_ledger/public/cpp/ledger_client_mojo_proxy.h +++ b/components/services/bat_ledger/public/cpp/ledger_client_mojo_proxy.h @@ -120,6 +120,8 @@ class LedgerClientMojoProxy : public mojom::BatLedgerClient, void ConfirmationsTransactionHistoryDidChange() override; + void GetExcludedPublishersNumberDB(GetExcludedPublishersNumberDBCallback callback) override; + private: // workaround to pass base::OnceCallback into std::bind // also serves as a wrapper for passing ledger::LedgerCallbackHandler* @@ -224,6 +226,10 @@ class LedgerClientMojoProxy : public mojom::BatLedgerClient, CallbackHolder* holder, ledger::Result result); + static void OnGetExcludedPublishersNumberDB( + CallbackHolder* holder, + uint32_t number); + ledger::LedgerClient* ledger_client_; DISALLOW_COPY_AND_ASSIGN(LedgerClientMojoProxy); diff --git a/components/services/bat_ledger/public/interfaces/bat_ledger.mojom b/components/services/bat_ledger/public/interfaces/bat_ledger.mojom index a8dcd4f19a1c..cbe0d5ffe3c7 100644 --- a/components/services/bat_ledger/public/interfaces/bat_ledger.mojom +++ b/components/services/bat_ledger/public/interfaces/bat_ledger.mojom @@ -55,7 +55,7 @@ interface BatLedger { FetchGrants(string lang, string payment_id); GetGrantCaptcha(); GetWalletPassphrase() => (string wallet_passphrase); - GetNumExcludedSites() => (uint32 num_excluded_sites); + GetExcludedPublishersNumber() => (uint32 num_excluded_sites); RecoverWallet(string passPhrase); SolveGrantCaptcha(string solution, string promotionId); @@ -175,4 +175,6 @@ interface BatLedgerClient { ResetState(string name) => (int32 result); SetConfirmationsIsReady(bool is_ready); ConfirmationsTransactionHistoryDidChange(); + + GetExcludedPublishersNumberDB() => (uint32 number); }; diff --git a/components/test/brave_rewards/ui/reducers/publishers_reducer_test.ts b/components/test/brave_rewards/ui/reducers/publishers_reducer_test.ts index 8d5bbd9a5a40..0ff750034ba4 100644 --- a/components/test/brave_rewards/ui/reducers/publishers_reducer_test.ts +++ b/components/test/brave_rewards/ui/reducers/publishers_reducer_test.ts @@ -6,168 +6,39 @@ import reducers from '../../../../brave_rewards/resources/ui/reducers/index' import { types } from '../../../../brave_rewards/resources/ui/constants/rewards_types' import { defaultState } from '../../../../brave_rewards/resources/ui/storage' -import { rewardsInitialState } from '../../../testData' describe('publishers reducer', () => { - describe('ON_CONTRIBUTE_LIST', () => { - it('does not include excluded publishers in auto-contribute list', () => { - const initialState = reducers(rewardsInitialState, { - type: types.ON_NUM_EXCLUDED_SITES, - payload: { - excludedSitesInfo: { - num: 1, - publisherKey: 'brave.com' - } - } - }) - - const assertion = reducers(initialState, { - type: types.ON_CONTRIBUTE_LIST, - payload: { - list: [ - { publisherKey: 'brave.com', percentage: 0, verified: true, excluded: 0, url: 'https://brave.com', name: 'brave.com', id: 'brave.com', provider: '', favicon: '' }, - { publisherKey: 'test.com', percentage: 0, verified: true, excluded: 0, url: 'https://test.com', name: 'test.com', id: 'test.com', provider: '', favicon: '' }, - { publisherKey: 'test2.com', percentage: 0, verified: true, excluded: 0, url: 'https://test2.com', name: 'test2.com', id: 'test2.com', provider: '', favicon: '' } - ] - } - }) - - const expectedState: Rewards.State = { ...defaultState } - expectedState.numExcludedSites = 1 - expectedState.excluded = ['brave.com'] - expectedState.contributeLoad = true - expectedState.autoContributeList = [ - { publisherKey: 'test.com', percentage: 0, verified: true, excluded: 0, url: 'https://test.com', name: 'test.com', id: 'test.com', provider: '', favicon: '' }, - { publisherKey: 'test2.com', percentage: 0, verified: true, excluded: 0, url: 'https://test2.com', name: 'test2.com', id: 'test2.com', provider: '', favicon: '' } - ] - - expect(assertion).toEqual({ - rewardsData: expectedState - }) - }) - }) - - describe('ON_NUM_EXCLUDED_SITES', () => { - it('adds a recently excluded publisher to state.excluded', () => { + describe('ON_EXCLUDED_PUBLISHERS_NUMBER', () => { + it('number is undefined', () => { const assertion = reducers(undefined, { - type: types.ON_NUM_EXCLUDED_SITES, + type: types.ON_EXCLUDED_PUBLISHERS_NUMBER, payload: { - excludedSitesInfo: { - num: 1, - publisherKey: 'brave.com' - } + num: undefined } }) const expectedState: Rewards.State = { ...defaultState } - expectedState.numExcludedSites = 1 - expectedState.excluded = ['brave.com'] + expectedState.excludedPublishersNumber = 0 expect(assertion).toEqual({ rewardsData: expectedState }) }) - it('removes a recently restored publisher from state.excluded', () => { - let testState = reducers(rewardsInitialState, { - type: types.ON_NUM_EXCLUDED_SITES, - payload: { - excludedSitesInfo: { - num: 1, - publisherKey: 'test.com' - } - } - }) - - testState = reducers(testState, { - type: types.ON_NUM_EXCLUDED_SITES, - payload: { - excludedSitesInfo: { - num: 2, - publisherKey: 'brave.com' - } - } - }) - - testState = reducers(testState, { - type: types.ON_NUM_EXCLUDED_SITES, - payload: { - excludedSitesInfo: { - num: 1, - publisherKey: 'test.com' - } - } - }) - - const expectedState: Rewards.State = { ...defaultState } - expectedState.numExcludedSites = 1 - expectedState.excluded = ['brave.com'] - - expect(testState).toEqual({ - rewardsData: expectedState - }) - }) - - it('does not modify state when excludedSitesInfo is null', () => { + it('number is saved', () => { const assertion = reducers(undefined, { - type: types.ON_NUM_EXCLUDED_SITES, + type: types.ON_EXCLUDED_PUBLISHERS_NUMBER, payload: { - excludedSitesInfo: null + num: 1 } }) const expectedState: Rewards.State = { ...defaultState } + expectedState.excludedPublishersNumber = 1 expect(assertion).toEqual({ rewardsData: expectedState }) }) }) - - describe('ON_EXCLUDE_PUBLISHER', () => { - it('exclude is not defined in the state', () => { - let result = reducers({ - rewardsData: { enabledMain: true } - }, { - type: types.ON_EXCLUDE_PUBLISHER, - payload: { - publisherKey: 'clifton.io' - } - }) - - const expectedState: Rewards.State = { - enabledMain: true, - excluded: [ - 'clifton.io' - ] - } - - expect(result).toEqual({ - rewardsData: expectedState - }) - }) - - it('exclude already has some data', () => { - let result = reducers({ - rewardsData: { ...defaultState, excluded: ['clifton.io'] } - }, { - type: types.ON_EXCLUDE_PUBLISHER, - payload: { - publisherKey: 'brave.com' - } - }) - - const expectedState: Rewards.State = { - ...defaultState, - excluded: [ - 'clifton.io', - 'brave.com' - ] - } - - expect(result).toEqual({ - rewardsData: expectedState - }) - }) - }) }) diff --git a/vendor/bat-native-confirmations/test/confirmations_client_mock.h b/vendor/bat-native-confirmations/test/confirmations_client_mock.h index 42f2e70a02bc..16defe5d8fc6 100644 --- a/vendor/bat-native-confirmations/test/confirmations_client_mock.h +++ b/vendor/bat-native-confirmations/test/confirmations_client_mock.h @@ -238,6 +238,9 @@ class MockConfirmationsClient : public ConfirmationsClient { const bool is_ready)); MOCK_METHOD0(ConfirmationsTransactionHistoryDidChange, void()); + + MOCK_METHOD1(GetExcludedPublishersNumberDB, void( + ledger::GetExcludedPublishersNumberDBCallback callback)); }; } // namespace confirmations diff --git a/vendor/bat-native-ledger/include/bat/ledger/ledger.h b/vendor/bat-native-ledger/include/bat/ledger/ledger.h index 648d884ceda0..08f42e29e830 100644 --- a/vendor/bat-native-ledger/include/bat/ledger/ledger.h +++ b/vendor/bat-native-ledger/include/bat/ledger/ledger.h @@ -57,6 +57,7 @@ using WalletAddressesCallback = std::function addresses)>; using ConfirmationsHistoryCallback = std::function info)>; +using GetExcludedPublishersNumberDBCallback = std::function; class LEDGER_EXPORT Ledger { public: @@ -184,7 +185,8 @@ class LEDGER_EXPORT Ledger { virtual unsigned int GetPublisherMinVisits() const = 0; - virtual unsigned int GetNumExcludedSites() const = 0; + virtual void GetExcludedPublishersNumber( + ledger::GetExcludedPublishersNumberDBCallback callback) const = 0; virtual bool GetPublisherAllowNonVerified() const = 0; diff --git a/vendor/bat-native-ledger/include/bat/ledger/ledger_client.h b/vendor/bat-native-ledger/include/bat/ledger/ledger_client.h index 13827a62f598..c83cacfa151b 100644 --- a/vendor/bat-native-ledger/include/bat/ledger/ledger_client.h +++ b/vendor/bat-native-ledger/include/bat/ledger/ledger_client.h @@ -67,6 +67,7 @@ using OnSaveCallback = std::function; using OnLoadCallback = std::function; using OnResetCallback = std::function; +using GetExcludedPublishersNumberDBCallback = std::function; class LEDGER_EXPORT LedgerClient { public: @@ -215,6 +216,9 @@ class LEDGER_EXPORT LedgerClient { virtual void SetConfirmationsIsReady(const bool is_ready) = 0; virtual void ConfirmationsTransactionHistoryDidChange() = 0; + + virtual void GetExcludedPublishersNumberDB( + ledger::GetExcludedPublishersNumberDBCallback callback) = 0; }; } // namespace ledger diff --git a/vendor/bat-native-ledger/src/bat_helper.cc b/vendor/bat-native-ledger/src/bat_helper.cc index 77377e618bd6..3a84cc414ed3 100644 --- a/vendor/bat-native-ledger/src/bat_helper.cc +++ b/vendor/bat-native-ledger/src/bat_helper.cc @@ -605,7 +605,6 @@ void saveToJson(JsonWriter* writer, const REPORT_BALANCE_ST& data) { PUBLISHER_STATE_ST::PUBLISHER_STATE_ST(): min_publisher_duration_(braveledger_ledger::_default_min_publisher_duration), min_visits_(1), - num_excluded_sites_(0), allow_non_verified_(true), pubs_load_timestamp_(0ull), allow_videos_(true) {} @@ -613,7 +612,6 @@ PUBLISHER_STATE_ST::PUBLISHER_STATE_ST(): PUBLISHER_STATE_ST::PUBLISHER_STATE_ST(const PUBLISHER_STATE_ST& state) { min_publisher_duration_ = state.min_publisher_duration_; min_visits_ = state.min_visits_; - num_excluded_sites_ = state.num_excluded_sites_; allow_non_verified_ = state.allow_non_verified_; pubs_load_timestamp_ = state.pubs_load_timestamp_; allow_videos_ = state.allow_videos_; @@ -646,7 +644,6 @@ bool PUBLISHER_STATE_ST::loadFromJson(const std::string& json) { if (!error) { min_publisher_duration_ = d["min_pubslisher_duration"].GetUint(); min_visits_ = d["min_visits"].GetUint(); - num_excluded_sites_ = d["num_excluded_sites"].GetUint(); allow_non_verified_ = d["allow_non_verified"].GetBool(); pubs_load_timestamp_ = d["pubs_load_timestamp"].GetUint64(); allow_videos_ = d["allow_videos"].GetBool(); @@ -704,9 +701,6 @@ void saveToJson(JsonWriter* writer, const PUBLISHER_STATE_ST& data) { writer->String("min_visits"); writer->Uint(data.min_visits_); - writer->String("num_excluded_sites"); - writer->Uint(data.num_excluded_sites_); - writer->String("allow_non_verified"); writer->Bool(data.allow_non_verified_); diff --git a/vendor/bat-native-ledger/src/bat_helper.h b/vendor/bat-native-ledger/src/bat_helper.h index 75869c653489..d1f5212f103a 100644 --- a/vendor/bat-native-ledger/src/bat_helper.h +++ b/vendor/bat-native-ledger/src/bat_helper.h @@ -238,7 +238,6 @@ struct PUBLISHER_STATE_ST { uint64_t min_publisher_duration_ = braveledger_ledger::_default_min_publisher_duration; // In seconds unsigned int min_visits_ = 1u; - unsigned int num_excluded_sites_ = 0; bool allow_non_verified_ = true; // last publishers list load timestamp (seconds) uint64_t pubs_load_timestamp_ = 0ull; diff --git a/vendor/bat-native-ledger/src/bat_publishers.cc b/vendor/bat-native-ledger/src/bat_publishers.cc index c09a0701a9f6..d1cb7b1e0a9b 100644 --- a/vendor/bat-native-ledger/src/bat_publishers.cc +++ b/vendor/bat-native-ledger/src/bat_publishers.cc @@ -133,14 +133,6 @@ std::string BatPublishers::GetBalanceReportName( return std::to_string(year) + "_" + std::to_string(month); } -void BatPublishers::setNumExcludedSitesInternal( - ledger::PUBLISHER_EXCLUDE exclude) { - unsigned int previousNum = getNumExcludedSites(); - setNumExcludedSites((exclude == ledger::PUBLISHER_EXCLUDE::EXCLUDED) - ? ++previousNum - : --previousNum); -} - void BatPublishers::saveVisitInternal( std::string publisher_id, ledger::VisitData visit_data, @@ -317,8 +309,6 @@ void BatPublishers::onSetExcludeInternal( publisher_info->excluded = exclude; - setNumExcludedSitesInternal(exclude); - std::string publisherKey = publisher_info->id; ledger_->SetPublisherInfo(std::move(publisher_info)); @@ -335,8 +325,7 @@ void BatPublishers::RestorePublishers() { void BatPublishers::OnRestorePublishersInternal(bool success) { if (success) { - setNumExcludedSites(0); - OnExcludedSitesChanged("", ledger::PUBLISHER_EXCLUDE::ALL); + OnExcludedSitesChanged("-1", ledger::PUBLISHER_EXCLUDE::ALL); SynopsisNormalizer(); } else { BLOG(ledger_, ledger::LogLevel::LOG_ERROR) << @@ -363,11 +352,6 @@ void BatPublishers::setPublishersLastRefreshTimestamp(uint64_t ts) { saveState(); } -void BatPublishers::setNumExcludedSites(const unsigned int amount) { - state_->num_excluded_sites_ = amount; - saveState(); -} - void BatPublishers::setPublisherAllowNonVerified(const bool& allow) { state_->allow_non_verified_ = allow; SynopsisNormalizer(); @@ -396,10 +380,6 @@ uint64_t BatPublishers::getLastPublishersListLoadTimestamp() const { return state_->pubs_load_timestamp_; } -unsigned int BatPublishers::getNumExcludedSites() const { - return state_->num_excluded_sites_; -} - bool BatPublishers::getPublisherAllowVideos() const { return state_->allow_videos_; } diff --git a/vendor/bat-native-ledger/src/bat_publishers.h b/vendor/bat-native-ledger/src/bat_publishers.h index ecf375691d83..b11cbc9499c3 100644 --- a/vendor/bat-native-ledger/src/bat_publishers.h +++ b/vendor/bat-native-ledger/src/bat_publishers.h @@ -50,8 +50,6 @@ class BatPublishers : public ledger::LedgerCallbackHandler { void setPublishersLastRefreshTimestamp(uint64_t ts); - void setNumExcludedSites(const unsigned int amount); - void setExclude(const std::string& publisher_id, const ledger::PUBLISHER_EXCLUDE& exclude); @@ -83,8 +81,6 @@ class BatPublishers : public ledger::LedgerCallbackHandler { uint64_t getLastPublishersListLoadTimestamp() const; - unsigned int getNumExcludedSites() const; - bool getPublisherAllowVideos() const; void OnPublisherInfoSaved( @@ -160,8 +156,6 @@ class BatPublishers : public ledger::LedgerCallbackHandler { const std::string& favicon_url, uint64_t window_id); - void setNumExcludedSitesInternal(ledger::PUBLISHER_EXCLUDE exclude); - void onSetExcludeInternal( ledger::PUBLISHER_EXCLUDE exclude, ledger::Result result, diff --git a/vendor/bat-native-ledger/src/ledger_impl.cc b/vendor/bat-native-ledger/src/ledger_impl.cc index 096cf4a481fa..6912f1cebbca 100644 --- a/vendor/bat-native-ledger/src/ledger_impl.cc +++ b/vendor/bat-native-ledger/src/ledger_impl.cc @@ -54,7 +54,6 @@ LedgerImpl::LedgerImpl(ledger::LedgerClient* client) : last_shown_tab_id_(-1), last_pub_load_timer_id_(0u), last_grant_check_timer_id_(0u) { - // Ensure TaskScheduler is initialized before creating the task runner for // ios. if (!base::TaskScheduler::GetInstance()) { @@ -516,8 +515,9 @@ unsigned int LedgerImpl::GetPublisherMinVisits() const { return bat_publishers_->getPublisherMinVisits(); } -unsigned int LedgerImpl::GetNumExcludedSites() const { - return bat_publishers_->getNumExcludedSites(); +void LedgerImpl::GetExcludedPublishersNumber( + ledger::GetExcludedPublishersNumberDBCallback callback) const { + ledger_client_->GetExcludedPublishersNumberDB(callback); } bool LedgerImpl::GetPublisherAllowNonVerified() const { diff --git a/vendor/bat-native-ledger/src/ledger_impl.h b/vendor/bat-native-ledger/src/ledger_impl.h index 2cfc399e6814..ac47f4f8de08 100644 --- a/vendor/bat-native-ledger/src/ledger_impl.h +++ b/vendor/bat-native-ledger/src/ledger_impl.h @@ -141,7 +141,8 @@ class LedgerImpl : public ledger::Ledger, unsigned int GetPublisherMinVisits() const override; - unsigned int GetNumExcludedSites() const override; + void GetExcludedPublishersNumber( + ledger::GetExcludedPublishersNumberDBCallback callback) const override; bool GetPublisherAllowNonVerified() const override;