Pier Angelo Vendrame pushed to branch tor-browser-102.12.0esr-13.0-1 at The Tor Project / Applications / Tor Browser

Commits:

3 changed files:

Changes:

  • browser/components/torpreferences/content/builtinBridgeDialog.jsm
    ... ... @@ -26,6 +26,7 @@ class BuiltinBridgeDialog {
    26 26
       constructor(onSubmit) {
    
    27 27
         this.onSubmit = onSubmit;
    
    28 28
         this._acceptButton = null;
    
    29
    +    this._radioGroup = null;
    
    29 30
       }
    
    30 31
     
    
    31 32
       _populateXUL(window, dialog) {
    
    ... ... @@ -36,7 +37,7 @@ class BuiltinBridgeDialog {
    36 37
           "#torPreferences-builtinBridge-description"
    
    37 38
         ).textContent = TorStrings.settings.builtinBridgeDescription2;
    
    38 39
     
    
    39
    -    const radioGroup = dialog.querySelector(
    
    40
    +    this._radioGroup = dialog.querySelector(
    
    40 41
           "#torPreferences-builtinBridge-typeSelection"
    
    41 42
         );
    
    42 43
     
    
    ... ... @@ -60,13 +61,8 @@ class BuiltinBridgeDialog {
    60 61
           TorSettings.bridges.source == TorBridgeSource.BuiltIn
    
    61 62
             ? TorSettings.bridges.builtin_type
    
    62 63
             : null;
    
    63
    -    if (currentBuiltinType) {
    
    64
    -      radioGroup.value = currentBuiltinType;
    
    65
    -    } else {
    
    66
    -      radioGroup.selectedItem = null;
    
    67
    -    }
    
    68 64
     
    
    69
    -    for (const optionEl of radioGroup.querySelectorAll(
    
    65
    +    for (const optionEl of this._radioGroup.querySelectorAll(
    
    70 66
           ".builtin-bridges-option"
    
    71 67
         )) {
    
    72 68
           const radio = optionEl.querySelector("radio");
    
    ... ... @@ -85,8 +81,15 @@ class BuiltinBridgeDialog {
    85 81
           );
    
    86 82
         }
    
    87 83
     
    
    84
    +    if (currentBuiltinType) {
    
    85
    +      this._radioGroup.value = currentBuiltinType;
    
    86
    +    } else {
    
    87
    +      this._radioGroup.selectedItem = null;
    
    88
    +    }
    
    89
    +
    
    90
    +    this._radioGroup.addEventListener("select", () => this.onSelectChange());
    
    88 91
         dialog.addEventListener("dialogaccept", () => {
    
    89
    -      this.onSubmit(radioGroup.value, TorConnect.canBeginBootstrap);
    
    92
    +      this.onSubmit(this._radioGroup.value, TorConnect.canBeginBootstrap);
    
    90 93
         });
    
    91 94
         dialog.addEventListener("dialoghelp", e => {
    
    92 95
           window.top.openTrustedLinkIn(
    
    ... ... @@ -102,9 +105,15 @@ class BuiltinBridgeDialog {
    102 105
         this._acceptButton = dialog.getButton("accept");
    
    103 106
     
    
    104 107
         Services.obs.addObserver(this, TorConnectTopics.StateChange);
    
    108
    +
    
    109
    +    this.onSelectChange();
    
    105 110
         this.onAcceptStateChange();
    
    106 111
       }
    
    107 112
     
    
    113
    +  onSelectChange() {
    
    114
    +    this._acceptButton.disabled = !this._radioGroup.value;
    
    115
    +  }
    
    116
    +
    
    108 117
       onAcceptStateChange() {
    
    109 118
         this._acceptButton.setAttribute(
    
    110 119
           "label",
    

  • browser/components/torpreferences/content/connectionPane.js
    ... ... @@ -1088,14 +1088,9 @@ const gConnectionPane = (function() {
    1088 1088
         onAddBuiltinBridge() {
    
    1089 1089
           const builtinBridgeDialog = new BuiltinBridgeDialog(
    
    1090 1090
             (bridgeType, connect) => {
    
    1091
    -          if (!bridgeType) {
    
    1092
    -            TorSettings.bridges.enabled = false;
    
    1093
    -            TorSettings.bridges.builtin_type = "";
    
    1094
    -          } else {
    
    1095
    -            TorSettings.bridges.enabled = true;
    
    1096
    -            TorSettings.bridges.source = TorBridgeSource.BuiltIn;
    
    1097
    -            TorSettings.bridges.builtin_type = bridgeType;
    
    1098
    -          }
    
    1091
    +          TorSettings.bridges.enabled = true;
    
    1092
    +          TorSettings.bridges.source = TorBridgeSource.BuiltIn;
    
    1093
    +          TorSettings.bridges.builtin_type = bridgeType;
    
    1099 1094
     
    
    1100 1095
               this.saveBridgeSettings(connect);
    
    1101 1096
             }
    
    ... ... @@ -1124,15 +1119,9 @@ const gConnectionPane = (function() {
    1124 1119
         onAddBridgeManually() {
    
    1125 1120
           const provideBridgeDialog = new ProvideBridgeDialog(
    
    1126 1121
             (aBridgeString, connect) => {
    
    1127
    -          if (aBridgeString) {
    
    1128
    -            TorSettings.bridges.enabled = true;
    
    1129
    -            TorSettings.bridges.source = TorBridgeSource.UserProvided;
    
    1130
    -            TorSettings.bridges.bridge_strings = aBridgeString;
    
    1131
    -          } else {
    
    1132
    -            TorSettings.bridges.enabled = false;
    
    1133
    -            TorSettings.bridges.source = TorBridgeSource.Invalid;
    
    1134
    -            TorSettings.bridges.bridge_strings = "";
    
    1135
    -          }
    
    1122
    +          TorSettings.bridges.enabled = true;
    
    1123
    +          TorSettings.bridges.source = TorBridgeSource.UserProvided;
    
    1124
    +          TorSettings.bridges.bridge_strings = aBridgeString;
    
    1136 1125
     
    
    1137 1126
               this.saveBridgeSettings(connect);
    
    1138 1127
             }
    

  • browser/components/torpreferences/content/provideBridgeDialog.jsm
    ... ... @@ -56,32 +56,35 @@ class ProvideBridgeDialog {
    56 56
           "placeholder",
    
    57 57
           TorStrings.settings.provideBridgePlaceholder
    
    58 58
         );
    
    59
    -    this._textarea.addEventListener("input", () => {
    
    60
    -      this.onAcceptStateChange();
    
    61
    -    });
    
    59
    +
    
    60
    +    this._textarea.addEventListener("input", () => this.onValueChange());
    
    62 61
         if (TorSettings.bridges.source == TorBridgeSource.UserProvided) {
    
    63 62
           this._textarea.value = TorSettings.bridges.bridge_strings.join("\n");
    
    64 63
         }
    
    65 64
     
    
    66 65
         this._dialog.addEventListener("dialogaccept", e => {
    
    67
    -      let value = this._textarea.value;
    
    68
    -      if (!value.trim()) {
    
    69
    -        value = null;
    
    70
    -      }
    
    71
    -      this.onSubmit(value, value && TorConnect.canBeginBootstrap);
    
    66
    +      this.onSubmit(this._textarea.value, TorConnect.canBeginBootstrap);
    
    72 67
         });
    
    73 68
         this._dialog.addEventListener("dialoghelp", openHelp);
    
    74 69
     
    
    75 70
         this._acceptButton = this._dialog.getButton("accept");
    
    76 71
     
    
    77 72
         Services.obs.addObserver(this, TorConnectTopics.StateChange);
    
    73
    +
    
    74
    +    this.onValueChange();
    
    78 75
         this.onAcceptStateChange();
    
    79 76
       }
    
    80 77
     
    
    78
    +  onValueChange() {
    
    79
    +    // TODO: Do some proper value parsing and error reporting. See
    
    80
    +    // tor-browser#40552.
    
    81
    +    this._acceptButton.disabled = !this._textarea.value.trim();
    
    82
    +  }
    
    83
    +
    
    81 84
       onAcceptStateChange() {
    
    82 85
         this._acceptButton.setAttribute(
    
    83 86
           "label",
    
    84
    -      this._textarea.value.trim() && TorConnect.canBeginBootstrap
    
    87
    +      TorConnect.canBeginBootstrap
    
    85 88
             ? TorStrings.settings.bridgeButtonConnect
    
    86 89
             : TorStrings.settings.bridgeButtonAccept
    
    87 90
         );