[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[tor-commits] [tor-browser] 23/69: Bug 30605: Honor privacy.spoof_english in Android



This is an automated email from the git hooks/post-receive script.

richard pushed a commit to branch tor-browser-102.2.0esr-12.0-3
in repository tor-browser.

commit 3b43dcd27e1e17eb5e043288b99a154fe0d2a9da
Author: Alex Catarineu <acat@xxxxxxxxxxxxxx>
AuthorDate: Fri Oct 16 10:45:17 2020 +0200

    Bug 30605: Honor privacy.spoof_english in Android
    
    This checks `privacy.spoof_english` whenever `setLocales` is
    called from Fenix side and sets `intl.accept_languages`
    accordingly.
    
    Bug 40198: Expose privacy.spoof_english pref in GeckoView
---
 mobile/android/components/geckoview/GeckoViewStartup.jsm      |  5 +++++
 mobile/android/geckoview/api.txt                              |  3 +++
 .../main/java/org/mozilla/geckoview/GeckoRuntimeSettings.java | 11 +++++++++++
 3 files changed, 19 insertions(+)

diff --git a/mobile/android/components/geckoview/GeckoViewStartup.jsm b/mobile/android/components/geckoview/GeckoViewStartup.jsm
index c5205535c2bf2..fd61e358a9b81 100644
--- a/mobile/android/components/geckoview/GeckoViewStartup.jsm
+++ b/mobile/android/components/geckoview/GeckoViewStartup.jsm
@@ -17,6 +17,7 @@ XPCOMUtils.defineLazyModuleGetters(this, {
   EventDispatcher: "resource://gre/modules/Messaging.jsm",
   Preferences: "resource://gre/modules/Preferences.jsm",
   Services: "resource://gre/modules/Services.jsm",
+  RFPHelper: "resource://gre/modules/RFPHelper.jsm",
 });
 
 const { debug, warn } = GeckoViewUtils.initLogging("Startup");
@@ -253,6 +254,10 @@ class GeckoViewStartup {
         if (aData.requestedLocales) {
           Services.locale.requestedLocales = aData.requestedLocales;
         }
+        RFPHelper._handleSpoofEnglishChanged();
+        if (Services.prefs.getIntPref("privacy.spoof_english", 0) === 2) {
+          break;
+        }
         const pls = Cc["@mozilla.org/pref-localizedstring;1"].createInstance(
           Ci.nsIPrefLocalizedString
         );
diff --git a/mobile/android/geckoview/api.txt b/mobile/android/geckoview/api.txt
index 8e920543675a1..4ec5b10c4da84 100644
--- a/mobile/android/geckoview/api.txt
+++ b/mobile/android/geckoview/api.txt
@@ -810,6 +810,7 @@ package org.mozilla.geckoview {
     method public boolean getRemoteDebuggingEnabled();
     method @Nullable public GeckoRuntime getRuntime();
     method @Nullable public Rect getScreenSizeOverride();
+    method public boolean getSpoofEnglish();
     method @Nullable public RuntimeTelemetry.Delegate getTelemetryDelegate();
     method public boolean getUseMaxScreenDepth();
     method public boolean getWebFontsEnabled();
@@ -831,6 +832,7 @@ package org.mozilla.geckoview {
     method @NonNull public GeckoRuntimeSettings setLoginAutofillEnabled(boolean);
     method @NonNull public GeckoRuntimeSettings setPreferredColorScheme(int);
     method @NonNull public GeckoRuntimeSettings setRemoteDebuggingEnabled(boolean);
+    method @NonNull public GeckoRuntimeSettings setSpoofEnglish(boolean);
     method @NonNull public GeckoRuntimeSettings setWebFontsEnabled(boolean);
     method @NonNull public GeckoRuntimeSettings setWebManifestEnabled(boolean);
     field public static final int ALLOW_ALL = 0;
@@ -870,6 +872,7 @@ package org.mozilla.geckoview {
     method @NonNull public GeckoRuntimeSettings.Builder preferredColorScheme(int);
     method @NonNull public GeckoRuntimeSettings.Builder remoteDebuggingEnabled(boolean);
     method @NonNull public GeckoRuntimeSettings.Builder screenSizeOverride(int, int);
+    method @NonNull public GeckoRuntimeSettings.Builder spoofEnglish(boolean);
     method @NonNull public GeckoRuntimeSettings.Builder telemetryDelegate(@NonNull RuntimeTelemetry.Delegate);
     method @NonNull public GeckoRuntimeSettings.Builder useMaxScreenDepth(boolean);
     method @NonNull public GeckoRuntimeSettings.Builder webFontsEnabled(boolean);
diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntimeSettings.java b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntimeSettings.java
index 305f6a03bff4d..4aa10d3b4936b 100644
--- a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntimeSettings.java
+++ b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntimeSettings.java
@@ -453,6 +453,17 @@ public final class GeckoRuntimeSettings extends RuntimeSettings {
       getSettings().setAllowInsecureConnections(level);
       return this;
     }
+
+    /**
+     * Sets whether we should spoof locale to English for webpages.
+     *
+     * @param flag True if we should spoof locale to English for webpages, false otherwise.
+     * @return This Builder instance.
+     */
+    public @NonNull Builder spoofEnglish(final boolean flag) {
+      getSettings().mSpoofEnglish.set(flag ? 2 : 1);
+      return this;
+    }
   }
 
   private GeckoRuntime mRuntime;

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.
_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits