From 29ec8d12552c8160ef5094c4d6934b5e577fa206 Mon Sep 17 00:00:00 2001 From: Deep Date: Tue, 5 Jul 2022 15:32:59 -0400 Subject: [PATCH] Add pref change callback Resolve rebase error --- .../chrome/browser/BraveApplicationImplBase.java | 2 +- .../chromium/chrome/browser/app/BraveActivity.java | 13 ++++++++++++- .../browser/preferences/BravePrefServiceBridge.java | 6 ++++++ .../preferences/brave_pref_service_bridge.cc | 7 +++++++ .../brave_adaptive_captcha_service_factory.cc | 13 +++++++++++-- .../brave_ads/tooltips/ads_tooltips_controller.cc | 7 ++++++- .../brave_adaptive_captcha_service.cc | 3 +++ .../buildflags/buildflags.gni | 2 +- components/brave_ads/browser/ads_service_impl.cc | 7 +++++++ .../src/bat/ads/internal/account/account.cc | 2 ++ .../refill_unblinded_tokens.cc | 12 ++++++++++-- 11 files changed, 66 insertions(+), 8 deletions(-) diff --git a/android/java/org/chromium/chrome/browser/BraveApplicationImplBase.java b/android/java/org/chromium/chrome/browser/BraveApplicationImplBase.java index 4959d072832..6247c3f71ff 100644 --- a/android/java/org/chromium/chrome/browser/BraveApplicationImplBase.java +++ b/android/java/org/chromium/chrome/browser/BraveApplicationImplBase.java @@ -24,4 +24,4 @@ public class BraveApplicationImplBase extends SplitCompatApplication.Impl { }); } } -} +} \ No newline at end of file diff --git a/android/java/org/chromium/chrome/browser/app/BraveActivity.java b/android/java/org/chromium/chrome/browser/app/BraveActivity.java index 165069122d0..9278dbd3760 100644 --- a/android/java/org/chromium/chrome/browser/app/BraveActivity.java +++ b/android/java/org/chromium/chrome/browser/app/BraveActivity.java @@ -121,6 +121,8 @@ import org.chromium.chrome.browser.onboarding.v2.HighlightView; import org.chromium.chrome.browser.preferences.BravePrefServiceBridge; import org.chromium.chrome.browser.preferences.BravePreferenceKeys; import org.chromium.chrome.browser.preferences.Pref; +import org.chromium.chrome.browser.preferences.PrefChangeRegistrar; +import org.chromium.chrome.browser.preferences.PrefChangeRegistrar.PrefObserver; import org.chromium.chrome.browser.preferences.SharedPreferencesManager; import org.chromium.chrome.browser.preferences.website.BraveShieldsContentSettings; import org.chromium.chrome.browser.prefetch.settings.PreloadPagesSettingsBridge; @@ -186,7 +188,7 @@ import java.util.concurrent.CopyOnWriteArrayList; @JNINamespace("chrome::android") public abstract class BraveActivity extends ChromeActivity implements BrowsingDataBridge.OnClearBrowsingDataListener, BraveVpnObserver, - OnBraveSetDefaultBrowserListener, ConnectionErrorHandler { + OnBraveSetDefaultBrowserListener, ConnectionErrorHandler, PrefObserver { public static final String ADD_FUNDS_URL = "brave://rewards/#add-funds"; public static final String BRAVE_REWARDS_SETTINGS_URL = "brave://rewards/"; public static final String BRAVE_REWARDS_SETTINGS_WALLET_VERIFICATION_URL = @@ -720,12 +722,21 @@ public abstract class BraveActivity extends C BraveHelper.DisableFREDRP(); } + @Override + public void onPreferenceChange() { + Log.e("BraveCaptcha", "Pref changed"); + Log.e("BraveCaptcha", BravePrefServiceBridge.getInstance().getCaptchaId()); + } + @Override public void finishNativeInitialization() { super.finishNativeInitialization(); BraveHelper.maybeMigrateSettings(); + PrefChangeRegistrar mPrefChangeRegistrar = new PrefChangeRegistrar(); + mPrefChangeRegistrar.addObserver("brave.rewards.scheduled_captcha.id", this); + if (SharedPreferencesManager.getInstance().readBoolean( BravePreferenceKeys.BRAVE_DOUBLE_RESTART, false)) { SharedPreferencesManager.getInstance().writeBoolean( diff --git a/android/java/org/chromium/chrome/browser/preferences/BravePrefServiceBridge.java b/android/java/org/chromium/chrome/browser/preferences/BravePrefServiceBridge.java index f9dd9b70b87..b6bb7ae0c27 100644 --- a/android/java/org/chromium/chrome/browser/preferences/BravePrefServiceBridge.java +++ b/android/java/org/chromium/chrome/browser/preferences/BravePrefServiceBridge.java @@ -183,6 +183,10 @@ public class BravePrefServiceBridge { return BravePrefServiceBridgeJni.get().getUseRewardsStagingServer(); } + public String getCaptchaId() { + return BravePrefServiceBridgeJni.get().getCaptchaId(); + } + public void setOldTrackersBlockedCount(Profile profile, long count) { BravePrefServiceBridgeJni.get().setOldTrackersBlockedCount(profile, count); } @@ -368,5 +372,7 @@ public class BravePrefServiceBridge { void setShowNews(boolean value); boolean getShowNews(); + + String getCaptchaId(); } } diff --git a/browser/android/preferences/brave_pref_service_bridge.cc b/browser/android/preferences/brave_pref_service_bridge.cc index f7cc1787577..f3752929cb0 100644 --- a/browser/android/preferences/brave_pref_service_bridge.cc +++ b/browser/android/preferences/brave_pref_service_bridge.cc @@ -406,6 +406,13 @@ jboolean JNI_BravePrefServiceBridge_GetUseRewardsStagingServer(JNIEnv* env) { brave_rewards::prefs::kUseRewardsStagingServer); } +base::android::ScopedJavaLocalRef +JNI_BravePrefServiceBridge_GetCaptchaId(JNIEnv* env) { + return base::android::ConvertUTF8ToJavaString( + env, GetOriginalProfile()->GetPrefs()->GetString( + "brave.rewards.scheduled_captcha.id")); +} + jboolean JNI_BravePrefServiceBridge_GetBooleanForContentSetting(JNIEnv* env, jint type) { HostContentSettingsMap* content_settings = diff --git a/browser/brave_adaptive_captcha/brave_adaptive_captcha_service_factory.cc b/browser/brave_adaptive_captcha/brave_adaptive_captcha_service_factory.cc index 03340d635de..c9d46397acc 100644 --- a/browser/brave_adaptive_captcha/brave_adaptive_captcha_service_factory.cc +++ b/browser/brave_adaptive_captcha/brave_adaptive_captcha_service_factory.cc @@ -10,13 +10,15 @@ #include #include "base/memory/raw_ptr.h" +#if !BUILDFLAG(IS_ANDROID) #include "brave/browser/brave_rewards/rewards_panel/rewards_panel_coordinator.h" +#include "chrome/browser/ui/browser.h" +#include "chrome/browser/ui/browser_finder.h" +#endif #include "brave/browser/brave_rewards/rewards_service_factory.h" #include "brave/browser/profiles/profile_util.h" #include "brave/components/brave_adaptive_captcha/brave_adaptive_captcha_service.h" #include "chrome/browser/profiles/profile.h" -#include "chrome/browser/ui/browser.h" -#include "chrome/browser/ui/browser_finder.h" #include "components/keyed_service/content/browser_context_dependency_manager.h" #include "components/user_prefs/user_prefs.h" #include "content/public/browser/storage_partition.h" @@ -32,6 +34,11 @@ class CaptchaDelegate bool ShowScheduledCaptcha(const std::string& payment_id, const std::string& captcha_id) override { + LOG(ERROR) << "BraveCaptcha" + << "Captcha Id : " << captcha_id + << "payment Id : " << payment_id; + +#if !BUILDFLAG(IS_ANDROID) // Because this is triggered from the adaptive captcha tooltip, this call // isn't associated with any particular `Browser` instance and we can use // the last active browser for this profile. @@ -46,6 +53,8 @@ class CaptchaDelegate return false; } return coordinator->ShowAdaptiveCaptcha(); +#endif + return true; } private: diff --git a/browser/brave_ads/tooltips/ads_tooltips_controller.cc b/browser/brave_ads/tooltips/ads_tooltips_controller.cc index dea7f2adfad..2b2dfc475d0 100644 --- a/browser/brave_ads/tooltips/ads_tooltips_controller.cc +++ b/browser/brave_ads/tooltips/ads_tooltips_controller.cc @@ -52,18 +52,23 @@ void AdsTooltipsController::ShowCaptchaTooltip( // If there's no delegate, set one so that clicks go back to the appropriate // handler captcha_tooltip->set_delegate(AsWeakPtr()); - +#if !BUILDFLAG(IS_ANDROID) brave_tooltips::BraveTooltipPopupHandler::Show(profile_, std::move(captcha_tooltip)); +#endif } void AdsTooltipsController::CloseCaptchaTooltip() { +#if !BUILDFLAG(IS_ANDROID) brave_tooltips::BraveTooltipPopupHandler::Close(kScheduledCaptchaTooltipId); +#endif } void AdsTooltipsController::OnTooltipWidgetDestroyed( const std::string& tooltip_id) { +#if !BUILDFLAG(IS_ANDROID) brave_tooltips::BraveTooltipPopupHandler::Destroy(kScheduledCaptchaTooltipId); +#endif } } // namespace brave_ads diff --git a/components/brave_adaptive_captcha/brave_adaptive_captcha_service.cc b/components/brave_adaptive_captcha/brave_adaptive_captcha_service.cc index 87534b0fb00..1a6f3348661 100644 --- a/components/brave_adaptive_captcha/brave_adaptive_captcha_service.cc +++ b/components/brave_adaptive_captcha/brave_adaptive_captcha_service.cc @@ -136,6 +136,9 @@ void BraveAdaptiveCaptchaService::ShowScheduledCaptcha( prefs_->SetString(kScheduledCaptchaPaymentId, payment_id); prefs_->SetString(kScheduledCaptchaId, captcha_id); + LOG(ERROR) << "BraveCaptcha" + << "Captcha Id : " << captcha_id << "payment Id : " << payment_id; + if (delegate_) { delegate_->ShowScheduledCaptcha(payment_id, captcha_id); return; diff --git a/components/brave_adaptive_captcha/buildflags/buildflags.gni b/components/brave_adaptive_captcha/buildflags/buildflags.gni index d49eed8d059..3f53fa318f1 100644 --- a/components/brave_adaptive_captcha/buildflags/buildflags.gni +++ b/components/brave_adaptive_captcha/buildflags/buildflags.gni @@ -1,3 +1,3 @@ declare_args() { - brave_adaptive_captcha_enabled = is_mac || is_linux || is_win || is_ios + brave_adaptive_captcha_enabled = is_mac || is_linux || is_win || is_android } diff --git a/components/brave_ads/browser/ads_service_impl.cc b/components/brave_ads/browser/ads_service_impl.cc index 504ece7f9e0..3bcb516c433 100644 --- a/components/brave_ads/browser/ads_service_impl.cc +++ b/components/brave_ads/browser/ads_service_impl.cc @@ -1678,6 +1678,12 @@ void AdsServiceImpl::ShowScheduledCaptchaNotification( return; } + LOG(ERROR) << "BraveCaptcha" + << "Captcha Id : " << captcha_id << "payment Id : " << payment_id; + +#if BUILDFLAG(IS_ANDROID) + AdsServiceImpl::ShowScheduledCaptcha(payment_id, captcha_id); +#else const int snooze_count = pref_service->GetInteger( brave_adaptive_captcha::kScheduledCaptchaSnoozeCount); @@ -1686,6 +1692,7 @@ void AdsServiceImpl::ShowScheduledCaptchaNotification( base::BindOnce(&AdsServiceImpl::ShowScheduledCaptcha, AsWeakPtr()), base::BindOnce(&AdsServiceImpl::SnoozeScheduledCaptcha, AsWeakPtr())); #endif +#endif } void AdsServiceImpl::ClearScheduledCaptcha() { 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 7160e8141a8..a0166cc329e 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 @@ -329,6 +329,8 @@ void Account::OnDidRefillUnblindedTokens() { void Account::OnCaptchaRequiredToRefillUnblindedTokens( const std::string& captcha_id) { const WalletInfo& wallet = GetWallet(); + LOG(ERROR) << "BraveCaptcha" + << "Captcha Id : " << captcha_id; AdsClientHelper::GetInstance()->ShowScheduledCaptchaNotification(wallet.id, captcha_id); } diff --git a/vendor/bat-native-ads/src/bat/ads/internal/account/utility/refill_unblinded_tokens/refill_unblinded_tokens.cc b/vendor/bat-native-ads/src/bat/ads/internal/account/utility/refill_unblinded_tokens/refill_unblinded_tokens.cc index 3d776d10e24..c9bc3857655 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/account/utility/refill_unblinded_tokens/refill_unblinded_tokens.cc +++ b/vendor/bat-native-ads/src/bat/ads/internal/account/utility/refill_unblinded_tokens/refill_unblinded_tokens.cc @@ -43,7 +43,7 @@ namespace { constexpr base::TimeDelta kRetryAfter = base::Seconds(15); constexpr int kMinimumUnblindedTokens = 20; -constexpr int kMaximumUnblindedTokens = 50; +constexpr int kMaximumUnblindedTokens = 20; } // namespace @@ -213,11 +213,18 @@ void RefillUnblindedTokens::OnGetSignedTokens( return; } + LOG(ERROR) << "BraveCaptcha" + << "in GetSignedTokens 1"; + // Captcha required, retrieve captcha id from response if (url_response.status_code == net::HTTP_UNAUTHORIZED) { BLOG(1, "Captcha required"); + LOG(ERROR) << "BraveCaptcha" + << "Captcha required"; #if BUILDFLAG(BRAVE_ADAPTIVE_CAPTCHA_ENABLED) const std::string* captcha_id = root->FindStringKey("captcha_id"); + LOG(ERROR) << "BraveCaptcha" + << "Captcha Id : " << captcha_id; if (!captcha_id || captcha_id->empty()) { BLOG(0, "Response is missing captcha_id"); OnFailedToRefillUnblindedTokens(/* should_retry */ false); @@ -225,7 +232,8 @@ void RefillUnblindedTokens::OnGetSignedTokens( } BLOG(1, "Captcha is required to refill unblinded tokens"); - + LOG(ERROR) << "BraveCaptcha" + << "Captcha is required to refill unblinded tokens"; if (delegate_) { delegate_->OnCaptchaRequiredToRefillUnblindedTokens(*captcha_id); }