clairehurst pushed to branch tor-browser-140.3.0esr-15.0-1 at The Tor Project / Applications / Tor Browser
Commits:
-
e2c37c35
by Henry Wilkes at 2025-10-07T18:06:10+01:00
-
90bf16d7
by Henry Wilkes at 2025-10-07T18:06:11+01:00
-
65eb80ce
by Henry Wilkes at 2025-10-07T18:06:11+01:00
-
9ebd40f1
by Henry Wilkes at 2025-10-07T18:06:12+01:00
-
a696660b
by Henry Wilkes at 2025-10-07T18:06:13+01:00
-
b3c3b0a1
by Henry Wilkes at 2025-10-07T18:06:14+01:00
-
18f6af85
by Henry Wilkes at 2025-10-07T18:06:15+01:00
10 changed files:
- browser/app/profile/000-tor-browser.js
- browser/components/torpreferences/content/builtinBridgeDialog.xhtml
- browser/components/torpreferences/content/connectionPane.js
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/TorBridgeConfigFragment.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorBridgeTransports.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorControllerGV.kt
- mobile/android/fenix/app/src/main/res/values/preference_keys.xml
- mobile/android/geckoview/src/main/java/org/mozilla/geckoview/TorSettings.java
- mobile/android/geckoview/src/main/java/org/mozilla/geckoview/androidlegacysettings/TorLegacyAndroidSettings.java
- toolkit/modules/TorSettings.sys.mjs
Changes:
... | ... | @@ -62,7 +62,7 @@ pref("torbrowser.settings.bridges.enabled", false); |
62 | 62 | // TorBridgeSource. Initially TorBridgeSource.Invalid = -1.
|
63 | 63 | pref("torbrowser.settings.bridges.source", -1);
|
64 | 64 | pref("torbrowser.settings.bridges.lox_id", "");
|
65 | -// obfs4|meek-azure|snowflake|etc.
|
|
65 | +// obfs4|meek|snowflake|etc.
|
|
66 | 66 | pref("torbrowser.settings.bridges.builtin_type", "");
|
67 | 67 | // torbrowser.settings.bridges.bridge_strings.0
|
68 | 68 | // torbrowser.settings.bridges.bridge_strings.1
|
... | ... | @@ -76,7 +76,7 @@ |
76 | 76 | <vbox class="builtin-bridges-option">
|
77 | 77 | <hbox>
|
78 | 78 | <radio
|
79 | - value="meek-azure"
|
|
79 | + value="meek"
|
|
80 | 80 | data-l10n-id="built-in-dialog-meek-radio-option2"
|
81 | 81 | />
|
82 | 82 | <html:span class="bridge-status-badge">
|
... | ... | @@ -1079,7 +1079,7 @@ const gBuiltinBridgesArea = { |
1079 | 1079 | name: "tor-bridges-built-in-snowflake-name",
|
1080 | 1080 | description: "tor-bridges-built-in-snowflake-description",
|
1081 | 1081 | },
|
1082 | - "meek-azure": {
|
|
1082 | + meek: {
|
|
1083 | 1083 | name: "tor-bridges-built-in-meek-name",
|
1084 | 1084 | description: "tor-bridges-built-in-meek-description",
|
1085 | 1085 | },
|
... | ... | @@ -33,10 +33,10 @@ class TorBridgeConfigFragment : PreferenceFragmentCompat() { |
33 | 33 | |
34 | 34 | // Initialize radio button group for built-in bridge transport types
|
35 | 35 | val radioObfs4 = bindBridgeTransportRadio(TorBridgeTransportConfig.BUILTIN_OBFS4)
|
36 | - val radioMeekAzure = bindBridgeTransportRadio(TorBridgeTransportConfig.BUILTIN_MEEK_AZURE)
|
|
36 | + val radioMeek = bindBridgeTransportRadio(TorBridgeTransportConfig.BUILTIN_MEEK)
|
|
37 | 37 | val radioSnowflake = bindBridgeTransportRadio(TorBridgeTransportConfig.BUILTIN_SNOWFLAKE)
|
38 | 38 | |
39 | - builtinBridgeRadioGroups.addAll(mutableListOf(radioObfs4, radioMeekAzure, radioSnowflake))
|
|
39 | + builtinBridgeRadioGroups.addAll(mutableListOf(radioObfs4, radioMeek, radioSnowflake))
|
|
40 | 40 | |
41 | 41 | // `*` is Kotlin's "spread" operator, for expanding an Array as a vararg.
|
42 | 42 | addToRadioGroup(*builtinBridgeRadioGroups.toTypedArray())
|
... | ... | @@ -19,7 +19,7 @@ enum class TorBridgeTransportConfig( |
19 | 19 | preferenceKey = R.string.pref_key_tor_network_settings_bridge_config_builtin_bridge_obfs4,
|
20 | 20 | transportName = "obfs4"
|
21 | 21 | ),
|
22 | - BUILTIN_MEEK_AZURE(
|
|
22 | + BUILTIN_MEEK(
|
|
23 | 23 | preferenceKey = R.string.pref_key_tor_network_settings_bridge_config_builtin_bridge_meek_azure,
|
24 | 24 | transportName = "meek"
|
25 | 25 | ),
|
... | ... | @@ -38,8 +38,8 @@ object TorBridgeTransportConfigUtil { |
38 | 38 | return when (bridge) {
|
39 | 39 | TorBridgeTransportConfig.BUILTIN_OBFS4.transportName ->
|
40 | 40 | TorBridgeTransportConfig.BUILTIN_OBFS4
|
41 | - TorBridgeTransportConfig.BUILTIN_MEEK_AZURE.transportName ->
|
|
42 | - TorBridgeTransportConfig.BUILTIN_MEEK_AZURE
|
|
41 | + TorBridgeTransportConfig.BUILTIN_MEEK.transportName ->
|
|
42 | + TorBridgeTransportConfig.BUILTIN_MEEK
|
|
43 | 43 | TorBridgeTransportConfig.BUILTIN_SNOWFLAKE.transportName ->
|
44 | 44 | TorBridgeTransportConfig.BUILTIN_SNOWFLAKE
|
45 | 45 | else -> TorBridgeTransportConfig.USER_PROVIDED
|
... | ... | @@ -65,7 +65,7 @@ class TorControllerGV( |
65 | 65 | BridgeSource.BuiltIn -> {
|
66 | 66 | when (getTorSettings()?.bridgesBuiltinType) {
|
67 | 67 | BridgeBuiltinType.Obfs4 -> TorBridgeTransportConfig.BUILTIN_OBFS4
|
68 | - BridgeBuiltinType.MeekAzure -> TorBridgeTransportConfig.BUILTIN_MEEK_AZURE
|
|
68 | + BridgeBuiltinType.Meek -> TorBridgeTransportConfig.BUILTIN_MEEK
|
|
69 | 69 | BridgeBuiltinType.Snowflake -> TorBridgeTransportConfig.BUILTIN_SNOWFLAKE
|
70 | 70 | else -> TorBridgeTransportConfig.USER_PROVIDED
|
71 | 71 | }
|
... | ... | @@ -87,7 +87,7 @@ class TorControllerGV( |
87 | 87 | it.bridgesSource = BridgeSource.BuiltIn
|
88 | 88 | val bbt: BridgeBuiltinType = when (value) {
|
89 | 89 | TorBridgeTransportConfig.BUILTIN_OBFS4 -> BridgeBuiltinType.Obfs4
|
90 | - TorBridgeTransportConfig.BUILTIN_MEEK_AZURE -> BridgeBuiltinType.MeekAzure
|
|
90 | + TorBridgeTransportConfig.BUILTIN_MEEK -> BridgeBuiltinType.Meek
|
|
91 | 91 | TorBridgeTransportConfig.BUILTIN_SNOWFLAKE -> BridgeBuiltinType.Snowflake
|
92 | 92 | else -> BridgeBuiltinType.Invalid
|
93 | 93 | }
|
... | ... | @@ -496,6 +496,8 @@ |
496 | 496 | <string name="pref_key_tor_network_settings_bridge_config_explanation" translatable="false">pref_key_tor_network_settings_bridge_config_explanation</string>
|
497 | 497 | <string name="pref_key_tor_network_settings_bridge_config_toggle" translatable="false">pref_key_tor_network_settings_bridge_config_toggle</string>
|
498 | 498 | <string name="pref_key_tor_network_settings_bridge_config_builtin_bridge_obfs4" translatable="false">pref_key_tor_network_settings_bridge_config_builtin_bridge_obfs4</string>
|
499 | + <!-- NOTE: The "meek_azure" part is a legacy name for simply "meek", kept
|
|
500 | + - only to avoid a preference migration. See tor-browser#44068 -->
|
|
499 | 501 | <string name="pref_key_tor_network_settings_bridge_config_builtin_bridge_meek_azure" translatable="false">pref_key_tor_network_settings_bridge_config_builtin_bridge_meek_azure</string>
|
500 | 502 | <string name="pref_key_tor_network_settings_bridge_config_builtin_bridge_snowflake" translatable="false">pref_key_tor_network_settings_bridge_config_builtin_bridge_snowflake</string>
|
501 | 503 | <string name="pref_key_tor_network_settings_bridge_config_user_provided_bridge" translatable="false">pref_key_tor_network_settings_bridge_config_user_provided_bridge</string>
|
... | ... | @@ -68,10 +68,10 @@ public class TorSettings { |
68 | 68 | }
|
69 | 69 | |
70 | 70 | public enum BridgeBuiltinType {
|
71 | - /* TorSettings.sys.mjs ~ln43: string: obfs4|meek-azure|snowflake|etc */
|
|
71 | + /* TorSettings.sys.mjs ~ln43: string: obfs4|meek|snowflake|etc */
|
|
72 | 72 | Invalid("invalid"),
|
73 | 73 | Obfs4("obfs4"),
|
74 | - MeekAzure("meek-azure"),
|
|
74 | + Meek("meek"),
|
|
75 | 75 | Snowflake("snowflake");
|
76 | 76 | |
77 | 77 | private String type;
|
... | ... | @@ -88,8 +88,8 @@ public class TorSettings { |
88 | 88 | switch (s) {
|
89 | 89 | case "obfs4":
|
90 | 90 | return Obfs4;
|
91 | - case "meek-azure":
|
|
92 | - return MeekAzure;
|
|
91 | + case "meek":
|
|
92 | + return Meek;
|
|
93 | 93 | case "snowflake":
|
94 | 94 | return Snowflake;
|
95 | 95 | }
|
... | ... | @@ -49,7 +49,7 @@ public class TorLegacyAndroidSettings { |
49 | 49 | TorSettings.BridgeBuiltinType.fromString(userDefinedBridgeList);
|
50 | 50 | break;
|
51 | 51 | case "meek":
|
52 | - settings.bridgesBuiltinType = TorSettings.BridgeBuiltinType.MeekAzure;
|
|
52 | + settings.bridgesBuiltinType = TorSettings.BridgeBuiltinType.Meek;
|
|
53 | 53 | break;
|
54 | 54 | default:
|
55 | 55 | settings.bridgesSource = TorSettings.BridgeSource.Invalid;
|
... | ... | @@ -36,7 +36,7 @@ const TorSettingsPrefs = Object.freeze({ |
36 | 36 | source: "torbrowser.settings.bridges.source",
|
37 | 37 | /* string: output of crypto.randomUUID() */
|
38 | 38 | lox_id: "torbrowser.settings.bridges.lox_id",
|
39 | - /* string: obfs4|meek-azure|snowflake|etc */
|
|
39 | + /* string: obfs4|meek|snowflake|etc */
|
|
40 | 40 | builtin_type: "torbrowser.settings.bridges.builtin_type",
|
41 | 41 | /* preference branch: each child branch should be a bridge string */
|
42 | 42 | bridge_strings: "torbrowser.settings.bridges.bridge_strings",
|
... | ... | @@ -534,6 +534,13 @@ class TorSettingsImpl { |
534 | 534 | const req = await fetch("chrome://global/content/pt_config.json");
|
535 | 535 | const config = await req.json();
|
536 | 536 | lazy.logger.debug("Loaded pt_config.json", config);
|
537 | + if ("meek-azure" in config.bridges) {
|
|
538 | + // Convert the meek-azure name to meek. tor-browser#44068.
|
|
539 | + // NOTE: no need to convert recommendedDefault since it is not meek.
|
|
540 | + lazy.logger.debug("Converting pt_config type from meek-azure to meek");
|
|
541 | + config.bridges.meek = config.bridges["meek-azure"];
|
|
542 | + delete config.bridges["meek-azure"];
|
|
543 | + }
|
|
537 | 544 | this.#recommendedPT = config.recommendedDefault;
|
538 | 545 | this.#builtinBridges = config.bridges;
|
539 | 546 | for (const type in this.#builtinBridges) {
|
... | ... | @@ -687,13 +694,26 @@ class TorSettingsImpl { |
687 | 694 | )
|
688 | 695 | );
|
689 | 696 | break;
|
690 | - case TorBridgeSource.BuiltIn:
|
|
697 | + case TorBridgeSource.BuiltIn: {
|
|
691 | 698 | // bridge_strings is set via builtin_type.
|
692 | - bridges.builtin_type = Services.prefs.getStringPref(
|
|
699 | + let builtinType = Services.prefs.getStringPref(
|
|
693 | 700 | TorSettingsPrefs.bridges.builtin_type,
|
694 | 701 | ""
|
695 | 702 | );
|
703 | + if (builtinType === "meek-azure") {
|
|
704 | + lazy.logger.debug(
|
|
705 | + "Converting builtin-bridge setting value from meek-azure to meek"
|
|
706 | + );
|
|
707 | + builtinType = "meek";
|
|
708 | + // Store the new value.
|
|
709 | + Services.prefs.setStringPref(
|
|
710 | + TorSettingsPrefs.bridges.builtin_type,
|
|
711 | + builtinType
|
|
712 | + );
|
|
713 | + }
|
|
714 | + bridges.builtin_type = builtinType;
|
|
696 | 715 | break;
|
716 | + }
|
|
697 | 717 | case TorBridgeSource.Lox:
|
698 | 718 | // bridge_strings is set via lox id.
|
699 | 719 | bridges.lox_id = Services.prefs.getStringPref(
|