[tbb-commits] [Git][tpo/applications/tor-browser][tor-browser-102.12.0esr-12.5-1] fixup! Bug 31286: Implementation of bridge, proxy, and firewall settings in...
Pier Angelo Vendrame (@pierov)
git at gitlab.torproject.org
Wed Jun 14 10:01:33 UTC 2023
Pier Angelo Vendrame pushed to branch tor-browser-102.12.0esr-12.5-1 at The Tor Project / Applications / Tor Browser
Commits:
0d458af9 by Henry Wilkes at 2023-06-14T10:18:34+01:00
fixup! Bug 31286: Implementation of bridge, proxy, and firewall settings in about:preferences#connection
Bug 41848 - Consistently disable the accept/connect button in the bridge
dialogs until the user gives some input.
- - - - -
3 changed files:
- browser/components/torpreferences/content/builtinBridgeDialog.jsm
- browser/components/torpreferences/content/connectionPane.js
- browser/components/torpreferences/content/provideBridgeDialog.jsm
Changes:
=====================================
browser/components/torpreferences/content/builtinBridgeDialog.jsm
=====================================
@@ -26,6 +26,7 @@ class BuiltinBridgeDialog {
constructor(onSubmit) {
this.onSubmit = onSubmit;
this._acceptButton = null;
+ this._radioGroup = null;
}
_populateXUL(window, dialog) {
@@ -36,7 +37,7 @@ class BuiltinBridgeDialog {
"#torPreferences-builtinBridge-description"
).textContent = TorStrings.settings.builtinBridgeDescription2;
- const radioGroup = dialog.querySelector(
+ this._radioGroup = dialog.querySelector(
"#torPreferences-builtinBridge-typeSelection"
);
@@ -60,13 +61,8 @@ class BuiltinBridgeDialog {
TorSettings.bridges.source == TorBridgeSource.BuiltIn
? TorSettings.bridges.builtin_type
: null;
- if (currentBuiltinType) {
- radioGroup.value = currentBuiltinType;
- } else {
- radioGroup.selectedItem = null;
- }
- for (const optionEl of radioGroup.querySelectorAll(
+ for (const optionEl of this._radioGroup.querySelectorAll(
".builtin-bridges-option"
)) {
const radio = optionEl.querySelector("radio");
@@ -85,8 +81,15 @@ class BuiltinBridgeDialog {
);
}
+ if (currentBuiltinType) {
+ this._radioGroup.value = currentBuiltinType;
+ } else {
+ this._radioGroup.selectedItem = null;
+ }
+
+ this._radioGroup.addEventListener("select", () => this.onSelectChange());
dialog.addEventListener("dialogaccept", () => {
- this.onSubmit(radioGroup.value, TorConnect.canBeginBootstrap);
+ this.onSubmit(this._radioGroup.value, TorConnect.canBeginBootstrap);
});
dialog.addEventListener("dialoghelp", e => {
window.top.openTrustedLinkIn(
@@ -102,9 +105,15 @@ class BuiltinBridgeDialog {
this._acceptButton = dialog.getButton("accept");
Services.obs.addObserver(this, TorConnectTopics.StateChange);
+
+ this.onSelectChange();
this.onAcceptStateChange();
}
+ onSelectChange() {
+ this._acceptButton.disabled = !this._radioGroup.value;
+ }
+
onAcceptStateChange() {
this._acceptButton.setAttribute(
"label",
=====================================
browser/components/torpreferences/content/connectionPane.js
=====================================
@@ -1088,14 +1088,9 @@ const gConnectionPane = (function() {
onAddBuiltinBridge() {
const builtinBridgeDialog = new BuiltinBridgeDialog(
(bridgeType, connect) => {
- if (!bridgeType) {
- TorSettings.bridges.enabled = false;
- TorSettings.bridges.builtin_type = "";
- } else {
- TorSettings.bridges.enabled = true;
- TorSettings.bridges.source = TorBridgeSource.BuiltIn;
- TorSettings.bridges.builtin_type = bridgeType;
- }
+ TorSettings.bridges.enabled = true;
+ TorSettings.bridges.source = TorBridgeSource.BuiltIn;
+ TorSettings.bridges.builtin_type = bridgeType;
this.saveBridgeSettings(connect);
}
@@ -1124,15 +1119,9 @@ const gConnectionPane = (function() {
onAddBridgeManually() {
const provideBridgeDialog = new ProvideBridgeDialog(
(aBridgeString, connect) => {
- if (aBridgeString) {
- TorSettings.bridges.enabled = true;
- TorSettings.bridges.source = TorBridgeSource.UserProvided;
- TorSettings.bridges.bridge_strings = aBridgeString;
- } else {
- TorSettings.bridges.enabled = false;
- TorSettings.bridges.source = TorBridgeSource.Invalid;
- TorSettings.bridges.bridge_strings = "";
- }
+ TorSettings.bridges.enabled = true;
+ TorSettings.bridges.source = TorBridgeSource.UserProvided;
+ TorSettings.bridges.bridge_strings = aBridgeString;
this.saveBridgeSettings(connect);
}
=====================================
browser/components/torpreferences/content/provideBridgeDialog.jsm
=====================================
@@ -56,32 +56,35 @@ class ProvideBridgeDialog {
"placeholder",
TorStrings.settings.provideBridgePlaceholder
);
- this._textarea.addEventListener("input", () => {
- this.onAcceptStateChange();
- });
+
+ this._textarea.addEventListener("input", () => this.onValueChange());
if (TorSettings.bridges.source == TorBridgeSource.UserProvided) {
this._textarea.value = TorSettings.bridges.bridge_strings.join("\n");
}
this._dialog.addEventListener("dialogaccept", e => {
- let value = this._textarea.value;
- if (!value.trim()) {
- value = null;
- }
- this.onSubmit(value, value && TorConnect.canBeginBootstrap);
+ this.onSubmit(this._textarea.value, TorConnect.canBeginBootstrap);
});
this._dialog.addEventListener("dialoghelp", openHelp);
this._acceptButton = this._dialog.getButton("accept");
Services.obs.addObserver(this, TorConnectTopics.StateChange);
+
+ this.onValueChange();
this.onAcceptStateChange();
}
+ onValueChange() {
+ // TODO: Do some proper value parsing and error reporting. See
+ // tor-browser#40552.
+ this._acceptButton.disabled = !this._textarea.value.trim();
+ }
+
onAcceptStateChange() {
this._acceptButton.setAttribute(
"label",
- this._textarea.value.trim() && TorConnect.canBeginBootstrap
+ TorConnect.canBeginBootstrap
? TorStrings.settings.bridgeButtonConnect
: TorStrings.settings.bridgeButtonAccept
);
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/0d458af9bf952c1b6f4f685e7c1397156ae8b69c
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/0d458af9bf952c1b6f4f685e7c1397156ae8b69c
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/20230614/0bb7e86b/attachment-0001.htm>
More information about the tbb-commits
mailing list