richard pushed to branch tor-browser-115.9.0esr-13.5-1 at The Tor Project / Applications / Tor Browser

Commits:

7 changed files:

Changes:

  • browser/components/preferences/preferences.xhtml
    ... ... @@ -60,6 +60,7 @@
    60 60
       <link rel="localization" href="security/certificates/certManager.ftl"/>
    
    61 61
       <link rel="localization" href="security/certificates/deviceManager.ftl"/>
    
    62 62
       <link rel="localization" href="toolkit/updates/history.ftl"/>
    
    63
    +  <link rel="localization" href="browser/base-browser.ftl"/>
    
    63 64
       <link rel="localization" href="browser/tor-browser.ftl"/>
    
    64 65
     
    
    65 66
       <link rel="shortcut icon" href="chrome://global/skin/icons/settings.svg"/>
    

  • browser/components/securitylevel/content/securityLevel.js
    ... ... @@ -8,65 +8,6 @@ ChromeUtils.defineModuleGetter(
    8 8
       "resource://gre/modules/SecurityLevel.jsm"
    
    9 9
     );
    
    10 10
     
    
    11
    -XPCOMUtils.defineLazyGetter(this, "SecurityLevelStrings", () => {
    
    12
    -  let strings = {
    
    13
    -    // Generic terms
    
    14
    -    security_level: "Security Level",
    
    15
    -    security_level_standard: "Standard",
    
    16
    -    security_level_safer: "Safer",
    
    17
    -    security_level_safest: "Safest",
    
    18
    -    security_level_tooltip_standard: "Security Level: Standard",
    
    19
    -    security_level_tooltip_safer: "Security Level: Safer",
    
    20
    -    security_level_tooltip_safest: "Security Level: Safest",
    
    21
    -    // Shown only for custom level
    
    22
    -    security_level_custom: "Custom",
    
    23
    -    security_level_restore: "Restore Defaults",
    
    24
    -    security_level_learn_more: "Learn more",
    
    25
    -    // Panel
    
    26
    -    security_level_open_settings: "Settings…",
    
    27
    -    security_level_standard_summary:
    
    28
    -      "All browser and website features are enabled.",
    
    29
    -    security_level_safer_summary:
    
    30
    -      "Disables website features that are often dangerous, causing some sites to lose functionality.",
    
    31
    -    security_level_safest_summary:
    
    32
    -      "Only allows website features required for static sites and basic services. These changes affect images, media, and scripts.",
    
    33
    -    security_level_custom_heading: "Custom security level configured",
    
    34
    -    security_level_custom_summary:
    
    35
    -      "Your custom browser preferences have resulted in unusual security settings. For security and privacy reasons, we recommend you choose one of the default security levels.",
    
    36
    -    // Security level section in about:preferences#privacy
    
    37
    -    security_level_overview:
    
    38
    -      "Disable certain web features that can be used to attack your security and anonymity.",
    
    39
    -    security_level_list_safer: "At the safer setting:",
    
    40
    -    security_level_list_safest: "At the safest setting:",
    
    41
    -    // Strings for descriptions
    
    42
    -    security_level_js_https_only: "JavaScript is disabled on non-HTTPS sites.",
    
    43
    -    security_level_js_disabled:
    
    44
    -      "JavaScript is disabled by default on all sites.",
    
    45
    -    security_level_limit_typography:
    
    46
    -      "Some fonts and math symbols are disabled.",
    
    47
    -    security_level_limit_typography_svg:
    
    48
    -      "Some fonts, icons, math symbols, and images are disabled.",
    
    49
    -    security_level_limit_media:
    
    50
    -      "Audio and video (HTML5 media), and WebGL are click-to-play.",
    
    51
    -  };
    
    52
    -  let bundle = null;
    
    53
    -  try {
    
    54
    -    bundle = Services.strings.createBundle(
    
    55
    -      "chrome://browser/locale/securityLevel.properties"
    
    56
    -    );
    
    57
    -  } catch (e) {
    
    58
    -    console.warn("Could not load the Security Level strings");
    
    59
    -  }
    
    60
    -  if (bundle) {
    
    61
    -    for (const key of Object.keys(strings)) {
    
    62
    -      try {
    
    63
    -        strings[key] = bundle.GetStringFromName(key);
    
    64
    -      } catch (e) {}
    
    65
    -    }
    
    66
    -  }
    
    67
    -  return strings;
    
    68
    -});
    
    69
    -
    
    70 11
     /*
    
    71 12
       Security Level Button Code
    
    72 13
     
    
    ... ... @@ -100,12 +41,30 @@ var SecurityLevelButton = {
    100 41
         if (!level) {
    
    101 42
           return;
    
    102 43
         }
    
    103
    -    const customStr = SecurityLevelPrefs.securityCustom ? "_custom" : "";
    
    104
    -    this._button.setAttribute("level", `${level}${customStr}`);
    
    105
    -    this._button.setAttribute(
    
    106
    -      "tooltiptext",
    
    107
    -      SecurityLevelStrings[`security_level_tooltip_${level}`]
    
    108
    -    );
    
    44
    +    const custom = SecurityLevelPrefs.securityCustom;
    
    45
    +    this._button.setAttribute("level", custom ? `${level}_custom` : level);
    
    46
    +
    
    47
    +    let l10nIdLevel;
    
    48
    +    switch (level) {
    
    49
    +      case "standard":
    
    50
    +        l10nIdLevel = "security-level-toolbar-button-standard";
    
    51
    +        break;
    
    52
    +      case "safer":
    
    53
    +        l10nIdLevel = "security-level-toolbar-button-safer";
    
    54
    +        break;
    
    55
    +      case "safest":
    
    56
    +        l10nIdLevel = "security-level-toolbar-button-safest";
    
    57
    +        break;
    
    58
    +      default:
    
    59
    +        throw Error(`Unhandled level: ${level}`);
    
    60
    +    }
    
    61
    +    if (custom) {
    
    62
    +      // Don't distinguish between the different levels when in the custom
    
    63
    +      // state. We just want to emphasise that it is custom rather than any
    
    64
    +      // specific level.
    
    65
    +      l10nIdLevel = "security-level-toolbar-button-custom";
    
    66
    +    }
    
    67
    +    document.l10n.setAttributes(this._button, l10nIdLevel);
    
    109 68
       },
    
    110 69
     
    
    111 70
       /**
    
    ... ... @@ -159,7 +118,6 @@ var SecurityLevelButton = {
    159 118
           window.gNavToolbox.palette.querySelector("#security-level-button");
    
    160 119
         // Set a label to be be used as the accessible name, and to be shown in the
    
    161 120
         // overflow menu and during customization.
    
    162
    -    this._button.setAttribute("label", SecurityLevelStrings.security_level);
    
    163 121
         this._button.addEventListener("command", () => this.openPopup());
    
    164 122
         // set the initial class based off of the current pref
    
    165 123
         this._configUIFromPrefs();
    
    ... ... @@ -213,21 +171,12 @@ var SecurityLevelPanel = {
    213 171
           settingsButton: document.getElementById("securityLevel-settings"),
    
    214 172
         };
    
    215 173
     
    
    216
    -    document.getElementById("securityLevel-header").textContent =
    
    217
    -      SecurityLevelStrings.security_level;
    
    218
    -    this._elements.customName.textContent =
    
    219
    -      SecurityLevelStrings.security_level_custom;
    
    220 174
         const learnMoreEl = document.getElementById("securityLevel-learnMore");
    
    221
    -    learnMoreEl.textContent = SecurityLevelStrings.security_level_learn_more;
    
    222 175
         learnMoreEl.addEventListener("click", event => {
    
    223 176
           window.openTrustedLinkIn(learnMoreEl.href, "tab");
    
    224 177
           this.hide();
    
    225 178
           event.preventDefault();
    
    226 179
         });
    
    227
    -    this._elements.restoreDefaultsButton.textContent =
    
    228
    -      SecurityLevelStrings.security_level_restore;
    
    229
    -    this._elements.settingsButton.textContent =
    
    230
    -      SecurityLevelStrings.security_level_open_settings;
    
    231 180
     
    
    232 181
         this._elements.restoreDefaultsButton.addEventListener("command", () => {
    
    233 182
           this.restoreDefaults();
    
    ... ... @@ -268,11 +217,30 @@ var SecurityLevelPanel = {
    268 217
     
    
    269 218
         // Descriptions change based on security level
    
    270 219
         this._elements.background.setAttribute("level", level);
    
    271
    -    this._elements.levelName.textContent =
    
    272
    -      SecurityLevelStrings[`security_level_${level}`];
    
    273
    -    this._elements.summary.textContent = custom
    
    274
    -      ? SecurityLevelStrings.security_level_custom_summary
    
    275
    -      : SecurityLevelStrings[`security_level_${level}_summary`];
    
    220
    +    let l10nIdLevel;
    
    221
    +    let l10nIdSummary;
    
    222
    +    switch (level) {
    
    223
    +      case "standard":
    
    224
    +        l10nIdLevel = "security-level-panel-level-standard";
    
    225
    +        l10nIdSummary = "security-level-summary-standard";
    
    226
    +        break;
    
    227
    +      case "safer":
    
    228
    +        l10nIdLevel = "security-level-panel-level-safer";
    
    229
    +        l10nIdSummary = "security-level-summary-safer";
    
    230
    +        break;
    
    231
    +      case "safest":
    
    232
    +        l10nIdLevel = "security-level-panel-level-safest";
    
    233
    +        l10nIdSummary = "security-level-summary-safest";
    
    234
    +        break;
    
    235
    +      default:
    
    236
    +        throw Error(`Unhandled level: ${level}`);
    
    237
    +    }
    
    238
    +    if (custom) {
    
    239
    +      l10nIdSummary = "security-level-summary-custom";
    
    240
    +    }
    
    241
    +
    
    242
    +    document.l10n.setAttributes(this._elements.levelName, l10nIdLevel);
    
    243
    +    document.l10n.setAttributes(this._elements.summary, l10nIdSummary);
    
    276 244
       },
    
    277 245
     
    
    278 246
       /**
    
    ... ... @@ -358,25 +326,13 @@ var SecurityLevelPreferences = {
    358 326
         this._customNotification = document.getElementById(
    
    359 327
           "securityLevel-customNotification"
    
    360 328
         );
    
    361
    -    this._radiogroup = document.getElementById("securityLevel-radiogroup");
    
    362
    -
    
    363
    -    document.querySelector("#securityLevel-groupbox h2").textContent =
    
    364
    -      SecurityLevelStrings.security_level;
    
    365
    -    document.getElementById("securityLevel-overview").textContent =
    
    366
    -      SecurityLevelStrings.security_level_overview;
    
    367 329
         document
    
    368
    -      .getElementById("securityLevel-learnMore")
    
    369
    -      .setAttribute("value", SecurityLevelStrings.security_level_learn_more);
    
    370
    -
    
    371
    -    document.getElementById("securityLevel-customHeading").textContent =
    
    372
    -      SecurityLevelStrings.security_level_custom_heading;
    
    373
    -    document.getElementById("securityLevel-customDescription").textContent =
    
    374
    -      SecurityLevelStrings.security_level_custom_summary;
    
    375
    -    const restoreDefaultsButton = document.getElementById(
    
    376
    -      "securityLevel-restoreDefaults"
    
    377
    -    );
    
    378
    -    restoreDefaultsButton.textContent =
    
    379
    -      SecurityLevelStrings.security_level_restore;
    
    330
    +      .getElementById("securityLevel-restoreDefaults")
    
    331
    +      .addEventListener("command", () => {
    
    332
    +        SecurityLevelPrefs.securityCustom = false;
    
    333
    +      });
    
    334
    +
    
    335
    +    this._radiogroup = document.getElementById("securityLevel-radiogroup");
    
    380 336
     
    
    381 337
         this._radioOptions = Array.from(
    
    382 338
           this._radiogroup.querySelectorAll(".securityLevel-radio-option"),
    
    ... ... @@ -384,46 +340,7 @@ var SecurityLevelPreferences = {
    384 340
             return { container, radio: container.querySelector("radio") };
    
    385 341
           }
    
    386 342
         );
    
    387
    -    const descListItemsMap = {
    
    388
    -      safer: [
    
    389
    -        SecurityLevelStrings.security_level_js_https_only,
    
    390
    -        SecurityLevelStrings.security_level_limit_typography,
    
    391
    -        SecurityLevelStrings.security_level_limit_media,
    
    392
    -      ],
    
    393
    -      safest: [
    
    394
    -        SecurityLevelStrings.security_level_js_disabled,
    
    395
    -        SecurityLevelStrings.security_level_limit_typography_svg,
    
    396
    -        SecurityLevelStrings.security_level_limit_media,
    
    397
    -      ],
    
    398
    -    };
    
    399
    -    for (const { container, radio } of this._radioOptions) {
    
    400
    -      const level = radio.value;
    
    401
    -      radio.setAttribute(
    
    402
    -        "label",
    
    403
    -        SecurityLevelStrings[`security_level_${level}`]
    
    404
    -      );
    
    405
    -      container.querySelector(".summary").textContent =
    
    406
    -        SecurityLevelStrings[`security_level_${level}_summary`];
    
    407
    -      const descListItems = descListItemsMap[level];
    
    408
    -      if (!descListItems) {
    
    409
    -        continue;
    
    410
    -      }
    
    411
    -      const descrList = container.querySelector(
    
    412
    -        ".securityLevel-descriptionList"
    
    413
    -      );
    
    414
    -      // TODO: Add the elements in securityLevelPreferences.inc.xhtml again
    
    415
    -      // when we switch to Fluent
    
    416
    -      for (const text of descListItems) {
    
    417
    -        let elem = document.createXULElement("description");
    
    418
    -        elem.textContent = text;
    
    419
    -        elem.className = "indent";
    
    420
    -        descrList.append(elem);
    
    421
    -      }
    
    422
    -    }
    
    423 343
     
    
    424
    -    restoreDefaultsButton.addEventListener("command", () => {
    
    425
    -      SecurityLevelPrefs.securityCustom = false;
    
    426
    -    });
    
    427 344
         this._radiogroup.addEventListener("select", () => {
    
    428 345
           SecurityLevelPrefs.securityLevel = this._radiogroup.value;
    
    429 346
         });
    

  • browser/components/securitylevel/content/securityLevelPanel.inc.xhtml
    ... ... @@ -7,20 +7,35 @@
    7 7
            level="top"
    
    8 8
            class="cui-widget-panel panel-no-padding">
    
    9 9
       <box class="panel-header">
    
    10
    -    <html:h1 id="securityLevel-header"></html:h1>
    
    10
    +    <html:h1
    
    11
    +      id="securityLevel-header"
    
    12
    +      data-l10n-id="security-level-panel-heading"
    
    13
    +    ></html:h1>
    
    11 14
       </box>
    
    12 15
       <toolbarseparator id="securityLevel-separator"></toolbarseparator>
    
    13 16
       <vbox id="securityLevel-background" class="panel-subview-body">
    
    14 17
         <html:p id="securityLevel-subheading">
    
    15 18
           <html:span id="securityLevel-level"></html:span>
    
    16
    -      <html:span id="securityLevel-custom"></html:span>
    
    19
    +      <html:span
    
    20
    +        id="securityLevel-custom"
    
    21
    +        data-l10n-id="security-level-panel-custom-badge"
    
    22
    +      ></html:span>
    
    17 23
         </html:p>
    
    18 24
         <html:p id="securityLevel-summary"></html:p>
    
    19
    -    <html:a id="securityLevel-learnMore" href="about:manual#security-settings">
    
    20
    -    </html:a>
    
    25
    +    <html:a
    
    26
    +      id="securityLevel-learnMore"
    
    27
    +      data-l10n-id="security-level-panel-learn-more-link"
    
    28
    +      href="about:manual#security-settings"
    
    29
    +    ></html:a>
    
    21 30
       </vbox>
    
    22 31
       <hbox class="panel-footer">
    
    23
    -    <button id="securityLevel-settings"/>
    
    24
    -    <button id="securityLevel-restoreDefaults"/>
    
    32
    +    <button
    
    33
    +      id="securityLevel-settings"
    
    34
    +      data-l10n-id="security-level-panel-open-settings-button"
    
    35
    +    />
    
    36
    +    <button
    
    37
    +      id="securityLevel-restoreDefaults"
    
    38
    +      data-l10n-id="security-level-restore-defaults-button"
    
    39
    +    />
    
    25 40
       </hbox>
    
    26 41
     </panel>

  • browser/components/securitylevel/content/securityLevelPreferences.inc.xhtml
    ... ... @@ -2,37 +2,64 @@
    2 2
               data-category="panePrivacy"
    
    3 3
               data-subcategory="securitylevel"
    
    4 4
               hidden="true">
    
    5
    -  <label><html:h2></html:h2></label>
    
    5
    +  <label>
    
    6
    +    <html:h2 data-l10n-id="security-level-preferences-heading"></html:h2>
    
    7
    +  </label>
    
    6 8
       <vbox flex="1">
    
    7 9
         <description flex="1">
    
    8
    -      <html:span id="securityLevel-overview" class="tail-with-learn-more">
    
    9
    -      </html:span>
    
    10
    -      <label id="securityLevel-learnMore"
    
    11
    -             class="learnMore text-link"
    
    12
    -             is="text-link"
    
    13
    -             href="about:manual#security-settings"
    
    14
    -             useoriginprincipal="true"/>
    
    10
    +      <html:span
    
    11
    +        id="securityLevel-overview"
    
    12
    +        class="tail-with-learn-more"
    
    13
    +        data-l10n-id="security-level-preferences-overview"
    
    14
    +      ></html:span>
    
    15
    +      <label
    
    16
    +        id="securityLevel-learnMore"
    
    17
    +        class="learnMore text-link"
    
    18
    +        is="text-link"
    
    19
    +        data-l10n-id="security-level-preferences-learn-more-link"
    
    20
    +        href="about:manual#security-settings"
    
    21
    +        useoriginprincipal="true"
    
    22
    +      />
    
    15 23
         </description>
    
    16
    -    <hbox id="securityLevel-customNotification"
    
    17
    -          class="info-box-container"
    
    18
    -          flex="1">
    
    24
    +    <hbox
    
    25
    +      id="securityLevel-customNotification"
    
    26
    +      class="info-box-container"
    
    27
    +      flex="1"
    
    28
    +    >
    
    19 29
           <hbox class="info-icon-container">
    
    20 30
             <image class="info-icon securityLevel-custom-warning-icon"/>
    
    21 31
           </hbox>
    
    22 32
           <vbox flex="1">
    
    23
    -        <label id="securityLevel-customHeading"/>
    
    24
    -        <description id="securityLevel-customDescription" flex="1"/>
    
    33
    +        <label
    
    34
    +          id="securityLevel-customHeading"
    
    35
    +          data-l10n-id="security-level-preferences-custom-heading"
    
    36
    +        />
    
    37
    +        <description
    
    38
    +          id="securityLevel-customDescription"
    
    39
    +          data-l10n-id="security-level-summary-custom"
    
    40
    +          flex="1"
    
    41
    +        />
    
    25 42
           </vbox>
    
    26 43
           <hbox align="center">
    
    27
    -        <button id="securityLevel-restoreDefaults"/>
    
    44
    +        <button
    
    45
    +          id="securityLevel-restoreDefaults"
    
    46
    +          data-l10n-id="security-level-restore-defaults-button"
    
    47
    +        />
    
    28 48
           </hbox>
    
    29 49
         </hbox>
    
    30 50
         <radiogroup id="securityLevel-radiogroup">
    
    31 51
           <vbox class="securityLevel-radio-option">
    
    32
    -        <radio value="standard"
    
    33
    -               aria-describedby="securityLevelSummary-standard"/>
    
    52
    +        <radio
    
    53
    +          value="standard"
    
    54
    +          data-l10n-id="security-level-preferences-level-standard"
    
    55
    +          aria-describedby="securityLevelSummary-standard"
    
    56
    +        />
    
    34 57
             <vbox id="securityLevelSummary-standard">
    
    35
    -          <description class="summary indent" flex="1"/>
    
    58
    +          <description
    
    59
    +            class="summary indent"
    
    60
    +            flex="1"
    
    61
    +            data-l10n-id="security-level-summary-standard"
    
    62
    +          />
    
    36 63
             </vbox>
    
    37 64
           </vbox>
    
    38 65
           <vbox class="securityLevel-radio-option">
    
    ... ... @@ -41,19 +68,59 @@
    41 68
               - securityLevel-descriptionList is shown or hidden, its text content
    
    42 69
               - is included or excluded from the accessible description,
    
    43 70
               - respectively. -->
    
    44
    -        <radio value="safer"
    
    45
    -               aria-describedby="securityLevelSummary-safer"/>
    
    71
    +        <radio
    
    72
    +          value="safer"
    
    73
    +          data-l10n-id="security-level-preferences-level-safer"
    
    74
    +          aria-describedby="securityLevelSummary-safer"
    
    75
    +        />
    
    46 76
             <vbox id="securityLevelSummary-safer">
    
    47
    -          <description class="summary indent" flex="1"/>
    
    48
    -          <vbox class="securityLevel-descriptionList indent"/>
    
    77
    +          <description
    
    78
    +            class="summary indent"
    
    79
    +            flex="1"
    
    80
    +            data-l10n-id="security-level-summary-safer"
    
    81
    +          />
    
    82
    +          <vbox class="securityLevel-descriptionList indent">
    
    83
    +            <description
    
    84
    +              class="indent"
    
    85
    +              data-l10n-id="security-level-preferences-bullet-https-only-javascript"
    
    86
    +            />
    
    87
    +            <description
    
    88
    +              class="indent"
    
    89
    +              data-l10n-id="security-level-preferences-bullet-limit-font-and-symbols"
    
    90
    +            />
    
    91
    +            <description
    
    92
    +              class="indent"
    
    93
    +              data-l10n-id="security-level-preferences-bullet-limit-media"
    
    94
    +            />
    
    95
    +          </vbox>
    
    49 96
             </vbox>
    
    50 97
           </vbox>
    
    51 98
           <vbox class="securityLevel-radio-option">
    
    52
    -        <radio value="safest"
    
    53
    -               aria-describedby="securityLevelSummary-safest"/>
    
    99
    +        <radio
    
    100
    +          value="safest"
    
    101
    +          data-l10n-id="security-level-preferences-level-safest"
    
    102
    +          aria-describedby="securityLevelSummary-safest"
    
    103
    +        />
    
    54 104
             <vbox id="securityLevelSummary-safest">
    
    55
    -          <description class="summary indent" flex="1"/>
    
    56
    -          <vbox class="securityLevel-descriptionList indent"/>
    
    105
    +          <description
    
    106
    +            class="summary indent"
    
    107
    +            flex="1"
    
    108
    +            data-l10n-id="security-level-summary-safest"
    
    109
    +          />
    
    110
    +          <vbox class="securityLevel-descriptionList indent">
    
    111
    +            <description
    
    112
    +              class="indent"
    
    113
    +              data-l10n-id="security-level-preferences-bullet-disabled-javascript"
    
    114
    +            />
    
    115
    +            <description
    
    116
    +              class="indent"
    
    117
    +              data-l10n-id="security-level-preferences-bullet-limit-font-and-symbols-and-images"
    
    118
    +            />
    
    119
    +            <description
    
    120
    +              class="indent"
    
    121
    +              data-l10n-id="security-level-preferences-bullet-limit-media"
    
    122
    +            />
    
    123
    +          </vbox>
    
    57 124
             </vbox>
    
    58 125
           </vbox>
    
    59 126
         </radiogroup>
    

  • browser/locales/en-US/browser/base-browser.ftl
    ... ... @@ -70,6 +70,7 @@ new-identity-dialog-confirm =
    70 70
     new-identity-blocked-home-notification = { -brand-short-name } blocked your homepage ({ $url }) from loading because it might recognize your previous session.
    
    71 71
     # Button to continue loading the home page, despite the warning message.
    
    72 72
     new-identity-blocked-home-ignore-button = Load it anyway
    
    73
    +
    
    73 74
     ## Preferences - Letterboxing.
    
    74 75
     
    
    75 76
     # The word "Letterboxing" is the proper noun for the Tor Browser feature, and is therefore capitalised.
    
    ... ... @@ -94,3 +95,74 @@ letterboxing-disabled-description = Letterboxing is currently disabled.
    94 95
     # "Letterboxing" should be treated as a feature/product name, and likely not changed in other languages.
    
    95 96
     letterboxing-enable-button =
    
    96 97
         .label = Enable Letterboxing
    
    98
    +
    
    99
    +## Security level toolbar button.
    
    100
    +## Uses sentence case in English (US).
    
    101
    +## ".label" is the accessible name, and shown in the overflow menu and when customizing the toolbar.
    
    102
    +
    
    103
    +security-level-toolbar-button-standard =
    
    104
    +    .label = Security level
    
    105
    +    .tooltiptext = Security level: Standard
    
    106
    +security-level-toolbar-button-safer =
    
    107
    +    .label = Security level
    
    108
    +    .tooltiptext = Security level: Safer
    
    109
    +security-level-toolbar-button-safest =
    
    110
    +    .label = Security level
    
    111
    +    .tooltiptext = Security level: Safest
    
    112
    +# Used when the user is in some custom configuration that does not match a security level.
    
    113
    +security-level-toolbar-button-custom =
    
    114
    +    .label = Security level
    
    115
    +    .tooltiptext = Security level: Custom
    
    116
    +
    
    117
    +## Security level popup panel.
    
    118
    +
    
    119
    +# Uses sentence case in English (US).
    
    120
    +security-level-panel-heading = Security level
    
    121
    +
    
    122
    +security-level-panel-level-standard = Standard
    
    123
    +security-level-panel-level-safer = Safer
    
    124
    +security-level-panel-level-safest = Safest
    
    125
    +security-level-panel-learn-more-link = Learn more
    
    126
    +# Button to open security level settings.
    
    127
    +security-level-panel-open-settings-button = Settings…
    
    128
    +
    
    129
    +## Security level settings.
    
    130
    +
    
    131
    +security-level-preferences-heading = Security Level
    
    132
    +security-level-preferences-overview = Disable certain web features that can be used to attack your security and anonymity.
    
    133
    +security-level-preferences-learn-more-link = Learn more
    
    134
    +security-level-preferences-level-standard =
    
    135
    +    .label = Standard
    
    136
    +security-level-preferences-level-safer =
    
    137
    +    .label = Safer
    
    138
    +security-level-preferences-level-safest =
    
    139
    +    .label = Safest
    
    140
    +
    
    141
    +## Security level summaries shown in security panel and settings.
    
    142
    +
    
    143
    +security-level-summary-standard = All browser and website features are enabled.
    
    144
    +security-level-summary-safer = Disables website features that are often dangerous, causing some sites to lose functionality.
    
    145
    +security-level-summary-safest = Only allows website features required for static sites and basic services. These changes affect images, media, and scripts.
    
    146
    +
    
    147
    +## Security level feature bullet points.
    
    148
    +## Shown in the settings under the security level when it is selected.
    
    149
    +
    
    150
    +security-level-preferences-bullet-https-only-javascript = JavaScript is disabled on non-HTTPS sites.
    
    151
    +security-level-preferences-bullet-limit-font-and-symbols = Some fonts and math symbols are disabled.
    
    152
    +security-level-preferences-bullet-limit-media = Audio and video (HTML5 media), and WebGL are click-to-play.
    
    153
    +security-level-preferences-bullet-disabled-javascript = JavaScript is disabled by default on all sites.
    
    154
    +security-level-preferences-bullet-limit-font-and-symbols-and-images = Some fonts, icons, math symbols, and images are disabled.
    
    155
    +
    
    156
    +## Custom security level.
    
    157
    +## Some custom preferences configuration has placed the user outside one of the standard three levels.
    
    158
    +
    
    159
    +# Shown in the security level panel as an orange badge next to the expected level.
    
    160
    +security-level-panel-custom-badge = Custom
    
    161
    +# Shown in the security level settings in a warning box.
    
    162
    +security-level-preferences-custom-heading = Custom security level configured
    
    163
    +# Description of custom state and recommended action.
    
    164
    +# Shown in the security level panel and settings.
    
    165
    +security-level-summary-custom = Your custom browser preferences have resulted in unusual security settings. For security and privacy reasons, we recommend you choose one of the default security levels.
    
    166
    +# Button to undo custom changes to the security level and place the user in one of the standard security levels.
    
    167
    +# Shown in the security level panel and settings.
    
    168
    +security-level-restore-defaults-button = Restore defaults

  • browser/locales/jar.mn
    ... ... @@ -33,6 +33,5 @@
    33 33
         locale/browser/safebrowsing/safebrowsing.properties   (%chrome/browser/safebrowsing/safebrowsing.properties)
    
    34 34
         locale/browser/feeds/subscribe.properties       (%chrome/browser/feeds/subscribe.properties)
    
    35 35
         locale/browser/syncSetup.properties         (%chrome/browser/syncSetup.properties)
    
    36
    -    locale/browser/securityLevel.properties        (%chrome/browser/securityLevel.properties)
    
    37 36
         locale/browser/cryptoSafetyPrompt.properties    (%chrome/browser/cryptoSafetyPrompt.properties)
    
    38 37
     % locale browser-region @AB_CD@ %locale/browser-region/

  • tools/torbrowser/l10n/migrations/bug-42214-security-level.py
    1
    +from fluent.migrate.helpers import transforms_from
    
    2
    +
    
    3
    +
    
    4
    +def migrate(ctx):
    
    5
    +    ctx.add_transforms(
    
    6
    +        "base-browser.ftl",
    
    7
    +        "base-browser.ftl",
    
    8
    +        transforms_from(
    
    9
    +            """
    
    10
    +security-level-panel-level-standard = { COPY(path, "security_level_standard") }
    
    11
    +security-level-panel-level-safer = { COPY(path, "security_level_safer") }
    
    12
    +security-level-panel-level-safest = { COPY(path, "security_level_safest") }
    
    13
    +security-level-panel-learn-more-link = { COPY(path, "security_level_learn_more") }
    
    14
    +security-level-panel-open-settings-button = { COPY(path, "security_level_open_settings") }
    
    15
    +
    
    16
    +security-level-preferences-heading = { COPY(path, "security_level") }
    
    17
    +security-level-preferences-overview = { COPY(path, "security_level_overview") }
    
    18
    +security-level-preferences-learn-more-link = { COPY(path, "security_level_learn_more") }
    
    19
    +security-level-preferences-level-standard =
    
    20
    +    .label = { COPY(path, "security_level_standard") }
    
    21
    +security-level-preferences-level-safer =
    
    22
    +    .label = { COPY(path, "security_level_safer") }
    
    23
    +security-level-preferences-level-safest =
    
    24
    +    .label = { COPY(path, "security_level_safest") }
    
    25
    +
    
    26
    +security-level-summary-standard = { COPY(path, "security_level_standard_summary") }
    
    27
    +security-level-summary-safer = { COPY(path, "security_level_safer_summary") }
    
    28
    +security-level-summary-safest = { COPY(path, "security_level_safest_summary") }
    
    29
    +
    
    30
    +
    
    31
    +security-level-preferences-bullet-https-only-javascript = { COPY(path, "security_level_js_https_only") }
    
    32
    +security-level-preferences-bullet-limit-font-and-symbols = { COPY(path, "security_level_limit_typography") }
    
    33
    +security-level-preferences-bullet-limit-media = { COPY(path, "security_level_limit_media") }
    
    34
    +security-level-preferences-bullet-disabled-javascript = { COPY(path, "security_level_js_disabled") }
    
    35
    +security-level-preferences-bullet-limit-font-and-symbols-and-images = { COPY(path, "security_level_limit_typography_svg") }
    
    36
    +
    
    37
    +security-level-panel-custom-badge = { COPY(path, "security_level_custom") }
    
    38
    +security-level-preferences-custom-heading = { COPY(path, "security_level_custom_heading") }
    
    39
    +security-level-summary-custom = { COPY(path, "security_level_custom_summary") }
    
    40
    +""",
    
    41
    +            path="securityLevel.properties",
    
    42
    +        ),
    
    43
    +    )