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/*) |