richard pushed to branch tor-browser-115.9.0esr-13.5-1 at The Tor Project / Applications / Tor Browser
Commits:
-
74db46f9
by Henry Wilkes at 2024-03-25T21:54:25+00:00
-
142836ed
by Henry Wilkes at 2024-03-25T21:54:25+00:00
-
4338bda1
by Henry Wilkes at 2024-03-25T21:54:25+00:00
7 changed files:
- browser/components/preferences/preferences.xhtml
- browser/components/securitylevel/content/securityLevel.js
- browser/components/securitylevel/content/securityLevelPanel.inc.xhtml
- browser/components/securitylevel/content/securityLevelPreferences.inc.xhtml
- browser/locales/en-US/browser/base-browser.ftl
- browser/locales/jar.mn
- + tools/torbrowser/l10n/migrations/bug-42214-security-level.py
Changes:
... | ... | @@ -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"/>
|
... | ... | @@ -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 | });
|
... | ... | @@ -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> |
... | ... | @@ -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>
|
... | ... | @@ -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 |
... | ... | @@ -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/ |
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 | + ) |