[tbb-commits] [Git][tpo/applications/tor-browser][tor-browser-128.2.0esr-14.0-1] 3 commits: fixup! Bug 42247: Android helpers for the TorProvider
Pier Angelo Vendrame (@pierov)
git at gitlab.torproject.org
Wed Sep 11 20:35:51 UTC 2024
Pier Angelo Vendrame pushed to branch tor-browser-128.2.0esr-14.0-1 at The Tor Project / Applications / Tor Browser
Commits:
9d554099 by Pier Angelo Vendrame at 2024-09-11T22:29:36+02:00
fixup! Bug 42247: Android helpers for the TorProvider
Bug 42628: Remove browser.tor_android.use_new_bootstrap.
- - - - -
37d0aa1a by Pier Angelo Vendrame at 2024-09-11T22:29:36+02:00
fixup! [android] Enable the connect assist experiments on alpha
Bug 42628: Remove browser.tor_android.use_new_bootstrap.
- - - - -
40f8455d by Pier Angelo Vendrame at 2024-09-11T22:29:37+02:00
fixup! Bug 42027: Base Browser migration procedures.
Bug 43124: Implement a migration procedure for Android.
- - - - -
5 changed files:
- mobile/android/android-components/components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/GeckoEngine.kt
- mobile/android/android-components/components/concept/engine/src/main/java/mozilla/components/concept/engine/Settings.kt
- mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntimeSettings.java
- mobile/shared/components/geckoview/GeckoViewStartup.sys.mjs
- toolkit/modules/TorAndroidIntegration.sys.mjs
Changes:
=====================================
mobile/android/android-components/components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/GeckoEngine.kt
=====================================
@@ -1347,11 +1347,6 @@ class GeckoEngine(
localeUpdater.updateValue()
}
}
- override var useNewBootstrap: Boolean
- get() = runtime.settings.useNewBootstrap
- set(value) {
- runtime.settings.useNewBootstrap = value
- }
}.apply {
defaultSettings?.let {
this.javascriptEnabled = it.javascriptEnabled
@@ -1380,7 +1375,6 @@ class GeckoEngine(
this.emailTrackerBlockingPrivateBrowsing = it.emailTrackerBlockingPrivateBrowsing
this.torSecurityLevel = it.torSecurityLevel
this.spoofEnglish = it.spoofEnglish
- this.useNewBootstrap = it.useNewBootstrap
}
}
=====================================
mobile/android/android-components/components/concept/engine/src/main/java/mozilla/components/concept/engine/Settings.kt
=====================================
@@ -259,7 +259,6 @@ abstract class Settings {
open var spoofEnglish: Boolean by UnsupportedSetting()
- open var useNewBootstrap: Boolean by UnsupportedSetting()
}
/**
@@ -312,7 +311,6 @@ data class DefaultSettings(
override var emailTrackerBlockingPrivateBrowsing: Boolean = false,
override var torSecurityLevel: Int = 4,
override var spoofEnglish: Boolean = false,
- override var useNewBootstrap: Boolean = true,
) : Settings()
class UnsupportedSetting<T> {
=====================================
mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntimeSettings.java
=====================================
@@ -598,11 +598,6 @@ public final class GeckoRuntimeSettings extends RuntimeSettings {
getSettings().mSecurityLevel.set(level);
return this;
}
-
- public @NonNull Builder useNewBootstrap(final boolean flag) {
- getSettings().mUseNewBootstrap.set(flag);
- return this;
- }
}
private GeckoRuntime mRuntime;
@@ -675,8 +670,6 @@ public final class GeckoRuntimeSettings extends RuntimeSettings {
/* package */ final Pref<Integer> mSpoofEnglish = new Pref<>("privacy.spoof_english", 0);
/* package */ final Pref<Integer> mSecurityLevel =
new Pref<>("browser.security_level.security_slider", 4);
- /* package */ final Pref<Boolean> mUseNewBootstrap =
- new Pref<>("browser.tor_android.use_new_bootstrap", false);
/* package */ int mPreferredColorScheme = COLOR_SCHEME_SYSTEM;
@@ -1725,15 +1718,6 @@ public final class GeckoRuntimeSettings extends RuntimeSettings {
return this;
}
- public boolean getUseNewBootstrap() {
- return mUseNewBootstrap.get();
- }
-
- public @NonNull GeckoRuntimeSettings setUseNewBootstrap(final boolean flag) {
- mUseNewBootstrap.commit(flag);
- return this;
- }
-
@Override // Parcelable
public void writeToParcel(final Parcel out, final int flags) {
super.writeToParcel(out, flags);
=====================================
mobile/shared/components/geckoview/GeckoViewStartup.sys.mjs
=====================================
@@ -261,6 +261,8 @@ export class GeckoViewStartup {
"GeckoView:InitialForeground",
]);
+ this.#migratePreferences();
+
lazy.TorAndroidIntegration.init();
lazy.TorDomainIsolator.init();
@@ -370,6 +372,50 @@ export class GeckoViewStartup {
break;
}
}
+
+ /**
+ * This is the equivalent of BrowserGlue._migrateUITBB.
+ */
+ #migratePreferences() {
+ const MIGRATION_VERSION = 1;
+ const MIGRATION_PREF = "torbrowser.migration_android.version";
+
+ // We do not have a way to check for new profiles on Android.
+ // However, the first version is harmless for new installs, so run it
+ // anyway.
+ const currentVersion = Services.prefs.getIntPref(MIGRATION_PREF, 0);
+ if (currentVersion < 1) {
+ // First implementation of the migration on Android (tor-browser#43124,
+ // 14.0a5, September 2024).
+ const prefToClear = [
+ // Old torbutton preferences not used anymore.
+ // Some of them should have never been set on Android, as on Android we
+ // force PBM... But who knows about very old profiles.
+ "browser.cache.disk.enable",
+ "places.history.enabled",
+ "security.nocertdb",
+ "permissions.memory_only",
+ "extensions.torbutton.loglevel",
+ "extensions.torbutton.logmethod",
+ "extensions.torbutton.pref_fixup_version",
+ "extensions.torbutton.resize_new_windows",
+ "extensions.torbutton.startup",
+ "extensions.torlauncher.prompt_for_locale",
+ "extensions.torlauncher.loglevel",
+ "extensions.torlauncher.logmethod",
+ "extensions.torlauncher.torrc_fixup_version",
+ // tor-browser#42149: Do not change HTTPS-Only settings in the security
+ // level.
+ "dom.security.https_only_mode_send_http_background_request",
+ ];
+ for (const pref of prefToClear) {
+ if (Services.prefs.prefHasUserValue(pref)) {
+ Services.prefs.clearUserPref(pref);
+ }
+ }
+ }
+ Services.prefs.setIntPref(MIGRATION_PREF, MIGRATION_VERSION);
+ }
}
GeckoViewStartup.prototype.classID = Components.ID(
=====================================
toolkit/modules/TorAndroidIntegration.sys.mjs
=====================================
@@ -14,7 +14,6 @@ ChromeUtils.defineESModuleGetters(lazy, {
});
const Prefs = Object.freeze({
- useNewBootstrap: "browser.tor_android.use_new_bootstrap",
logLevel: "browser.tor_android.log_level",
});
@@ -49,15 +48,18 @@ const ListenedEvents = Object.freeze({
class TorAndroidIntegrationImpl {
#initialized = false;
- init() {
+ async init() {
+ if (this.#initialized) {
+ logger.warn("Something tried to initilize us again.");
+ return;
+ }
+ this.#initialized = true;
+
lazy.EventDispatcher.instance.registerListener(
this,
Object.values(ListenedEvents)
);
- this.#bootstrapMethodReset();
- Services.prefs.addObserver(Prefs.useNewBootstrap, this);
-
Services.obs.addObserver(this, lazy.TorProviderTopics.TorLog);
for (const topic in lazy.TorConnectTopics) {
@@ -67,13 +69,6 @@ class TorAndroidIntegrationImpl {
for (const topic in lazy.TorSettingsTopics) {
Services.obs.addObserver(this, lazy.TorSettingsTopics[topic]);
}
- }
-
- async #initNewBootstrap() {
- if (this.#initialized) {
- return;
- }
- this.#initialized = true;
lazy.TorProviderBuilder.init().finally(() => {
lazy.TorProviderBuilder.firstWindowLoaded();
@@ -86,13 +81,8 @@ class TorAndroidIntegrationImpl {
}
}
- observe(subj, topic, data) {
+ observe(subj, topic) {
switch (topic) {
- case "nsPref:changed":
- if (data === Prefs.useNewBootstrap) {
- this.#bootstrapMethodReset();
- }
- break;
case lazy.TorConnectTopics.StateChange:
lazy.EventDispatcher.instance.sendRequest({
type: EmittedEvents.connectStateChanged,
@@ -187,15 +177,6 @@ class TorAndroidIntegrationImpl {
callback?.onError(e);
}
}
-
- #bootstrapMethodReset() {
- if (Services.prefs.getBoolPref(Prefs.useNewBootstrap, false)) {
- this.#initNewBootstrap();
- } else {
- Services.prefs.clearUserPref("network.proxy.socks");
- Services.prefs.clearUserPref("network.proxy.socks_port");
- }
- }
}
export const TorAndroidIntegration = new TorAndroidIntegrationImpl();
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/4eb9b64fb15c92baa3f7aded1a8a5d1959e7eaed...40f8455dfb024578cf6f5bc43ee04e5d55e4c3bc
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/4eb9b64fb15c92baa3f7aded1a8a5d1959e7eaed...40f8455dfb024578cf6f5bc43ee04e5d55e4c3bc
You're receiving this email because of your account on gitlab.torproject.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.torproject.org/pipermail/tbb-commits/attachments/20240911/23e35a02/attachment-0001.htm>
More information about the tbb-commits
mailing list