diff --git a/browser/ui/webui/brave_rewards_ui.cc b/browser/ui/webui/brave_rewards_ui.cc index e66dcb19fd28..61b94607d853 100644 --- a/browser/ui/webui/brave_rewards_ui.cc +++ b/browser/ui/webui/brave_rewards_ui.cc @@ -1231,7 +1231,9 @@ void RewardsDOMHandler::SaveAdsSetting(const base::ListValue* args) { const std::string value = args->GetList()[1].GetString(); if (key == "adsEnabled") { - ads_service_->SetEnabled(value == "true"); + const auto is_enabled = + value == "true" && ads_service_->IsSupportedRegion(); + ads_service_->SetEnabled(is_enabled); } else if (key == "adsPerHour") { ads_service_->SetAdsPerHour(std::stoull(value)); } diff --git a/components/brave_ads/browser/ads_service_impl.cc b/components/brave_ads/browser/ads_service_impl.cc index 2e8df5ba7bb6..66e4dc7ae455 100644 --- a/components/brave_ads/browser/ads_service_impl.cc +++ b/components/brave_ads/browser/ads_service_impl.cc @@ -1270,8 +1270,8 @@ void AdsServiceImpl::MigratePrefsVersion1To2() { } void AdsServiceImpl::MigratePrefsVersion2To3() { - auto locale = GetLocale(); - auto region = ads::Ads::GetRegion(locale); + const auto locale = GetLocale(); + const auto region = ads::Ads::GetRegion(locale); // Disable ads if upgrading from a pre brave ads build due to a bug where ads // were always enabled @@ -1279,7 +1279,7 @@ void AdsServiceImpl::MigratePrefsVersion2To3() { // Disable ads for unsupported legacy regions due to a bug where ads were // enabled even if the users region was not supported - std::vector legacy_regions = { + const std::vector legacy_regions = { "US", // United States of America "CA", // Canada "GB", // United Kingdom (Great Britain and Northern Ireland) @@ -1290,7 +1290,7 @@ void AdsServiceImpl::MigratePrefsVersion2To3() { DisableAdsForUnsupportedRegions(region, legacy_regions); // On-board users for newly supported regions - std::vector new_regions = { + const std::vector new_regions = { "AU", // Australia "NZ", // New Zealand "IE" // Ireland @@ -1300,11 +1300,26 @@ void AdsServiceImpl::MigratePrefsVersion2To3() { } void AdsServiceImpl::MigratePrefsVersion3To4() { - auto locale = GetLocale(); - auto region = ads::Ads::GetRegion(locale); + const auto locale = GetLocale(); + const auto region = ads::Ads::GetRegion(locale); + + // Disable ads for unsupported legacy regions due to a bug where ads were + // enabled even if the users region was not supported + const std::vector legacy_regions = { + "US", // United States of America + "CA", // Canada + "GB", // United Kingdom (Great Britain and Northern Ireland) + "DE", // Germany + "FR", // France + "AU", // Australia + "NZ", // New Zealand + "IE" // Ireland + }; + + DisableAdsForUnsupportedRegions(region, legacy_regions); // On-board users for newly supported regions - std::vector new_regions = { + const std::vector new_regions = { "AR", // Argentina "AT", // Austria "BR", // Brazil