ma1 pushed to branch tor-browser-115.8.0esr-13.5-1 at The Tor Project / Applications / Tor Browser
Commits:
-
13864ce2
by hackademix at 2024-03-12T11:39:34+01:00
-
cc1d2cd0
by hackademix at 2024-03-12T17:14:18+01:00
12 changed files:
- browser/components/onionservices/OnionLocationParent.sys.mjs
- − browser/components/onionservices/content/onionlocationPreferences.inc.xhtml
- − browser/components/onionservices/content/onionlocationPreferences.js
- browser/components/onionservices/jar.mn
- browser/components/preferences/privacy.inc.xhtml
- browser/components/preferences/privacy.js
- dom/base/Document.cpp
- mobile/android/geckoview/api.txt
- mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntimeSettings.java
- modules/libpref/init/StaticPrefList.yaml
- toolkit/modules/TorStrings.sys.mjs
- toolkit/torbutton/chrome/locale/en-US/onionLocation.properties
Changes:
| ... | ... | @@ -3,8 +3,10 @@ |
| 3 | 3 | import { TorStrings } from "resource://gre/modules/TorStrings.sys.mjs";
|
| 4 | 4 | |
| 5 | 5 | // Prefs
|
| 6 | + |
|
| 7 | +// We keep the "prioritizeonions" name, even if obsolete, in order to
|
|
| 8 | +// prevent the notification from being shown again to upgrading users.
|
|
| 6 | 9 | const NOTIFICATION_PREF = "privacy.prioritizeonions.showNotification";
|
| 7 | -const PRIORITIZE_ONIONS_PREF = "privacy.prioritizeonions.enabled";
|
|
| 8 | 10 | |
| 9 | 11 | // Element IDs
|
| 10 | 12 | const ONIONLOCATION_BOX_ID = "onion-location-box";
|
| ... | ... | @@ -18,9 +20,8 @@ const NOTIFICATION_ANCHOR_ID = "onion-location-box"; |
| 18 | 20 | const STRING_ONION_AVAILABLE = TorStrings.onionLocation.onionAvailable;
|
| 19 | 21 | const NOTIFICATION_CANCEL_LABEL = TorStrings.onionLocation.notNow;
|
| 20 | 22 | const NOTIFICATION_CANCEL_ACCESSKEY = TorStrings.onionLocation.notNowAccessKey;
|
| 21 | -const NOTIFICATION_OK_LABEL = TorStrings.onionLocation.alwaysPrioritize;
|
|
| 22 | -const NOTIFICATION_OK_ACCESSKEY =
|
|
| 23 | - TorStrings.onionLocation.alwaysPrioritizeAccessKey;
|
|
| 23 | +const NOTIFICATION_OK_LABEL = TorStrings.onionLocation.loadOnion;
|
|
| 24 | +const NOTIFICATION_OK_ACCESSKEY = TorStrings.onionLocation.loadOnionAccessKey;
|
|
| 24 | 25 | const NOTIFICATION_TITLE = TorStrings.onionLocation.tryThis;
|
| 25 | 26 | const NOTIFICATION_DESCRIPTION = TorStrings.onionLocation.description;
|
| 26 | 27 | const NOTIFICATION_LEARN_MORE_URL =
|
| ... | ... | @@ -90,9 +91,7 @@ export class OnionLocationParent extends JSWindowActorParent { |
| 90 | 91 | label: NOTIFICATION_OK_LABEL,
|
| 91 | 92 | accessKey: NOTIFICATION_OK_ACCESSKEY,
|
| 92 | 93 | callback() {
|
| 93 | - Services.prefs.setBoolPref(PRIORITIZE_ONIONS_PREF, true);
|
|
| 94 | 94 | OnionLocationParent.redirect(browser);
|
| 95 | - win.openPreferences("privacy-onionservices");
|
|
| 96 | 95 | },
|
| 97 | 96 | };
|
| 98 | 97 |
| 1 | -# Copyright (c) 2020, The Tor Project, Inc.
|
|
| 2 | - |
|
| 3 | -<groupbox id="onionServicesGroup" data-category="panePrivacy" data-subcategory="onionservices" hidden="true">
|
|
| 4 | - <label><html:h2 id="onionServicesTitle"></html:h2></label>
|
|
| 5 | - <label><label class="tail-with-learn-more" id="prioritizeOnionsDesc"></label><label
|
|
| 6 | - class="learnMore" is="text-link" id="onionServicesLearnMore"></label></label>
|
|
| 7 | - <radiogroup id="prioritizeOnionsRadioGroup" aria-labelledby="prioritizeOnionsDesc" preference="privacy.prioritizeonions.enabled">
|
|
| 8 | - <radio id="onionServicesRadioAlways" value="true"/>
|
|
| 9 | - <radio id="onionServicesRadioAsk" value="false"/>
|
|
| 10 | - </radiogroup>
|
|
| 11 | -</groupbox> |
| 1 | -// Copyright (c) 2020, The Tor Project, Inc.
|
|
| 2 | - |
|
| 3 | -"use strict";
|
|
| 4 | - |
|
| 5 | -ChromeUtils.defineESModuleGetters(this, {
|
|
| 6 | - TorStrings: "resource://gre/modules/TorStrings.sys.mjs",
|
|
| 7 | -});
|
|
| 8 | - |
|
| 9 | -const OnionLocationPreferences = {
|
|
| 10 | - init() {
|
|
| 11 | - document.getElementById("onionServicesTitle").textContent =
|
|
| 12 | - TorStrings.onionLocation.onionServicesTitle;
|
|
| 13 | - document.getElementById("prioritizeOnionsDesc").textContent =
|
|
| 14 | - TorStrings.onionLocation.prioritizeOnionsDescription;
|
|
| 15 | - const learnMore = document.getElementById("onionServicesLearnMore");
|
|
| 16 | - learnMore.textContent = TorStrings.onionLocation.learnMore;
|
|
| 17 | - learnMore.href = TorStrings.onionLocation.learnMoreURL;
|
|
| 18 | - if (TorStrings.onionLocation.learnMoreURL.startsWith("about:")) {
|
|
| 19 | - learnMore.setAttribute("useoriginprincipal", "true");
|
|
| 20 | - }
|
|
| 21 | - document.getElementById("onionServicesRadioAlways").label =
|
|
| 22 | - TorStrings.onionLocation.always;
|
|
| 23 | - document.getElementById("onionServicesRadioAsk").label =
|
|
| 24 | - TorStrings.onionLocation.askEverytime;
|
|
| 25 | - },
|
|
| 26 | -};
|
|
| 27 | - |
|
| 28 | -Object.defineProperty(this, "OnionLocationPreferences", {
|
|
| 29 | - value: OnionLocationPreferences,
|
|
| 30 | - enumerable: true,
|
|
| 31 | - writable: false,
|
|
| 32 | -}); |
| ... | ... | @@ -6,5 +6,4 @@ browser.jar: |
| 6 | 6 | content/browser/onionservices/onionservices.css (content/onionservices.css)
|
| 7 | 7 | content/browser/onionservices/savedKeysDialog.js (content/savedKeysDialog.js)
|
| 8 | 8 | content/browser/onionservices/savedKeysDialog.xhtml (content/savedKeysDialog.xhtml)
|
| 9 | - content/browser/onionservices/onionlocationPreferences.js (content/onionlocationPreferences.js)
|
|
| 10 | 9 | skin/classic/browser/onionlocation.css (content/onionlocation.css) |
| ... | ... | @@ -14,8 +14,6 @@ |
| 14 | 14 | <html:h1 data-l10n-id="privacy-header"/>
|
| 15 | 15 | </hbox>
|
| 16 | 16 | |
| 17 | -#include ../onionservices/content/onionlocationPreferences.inc.xhtml
|
|
| 18 | - |
|
| 19 | 17 | <!-- Tracking / Content Blocking -->
|
| 20 | 18 | <groupbox id="trackingGroup" data-category="panePrivacy" hidden="true" aria-describedby="contentBlockingDescription" class="highlighting-group">
|
| 21 | 19 | <label id="contentBlockingHeader"><html:h2 data-l10n-id="content-blocking-enhanced-tracking-protection"/></label>
|
| ... | ... | @@ -75,12 +75,6 @@ XPCOMUtils.defineLazyScriptGetter( |
| 75 | 75 | "chrome://browser/content/securitylevel/securityLevel.js"
|
| 76 | 76 | );
|
| 77 | 77 | |
| 78 | -XPCOMUtils.defineLazyScriptGetter(
|
|
| 79 | - this,
|
|
| 80 | - ["OnionLocationPreferences"],
|
|
| 81 | - "chrome://browser/content/onionservices/onionlocationPreferences.js"
|
|
| 82 | -);
|
|
| 83 | - |
|
| 84 | 78 | XPCOMUtils.defineLazyPreferenceGetter(
|
| 85 | 79 | this,
|
| 86 | 80 | "OS_AUTH_ENABLED",
|
| ... | ... | @@ -167,9 +161,6 @@ Preferences.addAll([ |
| 167 | 161 | // Do not track
|
| 168 | 162 | { id: "privacy.donottrackheader.enabled", type: "bool" },
|
| 169 | 163 | |
| 170 | - // Onion Location
|
|
| 171 | - { id: "privacy.prioritizeonions.enabled", type: "bool" },
|
|
| 172 | - |
|
| 173 | 164 | // Media
|
| 174 | 165 | { id: "media.autoplay.default", type: "int" },
|
| 175 | 166 | |
| ... | ... | @@ -349,13 +340,6 @@ var gPrivacyPane = { |
| 349 | 340 | });
|
| 350 | 341 | },
|
| 351 | 342 | |
| 352 | - /**
|
|
| 353 | - * Show the OnionLocation preferences UI
|
|
| 354 | - */
|
|
| 355 | - _initOnionLocation() {
|
|
| 356 | - OnionLocationPreferences.init();
|
|
| 357 | - },
|
|
| 358 | - |
|
| 359 | 343 | /**
|
| 360 | 344 | * Whether the prompt to restart Firefox should appear when changing the autostart pref.
|
| 361 | 345 | */
|
| ... | ... | @@ -899,7 +883,6 @@ var gPrivacyPane = { |
| 899 | 883 | this._initTrackingProtectionExtensionControl();
|
| 900 | 884 | OnionServicesAuthPreferences.init();
|
| 901 | 885 | this._initSecurityLevel();
|
| 902 | - this._initOnionLocation();
|
|
| 903 | 886 | |
| 904 | 887 | Services.telemetry.setEventRecordingEnabled("pwmgr", true);
|
| 905 | 888 |
| ... | ... | @@ -6976,14 +6976,7 @@ void Document::SetHeaderData(nsAtom* aHeaderField, const nsAString& aData) { |
| 6976 | 6976 | nsCOMPtr<nsIURI> onionURI;
|
| 6977 | 6977 | if (NS_SUCCEEDED(NS_NewURI(getter_AddRefs(onionURI), aData)) &&
|
| 6978 | 6978 | IsValidOnionLocation(Document::GetDocumentURI(), onionURI)) {
|
| 6979 | - if (StaticPrefs::privacy_prioritizeonions_enabled()) {
|
|
| 6980 | - nsCOMPtr<nsIRefreshURI> refresher(mDocumentContainer);
|
|
| 6981 | - if (refresher) {
|
|
| 6982 | - refresher->RefreshURI(onionURI, NodePrincipal(), 0);
|
|
| 6983 | - }
|
|
| 6984 | - } else {
|
|
| 6985 | - mOnionLocationURI = onionURI;
|
|
| 6986 | - }
|
|
| 6979 | + mOnionLocationURI = onionURI;
|
|
| 6987 | 6980 | }
|
| 6988 | 6981 | }
|
| 6989 | 6982 | }
|
| ... | ... | @@ -801,7 +801,6 @@ package org.mozilla.geckoview { |
| 801 | 801 | method public boolean getLoginAutofillEnabled();
|
| 802 | 802 | method public boolean getPauseForDebuggerEnabled();
|
| 803 | 803 | method public int getPreferredColorScheme();
|
| 804 | - method public boolean getPrioritizeOnions();
|
|
| 805 | 804 | method public boolean getRemoteDebuggingEnabled();
|
| 806 | 805 | method @Nullable public GeckoRuntime getRuntime();
|
| 807 | 806 | method @Nullable public Rect getScreenSizeOverride();
|
| ... | ... | @@ -827,7 +826,6 @@ package org.mozilla.geckoview { |
| 827 | 826 | method public void setLocales(@Nullable String[]);
|
| 828 | 827 | method @NonNull public GeckoRuntimeSettings setLoginAutofillEnabled(boolean);
|
| 829 | 828 | method @NonNull public GeckoRuntimeSettings setPreferredColorScheme(int);
|
| 830 | - method @NonNull public GeckoRuntimeSettings setPrioritizeOnions(boolean);
|
|
| 831 | 829 | method @NonNull public GeckoRuntimeSettings setRemoteDebuggingEnabled(boolean);
|
| 832 | 830 | method @NonNull public GeckoRuntimeSettings setSpoofEnglish(boolean);
|
| 833 | 831 | method @NonNull public GeckoRuntimeSettings setTorSecurityLevel(int);
|
| ... | ... | @@ -867,7 +865,6 @@ package org.mozilla.geckoview { |
| 867 | 865 | method @NonNull public GeckoRuntimeSettings.Builder locales(@Nullable String[]);
|
| 868 | 866 | method @NonNull public GeckoRuntimeSettings.Builder loginAutofillEnabled(boolean);
|
| 869 | 867 | method @NonNull public GeckoRuntimeSettings.Builder pauseForDebugger(boolean);
|
| 870 | - method @NonNull public GeckoRuntimeSettings.Builder prioritizeOnions(boolean);
|
|
| 871 | 868 | method @NonNull public GeckoRuntimeSettings.Builder preferredColorScheme(int);
|
| 872 | 869 | method @NonNull public GeckoRuntimeSettings.Builder remoteDebuggingEnabled(boolean);
|
| 873 | 870 | method @NonNull public GeckoRuntimeSettings.Builder screenSizeOverride(int, int);
|
| ... | ... | @@ -477,17 +477,6 @@ public final class GeckoRuntimeSettings extends RuntimeSettings { |
| 477 | 477 | return this;
|
| 478 | 478 | }
|
| 479 | 479 | |
| 480 | - /**
|
|
| 481 | - * Sets whether the browser should prioritize .onion sites when available.
|
|
| 482 | - *
|
|
| 483 | - * @param flag True if we should prioritize .onion sites, false otherwise
|
|
| 484 | - * @return This Builder instance.
|
|
| 485 | - */
|
|
| 486 | - public @NonNull Builder prioritizeOnions(final boolean flag) {
|
|
| 487 | - getSettings().mPrioritizeOnions.set(flag);
|
|
| 488 | - return this;
|
|
| 489 | - }
|
|
| 490 | - |
|
| 491 | 480 | public @NonNull Builder useNewBootstrap(final boolean flag) {
|
| 492 | 481 | getSettings().mUseNewBootstrap.set(flag);
|
| 493 | 482 | return this;
|
| ... | ... | @@ -543,8 +532,6 @@ public final class GeckoRuntimeSettings extends RuntimeSettings { |
| 543 | 532 | /* package */ final Pref<Integer> mSpoofEnglish = new Pref<>("privacy.spoof_english", 0);
|
| 544 | 533 | /* package */ final Pref<Integer> mSecurityLevel =
|
| 545 | 534 | new Pref<>("browser.security_level.security_slider", 4);
|
| 546 | - /* package */ final Pref<Boolean> mPrioritizeOnions =
|
|
| 547 | - new Pref<>("privacy.prioritizeonions.enabled", false);
|
|
| 548 | 535 | /* package */ final Pref<Boolean> mUseNewBootstrap =
|
| 549 | 536 | new Pref<>("browser.tor_android.use_new_bootstrap", false);
|
| 550 | 537 | |
| ... | ... | @@ -1339,26 +1326,6 @@ public final class GeckoRuntimeSettings extends RuntimeSettings { |
| 1339 | 1326 | return this;
|
| 1340 | 1327 | }
|
| 1341 | 1328 | |
| 1342 | - /**
|
|
| 1343 | - * Gets whether we should prioritize .onion sites.
|
|
| 1344 | - *
|
|
| 1345 | - * @return Whether we should prioritize .onion sites.
|
|
| 1346 | - */
|
|
| 1347 | - public boolean getPrioritizeOnions() {
|
|
| 1348 | - return mPrioritizeOnions.get();
|
|
| 1349 | - }
|
|
| 1350 | - |
|
| 1351 | - /**
|
|
| 1352 | - * Sets whether we should prioritize .onion sites.
|
|
| 1353 | - *
|
|
| 1354 | - * @param flag Whether we should prioritize .onion sites.
|
|
| 1355 | - * @return This GeckoRuntimeSettings instance.
|
|
| 1356 | - */
|
|
| 1357 | - public @NonNull GeckoRuntimeSettings setPrioritizeOnions(final boolean flag) {
|
|
| 1358 | - mPrioritizeOnions.commit(flag);
|
|
| 1359 | - return this;
|
|
| 1360 | - }
|
|
| 1361 | - |
|
| 1362 | 1329 | public boolean getUseNewBootstrap() {
|
| 1363 | 1330 | return mUseNewBootstrap.get();
|
| 1364 | 1331 | }
|
| ... | ... | @@ -13578,11 +13578,6 @@ |
| 13578 | 13578 | value: ""
|
| 13579 | 13579 | mirror: never
|
| 13580 | 13580 | |
| 13581 | -- name: privacy.prioritizeonions.enabled
|
|
| 13582 | - type: RelaxedAtomicBool
|
|
| 13583 | - value: false
|
|
| 13584 | - mirror: always
|
|
| 13585 | - |
|
| 13586 | 13581 | #---------------------------------------------------------------------------
|
| 13587 | 13582 | # Prefs starting with "prompts."
|
| 13588 | 13583 | #---------------------------------------------------------------------------
|
| ... | ... | @@ -439,20 +439,15 @@ const Loader = { |
| 439 | 439 | */
|
| 440 | 440 | onionLocation() {
|
| 441 | 441 | const strings = {
|
| 442 | - alwaysPrioritize: "Always Prioritize Onionsites",
|
|
| 443 | - alwaysPrioritizeAccessKey: "a",
|
|
| 442 | + learnMore: "Learn more…",
|
|
| 443 | + loadOnion: "Visit the .onion",
|
|
| 444 | + loadOnionAccessKey: "V",
|
|
| 444 | 445 | notNow: "Not Now",
|
| 445 | 446 | notNowAccessKey: "n",
|
| 446 | 447 | description:
|
| 447 | - "Website publishers can protect users by adding a security layer. This prevents eavesdroppers from knowing that you are the one visiting that website.",
|
|
| 448 | - tryThis: "Try this: Onionsite",
|
|
| 449 | - onionAvailable: "Onionsite available",
|
|
| 450 | - learnMore: "Learn more",
|
|
| 451 | - always: "Always",
|
|
| 452 | - askEverytime: "Ask you every time",
|
|
| 453 | - prioritizeOnionsDescription:
|
|
| 454 | - "Prioritize onionsites when they are available.",
|
|
| 455 | - onionServicesTitle: "Onion Services",
|
|
| 448 | + "There's a more private and secure version of this site available over the Tor network via onion services. Onion services help website publishers and their visitors defeat surveillance and censorship.",
|
|
| 449 | + tryThis: "Try Onion Services",
|
|
| 450 | + onionAvailable: ".onion available",
|
|
| 456 | 451 | };
|
| 457 | 452 | |
| 458 | 453 | const tsb = new TorPropertyStringBundle(
|
| ... | ... | @@ -4,10 +4,10 @@ |
| 4 | 4 | # file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
| 5 | 5 | |
| 6 | 6 | # Onion-Location strings.
|
| 7 | -onionLocation.alwaysPrioritize=Always Prioritize Onions
|
|
| 8 | -# Localization note: this is the access key for "Always Prioritize Onions".
|
|
| 7 | +onionLocation.loadOnion=Visit the .onion
|
|
| 8 | +# Localization note: this is the access key for "Visit the .onion".
|
|
| 9 | 9 | # It should be a character that appears in that string.
|
| 10 | -onionLocation.alwaysPrioritizeAccessKey=a
|
|
| 10 | +onionLocation.loadOnionAccessKey=V
|
|
| 11 | 11 | onionLocation.notNow=Not Now
|
| 12 | 12 | # Localization note: this is the access key for "Not now".
|
| 13 | 13 | # It should be a character that appears in that string.
|
| ... | ... | @@ -16,7 +16,3 @@ onionLocation.description=There's a more private and secure version of this site |
| 16 | 16 | onionLocation.tryThis=Try Onion Services
|
| 17 | 17 | onionLocation.onionAvailable=.onion available
|
| 18 | 18 | onionLocation.learnMore=Learn more… |
| 19 | -onionLocation.always=Always
|
|
| 20 | -onionLocation.askEverytime=Ask every time
|
|
| 21 | -onionLocation.prioritizeOnionsDescription=Prioritize .onion sites when known.
|
|
| 22 | -onionLocation.onionServicesTitle=Onion Services |