Commits:
-
36994e53
by Henry Wilkes at 2026-04-29T10:54:52+01:00
fixup! TB 7494: Create local home page for TBB.
TB 44746: Modify YEC banner to be used for summer 2026 funding campaign.
-
502048e6
by Henry Wilkes at 2026-04-29T10:55:43+01:00
TB 44746: Assets for summer 2026 funding campaign.
7 changed files:
Changes:
browser/components/abouttor/AboutTorParent.sys.mjs
| ... |
... |
@@ -23,6 +23,44 @@ export class AboutTorParent extends JSWindowActorParent { |
|
23
|
23
|
*/
|
|
24
|
24
|
static #dismissYEC = false;
|
|
25
|
25
|
|
|
|
26
|
+ /**
|
|
|
27
|
+ * A shuffled array of tool numbers. `null` whilst unset.
|
|
|
28
|
+ *
|
|
|
29
|
+ * @type {?number[]}
|
|
|
30
|
+ */
|
|
|
31
|
+ static #toolNums = null;
|
|
|
32
|
+ /**
|
|
|
33
|
+ * The current index in `#toolNums`.
|
|
|
34
|
+ *
|
|
|
35
|
+ * @type {number}
|
|
|
36
|
+ */
|
|
|
37
|
+ static #toolIndex = 0;
|
|
|
38
|
+
|
|
|
39
|
+ /**
|
|
|
40
|
+ * Return the pair of tools numbers to show in the next about:tor window.
|
|
|
41
|
+ *
|
|
|
42
|
+ * @returns {{ toolNum1: number, toolNum2: number }} - The tool number pairs.
|
|
|
43
|
+ */
|
|
|
44
|
+ static #getToolNumPair() {
|
|
|
45
|
+ const numTools = 11;
|
|
|
46
|
+ if (!this.#toolNums) {
|
|
|
47
|
+ this.#toolNums = Array.from({ length: numTools }, (_, index) => index);
|
|
|
48
|
+ // Shuffle the array with Fisher–Yates.
|
|
|
49
|
+ for (let index = numTools - 1; index > 0; index--) {
|
|
|
50
|
+ const topBound = index + 1;
|
|
|
51
|
+ const exchange = Math.floor(Math.random() * topBound) % topBound;
|
|
|
52
|
+ const tmpNum = this.#toolNums[index];
|
|
|
53
|
+ this.#toolNums[index] = this.#toolNums[exchange];
|
|
|
54
|
+ this.#toolNums[exchange] = tmpNum;
|
|
|
55
|
+ }
|
|
|
56
|
+ }
|
|
|
57
|
+ const toolNum1 = this.#toolNums[this.#toolIndex % numTools];
|
|
|
58
|
+ const toolNum2 = this.#toolNums[(this.#toolIndex + 1) % numTools];
|
|
|
59
|
+ this.#toolIndex = (this.#toolIndex + 2) % numTools;
|
|
|
60
|
+
|
|
|
61
|
+ return { toolNum1, toolNum2 };
|
|
|
62
|
+ }
|
|
|
63
|
+
|
|
26
|
64
|
/**
|
|
27
|
65
|
* Whether this instance has a preloaded browser.
|
|
28
|
66
|
*
|
| ... |
... |
@@ -58,6 +96,8 @@ export class AboutTorParent extends JSWindowActorParent { |
|
58
|
96
|
appLocale = "ja";
|
|
59
|
97
|
}
|
|
60
|
98
|
|
|
|
99
|
+ const { toolNum1, toolNum2 } = AboutTorParent.#getToolNumPair();
|
|
|
100
|
+
|
|
61
|
101
|
return {
|
|
62
|
102
|
torConnectEnabled: lazy.TorConnect.enabled,
|
|
63
|
103
|
messageData: lazy.AboutTorMessage.getNext(),
|
| ... |
... |
@@ -69,6 +109,8 @@ export class AboutTorParent extends JSWindowActorParent { |
|
69
|
109
|
),
|
|
70
|
110
|
appLocale,
|
|
71
|
111
|
dismissYEC: AboutTorParent.#dismissYEC,
|
|
|
112
|
+ toolNum1,
|
|
|
113
|
+ toolNum2,
|
|
72
|
114
|
};
|
|
73
|
115
|
}
|
|
74
|
116
|
|
browser/components/abouttor/content/aboutTor.css
| ... |
... |
@@ -350,12 +350,11 @@ body.show-yec h1 { |
|
350
|
350
|
"yec-matching yec-image" auto
|
|
351
|
351
|
"yec-donate yec-image" min-content
|
|
352
|
352
|
/ 1fr min-content;
|
|
353
|
|
- --yec-image-background: #1f0333;
|
|
354
|
|
- /* Remove 1px from padding for border. */
|
|
355
|
|
- padding-block: 55px 55px;
|
|
356
|
|
- padding-inline: 47px 47px;
|
|
|
353
|
+ --yec-image-background: #3a1653;
|
|
|
354
|
+ padding-block: 56px 56px;
|
|
|
355
|
+ padding-inline: 48px 48px;
|
|
357
|
356
|
box-sizing: border-box;
|
|
358
|
|
- max-width: 850px;
|
|
|
357
|
+ max-width: 840px;
|
|
359
|
358
|
margin-block-end: 40px;
|
|
360
|
359
|
/* Position for the close button. */
|
|
361
|
360
|
position: relative;
|
| ... |
... |
@@ -389,8 +388,8 @@ body.show-yec h1 { |
|
389
|
388
|
#yec-heading {
|
|
390
|
389
|
grid-area: yec-heading;
|
|
391
|
390
|
margin-block: 0 16px;
|
|
392
|
|
- font-size: 64px;
|
|
393
|
|
- font-weight: 400;
|
|
|
391
|
+ font-size: var(--font-size-xxlarge);
|
|
|
392
|
+ font-weight: 600;
|
|
394
|
393
|
}
|
|
395
|
394
|
|
|
396
|
395
|
#yec-body {
|
| ... |
... |
@@ -398,13 +397,13 @@ body.show-yec h1 { |
|
398
|
397
|
margin-block: 0 12px;
|
|
399
|
398
|
}
|
|
400
|
399
|
|
|
401
|
|
-#yec-body-highlight {
|
|
402
|
|
- font-weight: 600;
|
|
403
|
|
-}
|
|
404
|
|
-
|
|
405
|
400
|
#yec-matching {
|
|
406
|
401
|
grid-area: yec-matching;
|
|
407
|
|
- margin-block: 0 32px;
|
|
|
402
|
+ margin-block: 0 24px;
|
|
|
403
|
+}
|
|
|
404
|
+
|
|
|
405
|
+#yec-banner b {
|
|
|
406
|
+ font-weight: 600;
|
|
408
|
407
|
}
|
|
409
|
408
|
|
|
410
|
409
|
#yec-donate-link {
|
| ... |
... |
@@ -481,7 +480,7 @@ body.show-yec h1 { |
|
481
|
480
|
}
|
|
482
|
481
|
|
|
483
|
482
|
#yec-heading {
|
|
484
|
|
- font-size: 3.5rem;
|
|
|
483
|
+ font-size: var(--font-size-xlarge);
|
|
485
|
484
|
}
|
|
486
|
485
|
|
|
487
|
486
|
#yec-matching {
|
| ... |
... |
@@ -502,20 +501,16 @@ body.show-yec h1 { |
|
502
|
501
|
|
|
503
|
502
|
@media not ((prefers-contrast) or (forced-colors)) {
|
|
504
|
503
|
#yec-banner {
|
|
505
|
|
- border-color: transparent;
|
|
|
504
|
+ border-color: #523168;
|
|
506
|
505
|
background-color: var(--yec-image-background);
|
|
507
|
506
|
--yec-text: #ffffff;
|
|
508
|
|
- --yec-button-background: #b6e368;
|
|
509
|
|
- --yec-button-background-hover: #d2f2a1;
|
|
510
|
|
- --yec-button-background-active: #ecfcd8;
|
|
511
|
|
- --yec-button-text: #15141A;
|
|
|
507
|
+ --yec-button-background: var(--tor-button-background-color-light);
|
|
|
508
|
+ --yec-button-background-hover: var(--tor-button-background-color-hover-light);
|
|
|
509
|
+ --yec-button-background-active: var(--tor-button-background-color-active-light);
|
|
|
510
|
+ --yec-button-text: var(--tor-button-text-color-light);
|
|
512
|
511
|
color: var(--yec-text);
|
|
513
|
512
|
}
|
|
514
|
513
|
|
|
515
|
|
- #yec-body-highlight {
|
|
516
|
|
- color: var(--yec-button-background);
|
|
517
|
|
- }
|
|
518
|
|
-
|
|
519
|
514
|
#yec-donate-link {
|
|
520
|
515
|
--in-content-button-text-color: var(--yec-button-text);
|
|
521
|
516
|
--in-content-button-text-color-hover: var(--yec-button-text);
|
browser/components/abouttor/content/aboutTor.html
| ... |
... |
@@ -35,13 +35,15 @@ |
|
35
|
35
|
<body class="onion-pattern-background">
|
|
36
|
36
|
<!-- Year End Campaign (YEC). -->
|
|
37
|
37
|
<article id="yec-banner" aria-labelledby="yec-heading">
|
|
38
|
|
- <img id="yec-image" alt="" />
|
|
39
|
|
- <h2 id="yec-heading"></h2>
|
|
40
|
|
- <p id="yec-body">
|
|
41
|
|
- <b id="yec-body-highlight" data-l10n-name="highlight"></b>
|
|
42
|
|
- </p>
|
|
43
|
|
- <p id="yec-matching"></p>
|
|
44
|
|
- <a id="yec-donate-link">
|
|
|
38
|
+ <img
|
|
|
39
|
+ id="yec-image"
|
|
|
40
|
+ alt=""
|
|
|
41
|
+ src="">"chrome://browser/content/abouttor/yec2025-image.svg"
|
|
|
42
|
+ />
|
|
|
43
|
+ <h2 id="yec-heading" data-l10n-id="summer-2026-funding-heading"></h2>
|
|
|
44
|
+ <p id="yec-body"></p>
|
|
|
45
|
+ <p id="yec-matching" data-l10n-id="summer-2026-funding-outro"></p>
|
|
|
46
|
+ <a id="yec-donate-link" target="_blank">
|
|
45
|
47
|
<span data-l10n-id="yec-donate-button"></span>
|
|
46
|
48
|
<img
|
|
47
|
49
|
id="yec-donate-icon"
|
browser/components/abouttor/content/aboutTor.js
| ... |
... |
@@ -431,14 +431,14 @@ const YecArea = { |
|
431
|
431
|
*
|
|
432
|
432
|
* @type {?integer}
|
|
433
|
433
|
*/
|
|
434
|
|
- _startDate: null, // No YEC is active.
|
|
|
434
|
+ _startDate: Date.UTC(2026, 4, 19, 15), // 19th May 2026, 15 UTC.
|
|
435
|
435
|
|
|
436
|
436
|
/**
|
|
437
|
437
|
* The epoch time to stop showing the banner, if at all.
|
|
438
|
438
|
*
|
|
439
|
439
|
* @type {?integer}
|
|
440
|
440
|
*/
|
|
441
|
|
- _endDate: null, // No YEC is active.
|
|
|
441
|
+ _endDate: Date.UTC(2026, 5, 19, 0), // 19th June 2026, 0 UTC.
|
|
442
|
442
|
|
|
443
|
443
|
/**
|
|
444
|
444
|
* Whether the area has been initialised.
|
| ... |
... |
@@ -461,6 +461,72 @@ const YecArea = { |
|
461
|
461
|
*/
|
|
462
|
462
|
_shouldShow: false,
|
|
463
|
463
|
|
|
|
464
|
+ /**
|
|
|
465
|
+ * The tool number to show first, or `null` whilst unset.
|
|
|
466
|
+ *
|
|
|
467
|
+ * @type {?number}
|
|
|
468
|
+ */
|
|
|
469
|
+ _toolNum1: null,
|
|
|
470
|
+
|
|
|
471
|
+ /**
|
|
|
472
|
+ * The tool number to show second, or `null` whilst unset.
|
|
|
473
|
+ *
|
|
|
474
|
+ * @type {?number}
|
|
|
475
|
+ */
|
|
|
476
|
+ _toolNum2: null,
|
|
|
477
|
+
|
|
|
478
|
+ /**
|
|
|
479
|
+ * The name and description data for each tool.
|
|
|
480
|
+ *
|
|
|
481
|
+ * @type {object[]}
|
|
|
482
|
+ */
|
|
|
483
|
+ _toolData: [
|
|
|
484
|
+ {
|
|
|
485
|
+ name: "Onion Browser",
|
|
|
486
|
+ descId: "summer-2026-funding-tool-onion-browser-description",
|
|
|
487
|
+ },
|
|
|
488
|
+ {
|
|
|
489
|
+ name: "Quiet",
|
|
|
490
|
+ descId: "summer-2026-funding-tool-quiet-description",
|
|
|
491
|
+ },
|
|
|
492
|
+ {
|
|
|
493
|
+ name: "Ricochet Refresh",
|
|
|
494
|
+ descId: "summer-2026-funding-tool-ricochet-refresh-description",
|
|
|
495
|
+ },
|
|
|
496
|
+ {
|
|
|
497
|
+ name: "SecureDrop",
|
|
|
498
|
+ descId: "summer-2026-funding-tool-securedrop-description",
|
|
|
499
|
+ },
|
|
|
500
|
+ {
|
|
|
501
|
+ name: "OnionShare",
|
|
|
502
|
+ descId: "summer-2026-funding-tool-onionshare-description",
|
|
|
503
|
+ },
|
|
|
504
|
+ {
|
|
|
505
|
+ name: "Digital Security Helpdesk",
|
|
|
506
|
+ descId: "summer-2026-funding-tool-digital-security-helpdesk-description",
|
|
|
507
|
+ },
|
|
|
508
|
+ {
|
|
|
509
|
+ name: "Paskoocheh",
|
|
|
510
|
+ descId: "summer-2026-funding-tool-paskoocheh-description",
|
|
|
511
|
+ },
|
|
|
512
|
+ {
|
|
|
513
|
+ name: "Unredacted",
|
|
|
514
|
+ descId: "summer-2026-funding-tool-unredacted-description",
|
|
|
515
|
+ },
|
|
|
516
|
+ {
|
|
|
517
|
+ name: "Osservatorio Nessuno",
|
|
|
518
|
+ descId: "summer-2026-funding-tool-osservatorio-nessuno-description",
|
|
|
519
|
+ },
|
|
|
520
|
+ {
|
|
|
521
|
+ name: "Save",
|
|
|
522
|
+ descId: "summer-2026-funding-tool-save-description",
|
|
|
523
|
+ },
|
|
|
524
|
+ {
|
|
|
525
|
+ name: "OONI",
|
|
|
526
|
+ descId: "summer-2026-funding-tool-ooni-description",
|
|
|
527
|
+ },
|
|
|
528
|
+ ],
|
|
|
529
|
+
|
|
464
|
530
|
/**
|
|
465
|
531
|
* The banner element.
|
|
466
|
532
|
*
|
| ... |
... |
@@ -498,8 +564,10 @@ const YecArea = { |
|
498
|
564
|
* @param {boolean} dismissYEC - Whether the user has dismissed YEC.
|
|
499
|
565
|
* @param {boolean} isStable - Whether this is a stable release.
|
|
500
|
566
|
* @param {string} appLocale - The app locale, as BCP47.
|
|
|
567
|
+ * @param {number} toolNum1 - The number for the first tool to show.
|
|
|
568
|
+ * @param {number} toolNum2 - The number for the first tool to show.
|
|
501
|
569
|
*/
|
|
502
|
|
- potentiallyShow(dismissYEC, isStable, appLocale) {
|
|
|
570
|
+ potentiallyShow(dismissYEC, isStable, appLocale, toolNum1, toolNum2) {
|
|
503
|
571
|
const now = Date.now();
|
|
504
|
572
|
this._shouldShow =
|
|
505
|
573
|
!dismissYEC &&
|
| ... |
... |
@@ -508,13 +576,15 @@ const YecArea = { |
|
508
|
576
|
now >= this._startDate &&
|
|
509
|
577
|
now < this._endDate;
|
|
510
|
578
|
this._locale = appLocale;
|
|
|
579
|
+ this._toolNum1 = toolNum1;
|
|
|
580
|
+ this._toolNum2 = toolNum2;
|
|
511
|
581
|
this._update();
|
|
512
|
582
|
},
|
|
513
|
583
|
|
|
514
|
584
|
/**
|
|
515
|
585
|
* Update the visibility of the banner to reflect the new state.
|
|
516
|
586
|
*/
|
|
517
|
|
- _update() {
|
|
|
587
|
+ async _update() {
|
|
518
|
588
|
if (!this._initialized) {
|
|
519
|
589
|
return;
|
|
520
|
590
|
}
|
| ... |
... |
@@ -526,8 +596,27 @@ const YecArea = { |
|
526
|
596
|
return;
|
|
527
|
597
|
}
|
|
528
|
598
|
|
|
|
599
|
+ const tool1 = this._toolData[this._toolNum1];
|
|
|
600
|
+ const tool2 = this._toolData[this._toolNum2];
|
|
|
601
|
+
|
|
|
602
|
+ const [tool1Desc, tool2Desc] = await document.l10n.formatValues([
|
|
|
603
|
+ { id: tool1.descId },
|
|
|
604
|
+ { id: tool2.descId },
|
|
|
605
|
+ ]);
|
|
|
606
|
+
|
|
|
607
|
+ document.l10n.setAttributes(
|
|
|
608
|
+ document.getElementById("yec-body"),
|
|
|
609
|
+ "summer-2026-funding-intro",
|
|
|
610
|
+ {
|
|
|
611
|
+ "tool1-name": tool1.name,
|
|
|
612
|
+ "tool1-description": tool1Desc,
|
|
|
613
|
+ "tool2-name": tool2.name,
|
|
|
614
|
+ "tool2-description": tool2Desc,
|
|
|
615
|
+ }
|
|
|
616
|
+ );
|
|
|
617
|
+
|
|
529
|
618
|
const donateLink = document.getElementById("yec-donate-link");
|
|
530
|
|
- const base = "https://www.torproject.org/donate";
|
|
|
619
|
+ const base = "https://internetfreedom.torproject.org";
|
|
531
|
620
|
donateLink.href = base;
|
|
532
|
621
|
|
|
533
|
622
|
document.body.classList.add("show-yec");
|
| ... |
... |
@@ -574,11 +663,13 @@ window.addEventListener("InitialData", event => { |
|
574
|
663
|
surveyDismissVersion,
|
|
575
|
664
|
appLocale,
|
|
576
|
665
|
dismissYEC,
|
|
|
666
|
+ toolNum1,
|
|
|
667
|
+ toolNum2,
|
|
577
|
668
|
} = event.detail;
|
|
578
|
669
|
SearchWidget.setOnionizeState(!!searchOnionize);
|
|
579
|
670
|
MessageArea.setMessageData(messageData, !!isStable, !!torConnectEnabled);
|
|
580
|
671
|
SurveyArea.potentiallyShow(surveyDismissVersion, isStable, appLocale);
|
|
581
|
|
- YecArea.potentiallyShow(dismissYEC, isStable, appLocale);
|
|
|
672
|
+ YecArea.potentiallyShow(dismissYEC, isStable, appLocale, toolNum1, toolNum2);
|
|
582
|
673
|
|
|
583
|
674
|
gInitialData = true;
|
|
584
|
675
|
maybeComplete();
|
browser/components/abouttor/content/yec2025-image.svg
|
|
1
|
+<svg width="495" height="381" viewBox="0 0 495 381" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
|
2
|
+ <path d="M247.419 264.776C201.679 273.69 174.117 246.935 166.057 232.441L105.262 261.112L170.602 258.902L131.868 327.126L195.407 280.785L189.197 362.111L227.832 285.742L262.535 343.489L247.432 264.776H247.419Z" fill="#B6E368"/>
|
|
|
3
|
+ <path d="M223.938 98.8502C269.555 89.3133 297.484 115.702 305.741 130.086L366.144 100.584L300.841 103.686L338.631 34.949L275.741 82.1453L280.837 0.733295L243.255 77.6271L207.756 20.3445L223.938 98.8502Z" fill="#B6E368"/>
|
|
|
4
|
+ <g opacity="0.8">
|
|
|
5
|
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M256.349 131.796H260.465V136.119H256.141V132.016H247.921V136.119H252.025V140.222H256.141V148.648H260.465V157.293H256.141V148.867H251.817V140.442H247.701V136.119H243.597V132.016H239.273V165.499H260.477V157.293H264.801V165.499H277.137V169.822H285.577V174.145H276.928V169.822H264.814V207.408H277.149V203.305H285.797V207.408H289.913V211.731H285.797V216.053H281.681V220.376H277.357V224.479H273.033V228.582H269.138V232.905H264.814V228.582H268.709V224.259H273.033V220.156H277.357V216.053H281.473V211.731H285.589V207.628H277.149V211.731H264.814V220.364H260.489V228.79H256.165V232.893H264.814V237.215H251.829V228.582H256.153V220.156H260.477V211.731H239.273V237.215H251.817V241.099H222.393V237.215H209.629V232.893H205.525V228.57H201.409V224.467H197.085V220.364H192.981V216.041H197.306V220.144H201.409V224.247H205.733V228.57H209.849V232.893H218.289V228.79H213.965V220.364H209.849V211.731H197.085V207.628H188.645V211.731H184.321V207.408H180.217V169.822H184.541V207.408H188.657V203.305H197.306V207.408H209.849V169.822H197.306V174.145H188.657V169.822H184.541V161.188H188.657V152.763H192.981V148.66H197.306V144.557H201.409V140.454H205.525V136.131H214.173V140.454H205.733V144.777H201.618V148.88H197.293V152.983H192.969V161.408H188.853V169.834H197.073V165.511H209.837V157.305H214.161V165.511H234.924V132.028H231.029V136.131H226.705V132.028H218.485V136.131H214.161V131.808H218.277V127.705H256.349V131.808V131.796ZM214.161 220.132H218.277V228.558H222.601V237.191H234.937V211.706H214.173V220.132H214.161ZM239.261 207.396H260.465V169.81H239.261V207.396ZM214.161 207.396H234.924V169.81H214.161V207.396Z" fill="#C272FF"/>
|
|
|
6
|
+ <path d="M192.968 216.029H188.644V211.706H192.968V216.029Z" fill="#C272FF"/>
|
|
|
7
|
+ <path d="M294.212 207.395H289.888V169.809H294.212V207.395Z" fill="#C272FF"/>
|
|
|
8
|
+ <path d="M269.113 140.429H273.008V144.532H277.332V148.635H281.448V152.738H285.772V161.164H289.888V169.797H285.564V161.371H281.448V152.946H277.124V148.843H273.008V144.74H268.684V140.417H260.465V136.094H269.113V140.417V140.429Z" fill="#C272FF"/>
|
|
|
9
|
+ <path d="M226.718 140.429H222.602V148.855H218.486V157.281H214.162V148.635H218.278V140.209H222.394V136.106H226.718V140.429Z" fill="#C272FF"/>
|
|
|
10
|
+ <path d="M260.464 136.119V131.796H256.348V127.693H218.276V131.796H214.16V136.119M260.464 136.119H256.14V132.016H247.92V136.119H252.024V140.222H256.14V148.648H260.464V157.293M260.464 136.119V140.442H268.683V144.764H273.008V148.867H277.123V152.97H281.448V161.396H285.564V169.822M260.464 136.119H269.112V140.442H273.008V144.545H277.332V148.648H281.448V152.75H285.772V161.176H289.888V169.81M214.16 136.119H205.512V140.442H201.396V144.545H197.292V148.648H192.968V152.75H188.644V161.176H184.528V169.81M214.16 136.119V140.442H205.72V144.764H201.604V148.867H197.28V152.97H192.956V161.396H188.84V169.822H197.06V165.499H209.824V157.293H214.148M214.16 136.119H218.484V132.016H226.704V136.119M289.888 169.81H294.212V207.396H289.888M289.888 169.81V207.396M260.464 157.281H256.14V148.855H251.816V140.429H247.7V136.107H243.596V132.004H239.272V165.487H260.476V157.281H260.464ZM260.464 157.281H264.788V165.487H277.123V169.81H285.564M289.888 207.396H285.772V203.293H277.123V207.396H264.788V169.81H276.903V174.132H285.551V169.81H289.875M289.888 207.396V211.718H285.772V216.041H281.656V220.364H277.332V224.467H273.008V228.57H269.112V232.892H264.788M264.788 232.88V228.558H268.683V224.235H273.008V220.132H277.332V216.029H281.448V211.706H285.564V207.603H277.123V211.706H264.788V220.339H260.464V228.765H256.14V232.868H264.788V232.88ZM264.788 232.88V237.203H251.803M251.803 237.191V228.558H256.128V220.132H260.452V211.706H239.248V237.191H251.791H251.803ZM251.803 237.191V241.074H222.38V237.191H209.616V232.868H205.512V228.545H201.396V224.442H197.072V220.339H192.968V216.017M192.968 216.029H197.292V220.132H201.396V224.235H205.72V228.558H209.836V232.88H218.276V228.777H213.952V220.352H209.836V211.718H197.072V207.615H188.632V211.718M192.968 216.029H188.644V211.706H192.968V216.029ZM188.632 211.706H184.308V207.383H180.204V169.797H184.528M184.528 169.81V207.396H188.644V203.293H197.292V207.396H209.836V169.81H197.292V174.132H188.644V169.81H184.528ZM214.16 157.281V165.487H234.923V132.004H231.028V136.107H226.704M214.16 157.281H218.484V148.855H222.6V140.429H226.716V136.107H222.392V140.21H218.276V148.635H214.16V157.281ZM214.16 220.132H218.276V228.558H222.6V237.191H234.936V211.706H214.172V220.132H214.16ZM239.26 207.396H260.464V169.81H239.26V207.396ZM214.16 207.396H234.923V169.81H214.16V207.396Z" stroke="#C272FF" stroke-width="0.618845"/>
|
|
|
11
|
+ </g>
|
|
|
12
|
+ <path d="M166.566 131.845H175.239L169.665 124.591L179.881 122.381L170.633 111.794L178.264 111.587L178.607 109.511L127.183 90.5711C125.738 90.0338 124.28 89.5942 122.81 89.2401L97.6982 24.4963C92.2226 10.3802 78.3437 0.904321 63.1542 0.904321C58.6095 0.904321 54.1139 1.73468 49.8265 3.3954L23.6612 13.4696C4.62526 20.8208 -4.86823 42.227 2.49382 61.2032L38.3608 153.715C43.8364 167.831 57.7153 177.319 72.8926 177.319C74.9261 177.319 76.935 177.148 78.9195 176.807C82.7169 180.238 87.1513 182.937 92.1001 184.756L143.855 203.818L137.804 193.072H149.686L145.643 183.242H158.493L153.238 173.546L119.454 161.103C130.674 153.727 136.958 140.771 135.954 127.534L175.349 142.041L166.566 131.845ZM151.731 175.28L154.904 181.105H142.446L146.501 190.935H134.141L139.139 199.812L92.8473 182.753C83.1946 179.2 75.5263 172.117 71.2389 162.825C66.9638 153.544 66.5718 143.165 70.1365 133.591L76.9963 115.164C80.2914 106.324 86.551 99.412 94.2316 95.1259L104.509 121.649C103.799 122.528 103.211 123.541 102.794 124.665L95.9343 143.091C94.9175 145.827 95.0278 148.782 96.2527 151.419C97.4655 154.069 99.6581 156.096 102.402 157.11L151.731 175.28ZM65.6653 144.337C65.4938 144.032 65.3468 143.702 65.2121 143.36L29.3328 50.8481C28.2549 48.0884 28.9653 45.7316 29.4798 44.5837C30.0066 43.4237 31.2805 41.3111 34.049 40.2488L60.202 30.1623C61.182 29.7838 62.1742 29.6006 63.1542 29.6006C65.9716 29.6006 69.4382 31.2247 70.8469 34.8636L93.4476 93.1232C85.2158 97.6169 78.503 104.98 74.9873 114.42L68.1275 132.858C66.7311 136.595 65.9103 140.466 65.6653 144.337ZM104.803 125.397C104.975 124.921 105.195 124.469 105.44 124.054L106.726 127.363C107.804 130.135 107.094 132.48 106.579 133.628H106.567C106.065 134.8 104.803 136.9 102.022 137.963L99.8174 138.817L104.803 125.397ZM116.918 160.163L103.149 155.095C100.932 154.289 99.1804 152.665 98.2004 150.528C97.2205 148.403 97.1225 146.034 97.9432 143.836L98.8129 141.492L102.794 139.965C106.297 138.622 107.89 135.96 108.539 134.495C109.188 133.042 110.083 130.086 108.723 126.594L106.983 122.113V122.064L106.273 120.281L106.163 119.988L96.1303 94.1245L96.1058 94.0757L95.4565 92.3906L95.3585 92.1219L72.8436 34.0821C71.0674 29.5029 66.6943 27.4637 63.1542 27.4637C61.9169 27.4637 60.6552 27.6957 59.4303 28.1597L33.2772 38.2461C29.7983 39.5894 28.1814 42.2514 27.5321 43.7045C26.8706 45.1699 25.9764 48.1372 27.3361 51.6296L63.2154 144.142C63.7666 145.595 64.5996 146.804 65.5918 147.744C65.7021 153.202 66.9393 158.624 69.2912 163.716C71.2389 167.929 73.8359 171.702 76.9718 174.938C75.6121 175.109 74.2646 175.182 72.8926 175.182C58.5973 175.182 45.5146 166.244 40.3575 152.934L4.49051 60.4217C-2.4428 42.5567 6.49946 22.396 24.433 15.4723L50.5982 5.39804C54.6406 3.8228 58.8668 3.04128 63.1542 3.04128C77.4618 3.04128 90.5322 11.9677 95.7015 25.2779L120.299 88.6906L120.385 88.9226L121.156 90.913L121.218 91.0595L131.581 117.79C132.414 119.939 133.014 122.113 133.381 124.311C133.406 124.384 133.418 124.457 133.43 124.53C133.553 125.19 133.639 125.861 133.7 126.533C133.7 126.594 133.712 126.643 133.712 126.704C135.133 140.039 128.629 153.214 116.918 160.163ZM135.697 125.165C135.317 122.43 134.619 119.683 133.577 117.008L123.765 91.7067C124.66 91.9632 125.554 92.244 126.436 92.5737L172.666 109.608L166.039 109.791L175.888 121.062L165.904 123.212L170.902 129.708H161.899L168.33 137.181L135.697 125.165Z" fill="white"/>
|
|
|
13
|
+ <path d="M488.077 306.123L422.933 212.255C415.84 202.035 404.252 195.831 391.819 195.55C388.193 192.314 383.893 189.701 379.018 187.906L332.347 170.713L332.151 170.64L320.771 170.957L329.198 180.592L318.639 182.875L325.034 191.191H316.802L323.417 198.872L356.38 211.01L348.847 216.212C339.145 222.903 333.449 233.222 332.31 244.078L302.004 232.917L307.259 242.576H293.846L297.888 252.406H286.643L291.126 260.355L344.694 280.088C345.221 280.284 345.735 280.467 346.262 280.626L404.13 364.016C411.406 374.481 423.374 380.733 436.15 380.733C444.076 380.733 451.707 378.352 458.249 373.846L478.228 360.072C486.766 354.174 492.499 345.321 494.361 335.137C496.223 324.94 493.993 314.646 488.077 306.123ZM324.678 197.052L321.469 193.328H329.37L322.388 184.255L333.192 181.923L325.377 172.972L331.795 172.789L378.271 189.909C382.092 191.313 385.535 193.255 388.548 195.611C381.48 196.039 374.706 198.371 368.826 202.425L358.536 209.52L324.678 197.052ZM345.429 278.086L344.168 277.622L292.609 258.621L290.306 254.543H301.085L297.043 244.713H310.861L306.598 236.885L332.138 246.288L334.245 247.069L354.237 254.433C356.932 255.422 359.749 255.397 362.273 254.53C362.971 254.311 363.632 254.018 364.269 253.651C366.695 252.32 368.667 250.147 369.696 247.375L374.179 235.359L386.012 227.19C387.495 226.176 389.148 225.651 390.924 225.651C392.296 225.651 395.751 226.017 398.091 229.388L401.447 234.223C401.226 235.078 400.969 235.921 400.675 236.775L393.497 256.106L393.142 257.022C390.14 264.507 385.02 270.49 378.748 274.52C378.148 274.911 377.536 275.289 376.911 275.631C368.287 280.504 357.777 281.896 347.61 278.806C346.887 278.599 346.152 278.354 345.429 278.086ZM362.432 246.544C362.665 245.226 363.461 242.747 366.033 240.976L371.092 237.484L367.687 246.63C366.829 248.95 365.176 250.745 363.142 251.844C362.101 249.683 362.224 247.656 362.432 246.544ZM402.366 238.424L402.709 237.471C402.819 237.142 402.929 236.824 403.027 236.495L463.234 323.255C465.023 325.819 464.888 328.42 464.643 329.739C464.398 331.058 463.614 333.525 461.042 335.307L441.062 349.082C439.58 350.107 437.926 350.62 436.15 350.62C434.778 350.62 431.312 350.266 428.972 346.884L379.973 276.279C386.588 272.005 391.966 265.704 395.138 257.803L402.366 238.424ZM492.254 334.746C490.49 344.38 485.075 352.745 477.003 358.313L457.024 372.088C450.85 376.349 443.635 378.596 436.15 378.596C424.072 378.596 412.766 372.698 405.894 362.807L349.496 281.529C352.534 282.25 355.584 282.592 358.598 282.592C365.519 282.592 372.256 280.76 378.136 277.39L427.208 348.105C430.136 352.305 434.435 352.757 436.15 352.757C438.367 352.757 440.425 352.11 442.275 350.84L462.254 337.066C465.464 334.843 466.456 331.766 466.75 330.118C467.044 328.481 467.228 325.245 464.998 322.046L403.774 233.808L402.084 231.378L399.854 228.166C396.939 223.966 392.639 223.514 390.924 223.514H390.912C388.695 223.514 386.637 224.161 384.787 225.431L375.478 231.854L372.403 233.979L364.808 239.218C361.599 241.428 360.619 244.517 360.313 246.154C360.068 247.533 359.908 250.012 361.158 252.65C359.198 253.224 357.042 253.187 354.984 252.43L334.38 244.847C335.323 234.394 340.738 224.405 350.06 217.97L358.83 211.913L360.986 210.424L370.039 204.184C376.213 199.934 383.44 197.675 390.912 197.675H390.961C392.039 197.675 393.117 197.724 394.171 197.822C405.012 198.774 414.934 204.477 421.169 213.476L486.313 307.344C491.898 315.391 494.005 325.123 492.254 334.746Z" fill="white"/>
|
|
|
14
|
+ <path d="M82.7096 239.196L95.6423 239.231L95.6325 242.957L82.7096 242.922V259.141H78.9108V242.912L65.5817 242.877L65.5925 239.151L78.9108 239.186V223.021H82.7096V239.196Z" fill="#C272FF"/>
|
|
|
15
|
+ <path d="M410.924 116.181L423.856 116.216L423.846 119.937L410.924 119.902V136.101H407.125V119.892L393.796 119.857L393.806 116.136L407.125 116.171V100.028H410.924V116.181Z" fill="#C272FF"/>
|
|
|
16
|
+ <path d="M62.4132 304.747C62.4132 303.479 61.387 302.452 60.1215 302.452C58.8559 302.452 57.8297 303.479 57.8297 304.747C57.8297 306.014 58.8559 307.041 60.1215 307.041V310.767C56.801 310.767 54.1093 308.072 54.1093 304.747C54.1093 301.422 56.801 298.727 60.1215 298.727C63.4419 298.727 66.1336 301.422 66.1336 304.747C66.1336 308.072 63.4419 310.767 60.1215 310.767V307.041C61.387 307.041 62.4132 306.014 62.4132 304.747Z" fill="#C272FF"/>
|
|
|
17
|
+ <path d="M359.727 133.175C363.047 133.175 365.739 135.87 365.739 139.195C365.739 142.52 363.047 145.215 359.727 145.215C356.406 145.215 353.715 142.52 353.715 139.195C353.715 135.87 356.406 133.175 359.727 133.175Z" fill="#C272FF"/>
|
|
|
18
|
+ <path d="M416.842 157.255C420.163 157.255 422.854 159.95 422.854 163.275C422.854 166.6 420.163 169.295 416.842 169.295C413.522 169.295 410.83 166.6 410.83 163.275C410.83 159.95 413.522 157.255 416.842 157.255Z" fill="#C272FF"/>
|
|
|
19
|
+ <path d="M101.492 281.67C101.492 280.403 100.466 279.375 99.2004 279.375C97.9348 279.375 96.9087 280.403 96.9087 281.67C96.9087 282.937 97.9348 283.965 99.2004 283.965V287.69C95.88 287.69 93.1883 284.995 93.1883 281.67C93.1883 278.345 95.88 275.65 99.2004 275.65C102.521 275.65 105.213 278.345 105.213 281.67C105.213 284.995 102.521 287.69 99.2004 287.69V283.965C100.466 283.965 101.492 282.937 101.492 281.67Z" fill="#C272FF"/>
|
|
|
20
|
+</svg> |
browser/components/abouttor/jar.mn
| ... |
... |
@@ -9,3 +9,4 @@ browser.jar: |
|
9
|
9
|
content/browser/abouttor/2728-sparkles.svg (content/2728-sparkles.svg)
|
|
10
|
10
|
content/browser/abouttor/2764-red-heart.svg (content/2764-red-heart.svg)
|
|
11
|
11
|
content/browser/abouttor/yec-heart.svg (content/yec-heart.svg)
|
|
|
12
|
+ content/browser/abouttor/yec2025-image.svg (content/yec2025-image.svg) |
toolkit/locales/en-US/toolkit/global/tor-browser.ftl
| ... |
... |
@@ -728,3 +728,38 @@ yec-donate-button = Donate now |
|
728
|
728
|
# Here "Close" is a verb, referring to closing the banner.
|
|
729
|
729
|
yec-close-button =
|
|
730
|
730
|
.title = Close
|
|
|
731
|
+
|
|
|
732
|
+## Summer 2026 Tor Project funding campaign.
|
|
|
733
|
+
|
|
|
734
|
+summer-2026-funding-heading = A new way to fund internet freedom
|
|
|
735
|
+# $tool1-name (string ) - The name of some internet freedom tool, this is not translated and will only use the Latin alphabet. This should be wrapped in '<b>' and '</b>' to make them appear bold. Similar for '$tool2-name'.
|
|
|
736
|
+# $tool1-description (string) - A short description for the tool, this is translated. Similar for '$tool2-description'.
|
|
|
737
|
+# Note, since '$tool1-description' and '$tool2-description' contain arbitrary text, you will likely need to separate them out from the rest of the text. The English text uses brackets '(' and ')' to do this.
|
|
|
738
|
+# Note, the curly brackets '{' and '}' are part of the Fluent syntax, but the normal brackets '(' and ')' are not.
|
|
|
739
|
+summer-2026-funding-intro = Did you know that internet freedom tools serve millions of people every day? This includes tools like <b>{ $tool1-name }</b> ({ $tool1-description }) and <b>{ $tool2-name }</b> ({ $tool2-description }).
|
|
|
740
|
+# Here "Tor" refers to The Tor Project.
|
|
|
741
|
+# You should wrap the call to donation in '<b>' and '</b>', which will make it stand out.
|
|
|
742
|
+summer-2026-funding-outro = But unprecedented funding cuts have harmed the small organizations that maintain these tools. <b>Help protect internet freedom by donating cryptocurrency</b>—all donations will be matched by friends of Tor.
|
|
|
743
|
+
|
|
|
744
|
+# A short description of "Onion Browser": onionbrowser.com .
|
|
|
745
|
+summer-2026-funding-tool-onion-browser-description = Tor-powered browser for iOS
|
|
|
746
|
+# A short description of "Quiet": tryquiet.org .
|
|
|
747
|
+summer-2026-funding-tool-quiet-description = private group messaging
|
|
|
748
|
+# A short description of "Ricochet Refresh": ricochetrefresh.net .
|
|
|
749
|
+summer-2026-funding-tool-ricochet-refresh-description = secure and anonymous messaging
|
|
|
750
|
+# A short description of "SecureDrop": securedrop.org .
|
|
|
751
|
+summer-2026-funding-tool-securedrop-description = anonymous whistleblowing app
|
|
|
752
|
+# A short description of "OnionShare": onionshare.org .
|
|
|
753
|
+summer-2026-funding-tool-onionshare-description = secure filesharing, hosting & chatting
|
|
|
754
|
+# A short description of "Digital Security Helpdesk": miaan.org/projects/miaan-digital-security-helpdesk .
|
|
|
755
|
+summer-2026-funding-tool-digital-security-helpdesk-description = internet freedom for Iranians
|
|
|
756
|
+# A short description of "Paskoocheh": paskoocheh.com .
|
|
|
757
|
+summer-2026-funding-tool-paskoocheh-description = countering digital authoritarianism
|
|
|
758
|
+# A short description of "Unredacted": unredacted.org .
|
|
|
759
|
+summer-2026-funding-tool-unredacted-description = keeping people connected, no matter where
|
|
|
760
|
+# A short description of "Osservatorio Nessuno": osservatorionessuno.org .
|
|
|
761
|
+summer-2026-funding-tool-osservatorio-nessuno-description = software that leaves no trace
|
|
|
762
|
+# A short description of "Save": open-archive.org/save .
|
|
|
763
|
+summer-2026-funding-tool-save-description = private archiving
|
|
|
764
|
+# A short description of "OONI": ooni.org .
|
|
|
765
|
+summer-2026-funding-tool-ooni-description = tracking censorship globally |
|