morgan pushed to branch tor-browser-128.4.0esr-14.5-1 at The Tor Project / Applications / Tor Browser
Commits:
-
6d2b4add
by Henry Wilkes at 2024-10-29T21:02:40+00:00
-
201d50e6
by Henry Wilkes at 2024-10-29T21:02:40+00:00
-
b4b207fa
by Henry Wilkes at 2024-10-29T21:02:40+00:00
15 changed files:
- − browser/actors/AboutTBUpdateChild.sys.mjs
- − browser/actors/AboutTBUpdateParent.sys.mjs
- browser/actors/moz.build
- − browser/base/content/abouttbupdate/aboutTBUpdate.css
- − browser/base/content/abouttbupdate/aboutTBUpdate.js
- − browser/base/content/abouttbupdate/aboutTBUpdate.xhtml
- browser/base/content/browser.js
- browser/base/jar.mn
- browser/components/BrowserContentHandler.sys.mjs
- browser/components/BrowserGlue.sys.mjs
- browser/components/about/AboutRedirector.cpp
- browser/components/about/components.conf
- toolkit/modules/RemotePageAccessManager.sys.mjs
- − toolkit/torbutton/chrome/locale/en-US/aboutTBUpdate.dtd
- toolkit/torbutton/jar.mn
Changes:
1 | -// Copyright (c) 2020, The Tor Project, Inc.
|
|
2 | -// See LICENSE for licensing information.
|
|
3 | -//
|
|
4 | -// vim: set sw=2 sts=2 ts=8 et syntax=javascript:
|
|
5 | - |
|
6 | -import { RemotePageChild } from "resource://gre/actors/RemotePageChild.sys.mjs";
|
|
7 | - |
|
8 | -export class AboutTBUpdateChild extends RemotePageChild {} |
1 | -// Copyright (c) 2020, The Tor Project, Inc.
|
|
2 | -// See LICENSE for licensing information.
|
|
3 | -//
|
|
4 | -// vim: set sw=2 sts=2 ts=8 et syntax=javascript:
|
|
5 | - |
|
6 | -import { AppConstants } from "resource://gre/modules/AppConstants.sys.mjs";
|
|
7 | - |
|
8 | -const kRequestUpdateMessageName = "FetchUpdateData";
|
|
9 | - |
|
10 | -/**
|
|
11 | - * This code provides services to the about:tbupdate page. Whenever
|
|
12 | - * about:tbupdate needs to do something chrome-privileged, it sends a
|
|
13 | - * message that's handled here. It is modeled after Mozilla's about:home
|
|
14 | - * implementation.
|
|
15 | - */
|
|
16 | -export class AboutTBUpdateParent extends JSWindowActorParent {
|
|
17 | - async receiveMessage(aMessage) {
|
|
18 | - if (aMessage.name == kRequestUpdateMessageName) {
|
|
19 | - return this.getReleaseNoteInfo();
|
|
20 | - }
|
|
21 | - return undefined;
|
|
22 | - }
|
|
23 | - |
|
24 | - get moreInfoURL() {
|
|
25 | - try {
|
|
26 | - return Services.prefs.getCharPref("torbrowser.post_update.url");
|
|
27 | - } catch (e) {}
|
|
28 | - |
|
29 | - // Use the default URL as a fallback.
|
|
30 | - return Services.urlFormatter.formatURLPref("startup.homepage_override_url");
|
|
31 | - }
|
|
32 | - |
|
33 | - // Read the text from the beginning of the changelog file that is located
|
|
34 | - // at TorBrowser/Docs/ChangeLog.txt (or,
|
|
35 | - // TorBrowser.app/Contents/Resources/TorBrowser/Docs/ on macOS, to support
|
|
36 | - // Gatekeeper signing) and return an object that contains the following
|
|
37 | - // properties:
|
|
38 | - // version e.g., Tor Browser 8.5
|
|
39 | - // releaseDate e.g., March 31 2019
|
|
40 | - // releaseNotes details of changes (lines 2 - end of ChangeLog.txt)
|
|
41 | - // We attempt to parse the first line of ChangeLog.txt to extract the
|
|
42 | - // version and releaseDate. If parsing fails, we return the entire first
|
|
43 | - // line in version and omit releaseDate.
|
|
44 | - async getReleaseNoteInfo() {
|
|
45 | - let info = { moreInfoURL: this.moreInfoURL };
|
|
46 | - |
|
47 | - try {
|
|
48 | - // "XREExeF".parent is the directory that contains firefox, i.e.,
|
|
49 | - // Browser/ or, TorBrowser.app/Contents/MacOS/ on macOS.
|
|
50 | - let f = Services.dirsvc.get("XREExeF", Ci.nsIFile).parent;
|
|
51 | - if (AppConstants.platform === "macosx") {
|
|
52 | - f = f.parent;
|
|
53 | - f.append("Resources");
|
|
54 | - }
|
|
55 | - f.append("TorBrowser");
|
|
56 | - f.append("Docs");
|
|
57 | - f.append("ChangeLog.txt");
|
|
58 | - |
|
59 | - // NOTE: We load in the entire file, but only use the first few lines
|
|
60 | - // before the first blank line.
|
|
61 | - const logLines = (await IOUtils.readUTF8(f.path))
|
|
62 | - .replace(/\n\r?\n.*/ms, "")
|
|
63 | - .split(/\n\r?/);
|
|
64 | - |
|
65 | - // Read the first line to get the version and date.
|
|
66 | - // Assume everything after the last "-" is the date.
|
|
67 | - const firstLine = logLines.shift();
|
|
68 | - const match = firstLine?.match(/(.*)-+(.*)/);
|
|
69 | - if (match) {
|
|
70 | - info.version = match[1].trim();
|
|
71 | - info.releaseDate = match[2].trim();
|
|
72 | - } else {
|
|
73 | - // No date.
|
|
74 | - info.version = firstLine?.trim();
|
|
75 | - }
|
|
76 | - |
|
77 | - // We want to read the rest of the release notes as a tree. Each entry
|
|
78 | - // will contain the text for that line.
|
|
79 | - // We choose a negative index for the top node of this tree to ensure no
|
|
80 | - // line will appear less indented.
|
|
81 | - const topEntry = { indent: -1, children: undefined };
|
|
82 | - let prevEntry = topEntry;
|
|
83 | - |
|
84 | - for (let line of logLines) {
|
|
85 | - const indent = line.match(/^ */)[0];
|
|
86 | - line = line.trim();
|
|
87 | - if (line.startsWith("*")) {
|
|
88 | - // Treat as a bullet point.
|
|
89 | - let entry = {
|
|
90 | - text: line.replace(/^\*\s/, ""),
|
|
91 | - indent: indent.length,
|
|
92 | - };
|
|
93 | - let parentEntry;
|
|
94 | - if (entry.indent > prevEntry.indent) {
|
|
95 | - // A sub-list of the previous item.
|
|
96 | - prevEntry.children = [];
|
|
97 | - parentEntry = prevEntry;
|
|
98 | - } else {
|
|
99 | - // Same list or end of sub-list.
|
|
100 | - // Search for the first parent whose indent comes before ours.
|
|
101 | - parentEntry = prevEntry.parent;
|
|
102 | - while (entry.indent <= parentEntry.indent) {
|
|
103 | - parentEntry = parentEntry.parent;
|
|
104 | - }
|
|
105 | - }
|
|
106 | - entry.parent = parentEntry;
|
|
107 | - parentEntry.children.push(entry);
|
|
108 | - prevEntry = entry;
|
|
109 | - } else if (prevEntry === topEntry) {
|
|
110 | - // Unexpected, missing bullet point on first line.
|
|
111 | - // Place as its own bullet point instead, and set as prevEntry for the
|
|
112 | - // next loop.
|
|
113 | - prevEntry = { text: line, indent: indent.length, parent: topEntry };
|
|
114 | - topEntry.children = [prevEntry];
|
|
115 | - } else {
|
|
116 | - // Append to the previous bullet point.
|
|
117 | - prevEntry.text += ` ${line}`;
|
|
118 | - }
|
|
119 | - }
|
|
120 | - |
|
121 | - info.releaseNotes = topEntry.children;
|
|
122 | - } catch (e) {
|
|
123 | - console.error(e);
|
|
124 | - }
|
|
125 | - |
|
126 | - return info;
|
|
127 | - }
|
|
128 | -} |
... | ... | @@ -90,9 +90,3 @@ FINAL_TARGET_FILES.actors += [ |
90 | 90 | BROWSER_CHROME_MANIFESTS += [
|
91 | 91 | "test/browser/browser.toml",
|
92 | 92 | ] |
93 | - |
|
94 | -if CONFIG["BASE_BROWSER_UPDATE"]:
|
|
95 | - FINAL_TARGET_FILES.actors += [
|
|
96 | - "AboutTBUpdateChild.sys.mjs",
|
|
97 | - "AboutTBUpdateParent.sys.mjs",
|
|
98 | - ] |
1 | -/*
|
|
2 | - * Copyright (c) 2019, The Tor Project, Inc.
|
|
3 | - * See LICENSE for licensing information.
|
|
4 | - *
|
|
5 | - * vim: set sw=2 sts=2 ts=8 et syntax=css:
|
|
6 | - */
|
|
7 | - |
|
8 | -:root {
|
|
9 | - --abouttor-text-color: white;
|
|
10 | - --abouttor-bg-toron-color: #420C5D;
|
|
11 | -}
|
|
12 | - |
|
13 | -body {
|
|
14 | - font-family: Helvetica, Arial, sans-serif;
|
|
15 | - color: var(--abouttor-text-color);
|
|
16 | - background-color: var(--abouttor-bg-toron-color);
|
|
17 | - margin-block: 40px;
|
|
18 | - margin-inline: 50px;
|
|
19 | - display: grid;
|
|
20 | - grid-template-columns: auto auto;
|
|
21 | - align-items: baseline;
|
|
22 | - gap: 40px 50px;
|
|
23 | -}
|
|
24 | - |
|
25 | -body > *:not([hidden]) {
|
|
26 | - display: contents;
|
|
27 | -}
|
|
28 | - |
|
29 | -.label-column {
|
|
30 | - grid-column: 1;
|
|
31 | -}
|
|
32 | - |
|
33 | -.content {
|
|
34 | - grid-column: 2;
|
|
35 | -}
|
|
36 | - |
|
37 | -.content.en-US-content {
|
|
38 | - font-family: monospace;
|
|
39 | - line-height: 1.4;
|
|
40 | -}
|
|
41 | - |
|
42 | -.label-column, .content {
|
|
43 | - margin: 0;
|
|
44 | - padding: 0;
|
|
45 | - font-size: 1rem;
|
|
46 | - font-weight: normal;
|
|
47 | -}
|
|
48 | - |
|
49 | -a {
|
|
50 | - color: inherit;
|
|
51 | -}
|
|
52 | - |
|
53 | -.no-line-break {
|
|
54 | - white-space: nowrap;
|
|
55 | -}
|
|
56 | - |
|
57 | -ul {
|
|
58 | - padding-inline: 1em 0;
|
|
59 | -}
|
|
60 | - |
|
61 | -h3, h4 {
|
|
62 | - font-size: 1.1rem;
|
|
63 | - font-weight: bold;
|
|
64 | -}
|
|
65 | - |
|
66 | -h3.build-system-heading {
|
|
67 | - font-size: 1.5rem;
|
|
68 | - font-weight: normal;
|
|
69 | - margin-block-start: 3em;
|
|
70 | -} |
1 | -// Copyright (c) 2020, The Tor Project, Inc.
|
|
2 | -// See LICENSE for licensing information.
|
|
3 | -//
|
|
4 | -// vim: set sw=2 sts=2 ts=8 et syntax=javascript:
|
|
5 | - |
|
6 | -/* eslint-env mozilla/remote-page */
|
|
7 | - |
|
8 | -/**
|
|
9 | - * An object representing a bullet point in the release notes.
|
|
10 | - *
|
|
11 | - * typedef {Object} ReleaseBullet
|
|
12 | - * @property {string} text - The text for this bullet point.
|
|
13 | - * @property {?Array<ReleaseBullet>} children - A sub-list of bullet points.
|
|
14 | - */
|
|
15 | - |
|
16 | -/**
|
|
17 | - * Fill an element with the given list of release bullet points.
|
|
18 | - *
|
|
19 | - * @param {Element} container - The element to fill with bullet points.
|
|
20 | - * @param {Array<ReleaseBullet>} bulletPoints - The list of bullet points.
|
|
21 | - * @param {string} [childTag="h3"] - The element tag name to use for direct
|
|
22 | - * children. Initially, the children are h3 sub-headings.
|
|
23 | - */
|
|
24 | -function fillReleaseNotes(container, bulletPoints, childTag = "h3") {
|
|
25 | - for (const { text, children } of bulletPoints) {
|
|
26 | - const childEl = document.createElement(childTag);
|
|
27 | - // Keep dashes like "[tor-browser]" on the same line by nowrapping the word.
|
|
28 | - for (const [index, part] of text.split(/(\S+-\S+)/).entries()) {
|
|
29 | - if (!part) {
|
|
30 | - continue;
|
|
31 | - }
|
|
32 | - const span = document.createElement("span");
|
|
33 | - span.textContent = part;
|
|
34 | - span.classList.toggle("no-line-break", index % 2);
|
|
35 | - childEl.appendChild(span);
|
|
36 | - }
|
|
37 | - container.appendChild(childEl);
|
|
38 | - if (children) {
|
|
39 | - if (childTag == "h3" && text.toLowerCase() === "build system") {
|
|
40 | - // Special case: treat the "Build System" heading's children as
|
|
41 | - // sub-headings.
|
|
42 | - childEl.classList.add("build-system-heading");
|
|
43 | - fillReleaseNotes(container, children, "h4");
|
|
44 | - } else {
|
|
45 | - const listEl = document.createElement("ul");
|
|
46 | - fillReleaseNotes(listEl, children, "li");
|
|
47 | - if (childTag == "li") {
|
|
48 | - // Insert within the "li" element.
|
|
49 | - childEl.appendChild(listEl);
|
|
50 | - } else {
|
|
51 | - container.appendChild(listEl);
|
|
52 | - }
|
|
53 | - }
|
|
54 | - }
|
|
55 | - }
|
|
56 | -}
|
|
57 | - |
|
58 | -/**
|
|
59 | - * Set the content for the specified container, or hide it if we have no
|
|
60 | - * content.
|
|
61 | - *
|
|
62 | - * @template C
|
|
63 | - * @param {string} containerId - The id for the container.
|
|
64 | - * @param {?C} content - The content for this container, or a falsey value if
|
|
65 | - * the container has no content.
|
|
66 | - * @param {function(contentEl: Elemenet, content: C)} [fillContent] - A function
|
|
67 | - * to fill the ".content" contentEl with the given 'content'. If unspecified,
|
|
68 | - * the 'content' will become the contentEl's textContent.
|
|
69 | - */
|
|
70 | -function setContent(containerId, content, fillContent) {
|
|
71 | - const container = document.getElementById(containerId);
|
|
72 | - if (!content) {
|
|
73 | - container.hidden = true;
|
|
74 | - return;
|
|
75 | - }
|
|
76 | - const contentEl = container.querySelector(".content");
|
|
77 | - // Release notes are only in English.
|
|
78 | - contentEl.setAttribute("lang", "en-US");
|
|
79 | - contentEl.setAttribute("dir", "ltr");
|
|
80 | - contentEl.classList.add("en-US-content");
|
|
81 | - if (fillContent) {
|
|
82 | - fillContent(contentEl, content);
|
|
83 | - } else {
|
|
84 | - contentEl.textContent = content;
|
|
85 | - }
|
|
86 | -}
|
|
87 | - |
|
88 | -/**
|
|
89 | - * Callback when we receive the update details.
|
|
90 | - *
|
|
91 | - * @param {Object} aData - The update details.
|
|
92 | - * @param {?string} aData.version - The update version.
|
|
93 | - * @param {?string} aData.releaseDate - The release date.
|
|
94 | - * @param {?string} aData.moreInfoURL - A URL for more info.
|
|
95 | - * @param {?Array<ReleaseBullet>} aData.releaseNotes - Release notes as bullet
|
|
96 | - * points.
|
|
97 | - */
|
|
98 | -function onUpdate(aData) {
|
|
99 | - setContent("version-row", aData.version);
|
|
100 | - setContent("releasedate-row", aData.releaseDate);
|
|
101 | - setContent("releasenotes", aData.releaseNotes, fillReleaseNotes);
|
|
102 | - |
|
103 | - if (aData.moreInfoURL) {
|
|
104 | - document.getElementById("infolink").setAttribute("href", aData.moreInfoURL);
|
|
105 | - } else {
|
|
106 | - document.getElementById("fullinfo").hidden = true;
|
|
107 | - }
|
|
108 | -}
|
|
109 | - |
|
110 | -RPMSendQuery("FetchUpdateData").then(onUpdate); |
1 | -<?xml version="1.0" encoding="UTF-8"?>
|
|
2 | - |
|
3 | -<!DOCTYPE html [ <!ENTITY % htmlDTD PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
|
|
4 | -%htmlDTD;
|
|
5 | -<!ENTITY % tbUpdateDTD SYSTEM "chrome://browser/locale/aboutTBUpdate.dtd">
|
|
6 | -%tbUpdateDTD; ]>
|
|
7 | - |
|
8 | -<html xmlns="http://www.w3.org/1999/xhtml">
|
|
9 | - <head>
|
|
10 | - <meta
|
|
11 | - http-equiv="Content-Security-Policy"
|
|
12 | - content="default-src chrome:; object-src 'none'"
|
|
13 | - />
|
|
14 | - <title>&aboutTBUpdate.changelogTitle;</title>
|
|
15 | - <link
|
|
16 | - rel="stylesheet"
|
|
17 | - type="text/css"
|
|
18 | - href="chrome://browser/content/abouttbupdate/aboutTBUpdate.css"
|
|
19 | - />
|
|
20 | - <script
|
|
21 | - src="chrome://browser/content/abouttbupdate/aboutTBUpdate.js"
|
|
22 | - type="text/javascript"
|
|
23 | - />
|
|
24 | - <!-- Hack: we are not using Fluent translations in this page (yet), but we use
|
|
25 | - - this tag so it sets up the page automatically for us. -->
|
|
26 | - <link rel="localization" href="branding/brand.ftl" />
|
|
27 | - </head>
|
|
28 | - <body>
|
|
29 | - <!-- NOTE: We don't use the <dl>, <dt> and <dd> elements to form name-value
|
|
30 | - - pairs because this semantics is relatively new, whilst firefox
|
|
31 | - - currently still maps these to the more limited "definitionlist", "term"
|
|
32 | - - and "definition" roles. -->
|
|
33 | - <div id="version-row">
|
|
34 | - <span class="label-column">&aboutTBUpdate.version;</span>
|
|
35 | - <span class="content"></span>
|
|
36 | - </div>
|
|
37 | - <div id="releasedate-row">
|
|
38 | - <span class="label-column">&aboutTBUpdate.releaseDate;</span>
|
|
39 | - <span class="content"></span>
|
|
40 | - </div>
|
|
41 | - <div id="fullinfo">
|
|
42 | - <p class="content">
|
|
43 | - &aboutTBUpdate.linkPrefix;<a id="infolink">&aboutTBUpdate.linkLabel;</a
|
|
44 | - >&aboutTBUpdate.linkSuffix;
|
|
45 | - </p>
|
|
46 | - </div>
|
|
47 | - <section id="releasenotes">
|
|
48 | - <h2 class="label-column">&aboutTBUpdate.releaseNotes;</h2>
|
|
49 | - <div class="content"></div>
|
|
50 | - </section>
|
|
51 | - </body>
|
|
52 | -</html> |
... | ... | @@ -771,10 +771,6 @@ if (Services.prefs.getBoolPref("browser.profiles.enabled")) { |
771 | 771 | gInitialPages.push("about:profilemanager");
|
772 | 772 | }
|
773 | 773 | |
774 | -if (AppConstants.BASE_BROWSER_UPDATE) {
|
|
775 | - gInitialPages.push("about:tbupdate");
|
|
776 | -}
|
|
777 | - |
|
778 | 774 | function isInitialPage(url) {
|
779 | 775 | if (!(url instanceof Ci.nsIURI)) {
|
780 | 776 | try {
|
... | ... | @@ -33,11 +33,6 @@ browser.jar: |
33 | 33 | content/browser/aboutTabCrashed.css (content/aboutTabCrashed.css)
|
34 | 34 | content/browser/aboutTabCrashed.js (content/aboutTabCrashed.js)
|
35 | 35 | content/browser/aboutTabCrashed.xhtml (content/aboutTabCrashed.xhtml)
|
36 | -#ifdef BASE_BROWSER_UPDATE
|
|
37 | - content/browser/abouttbupdate/aboutTBUpdate.xhtml (content/abouttbupdate/aboutTBUpdate.xhtml)
|
|
38 | - content/browser/abouttbupdate/aboutTBUpdate.js (content/abouttbupdate/aboutTBUpdate.js)
|
|
39 | - content/browser/abouttbupdate/aboutTBUpdate.css (content/abouttbupdate/aboutTBUpdate.css)
|
|
40 | -#endif
|
|
41 | 36 | content/browser/blanktab.html (content/blanktab.html)
|
42 | 37 | content/browser/browser.css (content/browser.css)
|
43 | 38 | content/browser/browser.js (content/browser.js)
|
... | ... | @@ -783,16 +783,6 @@ nsBrowserContentHandler.prototype = { |
783 | 783 | // into account because that requires waiting for the session file
|
784 | 784 | // to be read. If a crash occurs after updating, before restarting,
|
785 | 785 | // we may open the startPage in addition to restoring the session.
|
786 | - //
|
|
787 | - // Tor Browser: Instead of opening the post-update "override page"
|
|
788 | - // directly, we ensure that about:tor will be opened in a special
|
|
789 | - // mode that notifies the user that their browser was updated.
|
|
790 | - // The about:tor page will provide a link to the override page
|
|
791 | - // where the user can learn more about the update, as well as a
|
|
792 | - // link to the Tor Browser changelog page (about:tbupdate). The
|
|
793 | - // override page URL comes from the openURL attribute within the
|
|
794 | - // updates.xml file or, if no showURL action is present, from the
|
|
795 | - // startup.homepage_override_url pref.
|
|
796 | 786 | willRestoreSession =
|
797 | 787 | lazy.SessionStartup.isAutomaticRestoreEnabled();
|
798 | 788 | |
... | ... | @@ -887,6 +877,13 @@ nsBrowserContentHandler.prototype = { |
887 | 877 | old_forkVersion
|
888 | 878 | );
|
889 | 879 | if (overridePage && AppConstants.BASE_BROWSER_UPDATE) {
|
880 | + // Tor Browser: Instead of opening the post-update "override page"
|
|
881 | + // directly, we ensure that about:tor will be opened, which should
|
|
882 | + // notify the user that their browser was updated.
|
|
883 | + //
|
|
884 | + // The overridePage comes from the openURL attribute within the
|
|
885 | + // updates.xml file or, if no showURL action is present, from the
|
|
886 | + // startup.homepage_override_url pref.
|
|
890 | 887 | Services.prefs.setCharPref(
|
891 | 888 | "torbrowser.post_update.url",
|
892 | 889 | overridePage
|
... | ... | @@ -1022,21 +1022,6 @@ let JSWINDOWACTORS = { |
1022 | 1022 | },
|
1023 | 1023 | };
|
1024 | 1024 | |
1025 | -if (AppConstants.BASE_BROWSER_UPDATE) {
|
|
1026 | - JSWINDOWACTORS.AboutTBUpdate = {
|
|
1027 | - parent: {
|
|
1028 | - esModuleURI: "resource:///actors/AboutTBUpdateParent.sys.mjs",
|
|
1029 | - },
|
|
1030 | - child: {
|
|
1031 | - esModuleURI: "resource:///actors/AboutTBUpdateChild.sys.mjs",
|
|
1032 | - events: {
|
|
1033 | - DOMWindowCreated: { capture: true },
|
|
1034 | - },
|
|
1035 | - },
|
|
1036 | - matches: ["about:tbupdate"],
|
|
1037 | - };
|
|
1038 | -}
|
|
1039 | - |
|
1040 | 1025 | ChromeUtils.defineLazyGetter(
|
1041 | 1026 | lazy,
|
1042 | 1027 | "WeaveService",
|
... | ... | @@ -166,13 +166,6 @@ static const RedirEntry kRedirMap[] = { |
166 | 166 | nsIAboutModule::URI_MUST_LOAD_IN_CHILD | nsIAboutModule::ALLOW_SCRIPT |
|
167 | 167 | nsIAboutModule::URI_CAN_LOAD_IN_PRIVILEGEDABOUT_PROCESS |
|
168 | 168 | nsIAboutModule::HIDE_FROM_ABOUTABOUT},
|
169 | -#ifdef BASE_BROWSER_UPDATE
|
|
170 | - {"tbupdate", "chrome://browser/content/abouttbupdate/aboutTBUpdate.xhtml",
|
|
171 | - nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
|
|
172 | - nsIAboutModule::URI_MUST_LOAD_IN_CHILD | nsIAboutModule::ALLOW_SCRIPT |
|
|
173 | - nsIAboutModule::HIDE_FROM_ABOUTABOUT |
|
|
174 | - nsIAboutModule::IS_SECURE_CHROME_UI},
|
|
175 | -#endif
|
|
176 | 169 | // The correct URI must be obtained by GetManualChromeURI
|
177 | 170 | {"manual", "about:blank",
|
178 | 171 | nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
|
... | ... | @@ -35,9 +35,6 @@ pages = [ |
35 | 35 | 'welcomeback',
|
36 | 36 | ]
|
37 | 37 | |
38 | -if defined('BASE_BROWSER_UPDATE'):
|
|
39 | - pages.append('tbupdate')
|
|
40 | - |
|
41 | 38 | Classes = [
|
42 | 39 | {
|
43 | 40 | 'cid': '{7e4bb6ad-2fc4-4dc6-89ef-23e8e5ccf980}',
|
... | ... | @@ -237,9 +237,6 @@ export let RemotePageAccessManager = { |
237 | 237 | RPMAddMessageListener: ["*"],
|
238 | 238 | RPMRemoveMessageListener: ["*"],
|
239 | 239 | },
|
240 | - "about:tbupdate": {
|
|
241 | - RPMSendQuery: ["FetchUpdateData"],
|
|
242 | - },
|
|
243 | 240 | "about:torconnect": {
|
244 | 241 | RPMAddMessageListener: [
|
245 | 242 | "torconnect:state-change",
|
1 | -<!-- Copyright (c) 2022, The Tor Project, Inc.
|
|
2 | - - This Source Code Form is subject to the terms of the Mozilla Public
|
|
3 | - - License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
4 | - - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
|
|
5 | - |
|
6 | -<!ENTITY aboutTBUpdate.changelogTitle "Tor Browser Changelog">
|
|
7 | -<!ENTITY aboutTBUpdate.version "Version">
|
|
8 | -<!ENTITY aboutTBUpdate.releaseDate "Release Date">
|
|
9 | -<!ENTITY aboutTBUpdate.releaseNotes "Release Notes">
|
|
10 | -<!-- LOCALIZATION NOTE: the following entities are used to create the link to
|
|
11 | - - obtain more information about the latest update.
|
|
12 | - - The markup on the page looks like this:
|
|
13 | - - &aboutTBUpdate.linkPrefix;<a href="...">&aboutTBUpdate.linkLabel;</a>&aboutTBUpdate.linkSuffix;
|
|
14 | - - So, linkPrefix is what precedes the link, linkLabel is the link itself,
|
|
15 | - - and linkSuffix is a text after the link. -->
|
|
16 | -<!ENTITY aboutTBUpdate.linkPrefix "For the most up-to-date information about this release, ">
|
|
17 | -<!ENTITY aboutTBUpdate.linkLabel "visit our website">
|
|
18 | -<!ENTITY aboutTBUpdate.linkSuffix "."> |
... | ... | @@ -7,8 +7,5 @@ torbutton.jar: |
7 | 7 | # browser branding
|
8 | 8 | % override chrome://branding/locale/brand.properties chrome://torbutton/locale/brand.properties
|
9 | 9 | |
10 | -# Strings for the about:tbupdate page
|
|
11 | -% override chrome://browser/locale/aboutTBUpdate.dtd chrome://torbutton/locale/aboutTBUpdate.dtd
|
|
12 | - |
|
13 | 10 | % locale torbutton en-US %locale/en-US/
|
14 | 11 | locale/en-US/ (chrome/locale/en-US/*) |