Pier Angelo Vendrame pushed to branch tor-browser-115.3.0esr-13.0-1 at The Tor Project / Applications / Tor Browser
Commits:
-
158d784f
by Henry Wilkes at 2023-10-02T15:09:09+01:00
-
76c3008e
by Henry Wilkes at 2023-10-03T17:05:40+01:00
5 changed files:
- browser/components/abouttor/AboutTorParent.sys.mjs
- browser/components/abouttor/content/aboutTor.css
- browser/components/abouttor/content/aboutTor.html
- browser/components/abouttor/content/aboutTor.js
- browser/locales/en-US/browser/tor-browser.ftl
Changes:
... | ... | @@ -4,6 +4,7 @@ const lazy = {}; |
4 | 4 | |
5 | 5 | ChromeUtils.defineESModuleGetters(lazy, {
|
6 | 6 | AboutTorMessage: "resource:///modules/AboutTorMessage.sys.mjs",
|
7 | + TorConnect: "resource:///modules/TorConnect.sys.mjs",
|
|
7 | 8 | });
|
8 | 9 | |
9 | 10 | export class AboutTorParent extends JSWindowActorParent {
|
... | ... | @@ -12,6 +13,7 @@ export class AboutTorParent extends JSWindowActorParent { |
12 | 13 | switch (message.name) {
|
13 | 14 | case "AboutTor:GetInitialData":
|
14 | 15 | return Promise.resolve({
|
16 | + torConnectEnabled: lazy.TorConnect.enabled,
|
|
15 | 17 | messageData: lazy.AboutTorMessage.getNext(),
|
16 | 18 | isStable: AppConstants.MOZ_UPDATE_CHANNEL === "release",
|
17 | 19 | searchOnionize: Services.prefs.getBoolPref(onionizePref, false),
|
... | ... | @@ -4,10 +4,12 @@ body { |
4 | 4 | margin: 0;
|
5 | 5 | min-height: 100vh;
|
6 | 6 | display: grid;
|
7 | + --form-max-width: 600px;
|
|
7 | 8 | grid-template:
|
8 | 9 | /* Start space: unfilled. */
|
9 | 10 | ". . ." 1fr
|
10 | 11 | "heading heading heading" auto
|
12 | + "tor-check tor-check tor-check" auto
|
|
11 | 13 | ". form ." min-content
|
12 | 14 | "message message message" auto
|
13 | 15 | /* End space: unfilled.
|
... | ... | @@ -16,8 +18,8 @@ body { |
16 | 18 | * not shrink to zero, but will instead shrink to a minimum size of
|
17 | 19 | * 75px = (150px * 1fr / 2fr) */
|
18 | 20 | ". . ." minmax(150px, 2fr)
|
19 | - /* NOTE: "form" will be given a maximum width of 600px. */
|
|
20 | - / 1fr minmax(max-content, 600px) 1fr;
|
|
21 | + /* NOTE: "form" will be given a maximum width of --form-max-width. */
|
|
22 | + / 1fr minmax(max-content, var(--form-max-width)) 1fr;
|
|
21 | 23 | justify-items: center;
|
22 | 24 | padding-inline: 20px;
|
23 | 25 | background:
|
... | ... | @@ -44,6 +46,32 @@ h1 { |
44 | 46 | flex: 0 0 auto;
|
45 | 47 | }
|
46 | 48 | |
49 | +#tor-check {
|
|
50 | + grid-area: tor-check;
|
|
51 | + max-width: var(--form-max-width);
|
|
52 | + box-sizing: border-box;
|
|
53 | + display: flex;
|
|
54 | + gap: 10px;
|
|
55 | + align-items: center;
|
|
56 | + padding-inline: 24px;
|
|
57 | + padding-block: 12px;
|
|
58 | + border-radius: 8px;
|
|
59 | + margin-block-start: 0;
|
|
60 | + margin-block-end: 30px;
|
|
61 | +}
|
|
62 | + |
|
63 | +body:not(.show-tor-check) #tor-check {
|
|
64 | + display: none;
|
|
65 | +}
|
|
66 | + |
|
67 | +#tor-check-icon {
|
|
68 | + flex: 0 0 auto;
|
|
69 | + width: 16px;
|
|
70 | + height: 16px;
|
|
71 | + -moz-context-properties: fill;
|
|
72 | + fill: currentColor;
|
|
73 | +}
|
|
74 | + |
|
47 | 75 | .home-message:not(.shown-message) {
|
48 | 76 | display: none;
|
49 | 77 | }
|
... | ... | @@ -64,7 +92,10 @@ h1 { |
64 | 92 | margin-inline-end: 0.3em;
|
65 | 93 | }
|
66 | 94 | |
67 | -.home-message a {
|
|
95 | +:is(
|
|
96 | + .home-message,
|
|
97 | + #tor-check,
|
|
98 | +) a {
|
|
68 | 99 | /* Increase gap between the link and the rest of the text. */
|
69 | 100 | margin-inline: 0.4em;
|
70 | 101 | }
|
... | ... | @@ -136,7 +167,11 @@ h1 { |
136 | 167 | |
137 | 168 | @media (prefers-contrast) {
|
138 | 169 | #search-form {
|
139 | - border-color: -moz-DialogText;
|
|
170 | + border-color: var(--in-content-box-border-color);
|
|
171 | + }
|
|
172 | + |
|
173 | + #tor-check {
|
|
174 | + background-color: var(--in-content-box-info-background);
|
|
140 | 175 | }
|
141 | 176 | }
|
142 | 177 | |
... | ... | @@ -150,6 +185,10 @@ h1 { |
150 | 185 | --in-content-focus-outline: var(--focus-outline);
|
151 | 186 | }
|
152 | 187 | |
188 | + #tor-check {
|
|
189 | + background-color: #1f0333;
|
|
190 | + }
|
|
191 | + |
|
153 | 192 | body > :not(#search-form) {
|
154 | 193 | /* Same as --in-content-page-color when "prefers-color-scheme: dark" */
|
155 | 194 | --in-content-page-color: #fbfbfe;
|
... | ... | @@ -70,6 +70,20 @@ |
70 | 70 | />
|
71 | 71 | <span id="tor-browser-home-heading-text"></span>
|
72 | 72 | </h1>
|
73 | + <p id="tor-check">
|
|
74 | + <img
|
|
75 | + id="tor-check-icon"
|
|
76 | + alt=""
|
|
77 | + src="chrome://global/skin/icons/info.svg"
|
|
78 | + />
|
|
79 | + <span data-l10n-id="tor-browser-home-tor-check-warning">
|
|
80 | + <a
|
|
81 | + data-l10n-name="tor-check-link"
|
|
82 | + href="https://check.torproject.org/"
|
|
83 | + target="_blank"
|
|
84 | + ></a>
|
|
85 | + </span>
|
|
86 | + </p>
|
|
73 | 87 | <form id="search-form" method="get" rel="noreferrer">
|
74 | 88 | <img
|
75 | 89 | id="dax-logo"
|
... | ... | @@ -97,6 +97,7 @@ const MessageArea = { |
97 | 97 | _initialized: false,
|
98 | 98 | _messageData: null,
|
99 | 99 | _isStable: null,
|
100 | + _torConnectEnabled: null,
|
|
100 | 101 | |
101 | 102 | /**
|
102 | 103 | * Initialize the message area and heading once elements are available.
|
... | ... | @@ -112,10 +113,13 @@ const MessageArea = { |
112 | 113 | * @param {MessageData} messageData - The message data, indicating which
|
113 | 114 | * message to show.
|
114 | 115 | * @param {boolean} isStable - Whether this is the stable release version.
|
116 | + * @param {boolean} torConnectEnabled - Whether TorConnect is enabled, and
|
|
117 | + * therefore the Tor process was configured with about:torconnect.
|
|
115 | 118 | */
|
116 | - setMessageData(messageData, isStable) {
|
|
119 | + setMessageData(messageData, isStable, torConnectEnabled) {
|
|
117 | 120 | this._messageData = messageData;
|
118 | 121 | this._isStable = isStable;
|
122 | + this._torConnectEnabled = torConnectEnabled;
|
|
119 | 123 | this._update();
|
120 | 124 | },
|
121 | 125 | |
... | ... | @@ -140,6 +144,8 @@ const MessageArea = { |
140 | 144 | : "tor-browser-home-heading-testing"
|
141 | 145 | );
|
142 | 146 | |
147 | + document.body.classList.toggle("show-tor-check", !this._torConnectEnabled);
|
|
148 | + |
|
143 | 149 | const { updateVersion, updateURL, number } = this._messageData;
|
144 | 150 | |
145 | 151 | if (updateVersion) {
|
... | ... | @@ -170,9 +176,10 @@ window.addEventListener("DOMContentLoaded", () => { |
170 | 176 | });
|
171 | 177 | |
172 | 178 | window.addEventListener("InitialData", event => {
|
173 | - const { isStable, searchOnionize, messageData } = event.detail;
|
|
179 | + const { torConnectEnabled, isStable, searchOnionize, messageData } =
|
|
180 | + event.detail;
|
|
174 | 181 | SearchWidget.setOnionizeState(!!searchOnionize);
|
175 | - MessageArea.setMessageData(messageData, !!isStable);
|
|
182 | + MessageArea.setMessageData(messageData, !!isStable, !!torConnectEnabled);
|
|
176 | 183 | });
|
177 | 184 | |
178 | 185 | // YEC 2023 (year end campaign).
|
... | ... | @@ -14,6 +14,11 @@ appmenu-open-tor-manual = |
14 | 14 | tor-browser-home-heading-stable = Explore. Privately.
|
15 | 15 | tor-browser-home-heading-testing = Test. Thoroughly.
|
16 | 16 | |
17 | +# Only shown when underlying Tor process was not started by Tor Browser.
|
|
18 | +# "Tails" refers to the operating system, and should be translated as a brand name.
|
|
19 | +# <a data-l10n-name="tor-check-link"> should contain the link text and close with </a>.
|
|
20 | +tor-browser-home-tor-check-warning = Your connection to Tor is not being managed by Tor Browser. Some operating systems (like Tails) will manage this for you, or you could have set up a custom configuration. <a data-l10n-name="tor-check-link">Test your connection</a>
|
|
21 | + |
|
17 | 22 | tor-browser-home-duck-duck-go-input =
|
18 | 23 | .placeholder = Search with DuckDuckGo
|
19 | 24 | # Toggle to switch from DuckDuckGo's plain ".com" domain to its ".onion" domain.
|