Commits:
-
21b2be4c
by Henry Wilkes at 2025-01-21T15:25:28+00:00
fixup! TB 40597: Implement TorSettings module
TB 41921: Move quickstart setting from TorSettings to TorConnect.
-
cfd39fb0
by Henry Wilkes at 2025-01-21T15:25:29+00:00
fixup! TB 31286: Implementation of bridge, proxy, and firewall settings in about:preferences#connection
TB 41921: Move quickstart setting from TorSettings to TorConnect.
-
62e7a81f
by Henry Wilkes at 2025-01-21T15:25:30+00:00
fixup! TB 27476: Implement about:torconnect captive portal within Tor Browser
TB 41921: Move quickstart setting from TorSettings to TorConnect.
This also means we no longer need to listen for TorSettingsTopics.Ready
for the initial value.
Also fix typo in signal name: "quickstart-changed" to "quickstart-change".
-
b5cd602f
by Henry Wilkes at 2025-01-21T15:25:31+00:00
fixup! TB 42247: Android helpers for the TorProvider
TB 41921: Move quickstart setting from TorSettings to TorConnect.
5 changed files:
Changes:
browser/components/torpreferences/content/connectionPane.js
| ... |
... |
@@ -2550,12 +2550,10 @@ const gConnectionPane = (function () { |
|
2550
|
2550
|
"torPreferences-quickstart-toggle"
|
|
2551
|
2551
|
);
|
|
2552
|
2552
|
this._enableQuickstartCheckbox.addEventListener("command", () => {
|
|
2553
|
|
- TorSettings.changeSettings({
|
|
2554
|
|
- quickstart: { enabled: this._enableQuickstartCheckbox.checked },
|
|
2555
|
|
- });
|
|
|
2553
|
+ TorConnect.quickstart = this._enableQuickstartCheckbox.checked;
|
|
2556
|
2554
|
});
|
|
2557
|
|
- this._enableQuickstartCheckbox.checked = TorSettings.quickstart.enabled;
|
|
2558
|
|
- Services.obs.addObserver(this, TorSettingsTopics.SettingsChanged);
|
|
|
2555
|
+ this._enableQuickstartCheckbox.checked = TorConnect.quickstart;
|
|
|
2556
|
+ Services.obs.addObserver(this, TorConnectTopics.QuickstartChange);
|
|
2559
|
2557
|
|
|
2560
|
2558
|
// Location
|
|
2561
|
2559
|
{
|
| ... |
... |
@@ -2667,7 +2665,7 @@ const gConnectionPane = (function () { |
|
2667
|
2665
|
gBridgeSettings.init();
|
|
2668
|
2666
|
gNetworkStatus.init();
|
|
2669
|
2667
|
|
|
2670
|
|
- TorSettings.initializedPromise.then(() => this._populateXUL());
|
|
|
2668
|
+ this._populateXUL();
|
|
2671
|
2669
|
|
|
2672
|
2670
|
const onUnload = () => {
|
|
2673
|
2671
|
window.removeEventListener("unload", onUnload);
|
| ... |
... |
@@ -2681,7 +2679,7 @@ const gConnectionPane = (function () { |
|
2681
|
2679
|
gNetworkStatus.uninit();
|
|
2682
|
2680
|
|
|
2683
|
2681
|
// unregister our observer topics
|
|
2684
|
|
- Services.obs.removeObserver(this, TorSettingsTopics.SettingsChanged);
|
|
|
2682
|
+ Services.obs.removeObserver(this, TorConnectTopics.QuickstartChange);
|
|
2685
|
2683
|
Services.obs.removeObserver(this, TorConnectTopics.StageChange);
|
|
2686
|
2684
|
},
|
|
2687
|
2685
|
|
| ... |
... |
@@ -2696,12 +2694,8 @@ const gConnectionPane = (function () { |
|
2696
|
2694
|
|
|
2697
|
2695
|
observe(subject, topic) {
|
|
2698
|
2696
|
switch (topic) {
|
|
2699
|
|
- // triggered when a TorSettings param has changed
|
|
2700
|
|
- case TorSettingsTopics.SettingsChanged: {
|
|
2701
|
|
- if (subject.wrappedJSObject.changes.includes("quickstart.enabled")) {
|
|
2702
|
|
- this._enableQuickstartCheckbox.checked =
|
|
2703
|
|
- TorSettings.quickstart.enabled;
|
|
2704
|
|
- }
|
|
|
2697
|
+ case TorConnectTopics.QuickstartChange: {
|
|
|
2698
|
+ this._enableQuickstartCheckbox.checked = TorConnect.quickstart;
|
|
2705
|
2699
|
break;
|
|
2706
|
2700
|
}
|
|
2707
|
2701
|
// triggered when tor connect state changes and we may
|
| ... |
... |
@@ -2713,7 +2707,10 @@ const gConnectionPane = (function () { |
|
2713
|
2707
|
}
|
|
2714
|
2708
|
},
|
|
2715
|
2709
|
|
|
2716
|
|
- onAdvancedSettings() {
|
|
|
2710
|
+ async onAdvancedSettings() {
|
|
|
2711
|
+ // Ensure TorSettings is complete before loading the dialog, which reads
|
|
|
2712
|
+ // from TorSettings.
|
|
|
2713
|
+ await TorSettings.initializedPromise;
|
|
2717
|
2714
|
gSubDialog.open(
|
|
2718
|
2715
|
"chrome://browser/content/torpreferences/connectionSettingsDialog.xhtml",
|
|
2719
|
2716
|
{ features: "resizable=yes" }
|
toolkit/components/torconnect/TorConnectParent.sys.mjs
| ... |
... |
@@ -5,10 +5,6 @@ import { |
|
5
|
5
|
TorConnect,
|
|
6
|
6
|
TorConnectTopics,
|
|
7
|
7
|
} from "resource://gre/modules/TorConnect.sys.mjs";
|
|
8
|
|
-import {
|
|
9
|
|
- TorSettings,
|
|
10
|
|
- TorSettingsTopics,
|
|
11
|
|
-} from "resource://gre/modules/TorSettings.sys.mjs";
|
|
12
|
8
|
|
|
13
|
9
|
const lazy = {};
|
|
14
|
10
|
|
| ... |
... |
@@ -47,15 +43,10 @@ export class TorConnectParent extends JSWindowActorParent { |
|
47
|
43
|
case TorConnectTopics.BootstrapProgress:
|
|
48
|
44
|
self.sendAsyncMessage("torconnect:bootstrap-progress", obj);
|
|
49
|
45
|
break;
|
|
50
|
|
- case TorSettingsTopics.SettingsChanged:
|
|
51
|
|
- if (!obj.changes.includes("quickstart.enabled")) {
|
|
52
|
|
- break;
|
|
53
|
|
- }
|
|
54
|
|
- // eslint-disable-next-lined no-fallthrough
|
|
55
|
|
- case TorSettingsTopics.Ready:
|
|
|
46
|
+ case TorConnectTopics.QuickstartChange:
|
|
56
|
47
|
self.sendAsyncMessage(
|
|
57
|
|
- "torconnect:quickstart-changed",
|
|
58
|
|
- TorSettings.quickstart.enabled
|
|
|
48
|
+ "torconnect:quickstart-change",
|
|
|
49
|
+ TorConnect.quickstart
|
|
59
|
50
|
);
|
|
60
|
51
|
break;
|
|
61
|
52
|
}
|
| ... |
... |
@@ -70,10 +61,9 @@ export class TorConnectParent extends JSWindowActorParent { |
|
70
|
61
|
this.torConnectObserver,
|
|
71
|
62
|
TorConnectTopics.BootstrapProgress
|
|
72
|
63
|
);
|
|
73
|
|
- Services.obs.addObserver(this.torConnectObserver, TorSettingsTopics.Ready);
|
|
74
|
64
|
Services.obs.addObserver(
|
|
75
|
65
|
this.torConnectObserver,
|
|
76
|
|
- TorSettingsTopics.SettingsChanged
|
|
|
66
|
+ TorConnectTopics.QuickstartChange
|
|
77
|
67
|
);
|
|
78
|
68
|
}
|
|
79
|
69
|
|
| ... |
... |
@@ -88,11 +78,7 @@ export class TorConnectParent extends JSWindowActorParent { |
|
88
|
78
|
);
|
|
89
|
79
|
Services.obs.removeObserver(
|
|
90
|
80
|
this.torConnectObserver,
|
|
91
|
|
- TorSettingsTopics.Ready
|
|
92
|
|
- );
|
|
93
|
|
- Services.obs.removeObserver(
|
|
94
|
|
- this.torConnectObserver,
|
|
95
|
|
- TorSettingsTopics.SettingsChanged
|
|
|
81
|
+ TorConnectTopics.QuickstartChange
|
|
96
|
82
|
);
|
|
97
|
83
|
}
|
|
98
|
84
|
|
| ... |
... |
@@ -104,7 +90,7 @@ export class TorConnectParent extends JSWindowActorParent { |
|
104
|
90
|
// If there are multiple home pages, just load the first one.
|
|
105
|
91
|
return Promise.resolve(TorConnect.fixupURIs(lazy.HomePage.get())[0]);
|
|
106
|
92
|
case "torconnect:set-quickstart":
|
|
107
|
|
- TorSettings.changeSettings({ quickstart: { enabled: message.data } });
|
|
|
93
|
+ TorConnect.quickstart = message.data;
|
|
108
|
94
|
break;
|
|
109
|
95
|
case "torconnect:open-tor-preferences":
|
|
110
|
96
|
this.browsingContext.top.embedderElement.ownerGlobal.openPreferences(
|
| ... |
... |
@@ -133,31 +119,16 @@ export class TorConnectParent extends JSWindowActorParent { |
|
133
|
119
|
case "torconnect:cancel-bootstrapping":
|
|
134
|
120
|
TorConnect.cancelBootstrapping();
|
|
135
|
121
|
break;
|
|
136
|
|
- case "torconnect:get-init-args": {
|
|
|
122
|
+ case "torconnect:get-init-args":
|
|
137
|
123
|
// Called on AboutTorConnect.init(), pass down all state data it needs
|
|
138
|
124
|
// to init.
|
|
139
|
|
-
|
|
140
|
|
- let quickstartEnabled = false;
|
|
141
|
|
-
|
|
142
|
|
- // Workaround for a race condition, but we should fix it asap.
|
|
143
|
|
- // about:torconnect is loaded before TorSettings is actually initialized.
|
|
144
|
|
- // The getter might throw and the page not loaded correctly as a result.
|
|
145
|
|
- // Silence any warning for now, but we should really fix it.
|
|
146
|
|
- // See also tor-browser#41921.
|
|
147
|
|
- try {
|
|
148
|
|
- quickstartEnabled = TorSettings.quickstart.enabled;
|
|
149
|
|
- } catch (e) {
|
|
150
|
|
- // Do not throw.
|
|
151
|
|
- }
|
|
152
|
|
-
|
|
153
|
125
|
return {
|
|
154
|
126
|
TorStrings,
|
|
155
|
127
|
Direction: Services.locale.isAppLocaleRTL ? "rtl" : "ltr",
|
|
156
|
128
|
CountryNames: TorConnect.countryNames,
|
|
157
|
129
|
stage: TorConnect.stage,
|
|
158
|
|
- quickstartEnabled,
|
|
|
130
|
+ quickstartEnabled: TorConnect.quickstart,
|
|
159
|
131
|
};
|
|
160
|
|
- }
|
|
161
|
132
|
case "torconnect:get-country-codes":
|
|
162
|
133
|
return TorConnect.getCountryCodes();
|
|
163
|
134
|
}
|
toolkit/modules/TorAndroidIntegration.sys.mjs
| ... |
... |
@@ -79,6 +79,23 @@ class TorAndroidIntegrationImpl { |
|
79
|
79
|
}
|
|
80
|
80
|
}
|
|
81
|
81
|
|
|
|
82
|
+ /**
|
|
|
83
|
+ * Combine the current TorSettings settings with the TorConnect settings.
|
|
|
84
|
+ *
|
|
|
85
|
+ * @returns {object} The TorSettings in an object, which also has a
|
|
|
86
|
+ * `quickstart.enabled` property.
|
|
|
87
|
+ */
|
|
|
88
|
+ // This is added for backward compatibility with TorSettings.getSettings prior
|
|
|
89
|
+ // to tor-browser#41921, when it used to control the quickstart setting.
|
|
|
90
|
+ // TODO: Have android separate out the request for TorConnect.quickstart. In
|
|
|
91
|
+ // principle, this would allow android tor connect UI to be loaded before
|
|
|
92
|
+ // TorSettings has initialized (the SettingsReady signal), similar to desktop.
|
|
|
93
|
+ // See tor-browser#43408.
|
|
|
94
|
+ #getAllSettings() {
|
|
|
95
|
+ const settings = lazy.TorSettings.getSettings();
|
|
|
96
|
+ settings.quickstart = { enabled: lazy.TorConnect.quickstart };
|
|
|
97
|
+ }
|
|
|
98
|
+
|
|
82
|
99
|
observe(subj, topic) {
|
|
83
|
100
|
switch (topic) {
|
|
84
|
101
|
// TODO: Replace with StageChange.
|
| ... |
... |
@@ -120,7 +137,7 @@ class TorAndroidIntegrationImpl { |
|
120
|
137
|
case lazy.TorSettingsTopics.Ready:
|
|
121
|
138
|
lazy.EventDispatcher.instance.sendRequest({
|
|
122
|
139
|
type: EmittedEvents.settingsReady,
|
|
123
|
|
- settings: lazy.TorSettings.getSettings(),
|
|
|
140
|
+ settings: this.#getAllSettings(),
|
|
124
|
141
|
});
|
|
125
|
142
|
break;
|
|
126
|
143
|
case lazy.TorSettingsTopics.SettingsChanged:
|
| ... |
... |
@@ -129,7 +146,20 @@ class TorAndroidIntegrationImpl { |
|
129
|
146
|
lazy.EventDispatcher.instance.sendRequest({
|
|
130
|
147
|
type: EmittedEvents.settingsChanged,
|
|
131
|
148
|
changes: subj.wrappedJSObject.changes ?? [],
|
|
132
|
|
- settings: lazy.TorSettings.getSettings(),
|
|
|
149
|
+ settings: this.#getAllSettings(),
|
|
|
150
|
+ });
|
|
|
151
|
+ break;
|
|
|
152
|
+ case lazy.TorConnectTopics.QuickstartChange:
|
|
|
153
|
+ // We also include the TorSettings, and a `changes` Array similar to
|
|
|
154
|
+ // SettingsChanged signal. This is for backward compatibility with
|
|
|
155
|
+ // TorSettings.getSettings prior to tor-browser#41921, when it used to
|
|
|
156
|
+ // control the quickstart setting.
|
|
|
157
|
+ // TODO: Have android separate out the request for TorConnect.quickstart.
|
|
|
158
|
+ // See tor-browser#43408.
|
|
|
159
|
+ lazy.EventDispatcher.instance.sendRequest({
|
|
|
160
|
+ type: EmittedEvents.settingsChanged,
|
|
|
161
|
+ changes: ["quickstart.enabled"],
|
|
|
162
|
+ settings: this.#getAllSettings(),
|
|
133
|
163
|
});
|
|
134
|
164
|
break;
|
|
135
|
165
|
}
|
| ... |
... |
@@ -140,9 +170,19 @@ class TorAndroidIntegrationImpl { |
|
140
|
170
|
try {
|
|
141
|
171
|
switch (event) {
|
|
142
|
172
|
case ListenedEvents.settingsGet:
|
|
143
|
|
- callback?.onSuccess(lazy.TorSettings.getSettings());
|
|
|
173
|
+ callback?.onSuccess(this.#getAllSettings());
|
|
144
|
174
|
return;
|
|
145
|
175
|
case ListenedEvents.settingsSet:
|
|
|
176
|
+ // TODO: Set quickstart via a separate event. See tor-browser#43408.
|
|
|
177
|
+ // NOTE: Currently this may trigger GeckoView:Tor:SettingsChanged
|
|
|
178
|
+ // twice: once for quickstart.enabled, and again for the other
|
|
|
179
|
+ // settings.
|
|
|
180
|
+ if (
|
|
|
181
|
+ "quickstart" in data.settings &&
|
|
|
182
|
+ "enabled" in data.settings.quickstart
|
|
|
183
|
+ ) {
|
|
|
184
|
+ lazy.TorConnect.quickstart = data.settings.quickstart.enabled;
|
|
|
185
|
+ }
|
|
146
|
186
|
// TODO: Handle setting throw? This can throw if data.settings is
|
|
147
|
187
|
// incorrectly formatted, but more like it can throw when the settings
|
|
148
|
188
|
// fail to be passed onto the TorProvider. tor-browser#43405.
|
toolkit/modules/TorConnect.sys.mjs
| ... |
... |
@@ -22,6 +22,7 @@ const TorConnectPrefs = Object.freeze({ |
|
22
|
22
|
log_level: "torbrowser.bootstrap.log_level",
|
|
23
|
23
|
/* prompt_at_startup now controls whether the quickstart can trigger. */
|
|
24
|
24
|
prompt_at_startup: "extensions.torlauncher.prompt_at_startup",
|
|
|
25
|
+ quickstart: "torbrowser.settings.quickstart.enabled",
|
|
25
|
26
|
});
|
|
26
|
27
|
|
|
27
|
28
|
export const TorConnectState = Object.freeze({
|
| ... |
... |
@@ -80,6 +81,7 @@ export const TorConnectTopics = Object.freeze({ |
|
80
|
81
|
StageChange: "torconnect:stage-change",
|
|
81
|
82
|
// TODO: Remove torconnect:state-change when pages have switched to stage.
|
|
82
|
83
|
StateChange: "torconnect:state-change",
|
|
|
84
|
+ QuickstartChange: "torconnect:quickstart-change",
|
|
83
|
85
|
BootstrapProgress: "torconnect:bootstrap-progress",
|
|
84
|
86
|
BootstrapComplete: "torconnect:bootstrap-complete",
|
|
85
|
87
|
// TODO: Remove torconnect:error when pages have switched to stage.
|
| ... |
... |
@@ -1066,8 +1068,12 @@ export const TorConnect = { |
|
1066
|
1068
|
// shouldQuickStart would be `false`.
|
|
1067
|
1069
|
// NOTE: At this point, _requestedStage should still be `null`.
|
|
1068
|
1070
|
this._setStage(TorConnectStage.Start);
|
|
1069
|
|
- if (this.shouldQuickStart) {
|
|
1070
|
|
- // Quickstart
|
|
|
1071
|
+ if (
|
|
|
1072
|
+ // Quickstart setting is enabled.
|
|
|
1073
|
+ this.quickstart &&
|
|
|
1074
|
+ // And the previous bootstrap attempt must have succeeded.
|
|
|
1075
|
+ !Services.prefs.getBoolPref(TorConnectPrefs.prompt_at_startup, true)
|
|
|
1076
|
+ ) {
|
|
1071
|
1077
|
this.beginBootstrapping();
|
|
1072
|
1078
|
}
|
|
1073
|
1079
|
},
|
| ... |
... |
@@ -1120,6 +1126,25 @@ export const TorConnect = { |
|
1120
|
1126
|
return lazy.TorLauncherUtil.shouldStartAndOwnTor;
|
|
1121
|
1127
|
},
|
|
1122
|
1128
|
|
|
|
1129
|
+ /**
|
|
|
1130
|
+ * Whether bootstrapping can begin immediately once Tor Browser has been
|
|
|
1131
|
+ * opened.
|
|
|
1132
|
+ *
|
|
|
1133
|
+ * @type {boolean}
|
|
|
1134
|
+ */
|
|
|
1135
|
+ get quickstart() {
|
|
|
1136
|
+ return Services.prefs.getBoolPref(TorConnectPrefs.quickstart, false);
|
|
|
1137
|
+ },
|
|
|
1138
|
+
|
|
|
1139
|
+ set quickstart(enabled) {
|
|
|
1140
|
+ enabled = Boolean(enabled);
|
|
|
1141
|
+ if (enabled === this.quickstart) {
|
|
|
1142
|
+ return;
|
|
|
1143
|
+ }
|
|
|
1144
|
+ Services.prefs.setBoolPref(TorConnectPrefs.quickstart, enabled);
|
|
|
1145
|
+ Services.obs.notifyObservers(null, TorConnectTopics.QuickstartChange);
|
|
|
1146
|
+ },
|
|
|
1147
|
+
|
|
1123
|
1148
|
get shouldShowTorConnect() {
|
|
1124
|
1149
|
// TorBrowser must control the daemon
|
|
1125
|
1150
|
return (
|
| ... |
... |
@@ -1163,15 +1188,6 @@ export const TorConnect = { |
|
1163
|
1188
|
);
|
|
1164
|
1189
|
},
|
|
1165
|
1190
|
|
|
1166
|
|
- get shouldQuickStart() {
|
|
1167
|
|
- // quickstart must be enabled
|
|
1168
|
|
- return (
|
|
1169
|
|
- lazy.TorSettings.quickstart.enabled &&
|
|
1170
|
|
- // and the previous bootstrap attempt must have succeeded
|
|
1171
|
|
- !Services.prefs.getBoolPref(TorConnectPrefs.prompt_at_startup, true)
|
|
1172
|
|
- );
|
|
1173
|
|
- },
|
|
1174
|
|
-
|
|
1175
|
1191
|
// TODO: Remove when all pages have switched to "stage".
|
|
1176
|
1192
|
get state() {
|
|
1177
|
1193
|
// There is no "Error" stage, but about:torconnect relies on receiving the
|
toolkit/modules/TorSettings.sys.mjs
| ... |
... |
@@ -27,10 +27,8 @@ export const TorSettingsTopics = Object.freeze({ |
|
27
|
27
|
|
|
28
|
28
|
/* Prefs used to store settings in TorBrowser prefs */
|
|
29
|
29
|
const TorSettingsPrefs = Object.freeze({
|
|
30
|
|
- quickstart: {
|
|
31
|
|
- /* bool: does tor connect automatically on launch */
|
|
32
|
|
- enabled: "torbrowser.settings.quickstart.enabled",
|
|
33
|
|
- },
|
|
|
30
|
+ // NOTE: torbrowser.settings.quickstart.enabled used to be managed by
|
|
|
31
|
+ // TorSettings but was moved to TorConnect.quickstart in tor-browser#41921.
|
|
34
|
32
|
bridges: {
|
|
35
|
33
|
/* bool: does tor use bridges */
|
|
36
|
34
|
enabled: "torbrowser.settings.bridges.enabled",
|
| ... |
... |
@@ -173,9 +171,6 @@ class TorSettingsImpl { |
|
173
|
171
|
* @type {object}
|
|
174
|
172
|
*/
|
|
175
|
173
|
#settings = {
|
|
176
|
|
- quickstart: {
|
|
177
|
|
- enabled: false,
|
|
178
|
|
- },
|
|
179
|
174
|
bridges: {
|
|
180
|
175
|
/**
|
|
181
|
176
|
* Whether the bridges are enabled or not.
|
| ... |
... |
@@ -579,11 +574,6 @@ class TorSettingsImpl { |
|
579
|
574
|
#loadFromPrefs() {
|
|
580
|
575
|
lazy.logger.debug("loadFromPrefs()");
|
|
581
|
576
|
|
|
582
|
|
- /* Quickstart */
|
|
583
|
|
- this.#settings.quickstart.enabled = Services.prefs.getBoolPref(
|
|
584
|
|
- TorSettingsPrefs.quickstart.enabled,
|
|
585
|
|
- false
|
|
586
|
|
- );
|
|
587
|
577
|
/* Bridges */
|
|
588
|
578
|
const bridges = {};
|
|
589
|
579
|
bridges.enabled = Services.prefs.getBoolPref(
|
| ... |
... |
@@ -691,11 +681,6 @@ class TorSettingsImpl { |
|
691
|
681
|
|
|
692
|
682
|
this.#checkIfInitialized();
|
|
693
|
683
|
|
|
694
|
|
- /* Quickstart */
|
|
695
|
|
- Services.prefs.setBoolPref(
|
|
696
|
|
- TorSettingsPrefs.quickstart.enabled,
|
|
697
|
|
- this.#settings.quickstart.enabled
|
|
698
|
|
- );
|
|
699
|
684
|
/* Bridges */
|
|
700
|
685
|
Services.prefs.setBoolPref(
|
|
701
|
686
|
TorSettingsPrefs.bridges.enabled,
|
| ... |
... |
@@ -928,7 +913,6 @@ class TorSettingsImpl { |
|
928
|
913
|
*
|
|
929
|
914
|
* It is possible to set all settings, or only some sections:
|
|
930
|
915
|
*
|
|
931
|
|
- * + quickstart.enabled can be set individually.
|
|
932
|
916
|
* + bridges.enabled can be set individually.
|
|
933
|
917
|
* + bridges.source can be set with a corresponding bridge specification for
|
|
934
|
918
|
* the source (bridge_strings, lox_id, builtin_type).
|
| ... |
... |
@@ -968,14 +952,6 @@ class TorSettingsImpl { |
|
968
|
952
|
changes.push(`${group}.${prop}`);
|
|
969
|
953
|
};
|
|
970
|
954
|
|
|
971
|
|
- if ("quickstart" in newValues && "enabled" in newValues.quickstart) {
|
|
972
|
|
- changeSetting(
|
|
973
|
|
- "quickstart",
|
|
974
|
|
- "enabled",
|
|
975
|
|
- Boolean(newValues.quickstart.enabled)
|
|
976
|
|
- );
|
|
977
|
|
- }
|
|
978
|
|
-
|
|
979
|
955
|
if ("bridges" in newValues) {
|
|
980
|
956
|
if ("source" in newValues.bridges) {
|
|
981
|
957
|
this.#fixupBridgeSettings(newValues.bridges);
|
| ... |
... |
@@ -1048,11 +1024,7 @@ class TorSettingsImpl { |
|
1048
|
1024
|
// saved the preferences we send the new settings to TorProvider.
|
|
1049
|
1025
|
// Some properties are unread by TorProvider. So if only these values change
|
|
1050
|
1026
|
// there is no need to re-apply the settings.
|
|
1051
|
|
- const unreadProps = [
|
|
1052
|
|
- "quickstart.enabled",
|
|
1053
|
|
- "bridges.builtin_type",
|
|
1054
|
|
- "bridges.lox_id",
|
|
1055
|
|
- ];
|
|
|
1027
|
+ const unreadProps = ["bridges.builtin_type", "bridges.lox_id"];
|
|
1056
|
1028
|
const shouldApply = changes.some(prop => !unreadProps.includes(prop));
|
|
1057
|
1029
|
if (shouldApply) {
|
|
1058
|
1030
|
await this.#applySettings(true);
|
|