Skip to content

Commit b899c8b

Browse files
committed
Add braveRewards.requestAdsEnabledPopupClosed() extension function.
fix brave/brave-browser#16964
1 parent 6d12cf3 commit b899c8b

File tree

7 files changed

+60
-0
lines changed

7 files changed

+60
-0
lines changed

browser/extensions/api/brave_rewards_api.cc

+20
Original file line numberDiff line numberDiff line change
@@ -1336,5 +1336,25 @@ ExtensionFunction::ResponseAction BraveRewardsUpdatePrefsFunction::Run() {
13361336
return RespondNow(NoArguments());
13371337
}
13381338

1339+
BraveRewardsRequestAdsEnabledPopupClosedFunction::
1340+
~BraveRewardsRequestAdsEnabledPopupClosedFunction() = default;
1341+
1342+
ExtensionFunction::ResponseAction
1343+
BraveRewardsRequestAdsEnabledPopupClosedFunction::Run() {
1344+
auto params(
1345+
brave_rewards::RequestAdsEnabledPopupClosed::Params::Create(*args_));
1346+
EXTENSION_FUNCTION_VALIDATE(params.get());
1347+
1348+
Profile* profile = Profile::FromBrowserContext(browser_context());
1349+
RewardsService* rewards_service =
1350+
RewardsServiceFactory::GetForProfile(profile);
1351+
1352+
if (rewards_service) {
1353+
rewards_service->RequestAdsEnabledPopupClosed(params->ads_enabled);
1354+
}
1355+
1356+
return RespondNow(NoArguments());
1357+
}
1358+
13391359
} // namespace api
13401360
} // namespace extensions

browser/extensions/api/brave_rewards_api.h

+12
Original file line numberDiff line numberDiff line change
@@ -506,6 +506,18 @@ class BraveRewardsUpdatePrefsFunction : public ExtensionFunction {
506506
ResponseAction Run() override;
507507
};
508508

509+
class BraveRewardsRequestAdsEnabledPopupClosedFunction
510+
: public ExtensionFunction {
511+
public:
512+
DECLARE_EXTENSION_FUNCTION("braveRewards.requestAdsEnabledPopupClosed",
513+
UNKNOWN)
514+
515+
protected:
516+
~BraveRewardsRequestAdsEnabledPopupClosedFunction() override;
517+
518+
ResponseAction Run() override;
519+
};
520+
509521
} // namespace api
510522
} // namespace extensions
511523

common/extensions/api/brave_rewards.json

+11
Original file line numberDiff line numberDiff line change
@@ -1305,6 +1305,17 @@
13051305
}
13061306
}
13071307
]
1308+
},
1309+
{
1310+
"name": "requestAdsEnabledPopupClosed",
1311+
"type": "function",
1312+
"description": "",
1313+
"parameters": [
1314+
{
1315+
"name": "ads_enabled",
1316+
"type": "boolean"
1317+
}
1318+
]
13081319
}
13091320
]
13101321
}

components/brave_rewards/browser/rewards_service.h

+2
Original file line numberDiff line numberDiff line change
@@ -317,6 +317,8 @@ class RewardsService : public KeyedService {
317317
const std::string& query,
318318
ProcessRewardsPageUrlCallback callback) = 0;
319319

320+
virtual void RequestAdsEnabledPopupClosed(bool ads_enabled) = 0;
321+
320322
virtual void DisconnectWallet() = 0;
321323

322324
virtual void GetAnonWalletStatus(GetAnonWalletStatusCallback callback) = 0;

components/brave_rewards/browser/rewards_service_impl.cc

+11
Original file line numberDiff line numberDiff line change
@@ -2936,6 +2936,17 @@ void RewardsServiceImpl::ProcessRewardsPageUrl(
29362936
{});
29372937
}
29382938

2939+
void RewardsServiceImpl::RequestAdsEnabledPopupClosed(bool ads_enabled) {
2940+
if (ads_enabled) {
2941+
// If Rewards were previously enabled, this call will only turn on Ads.
2942+
EnableRewards();
2943+
}
2944+
2945+
for (auto& observer : observers_) {
2946+
observer.OnRequestAdsEnabledPopupClosed(ads_enabled);
2947+
}
2948+
}
2949+
29392950
void RewardsServiceImpl::OnDisconnectWallet(
29402951
const std::string& wallet_type,
29412952
const ledger::type::Result result) {

components/brave_rewards/browser/rewards_service_impl.h

+2
Original file line numberDiff line numberDiff line change
@@ -305,6 +305,8 @@ class RewardsServiceImpl : public RewardsService,
305305
const std::string& query,
306306
ProcessRewardsPageUrlCallback callback) override;
307307

308+
void RequestAdsEnabledPopupClosed(bool ads_enabled) override;
309+
308310
void DisconnectWallet() override;
309311

310312
void GetAnonWalletStatus(GetAnonWalletStatusCallback callback) override;

components/brave_rewards/browser/rewards_service_observer.h

+2
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,8 @@ class RewardsServiceObserver : public base::CheckedObserver {
5151
const ledger::type::RewardsType type,
5252
const ledger::type::ContributionProcessor processor) {}
5353

54+
virtual void OnRequestAdsEnabledPopupClosed(bool ads_enabled) {}
55+
5456
virtual void OnAdsEnabled(
5557
brave_rewards::RewardsService* rewards_service,
5658
bool ads_enabled) {}

0 commit comments

Comments
 (0)