tbb-commits
Threads by month
- ----- 2025 -----
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- 1 participants
- 18498 discussions

[tor-browser-build/master] Bug 28618: Set MOZILLA_OFFICIAL for Windows build
by gk@torproject.org 23 Jan '19
by gk@torproject.org 23 Jan '19
23 Jan '19
commit cdf65c9b5b0f8533c78b4450e20ba4743a3a0f31
Author: Georg Koppen <gk(a)torproject.org>
Date: Thu Jan 17 07:34:19 2019 +0000
Bug 28618: Set MOZILLA_OFFICIAL for Windows build
---
projects/firefox/1464084.patch | 73 ------------------------------------------
projects/firefox/1467041.patch | 23 -------------
projects/firefox/build | 2 --
projects/firefox/config | 4 ---
4 files changed, 102 deletions(-)
diff --git a/projects/firefox/1464084.patch b/projects/firefox/1464084.patch
deleted file mode 100644
index 524cb7f..0000000
--- a/projects/firefox/1464084.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From 1a1cc016c8f6ff83ea057ee6fe6838b89c382210 Mon Sep 17 00:00:00 2001
-From: Georg Koppen <gk(a)torproject.org>
-Date: Sun, 24 Jun 2018 19:36:35 +0000
-Subject: [PATCH 1/2] Revert "Bug 1464084 - Don't export
- std::thread::_M_start_thread symbols with --enable-stdcxx-compat. r=froydnj,
- a=RyanVM"
-
-This reverts commit 655e5f1d95e0d5ecd037f36dbe533372130e5621.
-
-diff --git a/build/unix/stdc++compat/hide_std.ld b/build/unix/stdc++compat/hide_std.ld
-deleted file mode 100644
-index 4b3400b0f327..000000000000
---- a/build/unix/stdc++compat/hide_std.ld
-+++ /dev/null
-@@ -1,5 +0,0 @@
--hidden {
-- local:
-- # std::thread::_M_start_thread(...)
-- _ZNSt6thread15_M_start_thread*;
--};
-diff --git a/build/unix/stdc++compat/moz.build b/build/unix/stdc++compat/moz.build
-index 4444d0c4f297..20517a1caef5 100644
---- a/build/unix/stdc++compat/moz.build
-+++ b/build/unix/stdc++compat/moz.build
-@@ -23,5 +23,3 @@ COMPILE_FLAGS['CLANG_PLUGIN'] = []
-
- DEFINES['MOZ_LIBSTDCXX_VERSION'] = CONFIG['MOZ_LIBSTDCXX_TARGET_VERSION']
- HOST_DEFINES['MOZ_LIBSTDCXX_VERSION'] = CONFIG['MOZ_LIBSTDCXX_HOST_VERSION']
--
--OS_LIBS += ['-Wl,--version-script,%s/hide_std.ld' % SRCDIR]
-diff --git a/python/mozbuild/mozbuild/action/generate_symbols_file.py b/python/mozbuild/mozbuild/action/generate_symbols_file.py
-index bf1ae917a2d0..f118060f47cf 100644
---- a/python/mozbuild/mozbuild/action/generate_symbols_file.py
-+++ b/python/mozbuild/mozbuild/action/generate_symbols_file.py
-@@ -42,8 +42,6 @@ def generate_symbols_file(output, *args):
-
- symbols = [s.strip() for s in pp.out.getvalue().splitlines() if s.strip()]
-
-- libname, ext = os.path.splitext(os.path.basename(output.name))
--
- if buildconfig.substs['OS_TARGET'] == 'WINNT':
- # A def file is generated for MSVC link.exe that looks like the
- # following:
-@@ -68,13 +66,14 @@ def generate_symbols_file(output, *args):
- # those platforms, and to DATA on Windows, so that the "DATA" part
- # is, in fact, part of the symbol name as far as the symbols variable
- # is concerned.
-+ libname, ext = os.path.splitext(os.path.basename(output.name))
- assert ext == '.def'
- output.write('LIBRARY %s\nEXPORTS\n %s\n'
- % (libname, '\n '.join(symbols)))
- elif buildconfig.substs['GCC_USE_GNU_LD']:
- # A linker version script is generated for GNU LD that looks like the
- # following:
-- # liblibrary.so {
-+ # {
- # global:
- # symbol1;
- # symbol2;
-@@ -82,8 +81,8 @@ def generate_symbols_file(output, *args):
- # local:
- # *;
- # };
-- output.write('%s {\nglobal:\n %s;\nlocal:\n *;\n};'
-- % (libname, ';\n '.join(symbols)))
-+ output.write('{\nglobal:\n %s;\nlocal:\n *;\n};'
-+ % ';\n '.join(symbols))
- elif buildconfig.substs['OS_TARGET'] == 'Darwin':
- # A list of symbols is generated for Apple ld that simply lists all
- # symbols, with an underscore prefix.
---
-2.17.1
-
diff --git a/projects/firefox/1467041.patch b/projects/firefox/1467041.patch
deleted file mode 100644
index a31e2e0..0000000
--- a/projects/firefox/1467041.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From 8d940fed5975400910c29037a6c575260d3caa22 Mon Sep 17 00:00:00 2001
-From: Georg Koppen <gk(a)torproject.org>
-Date: Sun, 24 Jun 2018 19:37:55 +0000
-Subject: [PATCH 2/2] Revert "Bug 1467041 - Default to --enable-release when
- milestone is beta/release. r=froydnj, a=RyanVM"
-
-This reverts commit b1f09cd8f4a1abf13f85a2353ac1b9711200b0e5.
-
-diff --git a/build/moz.configure/toolchain.configure b/build/moz.configure/toolchain.configure
-index 67007c8dcf7c..a1e443019748 100755
---- a/build/moz.configure/toolchain.configure
-+++ b/build/moz.configure/toolchain.configure
-@@ -1387,7 +1387,6 @@ imply_option('--enable-release', mozilla_official)
- imply_option('--enable-release', depends_if('MOZ_AUTOMATION')(lambda x: True))
-
- js_option('--enable-release',
-- default=milestone.is_release_or_beta,
- help='Build with more conservative, release engineering-oriented '
- 'options. This may slow down builds.')
-
---
-2.17.1
-
diff --git a/projects/firefox/build b/projects/firefox/build
index b9d9d5a..f6f3365 100644
--- a/projects/firefox/build
+++ b/projects/firefox/build
@@ -151,8 +151,6 @@ fi
[% IF c("var/windows") %]
patch -p1 < $rootdir/nsis-uninstall.patch
- patch -p1 < $rootdir/1464084.patch
- patch -p1 < $rootdir/1467041.patch
[% END -%]
rm -f configure
diff --git a/projects/firefox/config b/projects/firefox/config
index 639d504..0e91d38 100644
--- a/projects/firefox/config
+++ b/projects/firefox/config
@@ -114,10 +114,6 @@ input_files:
enable: '[% c("var/windows") %]'
- filename: nsis-uninstall.patch
enable: '[% c("var/windows") %]'
- - filename: 1464084.patch
- enable: '[% c("var/windows") %]'
- - filename: 1467041.patch
- enable: '[% c("var/windows") %]'
- project: rust
name: rust
- project: llvm
1
0
commit 55556eb3dd1869980fe733d56647e0307dd66fa1
Merge: 031ecd7 cdf65c9
Author: Georg Koppen <gk(a)torproject.org>
Date: Wed Jan 23 13:18:40 2019 +0000
Merge branch 'bug_28168_v3'
Which should have been "bug_28618_v3", but the changes are okay at
least...
projects/firefox/1464084.patch | 73 -------------------------------
projects/firefox/1467041.patch | 23 ----------
projects/firefox/build | 2 -
projects/firefox/config | 4 --
projects/firefox/mozconfig-windows-i686 | 1 +
projects/firefox/mozconfig-windows-x86_64 | 1 +
6 files changed, 2 insertions(+), 102 deletions(-)
1
0

[tor-browser/tor-browser-60.4.0esr-8.5-1] Revert "Bug 27865: Fix start-up crashes on Windows"
by gk@torproject.org 23 Jan '19
by gk@torproject.org 23 Jan '19
23 Jan '19
commit 9daf30f059baff3af2f5b26ab6f60853f19516b2
Author: Georg Koppen <gk(a)torproject.org>
Date: Thu Jan 17 07:27:24 2019 +0000
Revert "Bug 27865: Fix start-up crashes on Windows"
This reverts commit 59261e53591c159c10bcef78dc39478fbb270f77.
After bug 26148 landed we get the crash fixes in binutils, which are
available starting with 2.27.
---
build/moz.configure/toolchain.configure | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/build/moz.configure/toolchain.configure b/build/moz.configure/toolchain.configure
index 008193c6c945..67007c8dcf7c 100755
--- a/build/moz.configure/toolchain.configure
+++ b/build/moz.configure/toolchain.configure
@@ -1382,10 +1382,8 @@ option(env='RUSTFLAGS',
help='Rust compiler flags')
set_config('RUSTFLAGS', depends('RUSTFLAGS')(lambda flags: flags))
-if target.os != 'WINNT':
- imply_option('--enable-release', mozilla_official)
-else:
- imply_option('--enable-release', False)
+
+imply_option('--enable-release', mozilla_official)
imply_option('--enable-release', depends_if('MOZ_AUTOMATION')(lambda x: True))
js_option('--enable-release',
1
0

[tor-browser/tor-browser-60.4.0esr-8.5-1] squash! Bug 4234: Use the Firefox Update Process for Tor Browser.
by gk@torproject.org 23 Jan '19
by gk@torproject.org 23 Jan '19
23 Jan '19
commit 6a9c962b2316c6ede976faaa36294a97b121e382
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Wed Nov 28 09:56:25 2018 -0500
squash! Bug 4234: Use the Firefox Update Process for Tor Browser.
Also fix #27828: "Check for Tor Browser update" doesn't seem to do anything.
---
toolkit/mozapps/update/nsUpdateService.js | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/toolkit/mozapps/update/nsUpdateService.js b/toolkit/mozapps/update/nsUpdateService.js
index 609f1e19f524..b2a4e82cf241 100644
--- a/toolkit/mozapps/update/nsUpdateService.js
+++ b/toolkit/mozapps/update/nsUpdateService.js
@@ -4011,7 +4011,15 @@ UpdatePrompt.prototype = {
"an update was downloaded. topic: update-downloaded, status: " + update.state);
Services.obs.notifyObservers(update, "update-downloaded", update.state);
- if (Services.prefs.getBoolPref(PREF_APP_UPDATE_DOORHANGER, false)) {
+ if (background && Services.prefs.getBoolPref(PREF_APP_UPDATE_DOORHANGER, false)) {
+ // To fix https://trac.torproject.org/projects/tor/ticket/27828
+ // ("Check for Tor Browser update" doesn't seem to do anything), in
+ // Tor Browser we only return here when the background parameter is
+ // true. This causes the update wizard XUL window to (correctly) be
+ // opened in response to "Check for Tor Browser Update."
+ // This change does not alter the behavior of any existing
+ // update-related UI because all callers of showUpdateDownloaded()
+ // other than Torbutton pass true for the background parameter.
return;
}
1
0

[tor-browser-build/master] Bug 28546: Rebrand Tor Browser's Window's Installer
by boklm@torproject.org 23 Jan '19
by boklm@torproject.org 23 Jan '19
23 Jan '19
commit 031ecd732636c627ea3b6343869d96ccbf3d2df0
Author: Richard Pospesel <richard(a)torproject.org>
Date: Wed Nov 28 16:13:50 2018 -0800
Bug 28546: Rebrand Tor Browser's Window's Installer
This patch passes in the build channel to makensis as a !define so that
the tbb-windows-installer torbrowser.nsi installer script can use
appropriate branding and set branding-specific names and install paths.
---
projects/tbb-windows-installer/config | 2 +-
projects/tor-browser/build | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/projects/tbb-windows-installer/config b/projects/tbb-windows-installer/config
index a990229..0ec7b0a 100644
--- a/projects/tbb-windows-installer/config
+++ b/projects/tbb-windows-installer/config
@@ -1,5 +1,5 @@
# vim: filetype=yaml sw=2
-version: 0.5
+version: 0.6
git_url: https://github.com/moba/tbb-windows-installer.git
git_hash: 'v[% c("version") %]'
tag_gpg_id: 1
diff --git a/projects/tor-browser/build b/projects/tor-browser/build
index 4661f7a..bc663c2 100644
--- a/projects/tor-browser/build
+++ b/projects/tor-browser/build
@@ -303,7 +303,7 @@ cd $distdir
[% ELSIF c("var/windows") %]
find "$PKG_DIR" -exec [% c("var/touch") %] {} \;
pushd "$PKG_DIR"
- makensis torbrowser.nsi
+ makensis -DCHANNEL=[% c("var/channel") %] torbrowser.nsi
# Working around NSIS braindamage
mv torbrowser-install.exe torbrowser-install-tmp.exe
python $rootdir/pe_checksum_fix.py
@@ -392,7 +392,7 @@ cp $rootdir/[% c('input_files_by_name/firefox') %]/mar-tools-*.zip "$OUTDIR"/
[% ELSIF c("var/windows") %]
find "[% tbdir %]" -exec [% c("var/touch") %] {} \;
pushd "[% tbdir %]"
- makensis torbrowser.nsi
+ makensis -DCHANNEL=[% c("var/channel") %] torbrowser.nsi
# Working around NSIS braindamage
mv torbrowser-install.exe torbrowser-install-tmp.exe
python $rootdir/pe_checksum_fix.py
1
0

[torbutton/master] Bug 28885: notify users that update is downloading
by gk@torproject.org 23 Jan '19
by gk@torproject.org 23 Jan '19
23 Jan '19
commit 15c369f661fd360c9715b4dd7da147f7aa8f2443
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Wed Jan 16 14:48:35 2019 -0500
Bug 28885: notify users that update is downloading
Add "Downloading update" property string.
---
src/chrome/locale/en-US/torbutton.properties | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/chrome/locale/en-US/torbutton.properties b/src/chrome/locale/en-US/torbutton.properties
index f11fb5bf..ea7a7d63 100644
--- a/src/chrome/locale/en-US/torbutton.properties
+++ b/src/chrome/locale/en-US/torbutton.properties
@@ -50,6 +50,11 @@ profileReadOnlyMac=You cannot run %S from a read-only file system. Please copy
profileAccessDenied=%S does not have permission to access the profile. Please adjust your file system permissions and try again.
profileMigrationFailed=Migration of your existing %S profile failed.\nNew settings will be used.
+# "Downloading update" string for the hamburger menu (see #28885).
+# This string is kept here for ease of translation.
+# LOCALIZATION NOTE: %S is the application name.
+updateDownloadingPanelUILabel=Downloading %S update
+
# .Onion Page Info prompt. Strings are kept here for ease of translation.
pageInfo_OnionEncryptionWithBitsAndProtocol=Connection Encrypted (Onion Service, %1$S, %2$S bit keys, %3$S)
pageInfo_OnionEncryption=Connection Encrypted (Onion Service)
1
0

[tor-browser/tor-browser-60.4.0esr-8.5-1] Bug 1469916, r=ckerschb, jkt
by gk@torproject.org 23 Jan '19
by gk@torproject.org 23 Jan '19
23 Jan '19
commit 23c6e68b1208d20ea342d3d4693f1ea7c1050661
Author: Gijs Kruitbosch <gijskruitbosch(a)gmail.com>
Date: Fri Jun 22 15:41:39 2018 +0100
Bug 1469916, r=ckerschb,jkt
--HG--
extra : rebase_source : 180442deeef92f0e9202d76c5e4e46b630072d99
extra : source : be11a32900298eb6fd4d18ad21b9a699995254c3
---
browser/base/content/nsContextMenu.js | 22 +++--
browser/base/content/pageinfo/pageInfo.js | 3 +-
browser/base/content/utilityOverlay.js | 3 +-
browser/components/shell/nsMacShellService.cpp | 4 +-
devtools/shared/gcli/commands/screenshot.js | 3 +-
devtools/shim/devtools-startup.js | 22 ++++-
dom/base/nsContentAreaDragDrop.cpp | 8 +-
dom/base/nsContentAreaDragDrop.h | 1 +
dom/tests/browser/browser.ini | 4 +
dom/tests/browser/browser_persist_cookies.js | 94 ++++++++++++++++++++++
dom/tests/browser/mimeme.sjs | 26 ++++++
.../browser/set-samesite-cookies-and-redirect.sjs | 33 ++++++++
.../PWebBrowserPersistDocument.ipdl | 2 +
.../WebBrowserPersistDocumentChild.cpp | 5 ++
.../WebBrowserPersistLocalDocument.cpp | 8 ++
.../WebBrowserPersistRemoteDocument.cpp | 13 +++
.../WebBrowserPersistRemoteDocument.h | 3 +
dom/webbrowserpersist/nsIWebBrowserPersist.idl | 15 ++--
.../nsIWebBrowserPersistDocument.idl | 2 +
dom/webbrowserpersist/nsWebBrowserPersist.cpp | 45 ++++++-----
dom/webbrowserpersist/nsWebBrowserPersist.h | 3 +-
toolkit/components/browser/nsWebBrowser.cpp | 12 ++-
toolkit/components/downloads/test/unit/head.js | 3 +-
.../viewsource/content/viewSourceUtils.js | 6 +-
toolkit/content/contentAreaUtils.js | 28 +++++--
.../content/tests/browser/browser_saveImageURL.js | 3 +-
.../mozapps/extensions/LightweightThemeManager.jsm | 3 +-
27 files changed, 314 insertions(+), 60 deletions(-)
diff --git a/browser/base/content/nsContextMenu.js b/browser/base/content/nsContextMenu.js
index 368d0475ac34..5cebd9c38c56 100644
--- a/browser/base/content/nsContextMenu.js
+++ b/browser/base/content/nsContextMenu.js
@@ -986,12 +986,22 @@ nsContextMenu.prototype = {
target: this.target,
});
+ // Cache this because we fetch the data async
+ let {documentURIObject} = gContextMenuContentData;
+
let onMessage = (message) => {
mm.removeMessageListener("ContextMenu:SaveVideoFrameAsImage:Result", onMessage);
+ // FIXME can we switch this to a blob URL?
let dataURL = message.data.dataURL;
- saveImageURL(dataURL, name, "SaveImageTitle", true, false,
- document.documentURIObject, null, null, null,
- isPrivate);
+ saveImageURL(dataURL, name, "SaveImageTitle",
+ true, // bypass cache
+ false, // don't skip prompt for where to save
+ documentURIObject, // referrer
+ null, // document
+ null, // content type
+ null, // content disposition
+ isPrivate,
+ this.principal);
};
mm.addMessageListener("ContextMenu:SaveVideoFrameAsImage:Result", onMessage);
},
@@ -1228,13 +1238,15 @@ nsContextMenu.prototype = {
this._canvasToBlobURL(this.target).then(function(blobURL) {
saveImageURL(blobURL, "canvas.png", "SaveImageTitle",
true, false, referrerURI, null, null, null,
- isPrivate);
+ isPrivate,
+ document.nodePrincipal /* system, because blob: */);
}, Cu.reportError);
} else if (this.onImage) {
urlSecurityCheck(this.mediaURL, this.principal);
saveImageURL(this.mediaURL, null, "SaveImageTitle", false,
false, referrerURI, null, gContextMenuContentData.contentType,
- gContextMenuContentData.contentDisposition, isPrivate);
+ gContextMenuContentData.contentDisposition, isPrivate,
+ this.principal);
} else if (this.onVideo || this.onAudio) {
urlSecurityCheck(this.mediaURL, this.principal);
var dialogTitle = this.onVideo ? "SaveVideoTitle" : "SaveAudioTitle";
diff --git a/browser/base/content/pageinfo/pageInfo.js b/browser/base/content/pageinfo/pageInfo.js
index 86f548c74494..405b9443342d 100644
--- a/browser/base/content/pageinfo/pageInfo.js
+++ b/browser/base/content/pageinfo/pageInfo.js
@@ -704,7 +704,8 @@ function saveMedia() {
var saveAnImage = function(aURIString, aChosenData, aBaseURI) {
uniqueFile(aChosenData.file);
internalSave(aURIString, null, null, null, null, false, "SaveImageTitle",
- aChosenData, aBaseURI, null, false, null, gDocInfo.isContentWindowPrivate);
+ aChosenData, aBaseURI, null, false, null,
+ gDocInfo.isContentWindowPrivate, gDocInfo.principal);
};
for (var i = 0; i < rowArray.length; i++) {
diff --git a/browser/base/content/utilityOverlay.js b/browser/base/content/utilityOverlay.js
index b73a01a0b0f3..a1ab9ddd1c9b 100644
--- a/browser/base/content/utilityOverlay.js
+++ b/browser/base/content/utilityOverlay.js
@@ -258,7 +258,8 @@ function openLinkIn(url, where, params) {
// ContentClick.jsm passes isContentWindowPrivate for saveURL instead of passing a CPOW initiatingDoc
if ("isContentWindowPrivate" in params) {
- saveURL(url, null, null, true, true, aNoReferrer ? null : aReferrerURI, null, params.isContentWindowPrivate);
+ saveURL(url, null, null, true, true, aNoReferrer ? null : aReferrerURI,
+ null, params.isContentWindowPrivate, aPrincipal);
} else {
if (!aInitiatingDoc) {
Cu.reportError("openUILink/openLinkIn was called with " +
diff --git a/browser/components/shell/nsMacShellService.cpp b/browser/components/shell/nsMacShellService.cpp
index 0a2672d8f84b..9b46fb8eca87 100644
--- a/browser/components/shell/nsMacShellService.cpp
+++ b/browser/components/shell/nsMacShellService.cpp
@@ -155,8 +155,8 @@ nsMacShellService::SetDesktopBackground(nsIDOMElement* aElement,
loadContext = do_QueryInterface(docShell);
}
- return wbp->SaveURI(imageURI, nullptr,
- docURI, content->OwnerDoc()->GetReferrerPolicy(),
+ return wbp->SaveURI(imageURI, aElement->NodePrincipal(), nullptr,
+ docURI, aElement->OwnerDoc()->GetReferrerPolicy(),
nullptr, nullptr,
mBackgroundFile, loadContext);
}
diff --git a/devtools/shared/gcli/commands/screenshot.js b/devtools/shared/gcli/commands/screenshot.js
index fc1383225aa1..a64f6527c4c0 100644
--- a/devtools/shared/gcli/commands/screenshot.js
+++ b/devtools/shared/gcli/commands/screenshot.js
@@ -558,7 +558,6 @@ var saveToFile = Task.async(function* (context, reply) {
// the downloads toolbar button when the save is done.
const nsIWBP = Ci.nsIWebBrowserPersist;
const flags = nsIWBP.PERSIST_FLAGS_REPLACE_EXISTING_FILES |
- nsIWBP.PERSIST_FLAGS_FORCE_ALLOW_COOKIES |
nsIWBP.PERSIST_FLAGS_BYPASS_CACHE |
nsIWBP.PERSIST_FLAGS_AUTODETECT_APPLY_CONVERSION;
let isPrivate =
@@ -577,7 +576,9 @@ var saveToFile = Task.async(function* (context, reply) {
isPrivate);
let listener = new DownloadListener(window, tr);
persist.progressListener = listener;
+ const principal = Services.scriptSecurityManager.getSystemPrincipal();
persist.savePrivacyAwareURI(sourceURI,
+ principal,
null,
document.documentURIObject,
Ci.nsIHttpChannel.REFERRER_POLICY_UNSET,
diff --git a/devtools/shim/devtools-startup.js b/devtools/shim/devtools-startup.js
index 9089812048db..3a0211b547a6 100644
--- a/devtools/shim/devtools-startup.js
+++ b/devtools/shim/devtools-startup.js
@@ -43,6 +43,8 @@ ChromeUtils.defineModuleGetter(this, "CustomizableUI",
"resource:///modules/CustomizableUI.jsm");
ChromeUtils.defineModuleGetter(this, "CustomizableWidgets",
"resource:///modules/CustomizableWidgets.jsm");
+ChromeUtils.defineModuleGetter(this, "PrivateBrowsingUtils",
+ "resource://gre/modules/PrivateBrowsingUtils.jsm");
XPCOMUtils.defineLazyGetter(this, "StartupBundle", function () {
const url = "chrome://devtools-shim/locale/startup.properties";
@@ -901,16 +903,32 @@ const JsonView = {
// Save original contents
chrome.saveBrowser(browser);
} else {
+ if (!message.data.startsWith("blob:null") || !browser.contentPrincipal.isNullPrincipal) {
+ Cu.reportError("Got invalid request to save JSON data");
+ return;
+ }
// The following code emulates saveBrowser, but:
// - Uses the given blob URL containing the custom contents to save.
// - Obtains the file name from the URL of the document, not the blob.
+ // - avoids passing the document and explicitly passes system principal.
+ // We have a blob created by a null principal to save, and the null
+ // principal is from the child. Null principals don't survive crossing
+ // over IPC, so there's no other principal that'll work.
let persistable = browser.frameLoader;
persistable.startPersistence(0, {
onDocumentReady(doc) {
let uri = chrome.makeURI(doc.documentURI, doc.characterSet);
let filename = chrome.getDefaultFileName(undefined, uri, doc, null);
- chrome.internalSave(message.data, doc, filename, null, doc.contentType,
- false, null, null, null, doc, false, null, undefined);
+ chrome.internalSave(message.data, null, filename, null, doc.contentType,
+ false /* bypass cache */,
+ null, /* filepicker title key */
+ null, /* file chosen */
+ null, /* referrer */
+ null, /* initiating document */
+ false, /* don't skip prompt for a location */
+ null, /* cache key */
+ PrivateBrowsingUtils.isBrowserPrivate(browser), /* private browsing ? */
+ Services.scriptSecurityManager.getSystemPrincipal());
},
onError(status) {
throw new Error("JSON Viewer's onSave failed in startPersistence");
diff --git a/dom/base/nsContentAreaDragDrop.cpp b/dom/base/nsContentAreaDragDrop.cpp
index 2b315267464d..55ed2d5aa480 100644
--- a/dom/base/nsContentAreaDragDrop.cpp
+++ b/dom/base/nsContentAreaDragDrop.cpp
@@ -146,6 +146,7 @@ NS_IMPL_ISUPPORTS(nsContentAreaDragDropDataProvider, nsIFlavorDataProvider)
// into the file system
nsresult
nsContentAreaDragDropDataProvider::SaveURIToFile(nsIURI* inSourceURI,
+ nsIPrincipal* inTriggeringPrincipal,
nsIFile* inDestFile,
bool isPrivate)
{
@@ -167,7 +168,8 @@ nsContentAreaDragDropDataProvider::SaveURIToFile(nsIURI* inSourceURI,
persist->SetPersistFlags(nsIWebBrowserPersist::PERSIST_FLAGS_AUTODETECT_APPLY_CONVERSION);
// referrer policy can be anything since the referrer is nullptr
- return persist->SavePrivacyAwareURI(inSourceURI, nullptr, nullptr,
+ return persist->SavePrivacyAwareURI(inSourceURI,
+ inTriggeringPrincipal, nullptr, nullptr,
mozilla::net::RP_Unset,
nullptr, nullptr,
inDestFile, isPrivate);
@@ -347,7 +349,9 @@ nsContentAreaDragDropDataProvider::GetFlavorData(nsITransferable *aTransferable,
bool isPrivate;
aTransferable->GetIsPrivateData(&isPrivate);
- rv = SaveURIToFile(sourceURI, file, isPrivate);
+ nsCOMPtr<nsIPrincipal> principal;
+ aTransferable->GetRequestingPrincipal(getter_AddRefs(principal));
+ rv = SaveURIToFile(sourceURI, principal, file, isPrivate);
// send back an nsIFile
if (NS_SUCCEEDED(rv)) {
CallQueryInterface(file, aData);
diff --git a/dom/base/nsContentAreaDragDrop.h b/dom/base/nsContentAreaDragDrop.h
index 978e74905414..eb3416dbfbf7 100644
--- a/dom/base/nsContentAreaDragDrop.h
+++ b/dom/base/nsContentAreaDragDrop.h
@@ -77,6 +77,7 @@ public:
NS_DECL_NSIFLAVORDATAPROVIDER
nsresult SaveURIToFile(nsIURI* inSourceURI,
+ nsIPrincipal* inTriggeringPrincipal,
nsIFile* inDestFile, bool isPrivate);
};
diff --git a/dom/tests/browser/browser.ini b/dom/tests/browser/browser.ini
index e1d853f1af5b..11cf9ebf2346 100644
--- a/dom/tests/browser/browser.ini
+++ b/dom/tests/browser/browser.ini
@@ -55,6 +55,10 @@ skip-if = !e10s || (os == "win" && processor == "x86") # Large-Allocation requir
[browser_localStorage_e10s.js]
skip-if = !e10s # This is a test of e10s functionality.
[browser_localStorage_privatestorageevent.js]
+[browser_persist_cookies.js]
+support-files =
+ set-samesite-cookies-and-redirect.sjs
+ mimeme.sjs
[browser_test_focus_after_modal_state.js]
support-files =
focus_after_prompt.html
diff --git a/dom/tests/browser/browser_persist_cookies.js b/dom/tests/browser/browser_persist_cookies.js
new file mode 100644
index 000000000000..78f3966f3bbc
--- /dev/null
+++ b/dom/tests/browser/browser_persist_cookies.js
@@ -0,0 +1,94 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+const TEST_PATH = getRootDirectory(gTestPath).replace("chrome://mochitests/content", "https://example.org");
+const TEST_PATH2 = getRootDirectory(gTestPath).replace("chrome://mochitests/content", "https://example.com");
+
+var MockFilePicker = SpecialPowers.MockFilePicker;
+MockFilePicker.init(window);
+
+registerCleanupFunction(async function() {
+ info("Running the cleanup code");
+ MockFilePicker.cleanup();
+ Services.obs.removeObserver(checkRequest, "http-on-modify-request");
+ if (gTestDir && gTestDir.exists()) {
+ // On Windows, sometimes nsIFile.remove() throws, probably because we're
+ // still writing to the directory we're trying to remove, despite
+ // waiting for the download to complete. Just retry a bit later...
+ let succeeded = false;
+ while (!succeeded) {
+ try {
+ gTestDir.remove(true);
+ succeeded = true;
+ } catch (ex) {
+ await new Promise(requestAnimationFrame);
+ }
+ }
+ }
+});
+
+let gTestDir = null;
+
+
+function checkRequest(subject) {
+ let httpChannel = subject.QueryInterface(Ci.nsIHttpChannel);
+ let spec = httpChannel.URI.spec;
+ // Ignore initial requests for page that sets cookies and its favicon, which may not have
+ // cookies.
+ if (httpChannel.URI.host == "example.org" && !spec.endsWith("favicon.ico") && !spec.includes("redirect.sjs")) {
+ let cookie = httpChannel.getRequestHeader("cookie");
+ is(cookie.trim(), "normalCookie=true", "Should have correct cookie in request for " + spec);
+ }
+}
+
+function createTemporarySaveDirectory() {
+ var saveDir = Services.dirsvc.get("TmpD", Ci.nsIFile);
+ saveDir.append("testsavedir");
+ if (!saveDir.exists()) {
+ info("create testsavedir!");
+ saveDir.create(Ci.nsIFile.DIRECTORY_TYPE, 0o755);
+ }
+ info("return from createTempSaveDir: " + saveDir.path);
+ return saveDir;
+}
+
+add_task(async function() {
+ await BrowserTestUtils.withNewTab("about:blank", async function(browser) {
+ Services.obs.addObserver(checkRequest, "http-on-modify-request");
+ BrowserTestUtils.loadURI(browser, TEST_PATH + "set-samesite-cookies-and-redirect.sjs");
+ // Test that the original document load doesn't send same-site cookies.
+ await BrowserTestUtils.browserLoaded(browser, true, TEST_PATH2 + "set-samesite-cookies-and-redirect.sjs");
+ // Now check the saved page.
+ // Create the folder the link will be saved into.
+ gTestDir = createTemporarySaveDirectory();
+ let destFile = gTestDir.clone();
+
+ MockFilePicker.displayDirectory = gTestDir;
+ let fileName;
+ MockFilePicker.showCallback = function(fp) {
+ info("showCallback");
+ fileName = fp.defaultString;
+ info("fileName: " + fileName);
+ destFile.append(fileName);
+ info("path: " + destFile.path);
+ MockFilePicker.setFiles([destFile]);
+ MockFilePicker.filterIndex = 0; // kSaveAsType_Complete
+ info("done showCallback");
+ };
+ saveBrowser(browser);
+ await new Promise(async (resolve) => {
+ let dls = await Downloads.getList(Downloads.PUBLIC);
+ dls.addView({
+ onDownloadChanged(download) {
+ if (download.succeeded) {
+ dls.removeView(this);
+ dls.removeFinished();
+ resolve();
+ }
+ }
+ });
+ });
+ });
+});
diff --git a/dom/tests/browser/mimeme.sjs b/dom/tests/browser/mimeme.sjs
new file mode 100644
index 000000000000..9b92548f041d
--- /dev/null
+++ b/dom/tests/browser/mimeme.sjs
@@ -0,0 +1,26 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+function handleRequest(request, response) {
+ let mimeType = request.queryString.match(/type=([a-z]*)/)[1];
+ switch (mimeType) {
+ case "css":
+ response.setHeader("Content-Type", "text/css");
+ response.write("#hi {color: red}");
+ break;
+ case "js":
+ response.setHeader("Content-Type", "application/javascript");
+ response.write("var foo;");
+ break;
+ case "png":
+ response.setHeader("Content-Type", "image/png");
+ response.write("");
+ break;
+ case "html":
+ response.setHeader("Content-Type", "text/html");
+ response.write("<body>I am a subframe</body>");
+ break;
+ }
+}
diff --git a/dom/tests/browser/set-samesite-cookies-and-redirect.sjs b/dom/tests/browser/set-samesite-cookies-and-redirect.sjs
new file mode 100644
index 000000000000..74a494db9dbc
--- /dev/null
+++ b/dom/tests/browser/set-samesite-cookies-and-redirect.sjs
@@ -0,0 +1,33 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+function handleRequest(request, response) {
+ // Set cookies and redirect for .org:
+ if (request.host.endsWith(".org")) {
+ response.setHeader("Set-Cookie", "normalCookie=true; path=/;", true);
+ response.setHeader("Set-Cookie", "laxHeader=true; path=/; SameSite=Lax", true);
+ response.setHeader("Set-Cookie", "strictHeader=true; path=/; SameSite=Strict", true);
+ response.write(`
+ <head>
+ <meta http-equiv='set-cookie' content='laxMeta=true; path=/; SameSite=Lax'>
+ <meta http-equiv='set-cookie' content='strictMeta=true; path=/; SameSite=Strict'>
+ </head>
+ <body>
+ <script>
+ document.cookie = 'laxScript=true; path=/; SameSite=Lax';
+ document.cookie = 'strictScript=true; path=/; SameSite=Strict';
+ location.href = location.href.replace(/\.org/, ".com");
+ </script>
+ </body>`);
+ } else {
+ let baseURI = "https://example.org/" + request.path.replace(/[a-z-]*\.sjs/, "mimeme.sjs?type=");
+ response.write(`
+ <link rel="stylesheet" type="text/css" href="${baseURI}css">
+ <iframe src="${baseURI}html"></iframe>
+ <script src="${baseURI}js"></script>
+ <img src="${baseURI}png">
+ `);
+ }
+}
diff --git a/dom/webbrowserpersist/PWebBrowserPersistDocument.ipdl b/dom/webbrowserpersist/PWebBrowserPersistDocument.ipdl
index ad6332763e68..7c2fc64c53d2 100644
--- a/dom/webbrowserpersist/PWebBrowserPersistDocument.ipdl
+++ b/dom/webbrowserpersist/PWebBrowserPersistDocument.ipdl
@@ -10,6 +10,7 @@ include protocol PFileDescriptorSet;
include protocol PChildToParentStream; //FIXME: bug #792908
include protocol PParentToChildStream; //FIXME: bug #792908
+include PBackgroundSharedTypes;
include IPCStream;
namespace mozilla {
@@ -29,6 +30,7 @@ struct WebBrowserPersistDocumentAttrs {
nsString contentDisposition;
uint32_t cacheKey;
uint32_t persistFlags;
+ PrincipalInfo principal;
};
// IPDL doesn't have tuples, so this gives the pair of strings from
diff --git a/dom/webbrowserpersist/WebBrowserPersistDocumentChild.cpp b/dom/webbrowserpersist/WebBrowserPersistDocumentChild.cpp
index 4a8e31b6f4eb..7b893d145f7a 100644
--- a/dom/webbrowserpersist/WebBrowserPersistDocumentChild.cpp
+++ b/dom/webbrowserpersist/WebBrowserPersistDocumentChild.cpp
@@ -41,6 +41,7 @@ WebBrowserPersistDocumentChild::Start(nsIWebBrowserPersistDocument* aDocument)
return;
}
+ nsCOMPtr<nsIPrincipal> principal;
WebBrowserPersistDocumentAttrs attrs;
nsCOMPtr<nsIInputStream> postDataStream;
#define ENSURE(e) do { \
@@ -60,6 +61,10 @@ WebBrowserPersistDocumentChild::Start(nsIWebBrowserPersistDocument* aDocument)
ENSURE(aDocument->GetContentDisposition(attrs.contentDisposition()));
ENSURE(aDocument->GetCacheKey(&(attrs.cacheKey())));
ENSURE(aDocument->GetPersistFlags(&(attrs.persistFlags())));
+
+ ENSURE(aDocument->GetPrincipal(getter_AddRefs(principal)));
+ ENSURE(ipc::PrincipalToPrincipalInfo(principal, &(attrs.principal())));
+
ENSURE(aDocument->GetPostData(getter_AddRefs(postDataStream)));
#undef ENSURE
diff --git a/dom/webbrowserpersist/WebBrowserPersistLocalDocument.cpp b/dom/webbrowserpersist/WebBrowserPersistLocalDocument.cpp
index d6527e47d7ca..6d706c39f1c2 100644
--- a/dom/webbrowserpersist/WebBrowserPersistLocalDocument.cpp
+++ b/dom/webbrowserpersist/WebBrowserPersistLocalDocument.cpp
@@ -199,6 +199,14 @@ WebBrowserPersistLocalDocument::GetPostData(nsIInputStream** aStream)
return history->GetPostData(aStream);
}
+NS_IMETHODIMP
+WebBrowserPersistLocalDocument::GetPrincipal(nsIPrincipal** aPrincipal)
+{
+ nsCOMPtr<nsIPrincipal> nodePrincipal = mDocument->NodePrincipal();
+ nodePrincipal.forget(aPrincipal);
+ return NS_OK;
+}
+
already_AddRefed<nsISHEntry>
WebBrowserPersistLocalDocument::GetHistory()
{
diff --git a/dom/webbrowserpersist/WebBrowserPersistRemoteDocument.cpp b/dom/webbrowserpersist/WebBrowserPersistRemoteDocument.cpp
index c7dcca8619da..cfe831cfb57d 100644
--- a/dom/webbrowserpersist/WebBrowserPersistRemoteDocument.cpp
+++ b/dom/webbrowserpersist/WebBrowserPersistRemoteDocument.cpp
@@ -9,6 +9,9 @@
#include "WebBrowserPersistResourcesParent.h"
#include "WebBrowserPersistSerializeParent.h"
#include "mozilla/Unused.h"
+#include "mozilla/ipc/BackgroundUtils.h"
+
+#include "nsIPrincipal.h"
namespace mozilla {
@@ -23,6 +26,8 @@ WebBrowserPersistRemoteDocument
, mAttrs(aAttrs)
, mPostData(aPostData)
{
+ nsresult rv;
+ mPrincipal = ipc::PrincipalInfoToPrincipal(mAttrs.principal(), &rv);
}
WebBrowserPersistRemoteDocument::~WebBrowserPersistRemoteDocument()
@@ -133,6 +138,14 @@ WebBrowserPersistRemoteDocument::GetPostData(nsIInputStream** aStream)
}
NS_IMETHODIMP
+WebBrowserPersistRemoteDocument::GetPrincipal(nsIPrincipal** aPrincipal)
+{
+ nsCOMPtr<nsIPrincipal> nodePrincipal = mPrincipal;
+ nodePrincipal.forget(aPrincipal);
+ return NS_OK;
+}
+
+NS_IMETHODIMP
WebBrowserPersistRemoteDocument::ReadResources(nsIWebBrowserPersistResourceVisitor* aVisitor)
{
if (!mActor) {
diff --git a/dom/webbrowserpersist/WebBrowserPersistRemoteDocument.h b/dom/webbrowserpersist/WebBrowserPersistRemoteDocument.h
index 08d435903843..2808ac4b53c0 100644
--- a/dom/webbrowserpersist/WebBrowserPersistRemoteDocument.h
+++ b/dom/webbrowserpersist/WebBrowserPersistRemoteDocument.h
@@ -13,6 +13,8 @@
#include "nsIWebBrowserPersistDocument.h"
#include "nsIInputStream.h"
+class nsIPrincipal;
+
// This class is the XPCOM half of the glue between the
// nsIWebBrowserPersistDocument interface and a remote document; it is
// created by WebBrowserPersistDocumentParent when (and if) it
@@ -40,6 +42,7 @@ private:
WebBrowserPersistDocumentParent* mActor;
Attrs mAttrs;
nsCOMPtr<nsIInputStream> mPostData;
+ nsCOMPtr<nsIPrincipal> mPrincipal;
friend class WebBrowserPersistDocumentParent;
WebBrowserPersistRemoteDocument(WebBrowserPersistDocumentParent* aActor,
diff --git a/dom/webbrowserpersist/nsIWebBrowserPersist.idl b/dom/webbrowserpersist/nsIWebBrowserPersist.idl
index 8de84f5e2904..9573a024eebf 100644
--- a/dom/webbrowserpersist/nsIWebBrowserPersist.idl
+++ b/dom/webbrowserpersist/nsIWebBrowserPersist.idl
@@ -13,6 +13,7 @@ interface nsIWebProgressListener;
interface nsIFile;
interface nsIChannel;
interface nsILoadContext;
+interface nsIPrincipal;
/**
* Interface for persisting DOM documents and URIs to local or remote storage.
@@ -67,12 +68,6 @@ interface nsIWebBrowserPersist : nsICancelable
const unsigned long PERSIST_FLAGS_APPEND_TO_FILE = 32768;
/**
- * Force relevant cookies to be sent with this load even if normally they
- * wouldn't be.
- */
- const unsigned long PERSIST_FLAGS_FORCE_ALLOW_COOKIES = 65536;
-
- /**
* Flags governing how data is fetched and saved from the network.
* It is best to set this value explicitly unless you are prepared
* to accept the default values.
@@ -117,6 +112,8 @@ interface nsIWebBrowserPersist : nsICancelable
* @param aURI URI to save to file. Some implementations of this interface
* may also support <CODE>nullptr</CODE> to imply the currently
* loaded URI.
+ * @param aTriggeringPrincipal
+ * The triggering principal for the URI we're saving.
* @param aCacheKey An object representing the URI in the cache or
* <CODE>nullptr</CODE>. This can be a necko cache key,
* an nsIWebPageDescriptor, or the currentDescriptor of an
@@ -146,7 +143,8 @@ interface nsIWebBrowserPersist : nsICancelable
*
* @throws NS_ERROR_INVALID_ARG One or more arguments was invalid.
*/
- void saveURI(in nsIURI aURI, in nsISupports aCacheKey,
+ void saveURI(in nsIURI aURI, in nsIPrincipal aTriggeringPrincipal,
+ in nsISupports aCacheKey,
in nsIURI aReferrer, in unsigned long aReferrerPolicy,
in nsIInputStream aPostData,
in string aExtraHeaders, in nsISupports aFile,
@@ -158,7 +156,8 @@ interface nsIWebBrowserPersist : nsICancelable
* of intermediate data, etc.)
* @see saveURI for all other parameter descriptions
*/
- void savePrivacyAwareURI(in nsIURI aURI, in nsISupports aCacheKey,
+ void savePrivacyAwareURI(in nsIURI aURI,
+ in nsIPrincipal aTriggeringPrincipal, in nsISupports aCacheKey,
in nsIURI aReferrer, in unsigned long aReferrerPolicy,
in nsIInputStream aPostData,
in string aExtraHeaders, in nsISupports aFile,
diff --git a/dom/webbrowserpersist/nsIWebBrowserPersistDocument.idl b/dom/webbrowserpersist/nsIWebBrowserPersistDocument.idl
index ba5bea8b2906..f7aa146766d0 100644
--- a/dom/webbrowserpersist/nsIWebBrowserPersistDocument.idl
+++ b/dom/webbrowserpersist/nsIWebBrowserPersistDocument.idl
@@ -9,6 +9,7 @@
interface nsIDOMDocument;
interface nsIInputStream;
interface nsIOutputStream;
+interface nsIPrincipal;
interface nsITabParent;
interface nsIWebBrowserPersistResourceVisitor;
interface nsIWebBrowserPersistWriteCompletion;
@@ -61,6 +62,7 @@ interface nsIWebBrowserPersistDocument : nsISupports
readonly attribute AString referrer;
readonly attribute AString contentDisposition;
readonly attribute nsIInputStream postData;
+ readonly attribute nsIPrincipal principal;
/**
* The cache key. Unlike in nsISHEntry, where it's wrapped in an
diff --git a/dom/webbrowserpersist/nsWebBrowserPersist.cpp b/dom/webbrowserpersist/nsWebBrowserPersist.cpp
index fd6d9d0d9315..12e6c41c37d8 100644
--- a/dom/webbrowserpersist/nsWebBrowserPersist.cpp
+++ b/dom/webbrowserpersist/nsWebBrowserPersist.cpp
@@ -84,6 +84,7 @@ struct nsWebBrowserPersist::DocData
nsCOMPtr<nsIURI> mBaseURI;
nsCOMPtr<nsIWebBrowserPersistDocument> mDocument;
nsCOMPtr<nsIURI> mFile;
+ nsCOMPtr<nsIPrincipal> mPrincipal;
nsCString mCharset;
};
@@ -414,18 +415,20 @@ NS_IMETHODIMP nsWebBrowserPersist::SetProgressListener(
}
NS_IMETHODIMP nsWebBrowserPersist::SaveURI(
- nsIURI *aURI, nsISupports *aCacheKey,
+ nsIURI *aURI, nsIPrincipal *aPrincipal, nsISupports *aCacheKey,
nsIURI *aReferrer, uint32_t aReferrerPolicy,
nsIInputStream *aPostData, const char *aExtraHeaders,
nsISupports *aFile, nsILoadContext* aPrivacyContext)
{
- return SavePrivacyAwareURI(aURI, aCacheKey, aReferrer, aReferrerPolicy,
- aPostData, aExtraHeaders, aFile,
- aPrivacyContext && aPrivacyContext->UsePrivateBrowsing());
+ bool isPrivate =
+ aPrivacyContext && aPrivacyContext->UsePrivateBrowsing();
+ return SavePrivacyAwareURI(aURI, aPrincipal, aCacheKey,
+ aReferrer, aReferrerPolicy,
+ aPostData, aExtraHeaders, aFile, isPrivate);
}
NS_IMETHODIMP nsWebBrowserPersist::SavePrivacyAwareURI(
- nsIURI *aURI, nsISupports *aCacheKey,
+ nsIURI *aURI, nsIPrincipal *aPrincipal, nsISupports *aCacheKey,
nsIURI *aReferrer, uint32_t aReferrerPolicy,
nsIInputStream *aPostData, const char *aExtraHeaders,
nsISupports *aFile, bool aIsPrivate)
@@ -440,8 +443,10 @@ NS_IMETHODIMP nsWebBrowserPersist::SavePrivacyAwareURI(
// SaveURI doesn't like broken uris.
mPersistFlags |= PERSIST_FLAGS_FAIL_ON_BROKEN_LINKS;
- rv = SaveURIInternal(aURI, aCacheKey, aReferrer, aReferrerPolicy,
- aPostData, aExtraHeaders, fileAsURI, false, aIsPrivate);
+ rv = SaveURIInternal(aURI, aPrincipal, aCacheKey,
+ aReferrer, aReferrerPolicy,
+ aPostData, aExtraHeaders, fileAsURI,
+ false, aIsPrivate);
return NS_FAILED(rv) ? rv : NS_OK;
}
@@ -600,6 +605,13 @@ nsWebBrowserPersist::SerializeNextFile()
}
if (urisToPersist > 0) {
+ nsCOMPtr<nsIPrincipal> docPrincipal;
+ //XXXgijs I *think* this is already always true, but let's be sure.
+ MOZ_ASSERT(mDocList.Length() > 0,
+ "Should have the document for any walked URIs to persist!");
+ nsresult rv = mDocList.ElementAt(0)->mDocument->
+ GetPrincipal(getter_AddRefs(docPrincipal));
+ NS_ENSURE_SUCCESS_VOID(rv);
// Persist each file in the uri map. The document(s)
// will be saved after the last one of these is saved.
for (auto iter = mURIMap.Iter(); !iter.Done(); iter.Next()) {
@@ -609,8 +621,6 @@ nsWebBrowserPersist::SerializeNextFile()
continue;
}
- nsresult rv;
-
// Create a URI from the key.
nsCOMPtr<nsIURI> uri;
rv = NS_NewURI(getter_AddRefs(uri), iter.Key(),
@@ -632,7 +642,7 @@ nsWebBrowserPersist::SerializeNextFile()
// The Referrer Policy doesn't matter here since the referrer is
// nullptr.
- rv = SaveURIInternal(uri, nullptr, nullptr,
+ rv = SaveURIInternal(uri, docPrincipal, nullptr, nullptr,
mozilla::net::RP_Unset, nullptr, nullptr,
fileAsURI, true, mIsPrivate);
// If SaveURIInternal fails, then it will have called EndDownload,
@@ -1329,7 +1339,8 @@ nsWebBrowserPersist::AppendPathToURI(nsIURI *aURI, const nsAString & aPath, nsCO
}
nsresult nsWebBrowserPersist::SaveURIInternal(
- nsIURI *aURI, nsISupports *aCacheKey, nsIURI *aReferrer,
+ nsIURI *aURI, nsIPrincipal* aTriggeringPrincipal,
+ nsISupports *aCacheKey, nsIURI *aReferrer,
uint32_t aReferrerPolicy, nsIInputStream *aPostData,
const char *aExtraHeaders, nsIURI *aFile,
bool aCalcFileExt, bool aIsPrivate)
@@ -1385,7 +1396,7 @@ nsresult nsWebBrowserPersist::SaveURIInternal(
nsCOMPtr<nsIChannel> inputChannel;
rv = NS_NewChannel(getter_AddRefs(inputChannel),
aURI,
- nsContentUtils::GetSystemPrincipal(),
+ aTriggeringPrincipal,
nsILoadInfo::SEC_ALLOW_CROSS_ORIGIN_DATA_IS_NULL,
nsIContentPolicy::TYPE_OTHER,
nullptr, // aPerformanceStorage
@@ -1415,16 +1426,6 @@ nsresult nsWebBrowserPersist::SaveURIInternal(
}
}
- if (mPersistFlags & PERSIST_FLAGS_FORCE_ALLOW_COOKIES)
- {
- nsCOMPtr<nsIHttpChannelInternal> httpChannelInternal =
- do_QueryInterface(inputChannel);
- if (httpChannelInternal) {
- rv = httpChannelInternal->SetThirdPartyFlags(nsIHttpChannelInternal::THIRD_PARTY_FORCE_ALLOW);
- MOZ_ASSERT(NS_SUCCEEDED(rv));
- }
- }
-
// Set the referrer, post data and headers if any
nsCOMPtr<nsIHttpChannel> httpChannel(do_QueryInterface(inputChannel));
if (httpChannel)
diff --git a/dom/webbrowserpersist/nsWebBrowserPersist.h b/dom/webbrowserpersist/nsWebBrowserPersist.h
index 17b570d783e7..b9a2e3da73b6 100644
--- a/dom/webbrowserpersist/nsWebBrowserPersist.h
+++ b/dom/webbrowserpersist/nsWebBrowserPersist.h
@@ -57,7 +57,8 @@ public:
private:
virtual ~nsWebBrowserPersist();
nsresult SaveURIInternal(
- nsIURI *aURI, nsISupports *aCacheKey, nsIURI *aReferrer,
+ nsIURI *aURI, nsIPrincipal* aTriggeringPrincipal,
+ nsISupports *aCacheKey, nsIURI *aReferrer,
uint32_t aReferrerPolicy, nsIInputStream *aPostData,
const char *aExtraHeaders, nsIURI *aFile,
bool aCalcFileExt, bool aIsPrivate);
diff --git a/toolkit/components/browser/nsWebBrowser.cpp b/toolkit/components/browser/nsWebBrowser.cpp
index 40ac82210502..cdc3804fee73 100644
--- a/toolkit/components/browser/nsWebBrowser.cpp
+++ b/toolkit/components/browser/nsWebBrowser.cpp
@@ -998,6 +998,7 @@ nsWebBrowser::SetProgressListener(nsIWebProgressListener* aProgressListener)
NS_IMETHODIMP
nsWebBrowser::SaveURI(nsIURI* aURI,
+ nsIPrincipal* aPrincipal,
nsISupports* aCacheKey,
nsIURI* aReferrer,
uint32_t aReferrerPolicy,
@@ -1007,12 +1008,14 @@ nsWebBrowser::SaveURI(nsIURI* aURI,
nsILoadContext* aPrivacyContext)
{
return SavePrivacyAwareURI(
- aURI, aCacheKey, aReferrer, aReferrerPolicy, aPostData, aExtraHeaders,
- aFile, aPrivacyContext && aPrivacyContext->UsePrivateBrowsing());
+ aURI, aPrincipal, aCacheKey, aReferrer, aReferrerPolicy, aPostData,
+ aExtraHeaders, aFile,
+ aPrivacyContext && aPrivacyContext->UsePrivateBrowsing());
}
NS_IMETHODIMP
nsWebBrowser::SavePrivacyAwareURI(nsIURI* aURI,
+ nsIPrincipal* aPrincipal,
nsISupports* aCacheKey,
nsIURI* aReferrer,
uint32_t aReferrerPolicy,
@@ -1050,8 +1053,9 @@ nsWebBrowser::SavePrivacyAwareURI(nsIURI* aURI,
mPersist->SetPersistFlags(mPersistFlags);
mPersist->GetCurrentState(&mPersistCurrentState);
- rv = mPersist->SavePrivacyAwareURI(uri, aCacheKey, aReferrer, aReferrerPolicy,
- aPostData, aExtraHeaders, aFile, aIsPrivate);
+ rv = mPersist->SavePrivacyAwareURI(uri, aPrincipal, aCacheKey,
+ aReferrer, aReferrerPolicy, aPostData,
+ aExtraHeaders, aFile, aIsPrivate);
if (NS_FAILED(rv)) {
mPersist = nullptr;
}
diff --git a/toolkit/components/downloads/test/unit/head.js b/toolkit/components/downloads/test/unit/head.js
index 63bf2ff884a7..6c5c1b095ada 100644
--- a/toolkit/components/downloads/test/unit/head.js
+++ b/toolkit/components/downloads/test/unit/head.js
@@ -299,7 +299,8 @@ function promiseStartLegacyDownload(aSourceUrl, aOptions) {
// Start the actual download process.
persist.savePrivacyAwareURI(
- sourceURI, null, referrer, Ci.nsIHttpChannel.REFERRER_POLICY_UNSAFE_URL,
+ sourceURI, Services.scriptSecurityManager.getSystemPrincipal(),
+ null, referrer, Ci.nsIHttpChannel.REFERRER_POLICY_UNSAFE_URL,
null, null, targetFile, isPrivate);
}).catch(do_report_unexpected_exception);
diff --git a/toolkit/components/viewsource/content/viewSourceUtils.js b/toolkit/components/viewsource/content/viewSourceUtils.js
index 610667cde3cd..d91f3481f802 100644
--- a/toolkit/components/viewsource/content/viewSourceUtils.js
+++ b/toolkit/components/viewsource/content/viewSourceUtils.js
@@ -228,7 +228,11 @@ var gViewSourceUtils = {
webBrowserPersist.persistFlags = this.mnsIWebBrowserPersist.PERSIST_FLAGS_REPLACE_EXISTING_FILES;
webBrowserPersist.progressListener = this.viewSourceProgressListener;
let referrerPolicy = Ci.nsIHttpChannel.REFERRER_POLICY_NO_REFERRER;
- webBrowserPersist.savePrivacyAwareURI(uri, null, null, referrerPolicy, null, null, file, data.isPrivate);
+ let ssm = Services.scriptSecurityManager;
+ let principal = ssm.createCodebasePrincipal(data.uri,
+ browser.contentPrincipal.originAttributes);
+ webBrowserPersist.savePrivacyAwareURI(uri, principal, null, null,
+ referrerPolicy, null, null, file, data.isPrivate);
let helperService = Cc["@mozilla.org/uriloader/external-helper-app-service;1"]
.getService(Ci.nsPIExternalAppLauncher);
diff --git a/toolkit/content/contentAreaUtils.js b/toolkit/content/contentAreaUtils.js
index 48cf448798a5..fa5a7a56c935 100644
--- a/toolkit/content/contentAreaUtils.js
+++ b/toolkit/content/contentAreaUtils.js
@@ -62,14 +62,15 @@ function forbidCPOW(arg, func, argname) {
// - A linked document using Alt-click Save Link As...
//
function saveURL(aURL, aFileName, aFilePickerTitleKey, aShouldBypassCache,
- aSkipPrompt, aReferrer, aSourceDocument, aIsContentWindowPrivate) {
+ aSkipPrompt, aReferrer, aSourceDocument,
+ aIsContentWindowPrivate, aPrincipal) {
forbidCPOW(aURL, "saveURL", "aURL");
forbidCPOW(aReferrer, "saveURL", "aReferrer");
// Allow aSourceDocument to be a CPOW.
internalSave(aURL, null, aFileName, null, null, aShouldBypassCache,
aFilePickerTitleKey, null, aReferrer, aSourceDocument,
- aSkipPrompt, null, aIsContentWindowPrivate);
+ aSkipPrompt, null, aIsContentWindowPrivate, aPrincipal);
}
// Just like saveURL, but will get some info off the image before
@@ -112,7 +113,7 @@ const nsISupportsCString = Ci.nsISupportsCString;
*/
function saveImageURL(aURL, aFileName, aFilePickerTitleKey, aShouldBypassCache,
aSkipPrompt, aReferrer, aDoc, aContentType, aContentDisp,
- aIsContentWindowPrivate) {
+ aIsContentWindowPrivate, aPrincipal) {
forbidCPOW(aURL, "saveImageURL", "aURL");
forbidCPOW(aReferrer, "saveImageURL", "aReferrer");
@@ -156,7 +157,7 @@ function saveImageURL(aURL, aFileName, aFilePickerTitleKey, aShouldBypassCache,
internalSave(aURL, null, aFileName, aContentDisp, aContentType,
aShouldBypassCache, aFilePickerTitleKey, null, aReferrer,
- null, aSkipPrompt, null, aIsContentWindowPrivate);
+ aDoc, aSkipPrompt, null, aIsContentWindowPrivate, aPrincipal);
}
// This is like saveDocument, but takes any browser/frame-like element
@@ -350,11 +351,15 @@ XPCOMUtils.defineConstant(this, "kSaveAsType_Text", kSaveAsType_Text);
* This parameter is provided when the aInitiatingDocument is not a
* real document object. Stores whether aInitiatingDocument.defaultView
* was private or not.
+ * @param aPrincipal [optional]
+ * This parameter is provided when neither aDocument nor
+ * aInitiatingDocument is provided. Used to determine what level of
+ * privilege to load the URI with.
*/
function internalSave(aURL, aDocument, aDefaultFileName, aContentDisposition,
aContentType, aShouldBypassCache, aFilePickerTitleKey,
aChosenData, aReferrer, aInitiatingDocument, aSkipPrompt,
- aCacheKey, aIsContentWindowPrivate) {
+ aCacheKey, aIsContentWindowPrivate, aPrincipal) {
forbidCPOW(aURL, "internalSave", "aURL");
forbidCPOW(aReferrer, "internalSave", "aReferrer");
forbidCPOW(aCacheKey, "internalSave", "aCacheKey");
@@ -430,8 +435,17 @@ function internalSave(aURL, aDocument, aDefaultFileName, aContentDisposition,
: aInitiatingDocument.isPrivate;
}
+ // We have to cover the cases here where we were either passed an explicit
+ // principal, or a 'real' document (with a nodePrincipal property), or an
+ // nsIWebBrowserPersistDocument which has a principal property.
+ let sourcePrincipal =
+ aPrincipal ||
+ (aDocument && (aDocument.nodePrincipal || aDocument.principal)) ||
+ (aInitiatingDocument && aInitiatingDocument.nodePrincipal);
+
var persistArgs = {
sourceURI,
+ sourcePrincipal,
sourceReferrer: aReferrer,
sourceDocument: useSaveDocument ? aDocument : null,
targetContentType: (saveAsType == kSaveAsType_Text) ? "text/plain" : null,
@@ -482,8 +496,7 @@ function internalPersist(persistArgs) {
// Calculate persist flags.
const nsIWBP = Ci.nsIWebBrowserPersist;
- const flags = nsIWBP.PERSIST_FLAGS_REPLACE_EXISTING_FILES |
- nsIWBP.PERSIST_FLAGS_FORCE_ALLOW_COOKIES;
+ const flags = nsIWBP.PERSIST_FLAGS_REPLACE_EXISTING_FILES;
if (persistArgs.bypassCache)
persist.persistFlags = flags | nsIWBP.PERSIST_FLAGS_BYPASS_CACHE;
else
@@ -530,6 +543,7 @@ function internalPersist(persistArgs) {
persistArgs.targetContentType, encodingFlags, kWrapColumn);
} else {
persist.savePrivacyAwareURI(persistArgs.sourceURI,
+ persistArgs.sourcePrincipal,
persistArgs.sourceCacheKey,
persistArgs.sourceReferrer,
Ci.nsIHttpChannel.REFERRER_POLICY_UNSET,
diff --git a/toolkit/content/tests/browser/browser_saveImageURL.js b/toolkit/content/tests/browser/browser_saveImageURL.js
index 970aaea43ca9..609db2cb2adc 100644
--- a/toolkit/content/tests/browser/browser_saveImageURL.js
+++ b/toolkit/content/tests/browser/browser_saveImageURL.js
@@ -36,7 +36,8 @@ add_task(async function preferred_API() {
return image.href;
});
- saveImageURL(url, "image.jpg", null, true, false, null, null, null, null, false);
+ saveImageURL(url, "image.jpg", null, true, false, null, null, null, null,
+ false, gBrowser.contentPrincipal);
// eslint-disable-next-line mozilla/no-cpows-in-tests
let channel = gBrowser.contentDocumentAsCPOW.docShell.currentDocumentChannel;
if (channel) {
diff --git a/toolkit/mozapps/extensions/LightweightThemeManager.jsm b/toolkit/mozapps/extensions/LightweightThemeManager.jsm
index 720f27b48244..d5efecca0de7 100644
--- a/toolkit/mozapps/extensions/LightweightThemeManager.jsm
+++ b/toolkit/mozapps/extensions/LightweightThemeManager.jsm
@@ -869,7 +869,8 @@ function _persistImage(sourceURL, localFileName, successCallback) {
persist.progressListener = new _persistProgressListener(successCallback);
- persist.saveURI(sourceURI, null,
+ let sourcePrincipal = Services.scriptSecurityManager.createCodebasePrincipal(sourceURI, {});
+ persist.saveURI(sourceURI, sourcePrincipal, null,
null, Ci.nsIHttpChannel.REFERRER_POLICY_UNSET,
null, null, targetURI, null);
}
1
0

[tor-browser/tor-browser-60.4.0esr-8.5-1] Revert "Bug 22343: Make 'Save Page As' obey first-party isolation"
by gk@torproject.org 23 Jan '19
by gk@torproject.org 23 Jan '19
23 Jan '19
commit 9c9809f628c810e53f428ec565aa8d515908a2b7
Author: Georg Koppen <gk(a)torproject.org>
Date: Mon Jan 21 11:28:54 2019 +0000
Revert "Bug 22343: Make 'Save Page As' obey first-party isolation"
This reverts commit 3fe87eec8bc9555ed4d1a59e1a26bc6c6df93f38.
---
browser/base/content/browser.js | 2 +-
browser/base/content/nsContextMenu.js | 39 ++++++++------------------
browser/base/content/pageinfo/pageInfo.js | 5 ++--
browser/base/content/utilityOverlay.js | 6 ++--
dom/webbrowserpersist/nsIWebBrowserPersist.idl | 9 +-----
dom/webbrowserpersist/nsWebBrowserPersist.cpp | 18 ++----------
dom/webbrowserpersist/nsWebBrowserPersist.h | 2 --
mobile/android/chrome/content/browser.js | 6 ++--
netwerk/base/LoadContextInfo.cpp | 18 ++----------
toolkit/components/browser/nsWebBrowser.cpp | 12 --------
toolkit/content/contentAreaUtils.js | 32 ++++++---------------
11 files changed, 34 insertions(+), 115 deletions(-)
diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js
index 5eed34e08086..0fc6a72daf66 100644
--- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js
@@ -6175,7 +6175,7 @@ function handleLinkClick(event, href, linkNode) {
if (where == "save") {
saveURL(href, linkNode ? gatherTextUnder(linkNode) : "", null, true,
- true, doc.documentURIObject, doc, undefined, doc.nodePrincipal);
+ true, doc.documentURIObject, doc);
event.preventDefault();
return true;
}
diff --git a/browser/base/content/nsContextMenu.js b/browser/base/content/nsContextMenu.js
index 37ebde22ea07..368d0475ac34 100644
--- a/browser/base/content/nsContextMenu.js
+++ b/browser/base/content/nsContextMenu.js
@@ -989,11 +989,9 @@ nsContextMenu.prototype = {
let onMessage = (message) => {
mm.removeMessageListener("ContextMenu:SaveVideoFrameAsImage:Result", onMessage);
let dataURL = message.data.dataURL;
- const principal = Services.scriptSecurityManager.createCodebasePrincipal(
- makeURI(dataURL), this.principal.originAttributes);
saveImageURL(dataURL, name, "SaveImageTitle", true, false,
document.documentURIObject, null, null, null,
- isPrivate, principal);
+ isPrivate);
};
mm.addMessageListener("ContextMenu:SaveVideoFrameAsImage:Result", onMessage);
},
@@ -1065,7 +1063,7 @@ nsContextMenu.prototype = {
// Helper function to wait for appropriate MIME-type headers and
// then prompt the user with a file picker
saveHelper(linkURL, linkText, dialogTitle, bypassCache, doc, docURI,
- windowID, linkDownload, isContentWindowPrivate, contentPrincipal) {
+ windowID, linkDownload, isContentWindowPrivate) {
// canonical def in nsURILoader.h
const NS_ERROR_SAVE_LINK_AS_TIMEOUT = 0x805d0020;
@@ -1118,7 +1116,7 @@ nsContextMenu.prototype = {
// do it the old fashioned way, which will pick the best filename
// it can without waiting.
saveURL(linkURL, linkText, dialogTitle, bypassCache, false, docURI,
- doc, isContentWindowPrivate, contentPrincipal);
+ doc, isContentWindowPrivate);
}
if (this.extListener)
this.extListener.onStopRequest(aRequest, aContext, aStatusCode);
@@ -1158,13 +1156,10 @@ nsContextMenu.prototype = {
}
};
- const principal = Services.scriptSecurityManager.createCodebasePrincipal(
- makeURI(linkURL), this.principal.originAttributes);
-
// setting up a new channel for 'right click - save link as ...'
var channel = NetUtil.newChannel({
uri: makeURI(linkURL),
- loadingPrincipal: principal,
+ loadingPrincipal: this.principal,
contentPolicyType: Ci.nsIContentPolicy.TYPE_SAVEAS_DOWNLOAD,
securityFlags: Ci.nsILoadInfo.SEC_ALLOW_CROSS_ORIGIN_DATA_INHERITS,
});
@@ -1206,17 +1201,14 @@ nsContextMenu.prototype = {
// Save URL of clicked-on link.
saveLink() {
- const principal = Services.scriptSecurityManager.createCodebasePrincipal(
- makeURI(this.linkURL), this.principal.originAttributes);
- urlSecurityCheck(this.linkURL, principal);
+ urlSecurityCheck(this.linkURL, this.principal);
let isContentWindowPrivate = this.isRemote ? this.ownerDoc.isPrivate : undefined;
this.saveHelper(this.linkURL, this.linkTextStr, null, true, this.ownerDoc,
gContextMenuContentData.documentURIObject,
this.frameOuterWindowID,
this.linkDownload,
- isContentWindowPrivate,
- principal);
+ isContentWindowPrivate);
},
// Backwards-compatibility wrapper
@@ -1231,32 +1223,23 @@ nsContextMenu.prototype = {
let isContentWindowPrivate = this.isRemote ? this.ownerDoc.isPrivate : undefined;
let referrerURI = gContextMenuContentData.documentURIObject;
let isPrivate = PrivateBrowsingUtils.isBrowserPrivate(this.browser);
- let thisPrincipal = this.principal;
if (this.onCanvas) {
// Bypass cache, since it's a data: URL.
this._canvasToBlobURL(this.target).then(function(blobURL) {
- const principal = Services.scriptSecurityManager.createCodebasePrincipal(
- makeURI(blobURL), thisPrincipal.originAttributes);
saveImageURL(blobURL, "canvas.png", "SaveImageTitle",
true, false, referrerURI, null, null, null,
- isPrivate, principal);
+ isPrivate);
}, Cu.reportError);
} else if (this.onImage) {
- const principal = Services.scriptSecurityManager.createCodebasePrincipal(
- makeURI(this.mediaURL), thisPrincipal.originAttributes);
- urlSecurityCheck(this.mediaURL, principal);
+ urlSecurityCheck(this.mediaURL, this.principal);
saveImageURL(this.mediaURL, null, "SaveImageTitle", false,
false, referrerURI, null, gContextMenuContentData.contentType,
- gContextMenuContentData.contentDisposition, isPrivate,
- principal);
+ gContextMenuContentData.contentDisposition, isPrivate);
} else if (this.onVideo || this.onAudio) {
- const principal = Services.scriptSecurityManager.createCodebasePrincipal(
- makeURI(this.mediaURL), thisPrincipal.originAttributes);
- urlSecurityCheck(this.mediaURL, principal);
+ urlSecurityCheck(this.mediaURL, this.principal);
var dialogTitle = this.onVideo ? "SaveVideoTitle" : "SaveAudioTitle";
this.saveHelper(this.mediaURL, null, dialogTitle, false, doc, referrerURI,
- this.frameOuterWindowID, "", isContentWindowPrivate,
- principal);
+ this.frameOuterWindowID, "", isContentWindowPrivate);
}
},
diff --git a/browser/base/content/pageinfo/pageInfo.js b/browser/base/content/pageinfo/pageInfo.js
index efe24f7487d9..86f548c74494 100644
--- a/browser/base/content/pageinfo/pageInfo.js
+++ b/browser/base/content/pageinfo/pageInfo.js
@@ -696,7 +696,7 @@ function saveMedia() {
titleKey = "SaveAudioTitle";
saveURL(url, null, titleKey, false, false, makeURI(item.baseURI),
- null, gDocInfo.isContentWindowPrivate, gDocInfo.principal);
+ null, gDocInfo.isContentWindowPrivate);
}
} else {
selectSaveFolder(function(aDirectory) {
@@ -704,8 +704,7 @@ function saveMedia() {
var saveAnImage = function(aURIString, aChosenData, aBaseURI) {
uniqueFile(aChosenData.file);
internalSave(aURIString, null, null, null, null, false, "SaveImageTitle",
- aChosenData, aBaseURI, null, false, null, gDocInfo.isContentWindowPrivate,
- gDocInfo.principal);
+ aChosenData, aBaseURI, null, false, null, gDocInfo.isContentWindowPrivate);
};
for (var i = 0; i < rowArray.length; i++) {
diff --git a/browser/base/content/utilityOverlay.js b/browser/base/content/utilityOverlay.js
index 4cd7d91e4e9a..b73a01a0b0f3 100644
--- a/browser/base/content/utilityOverlay.js
+++ b/browser/base/content/utilityOverlay.js
@@ -258,16 +258,14 @@ function openLinkIn(url, where, params) {
// ContentClick.jsm passes isContentWindowPrivate for saveURL instead of passing a CPOW initiatingDoc
if ("isContentWindowPrivate" in params) {
- saveURL(url, null, null, true, true, aNoReferrer ? null : aReferrerURI,
- null, params.isContentWindowPrivate,
- aPrincipal || aTriggeringPrincipal);
+ saveURL(url, null, null, true, true, aNoReferrer ? null : aReferrerURI, null, params.isContentWindowPrivate);
} else {
if (!aInitiatingDoc) {
Cu.reportError("openUILink/openLinkIn was called with " +
"where == 'save' but without initiatingDoc. See bug 814264.");
return;
}
- saveURL(url, null, null, true, true, aNoReferrer ? null : aReferrerURI, aInitiatingDoc, params.isContentWindowPrivate, aPrincipal || aTriggeringPrincipal);
+ saveURL(url, null, null, true, true, aNoReferrer ? null : aReferrerURI, aInitiatingDoc);
}
return;
}
diff --git a/dom/webbrowserpersist/nsIWebBrowserPersist.idl b/dom/webbrowserpersist/nsIWebBrowserPersist.idl
index 62ac1c1cd7bd..8de84f5e2904 100644
--- a/dom/webbrowserpersist/nsIWebBrowserPersist.idl
+++ b/dom/webbrowserpersist/nsIWebBrowserPersist.idl
@@ -13,12 +13,11 @@ interface nsIWebProgressListener;
interface nsIFile;
interface nsIChannel;
interface nsILoadContext;
-interface nsIPrincipal;
/**
* Interface for persisting DOM documents and URIs to local or remote storage.
*/
-[scriptable, uuid(ccdbc750-be09-4f11-bb01-4e0a4db76c41)]
+[scriptable, uuid(8cd752a4-60b1-42c3-a819-65c7a1138a28)]
interface nsIWebBrowserPersist : nsICancelable
{
/** No special persistence behaviour. */
@@ -113,12 +112,6 @@ interface nsIWebBrowserPersist : nsICancelable
attribute nsIWebProgressListener progressListener;
/**
- * This attribute can be used to set the loading principal
- * of the document or URI to be persisted.
- */
- attribute nsIPrincipal loadingPrincipal;
-
- /**
* Save the specified URI to file.
*
* @param aURI URI to save to file. Some implementations of this interface
diff --git a/dom/webbrowserpersist/nsWebBrowserPersist.cpp b/dom/webbrowserpersist/nsWebBrowserPersist.cpp
index 4f49b63475f3..fd6d9d0d9315 100644
--- a/dom/webbrowserpersist/nsWebBrowserPersist.cpp
+++ b/dom/webbrowserpersist/nsWebBrowserPersist.cpp
@@ -277,7 +277,6 @@ const char *kWebBrowserPersistStringBundle =
nsWebBrowserPersist::nsWebBrowserPersist() :
mCurrentDataPathIsRelative(false),
mCurrentThingsToPersist(0),
- mLoadingPrincipal(nsContentUtils::GetSystemPrincipal()),
mFirstAndOnlyUse(true),
mSavingDocument(false),
mCancel(false),
@@ -414,19 +413,6 @@ NS_IMETHODIMP nsWebBrowserPersist::SetProgressListener(
return NS_OK;
}
-NS_IMETHODIMP nsWebBrowserPersist::GetLoadingPrincipal(nsIPrincipal** loadingPrincipal)
-{
- *loadingPrincipal = mLoadingPrincipal;
- return NS_OK;
-}
-
-NS_IMETHODIMP nsWebBrowserPersist::SetLoadingPrincipal(nsIPrincipal* loadingPrincipal)
-{
- mLoadingPrincipal = loadingPrincipal ? loadingPrincipal :
- nsContentUtils::GetSystemPrincipal();
- return NS_OK;
-}
-
NS_IMETHODIMP nsWebBrowserPersist::SaveURI(
nsIURI *aURI, nsISupports *aCacheKey,
nsIURI *aReferrer, uint32_t aReferrerPolicy,
@@ -1399,7 +1385,7 @@ nsresult nsWebBrowserPersist::SaveURIInternal(
nsCOMPtr<nsIChannel> inputChannel;
rv = NS_NewChannel(getter_AddRefs(inputChannel),
aURI,
- mLoadingPrincipal,
+ nsContentUtils::GetSystemPrincipal(),
nsILoadInfo::SEC_ALLOW_CROSS_ORIGIN_DATA_IS_NULL,
nsIContentPolicy::TYPE_OTHER,
nullptr, // aPerformanceStorage
@@ -2770,7 +2756,7 @@ nsWebBrowserPersist::CreateChannelFromURI(nsIURI *aURI, nsIChannel **aChannel)
rv = NS_NewChannel(aChannel,
aURI,
- mLoadingPrincipal,
+ nsContentUtils::GetSystemPrincipal(),
nsILoadInfo::SEC_ALLOW_CROSS_ORIGIN_DATA_IS_NULL,
nsIContentPolicy::TYPE_OTHER);
NS_ENSURE_SUCCESS(rv, rv);
diff --git a/dom/webbrowserpersist/nsWebBrowserPersist.h b/dom/webbrowserpersist/nsWebBrowserPersist.h
index f95300be12cb..17b570d783e7 100644
--- a/dom/webbrowserpersist/nsWebBrowserPersist.h
+++ b/dom/webbrowserpersist/nsWebBrowserPersist.h
@@ -147,8 +147,6 @@ private:
nsCOMPtr<nsIMIMEService> mMIMEService;
nsCOMPtr<nsIURI> mURI;
nsCOMPtr<nsIWebProgressListener> mProgressListener;
- nsCOMPtr<nsIPrincipal> mLoadingPrincipal;
-
/**
* Progress listener for 64-bit values; this is the same object as
* mProgressListener, but is a member to avoid having to qi it for each
diff --git a/mobile/android/chrome/content/browser.js b/mobile/android/chrome/content/browser.js
index 3e074009fad9..c3430f5b5a4c 100644
--- a/mobile/android/chrome/content/browser.js
+++ b/mobile/android/chrome/content/browser.js
@@ -886,10 +886,10 @@ var BrowserApp = {
if (!permissionGranted) {
return;
}
- let doc = aTarget.ownerDocument;
+
ContentAreaUtils.saveImageURL(aTarget.currentRequestFinalURI.spec, null, "SaveImageTitle",
- false, true, doc.documentURIObject,
- null, null, null, doc.isPrivate, doc.nodePrincipal);
+ false, true, aTarget.ownerDocument.documentURIObject,
+ aTarget.ownerDocument);
});
});
diff --git a/netwerk/base/LoadContextInfo.cpp b/netwerk/base/LoadContextInfo.cpp
index 1218345b63ed..79f870e8d20d 100644
--- a/netwerk/base/LoadContextInfo.cpp
+++ b/netwerk/base/LoadContextInfo.cpp
@@ -121,6 +121,8 @@ GetLoadContextInfo(nsIChannel * aChannel)
{
nsresult rv;
+ DebugOnly<bool> pb = NS_UsePrivateBrowsing(aChannel);
+
bool anon = false;
nsLoadFlags loadFlags;
rv = aChannel->GetLoadFlags(&loadFlags);
@@ -130,21 +132,7 @@ GetLoadContextInfo(nsIChannel * aChannel)
OriginAttributes oa;
NS_GetOriginAttributes(aChannel, oa);
-
-#ifdef DEBUG
- nsCOMPtr<nsILoadInfo> loadInfo = aChannel->GetLoadInfo();
- if (loadInfo) {
- nsCOMPtr<nsIPrincipal> principal = loadInfo->LoadingPrincipal();
- if (principal) {
- bool chrome;
- principal->GetIsSystemPrincipal(&chrome);
- if (!chrome) {
- bool pb = NS_UsePrivateBrowsing(aChannel);
- MOZ_ASSERT(pb == (oa.mPrivateBrowsingId > 0));
- }
- }
- }
-#endif
+ MOZ_ASSERT(pb == (oa.mPrivateBrowsingId > 0));
return new LoadContextInfo(anon, oa);
}
diff --git a/toolkit/components/browser/nsWebBrowser.cpp b/toolkit/components/browser/nsWebBrowser.cpp
index ff1e728243b4..40ac82210502 100644
--- a/toolkit/components/browser/nsWebBrowser.cpp
+++ b/toolkit/components/browser/nsWebBrowser.cpp
@@ -997,18 +997,6 @@ nsWebBrowser::SetProgressListener(nsIWebProgressListener* aProgressListener)
}
NS_IMETHODIMP
-nsWebBrowser::GetLoadingPrincipal(nsIPrincipal** loadingPrincipal)
-{
- return NS_ERROR_NOT_IMPLEMENTED;
-}
-
-NS_IMETHODIMP
-nsWebBrowser::SetLoadingPrincipal(nsIPrincipal* loadingPrincipal)
-{
- return NS_ERROR_NOT_IMPLEMENTED;
-}
-
-NS_IMETHODIMP
nsWebBrowser::SaveURI(nsIURI* aURI,
nsISupports* aCacheKey,
nsIURI* aReferrer,
diff --git a/toolkit/content/contentAreaUtils.js b/toolkit/content/contentAreaUtils.js
index e213a0e4333e..48cf448798a5 100644
--- a/toolkit/content/contentAreaUtils.js
+++ b/toolkit/content/contentAreaUtils.js
@@ -62,14 +62,14 @@ function forbidCPOW(arg, func, argname) {
// - A linked document using Alt-click Save Link As...
//
function saveURL(aURL, aFileName, aFilePickerTitleKey, aShouldBypassCache,
- aSkipPrompt, aReferrer, aSourceDocument, aIsContentWindowPrivate,
- aContentPrincipal) {
+ aSkipPrompt, aReferrer, aSourceDocument, aIsContentWindowPrivate) {
forbidCPOW(aURL, "saveURL", "aURL");
forbidCPOW(aReferrer, "saveURL", "aReferrer");
// Allow aSourceDocument to be a CPOW.
+
internalSave(aURL, null, aFileName, null, null, aShouldBypassCache,
aFilePickerTitleKey, null, aReferrer, aSourceDocument,
- aSkipPrompt, null, aIsContentWindowPrivate, aContentPrincipal);
+ aSkipPrompt, null, aIsContentWindowPrivate);
}
// Just like saveURL, but will get some info off the image before
@@ -109,12 +109,10 @@ const nsISupportsCString = Ci.nsISupportsCString;
* @param aIsContentWindowPrivate (bool)
* Whether or not the containing window is in private browsing mode.
* Does not need to be provided is aDoc is passed.
- * @param aContentPrincipal [optional]
- * The principal to be used for fetching and saving the target URL.
*/
function saveImageURL(aURL, aFileName, aFilePickerTitleKey, aShouldBypassCache,
aSkipPrompt, aReferrer, aDoc, aContentType, aContentDisp,
- aIsContentWindowPrivate, aContentPrincipal) {
+ aIsContentWindowPrivate) {
forbidCPOW(aURL, "saveImageURL", "aURL");
forbidCPOW(aReferrer, "saveImageURL", "aReferrer");
@@ -158,8 +156,7 @@ function saveImageURL(aURL, aFileName, aFilePickerTitleKey, aShouldBypassCache,
internalSave(aURL, null, aFileName, aContentDisp, aContentType,
aShouldBypassCache, aFilePickerTitleKey, null, aReferrer,
- null, aSkipPrompt, null, aIsContentWindowPrivate,
- aContentPrincipal);
+ null, aSkipPrompt, null, aIsContentWindowPrivate);
}
// This is like saveDocument, but takes any browser/frame-like element
@@ -173,7 +170,7 @@ function saveBrowser(aBrowser, aSkipPrompt, aOuterWindowID = 0) {
let stack = Components.stack.caller;
persistable.startPersistence(aOuterWindowID, {
onDocumentReady(document) {
- saveDocument(document, aSkipPrompt, aBrowser.contentPrincipal);
+ saveDocument(document, aSkipPrompt);
},
onError(status) {
throw new Components.Exception("saveBrowser failed asynchronously in startPersistence",
@@ -189,9 +186,7 @@ function saveBrowser(aBrowser, aSkipPrompt, aOuterWindowID = 0) {
// case "save as" modes that serialize the document's DOM are
// unavailable. This is a temporary measure for the "Save Frame As"
// command (bug 1141337) and pre-e10s add-ons.
-//
-// aContentPrincipal is the principal for downloading and saving the document.
-function saveDocument(aDocument, aSkipPrompt, aContentPrincipal) {
+function saveDocument(aDocument, aSkipPrompt) {
if (!aDocument)
throw "Must have a document when calling saveDocument";
@@ -246,7 +241,7 @@ function saveDocument(aDocument, aSkipPrompt, aContentPrincipal) {
internalSave(aDocument.documentURI, aDocument, null, contentDisposition,
aDocument.contentType, false, null, null,
aDocument.referrer ? makeURI(aDocument.referrer) : null,
- aDocument, aSkipPrompt, cacheKey, undefined, aContentPrincipal);
+ aDocument, aSkipPrompt, cacheKey);
}
function DownloadListener(win, transfer) {
@@ -355,13 +350,11 @@ XPCOMUtils.defineConstant(this, "kSaveAsType_Text", kSaveAsType_Text);
* This parameter is provided when the aInitiatingDocument is not a
* real document object. Stores whether aInitiatingDocument.defaultView
* was private or not.
- * @param aContentPrincipal [optional]
- * The principal to be used for fetching and saving the target URL.
*/
function internalSave(aURL, aDocument, aDefaultFileName, aContentDisposition,
aContentType, aShouldBypassCache, aFilePickerTitleKey,
aChosenData, aReferrer, aInitiatingDocument, aSkipPrompt,
- aCacheKey, aIsContentWindowPrivate, aContentPrincipal) {
+ aCacheKey, aIsContentWindowPrivate) {
forbidCPOW(aURL, "internalSave", "aURL");
forbidCPOW(aReferrer, "internalSave", "aReferrer");
forbidCPOW(aCacheKey, "internalSave", "aCacheKey");
@@ -430,7 +423,6 @@ function internalSave(aURL, aDocument, aDefaultFileName, aContentDisposition,
let nonCPOWDocument =
aDocument && !Cu.isCrossProcessWrapper(aDocument);
-
let isPrivate = aIsContentWindowPrivate;
if (isPrivate === undefined) {
isPrivate = aInitiatingDocument instanceof Ci.nsIDOMDocument
@@ -448,7 +440,6 @@ function internalSave(aURL, aDocument, aDefaultFileName, aContentDisposition,
sourcePostData: nonCPOWDocument ? getPostData(aDocument) : null,
bypassCache: aShouldBypassCache,
isPrivate,
- loadingPrincipal: aContentPrincipal,
};
// Start the actual save process
@@ -485,15 +476,10 @@ function internalSave(aURL, aDocument, aDefaultFileName, aContentDisposition,
* If true, the document will always be refetched from the server
* @param persistArgs.isPrivate
* Indicates whether this is taking place in a private browsing context.
- * @param persistArgs.loadingPrincipal
- * The principal assigned to the document being saved.
*/
function internalPersist(persistArgs) {
var persist = makeWebBrowserPersist();
- if (["http", "https", "ftp"].includes(persistArgs.sourceURI.scheme)) {
- persist.loadingPrincipal = persistArgs.loadingPrincipal;
- }
// Calculate persist flags.
const nsIWBP = Ci.nsIWebBrowserPersist;
const flags = nsIWBP.PERSIST_FLAGS_REPLACE_EXISTING_FILES |
1
0

[tor-browser/tor-browser-60.4.0esr-8.5-1] Bug 1473509 - store principal information with the URIs to avoid having to locate documents after the fact, r=mccr8
by gk@torproject.org 23 Jan '19
by gk@torproject.org 23 Jan '19
23 Jan '19
commit 846b2530517793843a0006c41b15ff41b47a6f79
Author: Gijs Kruitbosch <gijskruitbosch(a)gmail.com>
Date: Fri Jul 6 17:27:17 2018 +0100
Bug 1473509 - store principal information with the URIs to avoid having to locate documents after the fact, r=mccr8
The way we currently save resource URIs that we discovered by walking the document
isn't guaranteed to be in-order with when we save the documents they came from.
To deduce the correct principal to use to load these subresources, we need to
store it with the resource in the map of URIs we work with.
MozReview-Commit-ID: GNlNuS6TuVV
--HG--
extra : rebase_source : 99982f91971423730aa8661cf66c2dd14e276780
---
dom/webbrowserpersist/nsWebBrowserPersist.cpp | 33 +++++++++++++--------------
dom/webbrowserpersist/nsWebBrowserPersist.h | 5 +++-
2 files changed, 20 insertions(+), 18 deletions(-)
diff --git a/dom/webbrowserpersist/nsWebBrowserPersist.cpp b/dom/webbrowserpersist/nsWebBrowserPersist.cpp
index 12e6c41c37d8..68cb08eac0c0 100644
--- a/dom/webbrowserpersist/nsWebBrowserPersist.cpp
+++ b/dom/webbrowserpersist/nsWebBrowserPersist.cpp
@@ -84,7 +84,6 @@ struct nsWebBrowserPersist::DocData
nsCOMPtr<nsIURI> mBaseURI;
nsCOMPtr<nsIWebBrowserPersistDocument> mDocument;
nsCOMPtr<nsIURI> mFile;
- nsCOMPtr<nsIPrincipal> mPrincipal;
nsCString mCharset;
};
@@ -101,6 +100,7 @@ struct nsWebBrowserPersist::URIData
nsCOMPtr<nsIURI> mFile;
nsCOMPtr<nsIURI> mDataPath;
nsCOMPtr<nsIURI> mRelativeDocumentURI;
+ nsCOMPtr<nsIPrincipal> mTriggeringPrincipal;
nsCString mRelativePathToData;
nsCString mCharset;
@@ -605,12 +605,6 @@ nsWebBrowserPersist::SerializeNextFile()
}
if (urisToPersist > 0) {
- nsCOMPtr<nsIPrincipal> docPrincipal;
- //XXXgijs I *think* this is already always true, but let's be sure.
- MOZ_ASSERT(mDocList.Length() > 0,
- "Should have the document for any walked URIs to persist!");
- nsresult rv = mDocList.ElementAt(0)->mDocument->
- GetPrincipal(getter_AddRefs(docPrincipal));
NS_ENSURE_SUCCESS_VOID(rv);
// Persist each file in the uri map. The document(s)
// will be saved after the last one of these is saved.
@@ -642,7 +636,7 @@ nsWebBrowserPersist::SerializeNextFile()
// The Referrer Policy doesn't matter here since the referrer is
// nullptr.
- rv = SaveURIInternal(uri, docPrincipal, nullptr, nullptr,
+ rv = SaveURIInternal(uri, data->mTriggeringPrincipal, nullptr, nullptr,
mozilla::net::RP_Unset, nullptr, nullptr,
fileAsURI, true, mIsPrivate);
// If SaveURIInternal fails, then it will have called EndDownload,
@@ -1749,7 +1743,7 @@ NS_IMETHODIMP
nsWebBrowserPersist::OnWalk::VisitResource(nsIWebBrowserPersistDocument* aDoc,
const nsACString& aURI)
{
- return mParent->StoreURI(nsAutoCString(aURI).get());
+ return mParent->StoreURI(nsAutoCString(aURI).get(), aDoc);
}
NS_IMETHODIMP
@@ -1760,14 +1754,14 @@ nsWebBrowserPersist::OnWalk::VisitDocument(nsIWebBrowserPersistDocument* aDoc,
nsAutoCString uriSpec;
nsresult rv = aSubDoc->GetDocumentURI(uriSpec);
NS_ENSURE_SUCCESS(rv, rv);
- rv = mParent->StoreURI(uriSpec.get(), false, &data);
+ rv = mParent->StoreURI(uriSpec.get(), aDoc, false, &data);
NS_ENSURE_SUCCESS(rv, rv);
if (!data) {
// If the URI scheme isn't persistable, then don't persist.
return NS_OK;
}
data->mIsSubFrame = true;
- return mParent->SaveSubframeContent(aSubDoc, uriSpec, data);
+ return mParent->SaveSubframeContent(aSubDoc, aDoc, uriSpec, data);
}
@@ -2513,7 +2507,8 @@ nsWebBrowserPersist::CalcTotalProgress()
nsresult
nsWebBrowserPersist::StoreURI(
- const char *aURI, bool aNeedsPersisting, URIData **aData)
+ const char *aURI, nsIWebBrowserPersistDocument *aDoc,
+ bool aNeedsPersisting, URIData **aData)
{
NS_ENSURE_ARG_POINTER(aURI);
@@ -2524,12 +2519,13 @@ nsWebBrowserPersist::StoreURI(
mCurrentBaseURI);
NS_ENSURE_SUCCESS(rv, rv);
- return StoreURI(uri, aNeedsPersisting, aData);
+ return StoreURI(uri, aDoc, aNeedsPersisting, aData);
}
nsresult
nsWebBrowserPersist::StoreURI(
- nsIURI *aURI, bool aNeedsPersisting, URIData **aData)
+ nsIURI *aURI, nsIWebBrowserPersistDocument *aDoc,
+ bool aNeedsPersisting, URIData **aData)
{
NS_ENSURE_ARG_POINTER(aURI);
if (aData)
@@ -2554,7 +2550,7 @@ nsWebBrowserPersist::StoreURI(
}
URIData *data = nullptr;
- MakeAndStoreLocalFilenameInURIMap(aURI, aNeedsPersisting, &data);
+ MakeAndStoreLocalFilenameInURIMap(aURI, aDoc, aNeedsPersisting, &data);
if (aData)
{
*aData = data;
@@ -2661,6 +2657,7 @@ nsWebBrowserPersist::DocumentEncoderExists(const char *aContentType)
nsresult
nsWebBrowserPersist::SaveSubframeContent(
nsIWebBrowserPersistDocument *aFrameContent,
+ nsIWebBrowserPersistDocument *aParentDocument,
const nsCString& aURISpec,
URIData *aData)
{
@@ -2738,7 +2735,7 @@ nsWebBrowserPersist::SaveSubframeContent(
toWalk->mDataPath = frameDataURI;
mWalkStack.AppendElement(mozilla::Move(toWalk));
} else {
- rv = StoreURI(aURISpec.get());
+ rv = StoreURI(aURISpec.get(), aParentDocument);
}
NS_ENSURE_SUCCESS(rv, rv);
@@ -2772,7 +2769,7 @@ nsWebBrowserPersist::CreateChannelFromURI(nsIURI *aURI, nsIChannel **aChannel)
// we store the current location as the key (absolutized version of domnode's attribute's value)
nsresult
nsWebBrowserPersist::MakeAndStoreLocalFilenameInURIMap(
- nsIURI *aURI, bool aNeedsPersisting, URIData **aData)
+ nsIURI *aURI, nsIWebBrowserPersistDocument *aDoc, bool aNeedsPersisting, URIData **aData)
{
NS_ENSURE_ARG_POINTER(aURI);
@@ -2815,6 +2812,8 @@ nsWebBrowserPersist::MakeAndStoreLocalFilenameInURIMap(
data->mRelativeDocumentURI = mTargetBaseURI;
data->mCharset = mCurrentCharset;
+ aDoc->GetPrincipal(getter_AddRefs(data->mTriggeringPrincipal));
+
if (aNeedsPersisting)
mCurrentThingsToPersist++;
diff --git a/dom/webbrowserpersist/nsWebBrowserPersist.h b/dom/webbrowserpersist/nsWebBrowserPersist.h
index b9a2e3da73b6..f2cc91ee336d 100644
--- a/dom/webbrowserpersist/nsWebBrowserPersist.h
+++ b/dom/webbrowserpersist/nsWebBrowserPersist.h
@@ -94,7 +94,7 @@ private:
static nsresult GetLocalFileFromURI(nsIURI *aURI, nsIFile **aLocalFile);
static nsresult AppendPathToURI(nsIURI *aURI, const nsAString & aPath, nsCOMPtr<nsIURI>& aOutURI);
nsresult MakeAndStoreLocalFilenameInURIMap(
- nsIURI *aURI, bool aNeedsPersisting, URIData **aData);
+ nsIURI *aURI, nsIWebBrowserPersistDocument *aDoc, bool aNeedsPersisting, URIData **aData);
nsresult MakeOutputStream(
nsIURI *aFile, nsIOutputStream **aOutputStream);
nsresult MakeOutputStreamFromFile(
@@ -113,16 +113,19 @@ private:
nsIURI *aURI, nsString &aFilename);
nsresult StoreURI(
const char *aURI,
+ nsIWebBrowserPersistDocument *aDoc,
bool aNeedsPersisting = true,
URIData **aData = nullptr);
nsresult StoreURI(
nsIURI *aURI,
+ nsIWebBrowserPersistDocument *aDoc,
bool aNeedsPersisting = true,
URIData **aData = nullptr);
bool DocumentEncoderExists(const char *aContentType);
nsresult SaveSubframeContent(
nsIWebBrowserPersistDocument *aFrameContent,
+ nsIWebBrowserPersistDocument *aParentDocument,
const nsCString& aURISpec,
URIData *aData);
nsresult SendErrorStatusChange(
1
0

[tor-browser/tor-browser-60.4.0esr-8.5-1] Bug 1487263 - set requesting principal for macOS drags, r=mstange
by gk@torproject.org 23 Jan '19
by gk@torproject.org 23 Jan '19
23 Jan '19
commit 5cc364bf650ec604043b6394c6d2525789e61f3a
Author: Gijs Kruitbosch <gijskruitbosch(a)gmail.com>
Date: Thu Aug 30 13:56:44 2018 +0000
Bug 1487263 - set requesting principal for macOS drags, r=mstange
The requesting principal is now required for saving content through
nsIWebBrowserPersist, and so drag sessions on macOS need to provide one, just
like drag sessions on Windows already do (see bug 664717).
Differential Revision: https://phabricator.services.mozilla.com/D4673
--HG--
extra : moz-landing-system : lando
---
widget/cocoa/nsDragService.mm | 3 +++
1 file changed, 3 insertions(+)
diff --git a/widget/cocoa/nsDragService.mm b/widget/cocoa/nsDragService.mm
index 8ee0f3edabfc..47eacb5792a2 100644
--- a/widget/cocoa/nsDragService.mm
+++ b/widget/cocoa/nsDragService.mm
@@ -326,6 +326,9 @@ nsDragService::InvokeDragSessionImpl(nsIArray* aTransferableArray,
return NS_ERROR_FAILURE;
}
+ // Assign a principal:
+ currentTransferable->SetRequestingPrincipal(mSourceNode->NodePrincipal());
+
// Transform the transferable to an NSDictionary
NSDictionary* pasteboardOutputDict =
nsClipboard::PasteboardDictFromTransferable(currentTransferable);
1
0

[tor-browser/tor-browser-60.4.0esr-8.5-1] Bug 1473507 - fix crash in nsILoadInfo::GetOriginAttributes when passing no principal to SavePrivacyAwareURI, r=mccr8
by gk@torproject.org 23 Jan '19
by gk@torproject.org 23 Jan '19
23 Jan '19
commit 11aef302f781e229446fc73251e42efd70c19b38
Author: Gijs Kruitbosch <gijskruitbosch(a)gmail.com>
Date: Thu Jul 5 23:50:45 2018 +0100
Bug 1473507 - fix crash in nsILoadInfo::GetOriginAttributes when passing no principal to SavePrivacyAwareURI, r=mccr8
Enforce that callers pass triggering principals through to any persist APIs,
which all delegate to SaveURIInternal.
Also add the missing principal information to the saveURL call in the page
info dialog code, which was triggering crashes in this way.
MozReview-Commit-ID: L9pNE7BxGws
--HG--
extra : rebase_source : 957d765f965aa4f942532c693cae36addd8b781d
---
browser/base/content/pageinfo/pageInfo.js | 2 +-
dom/webbrowserpersist/nsWebBrowserPersist.cpp | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/browser/base/content/pageinfo/pageInfo.js b/browser/base/content/pageinfo/pageInfo.js
index 405b9443342d..30344b989007 100644
--- a/browser/base/content/pageinfo/pageInfo.js
+++ b/browser/base/content/pageinfo/pageInfo.js
@@ -696,7 +696,7 @@ function saveMedia() {
titleKey = "SaveAudioTitle";
saveURL(url, null, titleKey, false, false, makeURI(item.baseURI),
- null, gDocInfo.isContentWindowPrivate);
+ null, gDocInfo.isContentWindowPrivate, gDocInfo.principal);
}
} else {
selectSaveFolder(function(aDirectory) {
diff --git a/dom/webbrowserpersist/nsWebBrowserPersist.cpp b/dom/webbrowserpersist/nsWebBrowserPersist.cpp
index 68cb08eac0c0..97650a4b42a0 100644
--- a/dom/webbrowserpersist/nsWebBrowserPersist.cpp
+++ b/dom/webbrowserpersist/nsWebBrowserPersist.cpp
@@ -1341,6 +1341,7 @@ nsresult nsWebBrowserPersist::SaveURIInternal(
{
NS_ENSURE_ARG_POINTER(aURI);
NS_ENSURE_ARG_POINTER(aFile);
+ NS_ENSURE_ARG_POINTER(aTriggeringPrincipal);
nsresult rv = NS_OK;
1
0

[tor-browser/tor-browser-60.4.0esr-8.5-1] Bug 1504159 - add test to verify we can save a mixed content image from the context menu, r=jkt
by gk@torproject.org 23 Jan '19
by gk@torproject.org 23 Jan '19
23 Jan '19
commit 77b26b69926f7bb93181320084ca8cb9958b3a95
Author: Gijs Kruitbosch <gijskruitbosch(a)gmail.com>
Date: Fri Nov 9 10:59:52 2018 +0000
Bug 1504159 - add test to verify we can save a mixed content image from the context menu, r=jkt
Depends on D11411
Differential Revision: https://phabricator.services.mozilla.com/D11412
--HG--
rename : browser/themes/windows/preferences/saveFile.png => dom/tests/browser/dummy.png
extra : moz-landing-system : lando
---
dom/tests/browser/browser.ini | 4 +
.../browser/browser_persist_mixed_content_image.js | 102 +++++++++++++++++++++
dom/tests/browser/dummy.png | Bin 0 -> 703 bytes
dom/tests/browser/test_mixed_content_image.html | 1 +
4 files changed, 107 insertions(+)
diff --git a/dom/tests/browser/browser.ini b/dom/tests/browser/browser.ini
index 11cf9ebf2346..24d4d5f4fc23 100644
--- a/dom/tests/browser/browser.ini
+++ b/dom/tests/browser/browser.ini
@@ -59,6 +59,10 @@ skip-if = !e10s # This is a test of e10s functionality.
support-files =
set-samesite-cookies-and-redirect.sjs
mimeme.sjs
+[browser_persist_mixed_content_image.js]
+support-files =
+ test_mixed_content_image.html
+ dummy.png
[browser_test_focus_after_modal_state.js]
support-files =
focus_after_prompt.html
diff --git a/dom/tests/browser/browser_persist_mixed_content_image.js b/dom/tests/browser/browser_persist_mixed_content_image.js
new file mode 100644
index 000000000000..f7af5f1790cb
--- /dev/null
+++ b/dom/tests/browser/browser_persist_mixed_content_image.js
@@ -0,0 +1,102 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+const TEST_PATH = getRootDirectory(gTestPath).replace("chrome://mochitests/content", "https://example.org");
+
+var MockFilePicker = SpecialPowers.MockFilePicker;
+MockFilePicker.init(window);
+
+registerCleanupFunction(async function() {
+ info("Running the cleanup code");
+ MockFilePicker.cleanup();
+ if (gTestDir && gTestDir.exists()) {
+ // On Windows, sometimes nsIFile.remove() throws, probably because we're
+ // still writing to the directory we're trying to remove, despite
+ // waiting for the download to complete. Just retry a bit later...
+ let succeeded = false;
+ while (!succeeded) {
+ try {
+ gTestDir.remove(true);
+ succeeded = true;
+ } catch (ex) {
+ await new Promise(requestAnimationFrame);
+ }
+ }
+ }
+});
+
+let gTestDir = null;
+
+function createTemporarySaveDirectory() {
+ var saveDir = Services.dirsvc.get("TmpD", Ci.nsIFile);
+ saveDir.append("testsavedir");
+ if (!saveDir.exists()) {
+ info("create testsavedir!");
+ saveDir.create(Ci.nsIFile.DIRECTORY_TYPE, 0o755);
+ }
+ info("return from createTempSaveDir: " + saveDir.path);
+ return saveDir;
+}
+
+
+add_task(async function test_image_download() {
+ await BrowserTestUtils.withNewTab(TEST_PATH + "test_mixed_content_image.html", async (browser) => {
+ // Add the image, and wait for it to load.
+ await ContentTask.spawn(browser, null, function() {
+ let loc = content.document.location.href;
+ let httpRoot = loc.replace("https", "http");
+ let imgloc = new content.URL("dummy.png", httpRoot);
+ let img = content.document.createElement("img");
+ img.src = imgloc;
+ return new Promise(resolve => {
+ img.onload = resolve;
+ content.document.body.appendChild(img);
+ });
+ });
+ gTestDir = createTemporarySaveDirectory();
+
+ let destFile = gTestDir.clone();
+
+ MockFilePicker.displayDirectory = gTestDir;
+ let fileName;
+ MockFilePicker.showCallback = function(fp) {
+ info("showCallback");
+ fileName = fp.defaultString;
+ info("fileName: " + fileName);
+ destFile.append(fileName);
+ info("path: " + destFile.path);
+ MockFilePicker.setFiles([destFile]);
+ MockFilePicker.filterIndex = 0; // just save the file
+ info("done showCallback");
+ };
+ let downloadFinishedPromise = new Promise(async (resolve) => {
+ let dls = await Downloads.getList(Downloads.PUBLIC);
+ dls.addView({
+ onDownloadChanged(download) {
+ info("Download changed!");
+ if (download.succeeded || download.error) {
+ info("Download succeeded or errored");
+ dls.removeView(this);
+ dls.removeFinished();
+ resolve(download);
+ }
+ }
+ });
+ });
+ // open the context menu.
+ let popup = document.getElementById("contentAreaContextMenu");
+ let popupShown = BrowserTestUtils.waitForEvent(popup, "popupshown");
+ BrowserTestUtils.synthesizeMouseAtCenter("img", {type: "contextmenu", button: 2}, browser);
+ await popupShown;
+ let popupHidden = BrowserTestUtils.waitForEvent(popup, "popuphidden");
+ popup.querySelector("#context-saveimage").click();
+ popup.hidePopup();
+ await popupHidden;
+ info("Context menu hidden, waiting for download to finish");
+ let imageDownload = await downloadFinishedPromise;
+ ok(imageDownload.succeeded, "Image should have downloaded successfully");
+ });
+
+});
diff --git a/dom/tests/browser/dummy.png b/dom/tests/browser/dummy.png
new file mode 100644
index 000000000000..a1089af09b9c
Binary files /dev/null and b/dom/tests/browser/dummy.png differ
diff --git a/dom/tests/browser/test_mixed_content_image.html b/dom/tests/browser/test_mixed_content_image.html
new file mode 100644
index 000000000000..c8b7661f4221
--- /dev/null
+++ b/dom/tests/browser/test_mixed_content_image.html
@@ -0,0 +1 @@
+<body></body>
1
0

[tor-browser/tor-browser-60.4.0esr-8.5-1] Bug 1504159 - use TYPE_SAVEAS_DOWNLOAD for data saved through nsIWebBrowserPersist, r=jkt
by gk@torproject.org 23 Jan '19
by gk@torproject.org 23 Jan '19
23 Jan '19
commit 23d8a9b2966155118ab88ff001771082694fcc40
Author: Gijs Kruitbosch <gijskruitbosch(a)gmail.com>
Date: Fri Nov 9 10:53:40 2018 +0000
Bug 1504159 - use TYPE_SAVEAS_DOWNLOAD for data saved through nsIWebBrowserPersist, r=jkt
Differential Revision: https://phabricator.services.mozilla.com/D11411
--HG--
extra : moz-landing-system : lando
---
dom/webbrowserpersist/nsWebBrowserPersist.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dom/webbrowserpersist/nsWebBrowserPersist.cpp b/dom/webbrowserpersist/nsWebBrowserPersist.cpp
index 97650a4b42a0..9466a1969855 100644
--- a/dom/webbrowserpersist/nsWebBrowserPersist.cpp
+++ b/dom/webbrowserpersist/nsWebBrowserPersist.cpp
@@ -1393,7 +1393,7 @@ nsresult nsWebBrowserPersist::SaveURIInternal(
aURI,
aTriggeringPrincipal,
nsILoadInfo::SEC_ALLOW_CROSS_ORIGIN_DATA_IS_NULL,
- nsIContentPolicy::TYPE_OTHER,
+ nsIContentPolicy::TYPE_SAVEAS_DOWNLOAD,
nullptr, // aPerformanceStorage
nullptr, // aLoadGroup
static_cast<nsIInterfaceRequestor*>(this),
1
0

23 Jan '19
commit 4306713f498584d85e9e7a3e2468d59126f9d3e0
Author: Georg Koppen <gk(a)torproject.org>
Date: Thu Dec 13 07:50:53 2018 +0000
Bug 21805: Add click-to-play button for WebGL
---
src/modules/noscript-control.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/modules/noscript-control.js b/src/modules/noscript-control.js
index 275f9dba..895889c8 100644
--- a/src/modules/noscript-control.js
+++ b/src/modules/noscript-control.js
@@ -17,7 +17,7 @@ let log = (level, msg) => logger.log(level, msg);
// ## NoScript settings
// Minimum and maximum capability states as controlled by NoScript.
-const max_caps = ["fetch", "font", "frame", "media", "object", "other", "script", "webgl"];
+const max_caps = ["fetch", "font", "frame", "media", "object", "other", "script"];
const min_caps = ["frame", "other"];
// Untrusted capabilities for [Standard, Safer, Safest] safety levels.
@@ -30,7 +30,7 @@ const untrusted_caps = [
// Default capabilities for [Standard, Safer, Safest] safety levels.
const default_caps = [
max_caps, // standard: both http and https
- ["fetch", "font", "frame", "object", "other", "script", "webgl"], // safer: https only
+ ["fetch", "font", "frame", "object", "other", "script"], // safer: https only
min_caps, // safest: both http and https
];
1
0

23 Jan '19
commit 90fc41be122b0bd59dba5aa5003345e8f227cae5
Author: Georg Koppen <gk(a)torproject.org>
Date: Wed Jan 23 07:47:57 2019 +0000
Release preparations for 8.0.5
Changelog update versions bump
---
projects/firefox-langpacks/config | 2 +-
projects/firefox/config | 2 +-
projects/https-everywhere/config | 2 +-
projects/tor-browser/Bundle-Data/Docs/ChangeLog.txt | 15 +++++++++++++++
projects/tor/config | 2 +-
projects/torbutton/config | 2 +-
rbm.conf | 6 +++---
7 files changed, 23 insertions(+), 8 deletions(-)
diff --git a/projects/firefox-langpacks/config b/projects/firefox-langpacks/config
index 04cd7dd..4e42939 100644
--- a/projects/firefox-langpacks/config
+++ b/projects/firefox-langpacks/config
@@ -4,7 +4,7 @@ filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/buil
var:
ff_version: '[% pc("firefox", "var/firefox_version") %]'
- ff_build: build2
+ ff_build: build1
ff_arch: linux-i686
input_filename: 'dl-langpack-[% c("var/ff_arch") %]-[% c("version") %]'
diff --git a/projects/firefox/config b/projects/firefox/config
index 831a5fb..238bc5c 100644
--- a/projects/firefox/config
+++ b/projects/firefox/config
@@ -7,7 +7,7 @@ git_url: https://git.torproject.org/tor-browser.git
gpg_keyring: torbutton.gpg
var:
- firefox_platform_version: 60.4.0
+ firefox_platform_version: 60.5.0
firefox_version: '[% c("var/firefox_platform_version") %]esr'
torbrowser_branch: 8.0
torbrowser_update_channel: alpha
diff --git a/projects/https-everywhere/config b/projects/https-everywhere/config
index bcd47f2..eeef02c 100644
--- a/projects/https-everywhere/config
+++ b/projects/https-everywhere/config
@@ -1,5 +1,5 @@
# vim: filetype=yaml sw=2
-version: 2018.10.31
+version: 2019.1.7
git_url: https://git.torproject.org/https-everywhere.git
git_hash: '[% c("version") %]'
git_submodule: 1
diff --git a/projects/tor-browser/Bundle-Data/Docs/ChangeLog.txt b/projects/tor-browser/Bundle-Data/Docs/ChangeLog.txt
index 156b812..cc51f85 100644
--- a/projects/tor-browser/Bundle-Data/Docs/ChangeLog.txt
+++ b/projects/tor-browser/Bundle-Data/Docs/ChangeLog.txt
@@ -1,3 +1,18 @@
+Tor Browser 8.0.5 -- January 29 2019
+ * All platforms
+ * Update Firefox to 60.5.0esr
+ * Update Tor to 0.3.5.7
+ * Update Torbutton to 2.0.10
+ * Bug 29035: Clean up our donation campaign and add newsletter sign-up link
+ * Bug 27175: Add pref to allow users to persist custom noscript settings
+ * Update HTTPS Everywhere to 2019.1.7
+ * Update NoScript to 10.2.1
+ * Bug 28873: Cascading of permissions is broken
+ * Bug 28720: Some videos are blocked outright on higher security levels
+ * Bug 26540: Enabling pdfjs disableRange option prevents pdfs from loading
+ * Bug 28740: Adapt Windows navigator.platform value on 64-bit systems
+ * Bug 28695: Set default security.pki.name_matching_mode to enforce (3)
+
Tor Browser 8.0.4 -- December 11 2018
* All platforms
* Update Firefox to 60.4.0esr
diff --git a/projects/tor/config b/projects/tor/config
index 5dd5206..f5e2515 100644
--- a/projects/tor/config
+++ b/projects/tor/config
@@ -1,6 +1,6 @@
# vim: filetype=yaml sw=2
filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %]'
-version: 0.3.4.9
+version: 0.3.5.7
git_hash: 'tor-[% c("version") %]'
git_url: https://git.torproject.org/tor.git
git_submodule: 1
diff --git a/projects/torbutton/config b/projects/torbutton/config
index 168584a..c262950 100644
--- a/projects/torbutton/config
+++ b/projects/torbutton/config
@@ -1,5 +1,5 @@
# vim: filetype=yaml sw=2
-version: 2.0.9
+version: 2.0.10
git_url: https://git.torproject.org/torbutton.git
git_hash: '[% c("version") %]'
gpg_keyring: torbutton.gpg
diff --git a/rbm.conf b/rbm.conf
index 1df185a..4f06501 100644
--- a/rbm.conf
+++ b/rbm.conf
@@ -15,10 +15,10 @@ buildconf:
git_signtag_opt: '-s'
var:
- torbrowser_version: '8.0.4'
- torbrowser_build: 'build2'
+ torbrowser_version: '8.0.5'
+ torbrowser_build: 'build1'
torbrowser_incremental_from:
- - 8.0.3
+ - 8.0.4
project_name: tor-browser
multi_lingual: 0
build_mar: 1
1
0
commit d275f4fc566920abcf7795be6913d4dd81db15f8
Author: Georg Koppen <gk(a)torproject.org>
Date: Wed Jan 23 07:13:33 2019 +0000
Release preparations for 2.0.10
Version bump and CHANGELOG update
---
src/CHANGELOG | 4 ++++
src/install.rdf | 2 +-
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/CHANGELOG b/src/CHANGELOG
index 361795c2..2b0d2db0 100644
--- a/src/CHANGELOG
+++ b/src/CHANGELOG
@@ -1,3 +1,7 @@
+2.0.10
+ * Bug 29035: Clean up our donation campaign and add newsletter sign-up link
+ * Bug 27175: Add pref to allow users to persist custom noscript settings
+
2.0.9
* Bug 28540: Use new text for 2018 donation banner
* Bug 28515: Use en-US for english Torbutton strings
diff --git a/src/install.rdf b/src/install.rdf
index df90703b..c39fbfb8 100644
--- a/src/install.rdf
+++ b/src/install.rdf
@@ -6,7 +6,7 @@
<em:name>Torbutton</em:name>
<em:creator>Mike Perry</em:creator>
<em:id>torbutton(a)torproject.org</em:id>
- <em:version>2.0.9</em:version>
+ <em:version>2.0.10</em:version>
<em:multiprocessCompatible>true</em:multiprocessCompatible>
<em:homepageURL>https://www.torproject.org/projects/torbrowser.html.en</em:homepageURL>
<em:iconURL>chrome://torbutton/skin/tor.png</em:iconURL>
1
0

22 Jan '19
commit 7a67c517617376f296612a5641e58e024b0aa0cc
Author: Georg Koppen <gk(a)torproject.org>
Date: Fri Jan 18 09:18:26 2019 +0000
Bug 29035: Post-YE campaign clean-up 2018
Removing the newsletter signup banner
---
src/chrome/content/aboutTor/aboutTor-content.js | 21 -------
src/chrome/content/aboutTor/aboutTor.xhtml | 13 -----
src/chrome/content/torbutton.js | 17 ------
src/chrome/skin/aboutTor.css | 72 ------------------------
src/chrome/skin/newsletter_3x.png | Bin 6735 -> 0 bytes
src/defaults/preferences/preferences.js | 1 -
6 files changed, 124 deletions(-)
diff --git a/src/chrome/content/aboutTor/aboutTor-content.js b/src/chrome/content/aboutTor/aboutTor-content.js
index ff5a970b..ae20505e 100644
--- a/src/chrome/content/aboutTor/aboutTor-content.js
+++ b/src/chrome/content/aboutTor/aboutTor-content.js
@@ -24,7 +24,6 @@ let { bindPrefAndInit, show_torbrowser_manual } = Cu.import("resource://torbutto
var AboutTorListener = {
kAboutTorLoadedMessage: "AboutTor:Loaded",
kAboutTorChromeDataMessage: "AboutTor:ChromeData",
- kAboutTorHideTorNewsBanner: "AboutTor:HideTorNewsBanner",
get isAboutTor() {
return content.document.documentURI.toLowerCase() == "about:tor";
@@ -59,24 +58,6 @@ var AboutTorListener = {
}
},
- setupBannerClosing: function () {
- let that = this;
- let closer = content.document.getElementById("tornews-banner-closer");
- closer.addEventListener("click", function () {
- sendAsyncMessage(that.kAboutTorHideTorNewsBanner);
- });
- let link = content.document.querySelector("#tornews-banner-message a");
- link.addEventListener("click", function () {
- // Wait until page unloads so we don't hide banner before that.
- content.addEventListener("unload", function () {
- sendAsyncMessage(that.kAboutTorHideTorNewsBanner);
- });
- });
- bindPrefAndInit("extensions.torbutton.tornews_banner_countdown",
- countdown => content.document.body.setAttribute(
- "show-tornews-banner", countdown > 0));
- },
-
onPageLoad: function() {
// Arrange to update localized text and links.
bindPrefAndInit("intl.locale.requested", aNewVal => {
@@ -85,8 +66,6 @@ var AboutTorListener = {
}
});
- this.setupBannerClosing();
-
// Add message and event listeners.
addMessageListener(this.kAboutTorChromeDataMessage, this);
addEventListener("pagehide", this, false);
diff --git a/src/chrome/content/aboutTor/aboutTor.xhtml b/src/chrome/content/aboutTor/aboutTor.xhtml
index 87fe8307..ecdd0f85 100644
--- a/src/chrome/content/aboutTor/aboutTor.xhtml
+++ b/src/chrome/content/aboutTor/aboutTor.xhtml
@@ -31,19 +31,6 @@ window.addEventListener("pageshow", function() {
</script>
</head>
<body dir="&locale.dir;">
- <div id="tornews-banner">
- <div><!--EMPTY SPACER DIV--></div>
- <div id="tornews-banner-message">
- <div id="tornews-banner-icon"></div>
- <div>&aboutTor.newsletter.tagline;
- <a href="https://newsletter.torproject.org">
- &aboutTor.newsletter.link_text;
- </a>
- </div>
- </div>
- <div id="tornews-banner-closer">×</div>
- </div>
-
<div class="torcontent-container">
<div id="torstatus-version"/>
<div id="torstatus" class="top">
diff --git a/src/chrome/content/torbutton.js b/src/chrome/content/torbutton.js
index 03dc3563..9f6ba898 100644
--- a/src/chrome/content/torbutton.js
+++ b/src/chrome/content/torbutton.js
@@ -19,7 +19,6 @@ const k_tb_last_browser_version_pref = "extensions.torbutton.lastBrowserVersion"
const k_tb_browser_update_needed_pref = "extensions.torbutton.updateNeeded";
const k_tb_last_update_check_pref = "extensions.torbutton.lastUpdateCheck";
const k_tb_tor_check_failed_topic = "Torbutton:TorCheckFailed";
-const k_tb_tornews_banner_countdown = "extensions.torbutton.tornews_banner_countdown";
var m_tb_prefs = Services.prefs;
@@ -232,14 +231,6 @@ function torbutton_init_toolbutton()
}
}
-// Show the Sign Up for Tor News banner a finite number of times.
-function torbutton_tornews_banner_countdown() {
- let count = m_tb_prefs.getIntPref(k_tb_tornews_banner_countdown, 0);
- if (count > 0) {
- m_tb_prefs.setIntPref(k_tb_tornews_banner_countdown, count - 1);
- }
-}
-
// Bug 1506 P2-P4: This code sets some version variables that are irrelevant.
// It does read out some important environment variables, though. It is
// called once per browser window.. This might belong in a component.
@@ -348,10 +339,6 @@ function torbutton_init() {
// Add about:tor IPC message listener.
window.messageManager.addMessageListener("AboutTor:Loaded",
torbutton_abouttor_message_handler);
- window.messageManager.addMessageListener("AboutTor:HideTorNewsBanner",
- torbutton_abouttor_message_handler);
-
- torbutton_tornews_banner_countdown();
setupPreferencesForMobile();
@@ -431,10 +418,6 @@ var torbutton_abouttor_message_handler = {
aMessage.target.messageManager.sendAsyncMessage("AboutTor:ChromeData",
this.chromeData);
break;
- case "AboutTor:HideTorNewsBanner":
- torbutton_log(5, "message AboutTor:HideTorNewsBanner received");
- m_tb_prefs.setIntPref(k_tb_tornews_banner_countdown, 0);
- break;
}
},
diff --git a/src/chrome/skin/aboutTor.css b/src/chrome/skin/aboutTor.css
index ce0a2f29..2e6bab75 100644
--- a/src/chrome/skin/aboutTor.css
+++ b/src/chrome/skin/aboutTor.css
@@ -271,75 +271,3 @@ body:not([showmanual]) .showForManual {
height: 50px;
border-radius: 50px 50px 0 0;
}
-
-/* Tor News Signup Banner
- * While this banner is present, we need to
- * offset the elements normally at the top of
- * the window.
- */
-
-#tornews-banner {
- display: flex;
- align-items: center;
- background-color: white;
- color: var(--abouttor-bg-toron-color);
- font-size: 16px;
- height: 60px;
- justify-content: space-between;
- left: 0px;
- right: 0px;
- top: 0px;
- transform: translateY(-60px);
- transition: transform 200ms;
-}
-
-body[show-tornews-banner="true"] #tornews-banner {
- transform: translateY(0px);
- transition: transform 0ms;
-}
-
-#tornews-banner-message {
- align-items: center;
- display: flex;
- justify-content: center;
-}
-
-#tornews-banner-message a {
- color: var(--abouttor-bg-toron-color);
-}
-
-#tornews-banner-icon {
- background: url('chrome://torbutton/skin/newsletter_3x.png') no-repeat center center;
- background-size: cover;
- height: 32px;
- margin: 0px 16px;
- width: 32px;
-}
-
-#tornews-banner-closer {
- display: flex;
- align-items: center;
- font-size: 20px;
- height: 22px;
- justify-content: center;
- margin: 4px 20px;
- padding: 4px;
- width: 22px;
- -moz-user-select: none;
-}
-
-#tornews-banner-closer:hover {
- background-color: gray;
- cursor: pointer;
-}
-
-body[show-tornews-banner="false"] #torstatus-version,
-body[show-tornews-banner="false"] #onboarding-overlay-button {
- transition: transform 200ms;
-}
-
-body[show-tornews-banner="true"] #torstatus-version,
-body[show-tornews-banner="true"] #onboarding-overlay-button {
- transform: translateY(60px);
- transition: transform 0ms;
-}
diff --git a/src/chrome/skin/newsletter_3x.png b/src/chrome/skin/newsletter_3x.png
deleted file mode 100644
index 821572fa..00000000
Binary files a/src/chrome/skin/newsletter_3x.png and /dev/null differ
diff --git a/src/defaults/preferences/preferences.js b/src/defaults/preferences/preferences.js
index 45b60ce8..270131d2 100644
--- a/src/defaults/preferences/preferences.js
+++ b/src/defaults/preferences/preferences.js
@@ -6,7 +6,6 @@ pref("extensions.torbutton.logmethod",1); // 0=stdout, 1=errorconsole, 2=debuglo
pref("extensions.torbutton.display_circuit", true);
pref("extensions.torbutton(a)torproject.org.description", "chrome://torbutton/locale/torbutton.properties");
pref("extensions.torbutton.updateNeeded", false);
-pref("extensions.torbutton.tornews_banner_countdown", 4);
// Tor check and proxy prefs
pref("extensions.torbutton.test_enabled",true);
1
0
commit 75ab7ad9c1450d5c93ed94b6b140cc7144d2460c
Author: Georg Koppen <gk(a)torproject.org>
Date: Tue Jan 22 07:56:32 2019 +0000
Adjusting copyright year to 2019
---
src/chrome/content/aboutTor/aboutTor-content.js | 2 +-
src/chrome/content/aboutTor/aboutTor.xhtml | 2 +-
src/chrome/skin/aboutTor.css | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/chrome/content/aboutTor/aboutTor-content.js b/src/chrome/content/aboutTor/aboutTor-content.js
index ae20505e..0b3eb93d 100644
--- a/src/chrome/content/aboutTor/aboutTor-content.js
+++ b/src/chrome/content/aboutTor/aboutTor-content.js
@@ -1,5 +1,5 @@
/*************************************************************************
- * Copyright (c) 2017, The Tor Project, Inc.
+ * Copyright (c) 2019, The Tor Project, Inc.
* See LICENSE for licensing information.
*
* vim: set sw=2 sts=2 ts=8 et syntax=javascript:
diff --git a/src/chrome/content/aboutTor/aboutTor.xhtml b/src/chrome/content/aboutTor/aboutTor.xhtml
index ecdd0f85..6082db0c 100644
--- a/src/chrome/content/aboutTor/aboutTor.xhtml
+++ b/src/chrome/content/aboutTor/aboutTor.xhtml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
- - Copyright (c) 2018, The Tor Project, Inc.
+ - Copyright (c) 2019, The Tor Project, Inc.
- See LICENSE for licensing information.
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
diff --git a/src/chrome/skin/aboutTor.css b/src/chrome/skin/aboutTor.css
index 2e6bab75..d53860a5 100644
--- a/src/chrome/skin/aboutTor.css
+++ b/src/chrome/skin/aboutTor.css
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018, The Tor Project, Inc.
+ * Copyright (c) 2019, The Tor Project, Inc.
* See LICENSE for licensing information.
*
* vim: set sw=2 sts=2 ts=8 et syntax=css:
1
0

22 Jan '19
commit fcbc57dc246ff38d7b04618ccab589c6cf33bad3
Author: Georg Koppen <gk(a)torproject.org>
Date: Fri Jan 18 09:14:52 2019 +0000
Bug 29035: Post-YE campaign clean-up 2018
Removing the donation banner.
---
src/chrome/content/aboutTor/aboutTor-content.js | 30 ++-----
src/chrome/content/aboutTor/aboutTor.xhtml | 55 +++---------
src/chrome/content/torbutton.js | 18 ++--
src/chrome/locale/ar/aboutTor.dtd | 19 ----
src/chrome/locale/bn-BD/aboutTor.dtd | 19 ----
src/chrome/locale/ca/aboutTor.dtd | 19 ----
src/chrome/locale/cs/aboutTor.dtd | 19 ----
src/chrome/locale/da/aboutTor.dtd | 19 ----
src/chrome/locale/de/aboutTor.dtd | 19 ----
src/chrome/locale/el/aboutTor.dtd | 19 ----
src/chrome/locale/en-US/aboutTor.dtd | 19 ----
src/chrome/locale/es-AR/aboutTor.dtd | 14 ---
src/chrome/locale/es/aboutTor.dtd | 19 ----
src/chrome/locale/eu/aboutTor.dtd | 19 ----
src/chrome/locale/fa/aboutTor.dtd | 19 ----
src/chrome/locale/fr/aboutTor.dtd | 19 ----
src/chrome/locale/ga/aboutTor.dtd | 19 ----
src/chrome/locale/he/aboutTor.dtd | 19 ----
src/chrome/locale/hu/aboutTor.dtd | 19 ----
src/chrome/locale/id/aboutTor.dtd | 19 ----
src/chrome/locale/is/aboutTor.dtd | 19 ----
src/chrome/locale/it/aboutTor.dtd | 19 ----
src/chrome/locale/ja/aboutTor.dtd | 19 ----
src/chrome/locale/ka/aboutTor.dtd | 19 ----
src/chrome/locale/ko/aboutTor.dtd | 19 ----
src/chrome/locale/nb/aboutTor.dtd | 19 ----
src/chrome/locale/nl/aboutTor.dtd | 19 ----
src/chrome/locale/pl/aboutTor.dtd | 19 ----
src/chrome/locale/pt-BR/aboutTor.dtd | 19 ----
src/chrome/locale/ru/aboutTor.dtd | 19 ----
src/chrome/locale/sv/aboutTor.dtd | 19 ----
src/chrome/locale/tr/aboutTor.dtd | 19 ----
src/chrome/locale/vi/aboutTor.dtd | 19 ----
src/chrome/locale/zh-CN/aboutTor.dtd | 19 ----
src/chrome/locale/zh-TW/aboutTor.dtd | 19 ----
src/chrome/skin/aboutTor.css | 114 +++++++-----------------
src/chrome/skin/donation_banner_image_3x.png | Bin 71927 -> 0 bytes
src/chrome/skin/newsletter_3x.png | Bin 0 -> 6735 bytes
src/defaults/preferences/preferences.js | 2 +-
39 files changed, 61 insertions(+), 761 deletions(-)
diff --git a/src/chrome/content/aboutTor/aboutTor-content.js b/src/chrome/content/aboutTor/aboutTor-content.js
index ccb9139d..ff5a970b 100644
--- a/src/chrome/content/aboutTor/aboutTor-content.js
+++ b/src/chrome/content/aboutTor/aboutTor-content.js
@@ -24,7 +24,7 @@ let { bindPrefAndInit, show_torbrowser_manual } = Cu.import("resource://torbutto
var AboutTorListener = {
kAboutTorLoadedMessage: "AboutTor:Loaded",
kAboutTorChromeDataMessage: "AboutTor:ChromeData",
- kAboutTorHideDonationBanner: "AboutTor:HideDonationBanner",
+ kAboutTorHideTorNewsBanner: "AboutTor:HideTorNewsBanner",
get isAboutTor() {
return content.document.documentURI.toLowerCase() == "about:tor";
@@ -61,24 +61,20 @@ var AboutTorListener = {
setupBannerClosing: function () {
let that = this;
- let closer = content.document.getElementById("donation-banner-closer");
+ let closer = content.document.getElementById("tornews-banner-closer");
closer.addEventListener("click", function () {
- sendAsyncMessage(that.kAboutTorHideDonationBanner);
+ sendAsyncMessage(that.kAboutTorHideTorNewsBanner);
});
- let button = content.document.getElementById("donation-banner-button");
- button.addEventListener("click", function () {
+ let link = content.document.querySelector("#tornews-banner-message a");
+ link.addEventListener("click", function () {
// Wait until page unloads so we don't hide banner before that.
content.addEventListener("unload", function () {
- sendAsyncMessage(that.kAboutTorHideDonationBanner);
+ sendAsyncMessage(that.kAboutTorHideTorNewsBanner);
});
});
- bindPrefAndInit("extensions.torbutton.donation_banner_countdown2",
- countdown => {
- if (content.document && content.document.body) {
- content.document.body.setAttribute(
- "show-donation-banner", countdown > 0);
- }
- });
+ bindPrefAndInit("extensions.torbutton.tornews_banner_countdown",
+ countdown => content.document.body.setAttribute(
+ "show-tornews-banner", countdown > 0));
},
onPageLoad: function() {
@@ -128,14 +124,6 @@ var AboutTorListener = {
content.document.getElementById("manualLink").href =
"https://tb-manual.torproject.org/" + aLocale;
- // Don't use "Count Me In" phrase in non-en-US locales
- if (!aLocale.startsWith("en")) {
- let button = content.document.getElementById("donation-banner-button");
- button.innerHTML = button.getAttribute("data-0");
- let theURL = button.getAttribute("href");
- button.setAttribute("href", theURL.slice(0,-2));
- }
-
// Display the Tor Browser product name and version.
try {
const kBrandBundle = "chrome://branding/locale/brand.properties";
diff --git a/src/chrome/content/aboutTor/aboutTor.xhtml b/src/chrome/content/aboutTor/aboutTor.xhtml
index 52fab695..87fe8307 100644
--- a/src/chrome/content/aboutTor/aboutTor.xhtml
+++ b/src/chrome/content/aboutTor/aboutTor.xhtml
@@ -31,54 +31,21 @@ window.addEventListener("pageshow", function() {
</script>
</head>
<body dir="&locale.dir;">
- <div id="donation-banner">
- <div id="donation-banner-image"></div>
- <div id="donation-banner-lines">
- <div id="donation-banner-line1">&aboutTor.donationBanner.line1;</div>
- <div id="donation-banner-line2"
- data-6="&aboutTor.donationBanner.line2e;"
- data-7="&aboutTor.donationBanner.line2f;"
- data-8="&aboutTor.donationBanner.line2g;"
- data-9="&aboutTor.donationBanner.line2h;"
- data-10="&aboutTor.donationBanner.line2i;"
- data-11="&aboutTor.donationBanner.line2j;">
- &aboutTor.donationBanner.line2e;
+ <div id="tornews-banner">
+ <div><!--EMPTY SPACER DIV--></div>
+ <div id="tornews-banner-message">
+ <div id="tornews-banner-icon"></div>
+ <div>&aboutTor.newsletter.tagline;
+ <a href="https://newsletter.torproject.org">
+ &aboutTor.newsletter.link_text;
+ </a>
</div>
- <div id="donation-banner-line3"
- data-b="&aboutTor.donationBanner.line3b;">
- &aboutTor.donationBanner.line3;</div>
- <a id="donation-banner-button"
- href="https://www.torproject.org/donate/donate-sin-tbd0-0"
- type="button"
- data-0="&aboutTor.donationBanner.buttonA;"
- data-1="&aboutTor.donationBanner.buttonB;">
- &aboutTor.donationBanner.buttonA;
- </a>
</div>
- <div id="donation-banner-closer">×</div>
+ <div id="tornews-banner-closer">×</div>
</div>
-<script type="text/javascript">
- <![CDATA[
- let lineChoice = 6 + Math.floor(Math.random() * 6);
- let line2 = document.getElementById("donation-banner-line2");
- let line2text = line2.getAttribute(`data-${lineChoice}`);
- let line2pieces = line2text.split(" ");
- let line2end = '<span>' + line2pieces.pop() + '</span>';
- line2pieces.push(line2end);
- line2.innerHTML = line2pieces.join(" ");
- line3 = document.getElementById("donation-banner-line3");
- if (lineChoice === 11) {
- line3.innerHTML = line3.getAttribute("data-b");
- }
- let buttonChoice = Math.floor(Math.random() * 2);
- let button = document.getElementById("donation-banner-button");
- button.innerHTML = button.getAttribute(`data-${buttonChoice}`);
- button.setAttribute("href",
- `https://www.torproject.org/donate/donate-sin-tbd${lineChoice}-${buttonChoice}`);
-]]>
-</script>
- <div id="torstatus-version"/>
+
<div class="torcontent-container">
+ <div id="torstatus-version"/>
<div id="torstatus" class="top">
<div id="torstatus-on-container" class="hideIfTorOff torstatus-container">
<div class="heading1">&aboutTor.ready.label;</div>
diff --git a/src/chrome/content/torbutton.js b/src/chrome/content/torbutton.js
index 864d1d2e..03dc3563 100644
--- a/src/chrome/content/torbutton.js
+++ b/src/chrome/content/torbutton.js
@@ -19,7 +19,7 @@ const k_tb_last_browser_version_pref = "extensions.torbutton.lastBrowserVersion"
const k_tb_browser_update_needed_pref = "extensions.torbutton.updateNeeded";
const k_tb_last_update_check_pref = "extensions.torbutton.lastUpdateCheck";
const k_tb_tor_check_failed_topic = "Torbutton:TorCheckFailed";
-const k_tb_donation_banner_countdown = "extensions.torbutton.donation_banner_countdown2";
+const k_tb_tornews_banner_countdown = "extensions.torbutton.tornews_banner_countdown";
var m_tb_prefs = Services.prefs;
@@ -233,10 +233,10 @@ function torbutton_init_toolbutton()
}
// Show the Sign Up for Tor News banner a finite number of times.
-function torbutton_donation_banner_countdown() {
- let count = m_tb_prefs.getIntPref(k_tb_donation_banner_countdown, 0);
+function torbutton_tornews_banner_countdown() {
+ let count = m_tb_prefs.getIntPref(k_tb_tornews_banner_countdown, 0);
if (count > 0) {
- m_tb_prefs.setIntPref(k_tb_donation_banner_countdown, count - 1);
+ m_tb_prefs.setIntPref(k_tb_tornews_banner_countdown, count - 1);
}
}
@@ -348,10 +348,10 @@ function torbutton_init() {
// Add about:tor IPC message listener.
window.messageManager.addMessageListener("AboutTor:Loaded",
torbutton_abouttor_message_handler);
- window.messageManager.addMessageListener("AboutTor:HideDonationBanner",
+ window.messageManager.addMessageListener("AboutTor:HideTorNewsBanner",
torbutton_abouttor_message_handler);
- torbutton_donation_banner_countdown();
+ torbutton_tornews_banner_countdown();
setupPreferencesForMobile();
@@ -431,9 +431,9 @@ var torbutton_abouttor_message_handler = {
aMessage.target.messageManager.sendAsyncMessage("AboutTor:ChromeData",
this.chromeData);
break;
- case "AboutTor:HideDonationBanner":
- torbutton_log(5, "message AboutTor:HideDonationBanner received");
- m_tb_prefs.setIntPref(k_tb_donation_banner_countdown, 0);
+ case "AboutTor:HideTorNewsBanner":
+ torbutton_log(5, "message AboutTor:HideTorNewsBanner received");
+ m_tb_prefs.setIntPref(k_tb_tornews_banner_countdown, 0);
break;
}
},
diff --git a/src/chrome/locale/ar/aboutTor.dtd b/src/chrome/locale/ar/aboutTor.dtd
index 7fda4740..878d860e 100644
--- a/src/chrome/locale/ar/aboutTor.dtd
+++ b/src/chrome/locale/ar/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "احصل على آخر أخبار تور مباشرة على بريدك">
<!ENTITY aboutTor.newsletter.link_text "اشترك للحصول على أخبار تور.">
-
-<!ENTITY aboutTor.donationBanner.line1 "تور: نقاط القوة">
-
-<!ENTITY aboutTor.donationBanner.line2a "المجهولية تحتاج لصحبة.">
-<!ENTITY aboutTor.donationBanner.line2b "ساعد في تقدم حقوق الإنسان.">
-<!ENTITY aboutTor.donationBanner.line2c "انتصر للحرية.">
-<!ENTITY aboutTor.donationBanner.line2d "احم خصوصية الملايين.">
-<!ENTITY aboutTor.donationBanner.line2e "حافظ على قوة تور.">
-<!ENTITY aboutTor.donationBanner.line2f "نحتاج دعمك.">
-<!ENTITY aboutTor.donationBanner.line2g "Support internet freedom.">
-<!ENTITY aboutTor.donationBanner.line2h "Defend the open web.">
-<!ENTITY aboutTor.donationBanner.line2i "Support privacy and freedom online.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "تبرع اليوم، وستجاريك موزيلا وتبرع بنفس المبلغ.">
-<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "تبرع الآن">
-<!ENTITY aboutTor.donationBanner.buttonB "سأشارك">
diff --git a/src/chrome/locale/bn-BD/aboutTor.dtd b/src/chrome/locale/bn-BD/aboutTor.dtd
index fdac71be..0896f075 100644
--- a/src/chrome/locale/bn-BD/aboutTor.dtd
+++ b/src/chrome/locale/bn-BD/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "টর থেকে সর্বশেষ খবর নিন সোজা আপনার ইনবক্সে ।">
<!ENTITY aboutTor.newsletter.link_text "টর নিউজ-এর জন্য সাইন আপ করুন ।">
-
-<!ENTITY aboutTor.donationBanner.line1 "টর: সংখ্যাই শক্তি">
-
-<!ENTITY aboutTor.donationBanner.line2a "ছদ্মনাম বেশী ব্যবহারকারীর মধ্যে কার্যকরী।">
-<!ENTITY aboutTor.donationBanner.line2b "সার্বজনীন মানবাধিকারকে এগিয়ে নিন। ">
-<!ENTITY aboutTor.donationBanner.line2c "স্বাধীনতার জন্য এগিয়ে আসুন ">
-<!ENTITY aboutTor.donationBanner.line2d "লাখো লোকের ব্যক্তিগত গোপনীয়তা রক্ষা করুন। ">
-<!ENTITY aboutTor.donationBanner.line2e "টরকে শক্তিশালী রাখুন। ">
-<!ENTITY aboutTor.donationBanner.line2f "আপনাদের সাহায্য দরকার! ">
-<!ENTITY aboutTor.donationBanner.line2g "Support internet freedom.">
-<!ENTITY aboutTor.donationBanner.line2h "Defend the open web.">
-<!ENTITY aboutTor.donationBanner.line2i "Support privacy and freedom online.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "অর্থ সাহায্য করুন, এবং মজিলা সমপরিমাণ সাহায্য করবে। ">
-<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "এখুনি দান করুন! ">
-<!ENTITY aboutTor.donationBanner.buttonB "আমাকেও সাথে নিন">
diff --git a/src/chrome/locale/ca/aboutTor.dtd b/src/chrome/locale/ca/aboutTor.dtd
index 878ce7ad..ca8aee1c 100644
--- a/src/chrome/locale/ca/aboutTor.dtd
+++ b/src/chrome/locale/ca/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "Obteniu les darreres novetats de Tor directament a la safata d'entrada.">
<!ENTITY aboutTor.newsletter.link_text "Inscriviu-vos a les noticies de Tor.">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: Strength in Numbers">
-
-<!ENTITY aboutTor.donationBanner.line2a "Anonymity loves company.">
-<!ENTITY aboutTor.donationBanner.line2b "Avançats drets humans universals.">
-<!ENTITY aboutTor.donationBanner.line2c "Stand up for freedom.">
-<!ENTITY aboutTor.donationBanner.line2d "Protegeix la privacitat de milions.">
-<!ENTITY aboutTor.donationBanner.line2e "Keep Tor strong.">
-<!ENTITY aboutTor.donationBanner.line2f "Necessitem el teu suport!">
-<!ENTITY aboutTor.donationBanner.line2g "Recolça la llibertat a internet.">
-<!ENTITY aboutTor.donationBanner.line2h "Defensa la web oberta.">
-<!ENTITY aboutTor.donationBanner.line2i "Support privacy and freedom online.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "Give today, and Mozilla will match your donation.">
-<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "Donate Now">
-<!ENTITY aboutTor.donationBanner.buttonB "Compta amb mi">
diff --git a/src/chrome/locale/cs/aboutTor.dtd b/src/chrome/locale/cs/aboutTor.dtd
index 31ccf6bd..2c29d50d 100644
--- a/src/chrome/locale/cs/aboutTor.dtd
+++ b/src/chrome/locale/cs/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "Nechte si posílat nejnovější informace o Toru.">
<!ENTITY aboutTor.newsletter.link_text "Přihlaste se k odběru zpravodaje Toru.">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: Síla je v počtu">
-
-<!ENTITY aboutTor.donationBanner.line2a "Společnost se zálibou v anonymitě.">
-<!ENTITY aboutTor.donationBanner.line2b "Posílení všeobecných lidských práv.">
-<!ENTITY aboutTor.donationBanner.line2c "Postavte se za svobodu.">
-<!ENTITY aboutTor.donationBanner.line2d "Chráníme soukromí milionů lidí.">
-<!ENTITY aboutTor.donationBanner.line2e "Pomozte Toru sílit.">
-<!ENTITY aboutTor.donationBanner.line2f "Potřebujeme vaši podporu!">
-<!ENTITY aboutTor.donationBanner.line2g "Podpořte svobodu internetu.">
-<!ENTITY aboutTor.donationBanner.line2h "Braňte otevřený web.">
-<!ENTITY aboutTor.donationBanner.line2i "Podpořte online soukromí a svobodu.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla dorovná každý příspěvek až do začátku roku 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "Přispějte hned a Mozilla vás dar zdvojnásobí.">
-<!ENTITY aboutTor.donationBanner.line3b "Pošlete příspěvek a ten se zdvojnásobí.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "Přispějte">
-<!ENTITY aboutTor.donationBanner.buttonB "Jdu do toho">
diff --git a/src/chrome/locale/da/aboutTor.dtd b/src/chrome/locale/da/aboutTor.dtd
index bc06d980..902a84fa 100644
--- a/src/chrome/locale/da/aboutTor.dtd
+++ b/src/chrome/locale/da/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "Få de seneste nyheder fra Tor direkte i din indbakke.">
<!ENTITY aboutTor.newsletter.link_text "Tilmeld Tor-nyheder.">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: Styrke i antal">
-
-<!ENTITY aboutTor.donationBanner.line2a "Anonymitet elsker selskab.">
-<!ENTITY aboutTor.donationBanner.line2b "Avancerede universelle menneskerettigheder.">
-<!ENTITY aboutTor.donationBanner.line2c "Slå et slag for frihed.">
-<!ENTITY aboutTor.donationBanner.line2d "Beskyt privatlivet af millioner.">
-<!ENTITY aboutTor.donationBanner.line2e "Hold Tor stærk.">
-<!ENTITY aboutTor.donationBanner.line2f "Vi har brug for din støtte!">
-<!ENTITY aboutTor.donationBanner.line2g "Støt internetfrihed.">
-<!ENTITY aboutTor.donationBanner.line2h "Forsvar det åbne web.">
-<!ENTITY aboutTor.donationBanner.line2i "Støt privatliv og frihed online.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla matcher hver donation frem til 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "Giv i dag, og Mozilla vil matche din donation.">
-<!ENTITY aboutTor.donationBanner.line3b "Giv nu og din gave bliver dobbelt så stærk.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "Donér nu">
-<!ENTITY aboutTor.donationBanner.buttonB "Jeg er med">
diff --git a/src/chrome/locale/de/aboutTor.dtd b/src/chrome/locale/de/aboutTor.dtd
index 0ffc979f..6bd2e164 100644
--- a/src/chrome/locale/de/aboutTor.dtd
+++ b/src/chrome/locale/de/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "Erhalte die neuesten Nachrichten von Tor direkt in den Posteingang.">
<!ENTITY aboutTor.newsletter.link_text "Tor-Nachrichten abonnieren.">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: Stärke in Zahlen">
-
-<!ENTITY aboutTor.donationBanner.line2a "Anonymität liebt Gemeinschaft">
-<!ENTITY aboutTor.donationBanner.line2b "Verbessere die Menschenrechte">
-<!ENTITY aboutTor.donationBanner.line2c "Setz dich ein für Freiheit.">
-<!ENTITY aboutTor.donationBanner.line2d "Schütze die Privatsphäre von Millionen Menschen.">
-<!ENTITY aboutTor.donationBanner.line2e "Mache Tor stark.">
-<!ENTITY aboutTor.donationBanner.line2f "Wir brauchen deine Unterstützung.">
-<!ENTITY aboutTor.donationBanner.line2g "Unterstütze Internetfreiheit.">
-<!ENTITY aboutTor.donationBanner.line2h "Verteidige das offene Netz.">
-<!ENTITY aboutTor.donationBanner.line2i "Unterstütze Datenschutz und Freiheit im Internet.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla unterstützt jede Spende bis 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "Gib noch heute, und Mozilla wird deiner Spende entsprechen.">
-<!ENTITY aboutTor.donationBanner.line3b "Spende jetzt, und dein Geschenk wird doppelt so stark.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "Spende jetzt">
-<!ENTITY aboutTor.donationBanner.buttonB "Zähl mich mit">
diff --git a/src/chrome/locale/el/aboutTor.dtd b/src/chrome/locale/el/aboutTor.dtd
index d93a5a5a..dbddba88 100644
--- a/src/chrome/locale/el/aboutTor.dtd
+++ b/src/chrome/locale/el/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "Λάβετε τα τελευταία νέα του Tor κατευθείαν στα εισερχόμενα σας.">
<!ENTITY aboutTor.newsletter.link_text "Εγγραφτείτε για τα νέα του Tor.">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: Ισχύς εν τη ενώσει.">
-
-<!ENTITY aboutTor.donationBanner.line2a "Η ανωνυμία αγαπά την παρέα.">
-<!ENTITY aboutTor.donationBanner.line2b "Προωθήστε τα ανθρώπινα δικαιώματα παγκοσμίως.">
-<!ENTITY aboutTor.donationBanner.line2c "Υπερασπιστείτε την ελευθερία ">
-<!ENTITY aboutTor.donationBanner.line2d "Προστατέψτε την ιδιωτικότητα εκατομμυρίων.">
-<!ENTITY aboutTor.donationBanner.line2e "Διατηρήστε το Tor ισχυρό.">
-<!ENTITY aboutTor.donationBanner.line2f "Χρειαζόμαστε την υποστήριξη σας!">
-<!ENTITY aboutTor.donationBanner.line2g "Στηρίξτε την ελευθερία στο διαδίκτυο.">
-<!ENTITY aboutTor.donationBanner.line2h "Υπερασπιστείτε τον ανοιχτό ιστό.">
-<!ENTITY aboutTor.donationBanner.line2i "Στηρίξτε την ιδιωτικότητα και την ελευθερία στο διαδίκτυο.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "Δωρίστε σήμερα και το Mozilla θα δωρίσει το ίδιο ποσό!">
-<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "Κάντε μια δωρεά τώρα!">
-<!ENTITY aboutTor.donationBanner.buttonB "Υπολογίστε με">
diff --git a/src/chrome/locale/en-US/aboutTor.dtd b/src/chrome/locale/en-US/aboutTor.dtd
index a36d812c..1400d7b5 100644
--- a/src/chrome/locale/en-US/aboutTor.dtd
+++ b/src/chrome/locale/en-US/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "Get the latest news from Tor straight to your inbox.">
<!ENTITY aboutTor.newsletter.link_text "Sign up for Tor News.">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: Strength in Numbers">
-
-<!ENTITY aboutTor.donationBanner.line2a "Anonymity loves company.">
-<!ENTITY aboutTor.donationBanner.line2b "Advance universal human rights.">
-<!ENTITY aboutTor.donationBanner.line2c "Stand up for freedom.">
-<!ENTITY aboutTor.donationBanner.line2d "Protect the privacy of millions.">
-<!ENTITY aboutTor.donationBanner.line2e "Keep Tor strong.">
-<!ENTITY aboutTor.donationBanner.line2f "We need your support!">
-<!ENTITY aboutTor.donationBanner.line2g "Support internet freedom.">
-<!ENTITY aboutTor.donationBanner.line2h "Defend the open web.">
-<!ENTITY aboutTor.donationBanner.line2i "Support privacy and freedom online.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "Give today, and Mozilla will match your donation.">
-<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "Donate Now">
-<!ENTITY aboutTor.donationBanner.buttonB "Count Me In">
diff --git a/src/chrome/locale/es-AR/aboutTor.dtd b/src/chrome/locale/es-AR/aboutTor.dtd
index fcb78004..1bb03e95 100644
--- a/src/chrome/locale/es-AR/aboutTor.dtd
+++ b/src/chrome/locale/es-AR/aboutTor.dtd
@@ -26,17 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "Recibí las últimas noticias de Tor derecho en tu bandeja de entrada.">
<!ENTITY aboutTor.newsletter.link_text "Registrate en Tor News.">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: Fortaleza en Canidad">
-
-<!ENTITY aboutTor.donationBanner.line2a "El anonimato ama la compañía.">
-<!ENTITY aboutTor.donationBanner.line2b "Avanzar los derechos humanos universales.">
-<!ENTITY aboutTor.donationBanner.line2c "Plantarse por la libertad.">
-<!ENTITY aboutTor.donationBanner.line2d "Proteger la privacidad de millones.">
-<!ENTITY aboutTor.donationBanner.line2e "Mantener fuerte a Tor.">
-<!ENTITY aboutTor.donationBanner.line2f "¡Necesitamos tu apoyo!">
-
-<!ENTITY aboutTor.donationBanner.line3 "Dá hoy, y Mozilla emparejará tu donación.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "Doná ahora">
-<!ENTITY aboutTor.donationBanner.buttonB "Contá conmigo">
diff --git a/src/chrome/locale/es/aboutTor.dtd b/src/chrome/locale/es/aboutTor.dtd
index 2bb31865..c0934bde 100644
--- a/src/chrome/locale/es/aboutTor.dtd
+++ b/src/chrome/locale/es/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "Recibe las últimas noticias de Tor directamente en tu bandeja de entrada.">
<!ENTITY aboutTor.newsletter.link_text "Inscríbete en Tor News.">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: La fuerza en la cantidad">
-
-<!ENTITY aboutTor.donationBanner.line2a "El anonimato ama la compañía.">
-<!ENTITY aboutTor.donationBanner.line2b "Promover los derechos humanos universales.">
-<!ENTITY aboutTor.donationBanner.line2c "Defiende la libertad.">
-<!ENTITY aboutTor.donationBanner.line2d "Protege la privacidad de millones de personas.">
-<!ENTITY aboutTor.donationBanner.line2e "Mantén fuerte a Tor.">
-<!ENTITY aboutTor.donationBanner.line2f "Necesitamos tu apoyo.">
-<!ENTITY aboutTor.donationBanner.line2g "Apoya la libertad en internet">
-<!ENTITY aboutTor.donationBanner.line2h "Defiende la web abierta">
-<!ENTITY aboutTor.donationBanner.line2i "Apoya la privacidad y la libertad en línea.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla donará una cantidad idéntica a cada donación hasta 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "Dona hoy, y Mozilla igualará tu donación.">
-<!ENTITY aboutTor.donationBanner.line3b "Dona ahora, y tu donación se duplicará.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "Dona ahora.">
-<!ENTITY aboutTor.donationBanner.buttonB "Cuenta conmigo.">
diff --git a/src/chrome/locale/eu/aboutTor.dtd b/src/chrome/locale/eu/aboutTor.dtd
index 9f1224bb..123091e5 100644
--- a/src/chrome/locale/eu/aboutTor.dtd
+++ b/src/chrome/locale/eu/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "Get the latest news from Tor straight to your inbox.">
<!ENTITY aboutTor.newsletter.link_text "Sign up for Tor News.">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: Strength in Numbers">
-
-<!ENTITY aboutTor.donationBanner.line2a "Anonymity loves company.">
-<!ENTITY aboutTor.donationBanner.line2b "Advance universal human rights.">
-<!ENTITY aboutTor.donationBanner.line2c "Stand up for freedom.">
-<!ENTITY aboutTor.donationBanner.line2d "Protect the privacy of millions.">
-<!ENTITY aboutTor.donationBanner.line2e "Keep Tor strong.">
-<!ENTITY aboutTor.donationBanner.line2f "We need your support!">
-<!ENTITY aboutTor.donationBanner.line2g "Support internet freedom.">
-<!ENTITY aboutTor.donationBanner.line2h "Defend the open web.">
-<!ENTITY aboutTor.donationBanner.line2i "Support privacy and freedom online.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "Give today, and Mozilla will match your donation.">
-<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "Donate Now">
-<!ENTITY aboutTor.donationBanner.buttonB "Count Me In">
diff --git a/src/chrome/locale/fa/aboutTor.dtd b/src/chrome/locale/fa/aboutTor.dtd
index 2f572883..a4908b04 100644
--- a/src/chrome/locale/fa/aboutTor.dtd
+++ b/src/chrome/locale/fa/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "آخرین اخبار تور را در صندوق ورودی خود دریافت کنید.">
<!ENTITY aboutTor.newsletter.link_text "ثبتنام برای اخبار تور.">
-
-<!ENTITY aboutTor.donationBanner.line1 "تور: قدرت در اعداد">
-
-<!ENTITY aboutTor.donationBanner.line2a "شرکت گمنامیت را دوست دارد.">
-<!ENTITY aboutTor.donationBanner.line2b "حمایت از حقوق بشر جهانی.">
-<!ENTITY aboutTor.donationBanner.line2c "برای آزادی ایستادگی کنید.">
-<!ENTITY aboutTor.donationBanner.line2d "از حریم خصوصی میلیونها محافظت کنید">
-<!ENTITY aboutTor.donationBanner.line2e "تور را محکم نگه دارید.">
-<!ENTITY aboutTor.donationBanner.line2f "ما به حمایت شما نیاز داریم!">
-<!ENTITY aboutTor.donationBanner.line2g "از آزادی اینترنت پشتیبانی کنید.">
-<!ENTITY aboutTor.donationBanner.line2h "Defend the open web.">
-<!ENTITY aboutTor.donationBanner.line2i "از حریم شخصی و آزادی برخط دفاع کنید.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "Give today, and Mozilla will match your donation.">
-<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "اکنون اهداء کنید">
-<!ENTITY aboutTor.donationBanner.buttonB "روی من حساب کن">
diff --git a/src/chrome/locale/fr/aboutTor.dtd b/src/chrome/locale/fr/aboutTor.dtd
index 0df6622d..6ae2392d 100644
--- a/src/chrome/locale/fr/aboutTor.dtd
+++ b/src/chrome/locale/fr/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "Obtenez les dernières nouvelles au sujet de Tor directement dans votre boîte de réception.">
<!ENTITY aboutTor.newsletter.link_text "Inscrivez-vous aux nouvelles de Tor">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor : l’union fait la force">
-
-<!ENTITY aboutTor.donationBanner.line2a "L’anonymat est contagieux.">
-<!ENTITY aboutTor.donationBanner.line2b "Promouvez les droits universels de la personne.">
-<!ENTITY aboutTor.donationBanner.line2c "Défendez la liberté.">
-<!ENTITY aboutTor.donationBanner.line2d "Protégez la vie privée de millions de personnes.">
-<!ENTITY aboutTor.donationBanner.line2e "Assurez la robustesse de Tor.">
-<!ENTITY aboutTor.donationBanner.line2f "Nous avons besoin de votre soutien !">
-<!ENTITY aboutTor.donationBanner.line2g "Soutenez la liberté sur Internet.">
-<!ENTITY aboutTor.donationBanner.line2h "Défendez le Web ouvert.">
-<!ENTITY aboutTor.donationBanner.line2i "Soutenez la vie privé et la liberté en ligne.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla versera un montant équivalent à chaque don jusqu’en 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "Faites un don aujourd’hui et Mozilla fera un don équivalent.">
-<!ENTITY aboutTor.donationBanner.line3b "Faites un don maintenant et sa force en sera doublée.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "Faites un don maintenant">
-<!ENTITY aboutTor.donationBanner.buttonB "Comptez sur moi">
diff --git a/src/chrome/locale/ga/aboutTor.dtd b/src/chrome/locale/ga/aboutTor.dtd
index 1978847e..ce6fe3f5 100644
--- a/src/chrome/locale/ga/aboutTor.dtd
+++ b/src/chrome/locale/ga/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "Faigh an nuacht is déanaí maidir le Tor i do bhosca isteach.">
<!ENTITY aboutTor.newsletter.link_text "Cláraigh le Nuachtlitir Tor.">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: Ní neart go cur le chéile">
-
-<!ENTITY aboutTor.donationBanner.line2a "Dul i bhfolach sa slua.">
-<!ENTITY aboutTor.donationBanner.line2b "Cuir cearta daonna chun cinn.">
-<!ENTITY aboutTor.donationBanner.line2c "Seas an fód ar son na saoirse.">
-<!ENTITY aboutTor.donationBanner.line2d "Cosain príobháideachas na milliún duine.">
-<!ENTITY aboutTor.donationBanner.line2e "Cuir taca le Tor.">
-<!ENTITY aboutTor.donationBanner.line2f "Tá do chúnamh de dhíth orainn!">
-<!ENTITY aboutTor.donationBanner.line2g "Tacaigh le saoirse ar an idirlíon.">
-<!ENTITY aboutTor.donationBanner.line2h "Seas an fód ar son an Ghréasáin oscailte">
-<!ENTITY aboutTor.donationBanner.line2i "Tacaigh le príobháideachas agus le saoirse ar líne.">
-<!ENTITY aboutTor.donationBanner.line2j "Tá Mozilla ag meaitseáil gach euro a bhronntar orainn go dtí 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "Tabhair síntiús airgid inniu agus tabharfaidh Mozilla an méid céanna arís dúinn.">
-<!ENTITY aboutTor.donationBanner.line3b "Beidh do bhronntanas airgid dhá uair níos láidre.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "Tabhair síntiús airgid anois">
-<!ENTITY aboutTor.donationBanner.buttonB "Cuir mise san áireamh">
diff --git a/src/chrome/locale/he/aboutTor.dtd b/src/chrome/locale/he/aboutTor.dtd
index 81a4386f..6d988035 100644
--- a/src/chrome/locale/he/aboutTor.dtd
+++ b/src/chrome/locale/he/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "קבל את החדשות האחרונות מאת Tor ישירות לתיבה הנכנסת שלך.">
<!ENTITY aboutTor.newsletter.link_text "הירשם עבור חדשות Tor.">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: חוזק במספרים">
-
-<!ENTITY aboutTor.donationBanner.line2a "אלמוניות אוהבת חברה.">
-<!ENTITY aboutTor.donationBanner.line2b "זכויות אדם קדומות יקומיות.">
-<!ENTITY aboutTor.donationBanner.line2c "סנגר על חירות.">
-<!ENTITY aboutTor.donationBanner.line2d "הגן על פרטיותם של מיליונים.">
-<!ENTITY aboutTor.donationBanner.line2e "שמור על Tor חזק.">
-<!ENTITY aboutTor.donationBanner.line2f "אנחנו צריכים את תמיכתך!">
-<!ENTITY aboutTor.donationBanner.line2g "תמוך בחירות אינטרנט.">
-<!ENTITY aboutTor.donationBanner.line2h "הגן על הרשת הפתוחה.">
-<!ENTITY aboutTor.donationBanner.line2i "תמוך בפרטיות ובחירות באופן מקוון.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla משווה כל תרומה עד 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "תן היום, ו־Mozilla תשווה את תרומתך.">
-<!ENTITY aboutTor.donationBanner.line3b "תן עכשיו, והמתנה שלך הופכת לחזקה פי שניים.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "תרום עכשיו">
-<!ENTITY aboutTor.donationBanner.buttonB "החשב אותי">
diff --git a/src/chrome/locale/hu/aboutTor.dtd b/src/chrome/locale/hu/aboutTor.dtd
index cbc0c571..b5dd867d 100644
--- a/src/chrome/locale/hu/aboutTor.dtd
+++ b/src/chrome/locale/hu/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "Kapja meg a legfrissebb Tor híreket közvetlenül email fiókjába.">
<!ENTITY aboutTor.newsletter.link_text "Iratkozzon fel a Tor hírekhez.">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: Erősség a számokban">
-
-<!ENTITY aboutTor.donationBanner.line2a "Az anonimitás szereti a cégeket.">
-<!ENTITY aboutTor.donationBanner.line2b "Általánosan növeli az emberi jogokat.">
-<!ENTITY aboutTor.donationBanner.line2c "Kiáll a szabadságért.">
-<!ENTITY aboutTor.donationBanner.line2d "Védi milliók magánéletét.">
-<!ENTITY aboutTor.donationBanner.line2e "Tartsuk a Tor-t erősnek.">
-<!ENTITY aboutTor.donationBanner.line2f "Szükségünk van a támogatására!">
-<!ENTITY aboutTor.donationBanner.line2g "Support internet freedom.">
-<!ENTITY aboutTor.donationBanner.line2h "Defend the open web.">
-<!ENTITY aboutTor.donationBanner.line2i "Support privacy and freedom online.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "Adjon ma és a Mozilla is annyival támogat.">
-<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "Támogasson most">
-<!ENTITY aboutTor.donationBanner.buttonB "Számítsatok bele">
diff --git a/src/chrome/locale/id/aboutTor.dtd b/src/chrome/locale/id/aboutTor.dtd
index 9370e3ad..3a4e3a27 100644
--- a/src/chrome/locale/id/aboutTor.dtd
+++ b/src/chrome/locale/id/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "Dapatkan berita Tor terbaru langsung ke inbox Anda.">
<!ENTITY aboutTor.newsletter.link_text "Daftar untuk mendapatkan Berita Tor.">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: Strength in Numbers">
-
-<!ENTITY aboutTor.donationBanner.line2a "Anonymity loves company.">
-<!ENTITY aboutTor.donationBanner.line2b "Advance universal human rights.">
-<!ENTITY aboutTor.donationBanner.line2c "Stand up for freedom.">
-<!ENTITY aboutTor.donationBanner.line2d "Protect the privacy of millions.">
-<!ENTITY aboutTor.donationBanner.line2e "Keep Tor strong.">
-<!ENTITY aboutTor.donationBanner.line2f "We need your support!">
-<!ENTITY aboutTor.donationBanner.line2g "Support internet freedom.">
-<!ENTITY aboutTor.donationBanner.line2h "Defend the open web.">
-<!ENTITY aboutTor.donationBanner.line2i "Support privacy and freedom online.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "Give today, and Mozilla will match your donation.">
-<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "Donate Now">
-<!ENTITY aboutTor.donationBanner.buttonB "Count Me In">
diff --git a/src/chrome/locale/is/aboutTor.dtd b/src/chrome/locale/is/aboutTor.dtd
index 0fd4f643..0a259108 100644
--- a/src/chrome/locale/is/aboutTor.dtd
+++ b/src/chrome/locale/is/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "Fáðu nýjustu fréttir af Tor beint í pósthólfið þitt.">
<!ENTITY aboutTor.newsletter.link_text "Skráðu þig til að fá Tor-fréttir.">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: Styrkur í fjöldanum">
-
-<!ENTITY aboutTor.donationBanner.line2a "Nafnleysi krefst félagsskapar.">
-<!ENTITY aboutTor.donationBanner.line2b "Setjum mannréttindi á oddinn.">
-<!ENTITY aboutTor.donationBanner.line2c "Stöndum saman með frelsinu.">
-<!ENTITY aboutTor.donationBanner.line2d "Verndum friðhelgi milljóna manna.">
-<!ENTITY aboutTor.donationBanner.line2e "Höldum Tor sterku">
-<!ENTITY aboutTor.donationBanner.line2f "Við þörfnumst stuðnings þíns!">
-<!ENTITY aboutTor.donationBanner.line2g "Stattu með frelsi á netinu.">
-<!ENTITY aboutTor.donationBanner.line2h "Verðu hinn opna vef.">
-<!ENTITY aboutTor.donationBanner.line2i "Verðu rétt þinn til einkalífs og frelsis á netinu.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla jafnar upp hvert fjárframlag allt til 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "Gefðu í dag - og Mozilla mun jafna framlag þitt.">
-<!ENTITY aboutTor.donationBanner.line3b "Gefðu upphæð núna - og gjöfin þín mun tvöfaldast.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "Styrkja núna">
-<!ENTITY aboutTor.donationBanner.buttonB "Reiknið með mér">
diff --git a/src/chrome/locale/it/aboutTor.dtd b/src/chrome/locale/it/aboutTor.dtd
index daad7130..b9687c45 100644
--- a/src/chrome/locale/it/aboutTor.dtd
+++ b/src/chrome/locale/it/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "Ottieni le ultime info da Tor direttamente nella tua casella di posta elettronica.">
<!ENTITY aboutTor.newsletter.link_text "Registrati alle Tor News.">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: la Forza in Numeri">
-
-<!ENTITY aboutTor.donationBanner.line2a "L'anonimato ama l'azienda.">
-<!ENTITY aboutTor.donationBanner.line2b "Migliora i diritti universali dell'uomo.">
-<!ENTITY aboutTor.donationBanner.line2c "Difendi la libertà.">
-<!ENTITY aboutTor.donationBanner.line2d "Protegge la privacy di milioni.">
-<!ENTITY aboutTor.donationBanner.line2e "Mantieni Tor forte.">
-<!ENTITY aboutTor.donationBanner.line2f "Abbiamo bisogno del tuo supporto!">
-<!ENTITY aboutTor.donationBanner.line2g "Supporta la libertà di internet.">
-<!ENTITY aboutTor.donationBanner.line2h "Difendi il web aperto.">
-<!ENTITY aboutTor.donationBanner.line2i "Sostieni la privacy e la libertà online.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla corrisponderà tutte le donazioni fino al 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "Dai oggi, e Mozilla ricambierà la tua donazione.">
-<!ENTITY aboutTor.donationBanner.line3b "Dona ora e il tuo regalo diventerà due volte più valoroso.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "Dona Ora">
-<!ENTITY aboutTor.donationBanner.buttonB "Contami">
diff --git a/src/chrome/locale/ja/aboutTor.dtd b/src/chrome/locale/ja/aboutTor.dtd
index e5c0d7ea..c8963418 100644
--- a/src/chrome/locale/ja/aboutTor.dtd
+++ b/src/chrome/locale/ja/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "Get the latest news from Tor straight to your inbox.">
<!ENTITY aboutTor.newsletter.link_text "Sign up for Tor News.">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: Strength in Numbers">
-
-<!ENTITY aboutTor.donationBanner.line2a "Anonymity loves company.">
-<!ENTITY aboutTor.donationBanner.line2b "Advance universal human rights.">
-<!ENTITY aboutTor.donationBanner.line2c "自由のために立ち上がる。">
-<!ENTITY aboutTor.donationBanner.line2d "Protect the privacy of millions.">
-<!ENTITY aboutTor.donationBanner.line2e "Keep Tor strong.">
-<!ENTITY aboutTor.donationBanner.line2f "我々にはあなたのサポートが必要です!">
-<!ENTITY aboutTor.donationBanner.line2g "Support internet freedom.">
-<!ENTITY aboutTor.donationBanner.line2h "Defend the open web.">
-<!ENTITY aboutTor.donationBanner.line2i "Support privacy and freedom online.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "Give today, and Mozilla will match your donation.">
-<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "今すぐ寄付">
-<!ENTITY aboutTor.donationBanner.buttonB "Count Me In">
diff --git a/src/chrome/locale/ka/aboutTor.dtd b/src/chrome/locale/ka/aboutTor.dtd
index 3b5bdad3..ec34af9e 100644
--- a/src/chrome/locale/ka/aboutTor.dtd
+++ b/src/chrome/locale/ka/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "მიიღეთ სიახლეები Tor-ისგან, პირდაპირ თქვენს საფოსტო ყუთში.">
<!ENTITY aboutTor.newsletter.link_text "გამოიწერეთ Tor-ის სიახლეები.">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: სიძლიერე ციფრებში">
-
-<!ENTITY aboutTor.donationBanner.line2a "ვინაობის გამჟღავნებისგან დაცვა საჭიროებს ხალხის სიმრავლეს.">
-<!ENTITY aboutTor.donationBanner.line2b "გააუმჯობესეთ ადამიანის უფლებების დაცვა.">
-<!ENTITY aboutTor.donationBanner.line2c "მხარი დაუჭირეთ თავისუფლებას.">
-<!ENTITY aboutTor.donationBanner.line2d "დაიცავით მილიონობით ადამიანის პირადი მონაცემები.">
-<!ENTITY aboutTor.donationBanner.line2e "შეინარჩუნეთ Tor ძლიერი.">
-<!ENTITY aboutTor.donationBanner.line2f "ჩვენ გვესაჭიროება თქვენი გვერდში დგომა!">
-<!ENTITY aboutTor.donationBanner.line2g "მხარი დაუჭირეთ თავისუფალ ინტერნეტს.">
-<!ENTITY aboutTor.donationBanner.line2h "დაიცავით ინტერნეტის ღიაობა.">
-<!ENTITY aboutTor.donationBanner.line2i "მხარი დაუჭირეთ პირადი მონაცემების ხელშეუხებლობისა და თავისუფლების უზრუნველყოფას ინტერნეტსივრცეში.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla გააორმაგებს თითოეულ შემოწირულ შენატანს 2019 წლამდე.">
-
-<!ENTITY aboutTor.donationBanner.line3 "გაეცით დღესვე და Mozilla გააორმაგებს თქვენს შემოწირულობას.">
-<!ENTITY aboutTor.donationBanner.line3b "გაეცით თანხა ახლავე და თქვენი შემოწირულობა ორჯერ მეტად მძლავრი იქნება.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "თანხის გაღება ახლავე">
-<!ENTITY aboutTor.donationBanner.buttonB "ჩემი წვლილის აღნიშვნა">
diff --git a/src/chrome/locale/ko/aboutTor.dtd b/src/chrome/locale/ko/aboutTor.dtd
index cf8143ab..984b53af 100644
--- a/src/chrome/locale/ko/aboutTor.dtd
+++ b/src/chrome/locale/ko/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "최신의 Tor 뉴스를 받은 편지함에 곧장 받으십시오.">
<!ENTITY aboutTor.newsletter.link_text "Tor 뉴스를 구독.">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: Strength in Numbers">
-
-<!ENTITY aboutTor.donationBanner.line2a "Anonymity loves company.">
-<!ENTITY aboutTor.donationBanner.line2b "Advance universal human rights.">
-<!ENTITY aboutTor.donationBanner.line2c "Stand up for freedom.">
-<!ENTITY aboutTor.donationBanner.line2d "Protect the privacy of millions.">
-<!ENTITY aboutTor.donationBanner.line2e "Keep Tor strong.">
-<!ENTITY aboutTor.donationBanner.line2f "We need your support!">
-<!ENTITY aboutTor.donationBanner.line2g "Support internet freedom.">
-<!ENTITY aboutTor.donationBanner.line2h "Defend the open web.">
-<!ENTITY aboutTor.donationBanner.line2i "Support privacy and freedom online.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "Give today, and Mozilla will match your donation.">
-<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "Donate Now">
-<!ENTITY aboutTor.donationBanner.buttonB "Count Me In">
diff --git a/src/chrome/locale/nb/aboutTor.dtd b/src/chrome/locale/nb/aboutTor.dtd
index a5e61845..89bd5a7f 100644
--- a/src/chrome/locale/nb/aboutTor.dtd
+++ b/src/chrome/locale/nb/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "Få de siste nyhetene fra Tor rett til innboksen din.">
<!ENTITY aboutTor.newsletter.link_text "Registrer deg for Tor Nyheter.">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: Strength in Numbers">
-
-<!ENTITY aboutTor.donationBanner.line2a "Anonymity loves company.">
-<!ENTITY aboutTor.donationBanner.line2b "Advance universal human rights.">
-<!ENTITY aboutTor.donationBanner.line2c "Stand up for freedom.">
-<!ENTITY aboutTor.donationBanner.line2d "Protect the privacy of millions.">
-<!ENTITY aboutTor.donationBanner.line2e "Keep Tor strong.">
-<!ENTITY aboutTor.donationBanner.line2f "We need your support!">
-<!ENTITY aboutTor.donationBanner.line2g "Support internet freedom.">
-<!ENTITY aboutTor.donationBanner.line2h "Defend the open web.">
-<!ENTITY aboutTor.donationBanner.line2i "Support privacy and freedom online.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "Give today, and Mozilla will match your donation.">
-<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "Donate Now">
-<!ENTITY aboutTor.donationBanner.buttonB "Count Me In">
diff --git a/src/chrome/locale/nl/aboutTor.dtd b/src/chrome/locale/nl/aboutTor.dtd
index 8929fc65..822c3548 100644
--- a/src/chrome/locale/nl/aboutTor.dtd
+++ b/src/chrome/locale/nl/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "Krijg het laatste Tor nieuws regelrecht in jouw inbox.">
<!ENTITY aboutTor.newsletter.link_text "Meld je aan voor Tor Nieuws.">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: Kracht in Nummers">
-
-<!ENTITY aboutTor.donationBanner.line2a "Anonymity loves company.">
-<!ENTITY aboutTor.donationBanner.line2b "Universele rechten van de mens bevorderen.">
-<!ENTITY aboutTor.donationBanner.line2c "Stand up for freedom.">
-<!ENTITY aboutTor.donationBanner.line2d "Bescherm de privacy van miljoenen.">
-<!ENTITY aboutTor.donationBanner.line2e "Houdt Tor sterk.">
-<!ENTITY aboutTor.donationBanner.line2f "We hebben jouw ondersteuning nodig!">
-<!ENTITY aboutTor.donationBanner.line2g "Support internet freedom.">
-<!ENTITY aboutTor.donationBanner.line2h "Defend the open web.">
-<!ENTITY aboutTor.donationBanner.line2i "Support privacy and freedom online.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "Geef vandaag, en Mozilla geeft hetzelfde bedrag.">
-<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "Geef Nu">
-<!ENTITY aboutTor.donationBanner.buttonB "Ik Doe Mee">
diff --git a/src/chrome/locale/pl/aboutTor.dtd b/src/chrome/locale/pl/aboutTor.dtd
index b523d30d..fe79cc3d 100644
--- a/src/chrome/locale/pl/aboutTor.dtd
+++ b/src/chrome/locale/pl/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "Get the latest news from Tor straight to your inbox.">
<!ENTITY aboutTor.newsletter.link_text "Sign up for Tor News.">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: Siła w liczbach">
-
-<!ENTITY aboutTor.donationBanner.line2a "Anonymity loves company.">
-<!ENTITY aboutTor.donationBanner.line2b "Advance universal human rights.">
-<!ENTITY aboutTor.donationBanner.line2c "Stand up for freedom.">
-<!ENTITY aboutTor.donationBanner.line2d "Protect the privacy of millions.">
-<!ENTITY aboutTor.donationBanner.line2e "Keep Tor strong.">
-<!ENTITY aboutTor.donationBanner.line2f "We need your support!">
-<!ENTITY aboutTor.donationBanner.line2g "Support internet freedom.">
-<!ENTITY aboutTor.donationBanner.line2h "Defend the open web.">
-<!ENTITY aboutTor.donationBanner.line2i "Support privacy and freedom online.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "Give today, and Mozilla will match your donation.">
-<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "Donate Now">
-<!ENTITY aboutTor.donationBanner.buttonB "Count Me In">
diff --git a/src/chrome/locale/pt-BR/aboutTor.dtd b/src/chrome/locale/pt-BR/aboutTor.dtd
index 02a848a7..130f2b13 100644
--- a/src/chrome/locale/pt-BR/aboutTor.dtd
+++ b/src/chrome/locale/pt-BR/aboutTor.dtd
@@ -27,22 +27,3 @@
<!ENTITY aboutTor.newsletter.tagline "Receba as últimas notícias do Tor diretamente na sua caixa de e-mail.">
<!ENTITY aboutTor.newsletter.link_text "Inscreva-se para receber Notícias do Tor.">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: Nossa Força em Números">
-
-<!ENTITY aboutTor.donationBanner.line2a "Anonimidade adora companhia ">
-<!ENTITY aboutTor.donationBanner.line2b "Avançar os direitos humanos universais.">
-<!ENTITY aboutTor.donationBanner.line2c "Defender a liberdade.">
-<!ENTITY aboutTor.donationBanner.line2d "Proteger a privacidade de milhões de pessoas.">
-<!ENTITY aboutTor.donationBanner.line2e "Manter a força do Tor.">
-<!ENTITY aboutTor.donationBanner.line2f "Precisamos do seu apoio!">
-<!ENTITY aboutTor.donationBanner.line2g "Apóie a liberdade na internet.">
-<!ENTITY aboutTor.donationBanner.line2h "Defenda a web aberta.">
-<!ENTITY aboutTor.donationBanner.line2i "Apóie a privacidade e liberdade online.">
-<!ENTITY aboutTor.donationBanner.line2j "A Mozilla está combinando cada doação até 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "Doe hoje, e a Mozilla duplicará a sua doação.">
-<!ENTITY aboutTor.donationBanner.line3b "Dê agora, e seu presente se torna duas vezes mais forte.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "Doar Agora">
-<!ENTITY aboutTor.donationBanner.buttonB "Estou dentro">
diff --git a/src/chrome/locale/ru/aboutTor.dtd b/src/chrome/locale/ru/aboutTor.dtd
index 1bc187b8..b3d2f631 100644
--- a/src/chrome/locale/ru/aboutTor.dtd
+++ b/src/chrome/locale/ru/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "Получайте последние новости Tor прямо на ваш почтовый ящик.">
<!ENTITY aboutTor.newsletter.link_text "Подпишитесь на новости Tor.">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: Сила в цифрах">
-
-<!ENTITY aboutTor.donationBanner.line2a "Анонимность уважает компании.">
-<!ENTITY aboutTor.donationBanner.line2b "Продвижение всеобщих прав человека.">
-<!ENTITY aboutTor.donationBanner.line2c "Встаньте на свободу.">
-<!ENTITY aboutTor.donationBanner.line2d "Обеспечиваем конфиденциальность миллионам людей.">
-<!ENTITY aboutTor.donationBanner.line2e "Сохраните Tor сильным.">
-<!ENTITY aboutTor.donationBanner.line2f "Нам нужна твоя поддержка!">
-<!ENTITY aboutTor.donationBanner.line2g "Support internet freedom.">
-<!ENTITY aboutTor.donationBanner.line2h "Defend the open web.">
-<!ENTITY aboutTor.donationBanner.line2i "Support privacy and freedom online.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "Пожертвуйте сегодня и Mozilla удвоит Ваше пожертвование.">
-<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "Пожертвовать">
-<!ENTITY aboutTor.donationBanner.buttonB "Посчитайте">
diff --git a/src/chrome/locale/sv/aboutTor.dtd b/src/chrome/locale/sv/aboutTor.dtd
index f2938e54..423d6e96 100644
--- a/src/chrome/locale/sv/aboutTor.dtd
+++ b/src/chrome/locale/sv/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "Få de senaste nyheterna från Tor direkt till din inkorg.">
<!ENTITY aboutTor.newsletter.link_text "Anmäl dig till Tor-nyheter.">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: Styrka i antal">
-
-<!ENTITY aboutTor.donationBanner.line2a "Anonymitet älskar sällskap.">
-<!ENTITY aboutTor.donationBanner.line2b "Främja universella mänskliga rättigheter.">
-<!ENTITY aboutTor.donationBanner.line2c "Stå upp för frihet.">
-<!ENTITY aboutTor.donationBanner.line2d "Skydda miljontals privatliv.">
-<!ENTITY aboutTor.donationBanner.line2e "Håll Tor stark.">
-<!ENTITY aboutTor.donationBanner.line2f "Vi behöver ert stöd!">
-<!ENTITY aboutTor.donationBanner.line2g "Stöd internetfrihet.">
-<!ENTITY aboutTor.donationBanner.line2h "Försvara den öppna webben.">
-<!ENTITY aboutTor.donationBanner.line2i "Stöd integritet och frihet på nätet.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla matchar varje donation fram till 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "Ge idag, och Mozilla kommer att matcha din donation.">
-<!ENTITY aboutTor.donationBanner.line3b "Ge nu, och din gåva blir dubbelt så stark.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "Donera nu">
-<!ENTITY aboutTor.donationBanner.buttonB "Räkna med mig">
diff --git a/src/chrome/locale/tr/aboutTor.dtd b/src/chrome/locale/tr/aboutTor.dtd
index 789e3d81..ce8761f2 100644
--- a/src/chrome/locale/tr/aboutTor.dtd
+++ b/src/chrome/locale/tr/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "Tor ile ilgili son gelişmeler doğrudan e-posta kutunuza gelsin.">
<!ENTITY aboutTor.newsletter.link_text "Tor Haber Bültenine Abone Olun">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: Birlikten Kuvvet Doğar">
-
-<!ENTITY aboutTor.donationBanner.line2a "Anonimlik birlikteliği sever.">
-<!ENTITY aboutTor.donationBanner.line2b "Evrensel insan haklarını geliştir.">
-<!ENTITY aboutTor.donationBanner.line2c "Özgürlüğü savun.">
-<!ENTITY aboutTor.donationBanner.line2d "Milyonların gizliliğini koru.">
-<!ENTITY aboutTor.donationBanner.line2e "Tor uygulamasının gücünü koru.">
-<!ENTITY aboutTor.donationBanner.line2f "Desteğinize ihtiyacımız var!">
-<!ENTITY aboutTor.donationBanner.line2g "İnternet özgürlüğünü destekleyin">
-<!ENTITY aboutTor.donationBanner.line2h "Açık web düşüncesini savunun.">
-<!ENTITY aboutTor.donationBanner.line2i "Kişisel gizliliği ve çevrimiçi özgürlüğü destekleyin.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla 2019 yılına kadar yapılan her bağışa karşılık veriyor.">
-
-<!ENTITY aboutTor.donationBanner.line3 "Bugün yaptığınız her bağış kadar Mozilla da bağış yapacak.">
-<!ENTITY aboutTor.donationBanner.line3b "Bağış yapın ve hediyeniz iki kat güzel olsun.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "Şimdi Bağış Yapın">
-<!ENTITY aboutTor.donationBanner.buttonB "Ben de Varım">
diff --git a/src/chrome/locale/vi/aboutTor.dtd b/src/chrome/locale/vi/aboutTor.dtd
index 09c26101..f8bc3896 100644
--- a/src/chrome/locale/vi/aboutTor.dtd
+++ b/src/chrome/locale/vi/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "Nhận thông tin mới nhất từ Tor được gửi tới hộp thư của bạn.">
<!ENTITY aboutTor.newsletter.link_text "Đăng kí nhận tin tức từ Tor.">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: Sức mạnh nằm ở Số lượng người tham gia mạng lưới">
-
-<!ENTITY aboutTor.donationBanner.line2a "Việc ẩn danh cần sự đồng hành của cộng đồng">
-<!ENTITY aboutTor.donationBanner.line2b "Nâng cao phổ biến nhân quyền.">
-<!ENTITY aboutTor.donationBanner.line2c "Đứng lên vì tự do.">
-<!ENTITY aboutTor.donationBanner.line2d "Bảo vệ sự riêng tư của hàng triệu người.">
-<!ENTITY aboutTor.donationBanner.line2e "Giữ cho Tor trở nên mạnh mẽ.">
-<!ENTITY aboutTor.donationBanner.line2f "Chúng tôi cần sự hỗ trợ của bạn!">
-<!ENTITY aboutTor.donationBanner.line2g "Support internet freedom.">
-<!ENTITY aboutTor.donationBanner.line2h "Defend the open web.">
-<!ENTITY aboutTor.donationBanner.line2i "Support privacy and freedom online.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "Hãy đóng góp ngay hôm nay, và Mozilla sẽ đóng góp tương ứng với phần của bạn.">
-<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "Đóng góp Ngay bây giờ">
-<!ENTITY aboutTor.donationBanner.buttonB "Hãy cho tôi tham gia">
diff --git a/src/chrome/locale/zh-CN/aboutTor.dtd b/src/chrome/locale/zh-CN/aboutTor.dtd
index 2707eb0a..36e9b9a5 100644
--- a/src/chrome/locale/zh-CN/aboutTor.dtd
+++ b/src/chrome/locale/zh-CN/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "通过邮件获取 Tor 的最新消息。">
<!ENTITY aboutTor.newsletter.link_text "注册 Tor 新闻列表">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor:众人拾柴火焰高">
-
-<!ENTITY aboutTor.donationBanner.line2a "匿名的表示对公司的爱意。">
-<!ENTITY aboutTor.donationBanner.line2b "推进基本人权。">
-<!ENTITY aboutTor.donationBanner.line2c "为自由呐喊。">
-<!ENTITY aboutTor.donationBanner.line2d "保护数百万人的隐私。">
-<!ENTITY aboutTor.donationBanner.line2e "让 Tor 网络保持健壮。">
-<!ENTITY aboutTor.donationBanner.line2f "我们需要你的帮助!">
-<!ENTITY aboutTor.donationBanner.line2g "支持互联网自由。">
-<!ENTITY aboutTor.donationBanner.line2h "捍卫互联网的开放。">
-<!ENTITY aboutTor.donationBanner.line2i "保障隐私和网络自由。">
-<!ENTITY aboutTor.donationBanner.line2j "直到2019年,Mozilla 将匹配所有捐赠。">
-
-<!ENTITY aboutTor.donationBanner.line3 "现在捐款, Mozilla 也能从你的捐赠中受益。">
-<!ENTITY aboutTor.donationBanner.line3b "现在捐赠,您的支持将化作双倍的力量。">
-
-<!ENTITY aboutTor.donationBanner.buttonA "现在就捐助">
-<!ENTITY aboutTor.donationBanner.buttonB "算我一个">
diff --git a/src/chrome/locale/zh-TW/aboutTor.dtd b/src/chrome/locale/zh-TW/aboutTor.dtd
index bcbec612..bd5fa14d 100644
--- a/src/chrome/locale/zh-TW/aboutTor.dtd
+++ b/src/chrome/locale/zh-TW/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "將 Tor 的最新消息直接傳送到您的收件匣。">
<!ENTITY aboutTor.newsletter.link_text "訂閱 Tor 的新資訊。">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: Strength in Numbers">
-
-<!ENTITY aboutTor.donationBanner.line2a "Anonymity loves company.">
-<!ENTITY aboutTor.donationBanner.line2b "Advance universal human rights.">
-<!ENTITY aboutTor.donationBanner.line2c "Stand up for freedom.">
-<!ENTITY aboutTor.donationBanner.line2d "Protect the privacy of millions.">
-<!ENTITY aboutTor.donationBanner.line2e "Keep Tor strong.">
-<!ENTITY aboutTor.donationBanner.line2f "我們需要您的支援!">
-<!ENTITY aboutTor.donationBanner.line2g "Support internet freedom.">
-<!ENTITY aboutTor.donationBanner.line2h "Defend the open web.">
-<!ENTITY aboutTor.donationBanner.line2i "Support privacy and freedom online.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "今日您捐款,Mozilla 也會捐出相同數額。">
-<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "立刻捐款">
-<!ENTITY aboutTor.donationBanner.buttonB "我也要加入!">
diff --git a/src/chrome/skin/aboutTor.css b/src/chrome/skin/aboutTor.css
index 9f195cfd..ce0a2f29 100644
--- a/src/chrome/skin/aboutTor.css
+++ b/src/chrome/skin/aboutTor.css
@@ -272,126 +272,74 @@ body:not([showmanual]) .showForManual {
border-radius: 50px 50px 0 0;
}
-/* Donation Banner
+/* Tor News Signup Banner
* While this banner is present, we need to
* offset the elements normally at the top of
* the window.
*/
-#donation-banner {
+#tornews-banner {
display: flex;
- align-items: stretch;
+ align-items: center;
background-color: white;
color: var(--abouttor-bg-toron-color);
font-size: 16px;
- height: 200px;
- justify-content: center;
+ height: 60px;
+ justify-content: space-between;
left: 0px;
right: 0px;
top: 0px;
- position: absolute;
- transform: translateY(-200px);
+ transform: translateY(-60px);
transition: transform 200ms;
- z-index: 1;
}
-body[show-donation-banner="true"] #donation-banner {
+body[show-tornews-banner="true"] #tornews-banner {
transform: translateY(0px);
transition: transform 0ms;
}
-#donation-banner-image {
- background: url('chrome://torbutton/skin/donation_banner_image_3x.png') no-repeat center center;
- background-size: contain;
- height: 190px;
- margin: 10px 10px 0px 0px;
- width: 400px;
+#tornews-banner-message {
+ align-items: center;
+ display: flex;
+ justify-content: center;
+}
+
+#tornews-banner-message a {
+ color: var(--abouttor-bg-toron-color);
+}
+
+#tornews-banner-icon {
+ background: url('chrome://torbutton/skin/newsletter_3x.png') no-repeat center center;
+ background-size: cover;
+ height: 32px;
+ margin: 0px 16px;
+ width: 32px;
}
-#donation-banner-closer {
+#tornews-banner-closer {
display: flex;
align-items: center;
font-size: 20px;
height: 22px;
justify-content: center;
- margin: 4px;
+ margin: 4px 20px;
padding: 4px;
- position: absolute;
- offset-inline-end: 0px;
- top: 0px;
width: 22px;
-moz-user-select: none;
}
-#donation-banner-closer:hover {
+#tornews-banner-closer:hover {
background-color: gray;
cursor: pointer;
}
-#donation-banner-lines {
- align-items: start;
- display: flex;
- flex-direction: column;
- justify-content: space-around;
- padding: 20px 0px;
-}
-
-#donation-banner-line1 {
- font-size: 11px;
- font-weight: bold;
- text-transform: uppercase;
-}
-
-#donation-banner-line2 {
- font-size: 20px;
- font-weight: bold;
-}
-
-#donation-banner-line2 span {
- background-color: #a9fef8;
-}
-
-#donation-banner-line3 {
- font-size: 14px;
-}
-
-#donation-banner-button {
- background-color: var(--abouttor-bg-toron-color);
- border-radius: 3px;
- border: 0px;
- color: white;
- font-size: 14px;
- font-weight: bold;
- margin: 10px 0px;
- padding: 10px 24px;
- text-decoration: none;
-}
-
-#donation-banner-button:hover {
- background-color: #683d7d;
- cursor: pointer;
-}
-
-body[show-donation-banner="false"] .torcontent-container,
-body[show-donation-banner="false"] .onion-pattern-container,
-body[show-donation-banner="false"] #torstatus-version,
-body[show-donation-banner="false"] #onboarding-overlay-button {
+body[show-tornews-banner="false"] #torstatus-version,
+body[show-tornews-banner="false"] #onboarding-overlay-button {
transition: transform 200ms;
}
-body[show-donation-banner="true"] .torcontent-container,
-body[show-donation-banner="true"] .onion-pattern-container {
- transform: translateY(80px);
+body[show-tornews-banner="true"] #torstatus-version,
+body[show-tornews-banner="true"] #onboarding-overlay-button {
+ transform: translateY(60px);
transition: transform 0ms;
}
-
-body[show-donation-banner="true"] .onion-pattern-container {
- position: fixed;
-}
-
-body[show-donation-banner="true"] #torstatus-version,
-body[show-donation-banner="true"] #onboarding-overlay-button {
- transform: translateY(200px);
- transition: transform 0ms;
- position: absolute;
-}
diff --git a/src/chrome/skin/donation_banner_image_3x.png b/src/chrome/skin/donation_banner_image_3x.png
deleted file mode 100644
index 6eb7fbbb..00000000
Binary files a/src/chrome/skin/donation_banner_image_3x.png and /dev/null differ
diff --git a/src/chrome/skin/newsletter_3x.png b/src/chrome/skin/newsletter_3x.png
new file mode 100644
index 00000000..821572fa
Binary files /dev/null and b/src/chrome/skin/newsletter_3x.png differ
diff --git a/src/defaults/preferences/preferences.js b/src/defaults/preferences/preferences.js
index eb055a65..45b60ce8 100644
--- a/src/defaults/preferences/preferences.js
+++ b/src/defaults/preferences/preferences.js
@@ -6,7 +6,7 @@ pref("extensions.torbutton.logmethod",1); // 0=stdout, 1=errorconsole, 2=debuglo
pref("extensions.torbutton.display_circuit", true);
pref("extensions.torbutton(a)torproject.org.description", "chrome://torbutton/locale/torbutton.properties");
pref("extensions.torbutton.updateNeeded", false);
-pref("extensions.torbutton.donation_banner_countdown2", 12);
+pref("extensions.torbutton.tornews_banner_countdown", 4);
// Tor check and proxy prefs
pref("extensions.torbutton.test_enabled",true);
1
0

22 Jan '19
commit ad06d1ca99f2dfd110ca10349db6c4a889f67d48
Author: Georg Koppen <gk(a)torproject.org>
Date: Tue Jan 22 08:00:28 2019 +0000
Bug 29035: Add link for newsletter sign-up
Patch based on a version written by Arthur Edelstein
---
src/chrome/content/aboutTor/aboutTor.xhtml | 7 +++++--
src/chrome/skin/aboutTor.css | 13 +++++++++++++
src/chrome/skin/icon-newsletter.png | Bin 0 -> 649 bytes
3 files changed, 18 insertions(+), 2 deletions(-)
diff --git a/src/chrome/content/aboutTor/aboutTor.xhtml b/src/chrome/content/aboutTor/aboutTor.xhtml
index 6082db0c..a4ba2a84 100644
--- a/src/chrome/content/aboutTor/aboutTor.xhtml
+++ b/src/chrome/content/aboutTor/aboutTor.xhtml
@@ -60,9 +60,12 @@ window.addEventListener("pageshow", function() {
</div>
<div id="bottom">
- <p class="showForManual moreInfoLink">&aboutTor.torbrowser_user_manual_questions.label;
+ <p id="manual" class="showForManual moreInfoLink">&aboutTor.torbrowser_user_manual_questions.label;
<a id="manualLink" target="_blank">&aboutTor.torbrowser_user_manual_link.label;</a></p>
- <p>&aboutTor.tor_mission.label;
+ <p id="newsletter" class="moreInfoLink"><img class="imageStyle" src="resource://torbutton-assets/icon-newsletter.png"/><br/>&aboutTor.newsletter.tagline;<br/>
+ <a href="https://newsletter.torproject.org">&aboutTor.newsletter.link_text; »</a>
+ </p>
+ <p id="mission">&aboutTor.tor_mission.label;
<a href="&aboutTor.getInvolved.link;">&aboutTor.getInvolved.label;</a></p>
</div>
</div>
diff --git a/src/chrome/skin/aboutTor.css b/src/chrome/skin/aboutTor.css
index d53860a5..4c495b8c 100644
--- a/src/chrome/skin/aboutTor.css
+++ b/src/chrome/skin/aboutTor.css
@@ -144,6 +144,19 @@ body:not([showmanual]) .showForManual {
font-size: 15px;
}
+#bottom img.imageStyle {
+ padding-inline-end: 10px;
+}
+
+/* Hide the linebreaks on large enough screens (desktops, laptops, and
+ * tablets).
+ */
+@media only screen and (min-width: 768px) {
+ #bottom br {
+ display: none;
+ }
+}
+
.searchbox form {
width: 500px;
margin: 39px auto 0px auto;
diff --git a/src/chrome/skin/icon-newsletter.png b/src/chrome/skin/icon-newsletter.png
new file mode 100644
index 00000000..7532ba9c
Binary files /dev/null and b/src/chrome/skin/icon-newsletter.png differ
1
0

22 Jan '19
commit 648b643cf9bc828e409cd07e7633f2c226b6ce7f
Author: Georg Koppen <gk(a)torproject.org>
Date: Fri Jan 18 09:14:52 2019 +0000
Bug 29035: Post-YE campaign clean-up 2018
Removing the donation banner.
---
src/chrome/content/aboutTor/aboutTor-content.js | 30 ++----
src/chrome/content/aboutTor/aboutTor.xhtml | 55 ++--------
src/chrome/content/torbutton.js | 18 ++--
src/chrome/locale/ar/aboutTor.dtd | 19 ----
src/chrome/locale/bn-BD/aboutTor.dtd | 19 ----
src/chrome/locale/ca/aboutTor.dtd | 19 ----
src/chrome/locale/cs/aboutTor.dtd | 19 ----
src/chrome/locale/da/aboutTor.dtd | 19 ----
src/chrome/locale/de/aboutTor.dtd | 19 ----
src/chrome/locale/el/aboutTor.dtd | 19 ----
src/chrome/locale/en-US/aboutTor.dtd | 19 ----
src/chrome/locale/es-AR/aboutTor.dtd | 14 ---
src/chrome/locale/es/aboutTor.dtd | 19 ----
src/chrome/locale/eu/aboutTor.dtd | 19 ----
src/chrome/locale/fa/aboutTor.dtd | 19 ----
src/chrome/locale/fr/aboutTor.dtd | 19 ----
src/chrome/locale/ga/aboutTor.dtd | 19 ----
src/chrome/locale/he/aboutTor.dtd | 19 ----
src/chrome/locale/hu/aboutTor.dtd | 19 ----
src/chrome/locale/id/aboutTor.dtd | 19 ----
src/chrome/locale/is/aboutTor.dtd | 19 ----
src/chrome/locale/it/aboutTor.dtd | 19 ----
src/chrome/locale/ja/aboutTor.dtd | 19 ----
src/chrome/locale/ka/aboutTor.dtd | 19 ----
src/chrome/locale/ko/aboutTor.dtd | 19 ----
src/chrome/locale/nb/aboutTor.dtd | 19 ----
src/chrome/locale/nl/aboutTor.dtd | 19 ----
src/chrome/locale/pl/aboutTor.dtd | 19 ----
src/chrome/locale/pt-BR/aboutTor.dtd | 19 ----
src/chrome/locale/ru/aboutTor.dtd | 19 ----
src/chrome/locale/sv/aboutTor.dtd | 19 ----
src/chrome/locale/tr/aboutTor.dtd | 19 ----
src/chrome/locale/vi/aboutTor.dtd | 19 ----
src/chrome/locale/zh-CN/aboutTor.dtd | 19 ----
src/chrome/locale/zh-TW/aboutTor.dtd | 19 ----
src/chrome/skin/aboutTor.css | 137 ++++++------------------
src/chrome/skin/donation_banner_image_3x.png | Bin 71927 -> 0 bytes
src/chrome/skin/newsletter_3x.png | Bin 0 -> 6735 bytes
src/defaults/preferences/preferences.js | 2 +-
39 files changed, 61 insertions(+), 784 deletions(-)
diff --git a/src/chrome/content/aboutTor/aboutTor-content.js b/src/chrome/content/aboutTor/aboutTor-content.js
index e53266bd..e2167de0 100644
--- a/src/chrome/content/aboutTor/aboutTor-content.js
+++ b/src/chrome/content/aboutTor/aboutTor-content.js
@@ -24,7 +24,7 @@ let { bindPrefAndInit, show_torbrowser_manual } = Cu.import("resource://torbutto
var AboutTorListener = {
kAboutTorLoadedMessage: "AboutTor:Loaded",
kAboutTorChromeDataMessage: "AboutTor:ChromeData",
- kAboutTorHideDonationBanner: "AboutTor:HideDonationBanner",
+ kAboutTorHideTorNewsBanner: "AboutTor:HideTorNewsBanner",
get isAboutTor() {
return content.document.documentURI.toLowerCase() == "about:tor";
@@ -61,24 +61,20 @@ var AboutTorListener = {
setupBannerClosing: function () {
let that = this;
- let closer = content.document.getElementById("donation-banner-closer");
+ let closer = content.document.getElementById("tornews-banner-closer");
closer.addEventListener("click", function () {
- sendAsyncMessage(that.kAboutTorHideDonationBanner);
+ sendAsyncMessage(that.kAboutTorHideTorNewsBanner);
});
- let button = content.document.getElementById("donation-banner-button");
- button.addEventListener("click", function () {
+ let link = content.document.querySelector("#tornews-banner-message a");
+ link.addEventListener("click", function () {
// Wait until page unloads so we don't hide banner before that.
content.addEventListener("unload", function () {
- sendAsyncMessage(that.kAboutTorHideDonationBanner);
+ sendAsyncMessage(that.kAboutTorHideTorNewsBanner);
});
});
- bindPrefAndInit("extensions.torbutton.donation_banner_countdown2",
- countdown => {
- if (content.document && content.document.body) {
- content.document.body.setAttribute(
- "show-donation-banner", countdown > 0);
- }
- });
+ bindPrefAndInit("extensions.torbutton.tornews_banner_countdown",
+ countdown => content.document.body.setAttribute(
+ "show-tornews-banner", countdown > 0));
},
onPageLoad: function() {
@@ -131,14 +127,6 @@ var AboutTorListener = {
content.document.getElementById("manualLink").href =
"https://tb-manual.torproject.org/" + aLocale;
- // Don't use "Count Me In" phrase in non-en-US locales
- if (!aLocale.startsWith("en")) {
- let button = content.document.getElementById("donation-banner-button");
- button.innerHTML = button.getAttribute("data-0");
- let theURL = button.getAttribute("href");
- button.setAttribute("href", theURL.slice(0,-2));
- }
-
// Display the Tor Browser product name and version.
try {
const kBrandBundle = "chrome://branding/locale/brand.properties";
diff --git a/src/chrome/content/aboutTor/aboutTor.xhtml b/src/chrome/content/aboutTor/aboutTor.xhtml
index 1a9c701e..a34d0220 100644
--- a/src/chrome/content/aboutTor/aboutTor.xhtml
+++ b/src/chrome/content/aboutTor/aboutTor.xhtml
@@ -32,54 +32,21 @@ window.addEventListener("pageshow", function() {
</script>
</head>
<body dir="&locale.dir;">
- <div id="donation-banner">
- <div id="donation-banner-image"></div>
- <div id="donation-banner-lines">
- <div id="donation-banner-line1">&aboutTor.donationBanner.line1;</div>
- <div id="donation-banner-line2"
- data-6="&aboutTor.donationBanner.line2e;"
- data-7="&aboutTor.donationBanner.line2f;"
- data-8="&aboutTor.donationBanner.line2g;"
- data-9="&aboutTor.donationBanner.line2h;"
- data-10="&aboutTor.donationBanner.line2i;"
- data-11="&aboutTor.donationBanner.line2j;">
- &aboutTor.donationBanner.line2e;
+ <div id="tornews-banner">
+ <div><!--EMPTY SPACER DIV--></div>
+ <div id="tornews-banner-message">
+ <div id="tornews-banner-icon"></div>
+ <div>&aboutTor.newsletter.tagline;
+ <a href="https://newsletter.torproject.org">
+ &aboutTor.newsletter.link_text;
+ </a>
</div>
- <div id="donation-banner-line3"
- data-b="&aboutTor.donationBanner.line3b;">
- &aboutTor.donationBanner.line3;</div>
- <a id="donation-banner-button"
- href="https://www.torproject.org/donate/donate-sin-tbd0-0"
- type="button"
- data-0="&aboutTor.donationBanner.buttonA;"
- data-1="&aboutTor.donationBanner.buttonB;">
- &aboutTor.donationBanner.buttonA;
- </a>
</div>
- <div id="donation-banner-closer">×</div>
+ <div id="tornews-banner-closer">×</div>
</div>
-<script type="text/javascript">
- <![CDATA[
- let lineChoice = 6 + Math.floor(Math.random() * 6);
- let line2 = document.getElementById("donation-banner-line2");
- let line2text = line2.getAttribute(`data-${lineChoice}`);
- let line2pieces = line2text.split(" ");
- let line2end = '<span>' + line2pieces.pop() + '</span>';
- line2pieces.push(line2end);
- line2.innerHTML = line2pieces.join(" ");
- line3 = document.getElementById("donation-banner-line3");
- if (lineChoice === 11) {
- line3.innerHTML = line3.getAttribute("data-b");
- }
- let buttonChoice = Math.floor(Math.random() * 2);
- let button = document.getElementById("donation-banner-button");
- button.innerHTML = button.getAttribute(`data-${buttonChoice}`);
- button.setAttribute("href",
- `https://www.torproject.org/donate/donate-sin-tbd${lineChoice}-${buttonChoice}`);
-]]>
-</script>
- <div id="torstatus-version"/>
+
<div class="torcontent-container">
+ <div id="torstatus-version"/>
<img class="torcontent-logo" src="resource://torbutton-assets/torbrowser_mobile_logo.png"/>
<div id="torstatus" class="top">
<div id="torstatus-on-container" class="hideIfTorOff torstatus-container">
diff --git a/src/chrome/content/torbutton.js b/src/chrome/content/torbutton.js
index 35ae2acb..dc8d9d97 100644
--- a/src/chrome/content/torbutton.js
+++ b/src/chrome/content/torbutton.js
@@ -17,7 +17,7 @@ const k_tb_last_browser_version_pref = "extensions.torbutton.lastBrowserVersion"
const k_tb_browser_update_needed_pref = "extensions.torbutton.updateNeeded";
const k_tb_last_update_check_pref = "extensions.torbutton.lastUpdateCheck";
const k_tb_tor_check_failed_topic = "Torbutton:TorCheckFailed";
-const k_tb_donation_banner_countdown = "extensions.torbutton.donation_banner_countdown2";
+const k_tb_tornews_banner_countdown = "extensions.torbutton.tornews_banner_countdown";
var m_tb_prefs = Services.prefs;
@@ -223,10 +223,10 @@ function torbutton_init_toolbutton()
}
// Show the Sign Up for Tor News banner a finite number of times.
-function torbutton_donation_banner_countdown() {
- let count = m_tb_prefs.getIntPref(k_tb_donation_banner_countdown, 0);
+function torbutton_tornews_banner_countdown() {
+ let count = m_tb_prefs.getIntPref(k_tb_tornews_banner_countdown, 0);
if (count > 0) {
- m_tb_prefs.setIntPref(k_tb_donation_banner_countdown, count - 1);
+ m_tb_prefs.setIntPref(k_tb_tornews_banner_countdown, count - 1);
}
}
@@ -342,10 +342,10 @@ function torbutton_init() {
// Add about:tor IPC message listener.
window.messageManager.addMessageListener("AboutTor:Loaded",
torbutton_abouttor_message_handler);
- window.messageManager.addMessageListener("AboutTor:HideDonationBanner",
+ window.messageManager.addMessageListener("AboutTor:HideTorNewsBanner",
torbutton_abouttor_message_handler);
- torbutton_donation_banner_countdown();
+ torbutton_tornews_banner_countdown();
setupPreferencesForMobile();
@@ -433,9 +433,9 @@ var torbutton_abouttor_message_handler = {
aMessage.target.messageManager.sendAsyncMessage("AboutTor:ChromeData",
this.chromeData);
break;
- case "AboutTor:HideDonationBanner":
- torbutton_log(5, "message AboutTor:HideDonationBanner received");
- m_tb_prefs.setIntPref(k_tb_donation_banner_countdown, 0);
+ case "AboutTor:HideTorNewsBanner":
+ torbutton_log(5, "message AboutTor:HideTorNewsBanner received");
+ m_tb_prefs.setIntPref(k_tb_tornews_banner_countdown, 0);
break;
}
},
diff --git a/src/chrome/locale/ar/aboutTor.dtd b/src/chrome/locale/ar/aboutTor.dtd
index 7fda4740..878d860e 100644
--- a/src/chrome/locale/ar/aboutTor.dtd
+++ b/src/chrome/locale/ar/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "احصل على آخر أخبار تور مباشرة على بريدك">
<!ENTITY aboutTor.newsletter.link_text "اشترك للحصول على أخبار تور.">
-
-<!ENTITY aboutTor.donationBanner.line1 "تور: نقاط القوة">
-
-<!ENTITY aboutTor.donationBanner.line2a "المجهولية تحتاج لصحبة.">
-<!ENTITY aboutTor.donationBanner.line2b "ساعد في تقدم حقوق الإنسان.">
-<!ENTITY aboutTor.donationBanner.line2c "انتصر للحرية.">
-<!ENTITY aboutTor.donationBanner.line2d "احم خصوصية الملايين.">
-<!ENTITY aboutTor.donationBanner.line2e "حافظ على قوة تور.">
-<!ENTITY aboutTor.donationBanner.line2f "نحتاج دعمك.">
-<!ENTITY aboutTor.donationBanner.line2g "Support internet freedom.">
-<!ENTITY aboutTor.donationBanner.line2h "Defend the open web.">
-<!ENTITY aboutTor.donationBanner.line2i "Support privacy and freedom online.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "تبرع اليوم، وستجاريك موزيلا وتبرع بنفس المبلغ.">
-<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "تبرع الآن">
-<!ENTITY aboutTor.donationBanner.buttonB "سأشارك">
diff --git a/src/chrome/locale/bn-BD/aboutTor.dtd b/src/chrome/locale/bn-BD/aboutTor.dtd
index fdac71be..0896f075 100644
--- a/src/chrome/locale/bn-BD/aboutTor.dtd
+++ b/src/chrome/locale/bn-BD/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "টর থেকে সর্বশেষ খবর নিন সোজা আপনার ইনবক্সে ।">
<!ENTITY aboutTor.newsletter.link_text "টর নিউজ-এর জন্য সাইন আপ করুন ।">
-
-<!ENTITY aboutTor.donationBanner.line1 "টর: সংখ্যাই শক্তি">
-
-<!ENTITY aboutTor.donationBanner.line2a "ছদ্মনাম বেশী ব্যবহারকারীর মধ্যে কার্যকরী।">
-<!ENTITY aboutTor.donationBanner.line2b "সার্বজনীন মানবাধিকারকে এগিয়ে নিন। ">
-<!ENTITY aboutTor.donationBanner.line2c "স্বাধীনতার জন্য এগিয়ে আসুন ">
-<!ENTITY aboutTor.donationBanner.line2d "লাখো লোকের ব্যক্তিগত গোপনীয়তা রক্ষা করুন। ">
-<!ENTITY aboutTor.donationBanner.line2e "টরকে শক্তিশালী রাখুন। ">
-<!ENTITY aboutTor.donationBanner.line2f "আপনাদের সাহায্য দরকার! ">
-<!ENTITY aboutTor.donationBanner.line2g "Support internet freedom.">
-<!ENTITY aboutTor.donationBanner.line2h "Defend the open web.">
-<!ENTITY aboutTor.donationBanner.line2i "Support privacy and freedom online.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "অর্থ সাহায্য করুন, এবং মজিলা সমপরিমাণ সাহায্য করবে। ">
-<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "এখুনি দান করুন! ">
-<!ENTITY aboutTor.donationBanner.buttonB "আমাকেও সাথে নিন">
diff --git a/src/chrome/locale/ca/aboutTor.dtd b/src/chrome/locale/ca/aboutTor.dtd
index 878ce7ad..ca8aee1c 100644
--- a/src/chrome/locale/ca/aboutTor.dtd
+++ b/src/chrome/locale/ca/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "Obteniu les darreres novetats de Tor directament a la safata d'entrada.">
<!ENTITY aboutTor.newsletter.link_text "Inscriviu-vos a les noticies de Tor.">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: Strength in Numbers">
-
-<!ENTITY aboutTor.donationBanner.line2a "Anonymity loves company.">
-<!ENTITY aboutTor.donationBanner.line2b "Avançats drets humans universals.">
-<!ENTITY aboutTor.donationBanner.line2c "Stand up for freedom.">
-<!ENTITY aboutTor.donationBanner.line2d "Protegeix la privacitat de milions.">
-<!ENTITY aboutTor.donationBanner.line2e "Keep Tor strong.">
-<!ENTITY aboutTor.donationBanner.line2f "Necessitem el teu suport!">
-<!ENTITY aboutTor.donationBanner.line2g "Recolça la llibertat a internet.">
-<!ENTITY aboutTor.donationBanner.line2h "Defensa la web oberta.">
-<!ENTITY aboutTor.donationBanner.line2i "Support privacy and freedom online.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "Give today, and Mozilla will match your donation.">
-<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "Donate Now">
-<!ENTITY aboutTor.donationBanner.buttonB "Compta amb mi">
diff --git a/src/chrome/locale/cs/aboutTor.dtd b/src/chrome/locale/cs/aboutTor.dtd
index 31ccf6bd..2c29d50d 100644
--- a/src/chrome/locale/cs/aboutTor.dtd
+++ b/src/chrome/locale/cs/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "Nechte si posílat nejnovější informace o Toru.">
<!ENTITY aboutTor.newsletter.link_text "Přihlaste se k odběru zpravodaje Toru.">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: Síla je v počtu">
-
-<!ENTITY aboutTor.donationBanner.line2a "Společnost se zálibou v anonymitě.">
-<!ENTITY aboutTor.donationBanner.line2b "Posílení všeobecných lidských práv.">
-<!ENTITY aboutTor.donationBanner.line2c "Postavte se za svobodu.">
-<!ENTITY aboutTor.donationBanner.line2d "Chráníme soukromí milionů lidí.">
-<!ENTITY aboutTor.donationBanner.line2e "Pomozte Toru sílit.">
-<!ENTITY aboutTor.donationBanner.line2f "Potřebujeme vaši podporu!">
-<!ENTITY aboutTor.donationBanner.line2g "Podpořte svobodu internetu.">
-<!ENTITY aboutTor.donationBanner.line2h "Braňte otevřený web.">
-<!ENTITY aboutTor.donationBanner.line2i "Podpořte online soukromí a svobodu.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla dorovná každý příspěvek až do začátku roku 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "Přispějte hned a Mozilla vás dar zdvojnásobí.">
-<!ENTITY aboutTor.donationBanner.line3b "Pošlete příspěvek a ten se zdvojnásobí.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "Přispějte">
-<!ENTITY aboutTor.donationBanner.buttonB "Jdu do toho">
diff --git a/src/chrome/locale/da/aboutTor.dtd b/src/chrome/locale/da/aboutTor.dtd
index bc06d980..902a84fa 100644
--- a/src/chrome/locale/da/aboutTor.dtd
+++ b/src/chrome/locale/da/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "Få de seneste nyheder fra Tor direkte i din indbakke.">
<!ENTITY aboutTor.newsletter.link_text "Tilmeld Tor-nyheder.">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: Styrke i antal">
-
-<!ENTITY aboutTor.donationBanner.line2a "Anonymitet elsker selskab.">
-<!ENTITY aboutTor.donationBanner.line2b "Avancerede universelle menneskerettigheder.">
-<!ENTITY aboutTor.donationBanner.line2c "Slå et slag for frihed.">
-<!ENTITY aboutTor.donationBanner.line2d "Beskyt privatlivet af millioner.">
-<!ENTITY aboutTor.donationBanner.line2e "Hold Tor stærk.">
-<!ENTITY aboutTor.donationBanner.line2f "Vi har brug for din støtte!">
-<!ENTITY aboutTor.donationBanner.line2g "Støt internetfrihed.">
-<!ENTITY aboutTor.donationBanner.line2h "Forsvar det åbne web.">
-<!ENTITY aboutTor.donationBanner.line2i "Støt privatliv og frihed online.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla matcher hver donation frem til 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "Giv i dag, og Mozilla vil matche din donation.">
-<!ENTITY aboutTor.donationBanner.line3b "Giv nu og din gave bliver dobbelt så stærk.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "Donér nu">
-<!ENTITY aboutTor.donationBanner.buttonB "Jeg er med">
diff --git a/src/chrome/locale/de/aboutTor.dtd b/src/chrome/locale/de/aboutTor.dtd
index 0ffc979f..6bd2e164 100644
--- a/src/chrome/locale/de/aboutTor.dtd
+++ b/src/chrome/locale/de/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "Erhalte die neuesten Nachrichten von Tor direkt in den Posteingang.">
<!ENTITY aboutTor.newsletter.link_text "Tor-Nachrichten abonnieren.">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: Stärke in Zahlen">
-
-<!ENTITY aboutTor.donationBanner.line2a "Anonymität liebt Gemeinschaft">
-<!ENTITY aboutTor.donationBanner.line2b "Verbessere die Menschenrechte">
-<!ENTITY aboutTor.donationBanner.line2c "Setz dich ein für Freiheit.">
-<!ENTITY aboutTor.donationBanner.line2d "Schütze die Privatsphäre von Millionen Menschen.">
-<!ENTITY aboutTor.donationBanner.line2e "Mache Tor stark.">
-<!ENTITY aboutTor.donationBanner.line2f "Wir brauchen deine Unterstützung.">
-<!ENTITY aboutTor.donationBanner.line2g "Unterstütze Internetfreiheit.">
-<!ENTITY aboutTor.donationBanner.line2h "Verteidige das offene Netz.">
-<!ENTITY aboutTor.donationBanner.line2i "Unterstütze Datenschutz und Freiheit im Internet.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla unterstützt jede Spende bis 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "Gib noch heute, und Mozilla wird deiner Spende entsprechen.">
-<!ENTITY aboutTor.donationBanner.line3b "Spende jetzt, und dein Geschenk wird doppelt so stark.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "Spende jetzt">
-<!ENTITY aboutTor.donationBanner.buttonB "Zähl mich mit">
diff --git a/src/chrome/locale/el/aboutTor.dtd b/src/chrome/locale/el/aboutTor.dtd
index d93a5a5a..dbddba88 100644
--- a/src/chrome/locale/el/aboutTor.dtd
+++ b/src/chrome/locale/el/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "Λάβετε τα τελευταία νέα του Tor κατευθείαν στα εισερχόμενα σας.">
<!ENTITY aboutTor.newsletter.link_text "Εγγραφτείτε για τα νέα του Tor.">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: Ισχύς εν τη ενώσει.">
-
-<!ENTITY aboutTor.donationBanner.line2a "Η ανωνυμία αγαπά την παρέα.">
-<!ENTITY aboutTor.donationBanner.line2b "Προωθήστε τα ανθρώπινα δικαιώματα παγκοσμίως.">
-<!ENTITY aboutTor.donationBanner.line2c "Υπερασπιστείτε την ελευθερία ">
-<!ENTITY aboutTor.donationBanner.line2d "Προστατέψτε την ιδιωτικότητα εκατομμυρίων.">
-<!ENTITY aboutTor.donationBanner.line2e "Διατηρήστε το Tor ισχυρό.">
-<!ENTITY aboutTor.donationBanner.line2f "Χρειαζόμαστε την υποστήριξη σας!">
-<!ENTITY aboutTor.donationBanner.line2g "Στηρίξτε την ελευθερία στο διαδίκτυο.">
-<!ENTITY aboutTor.donationBanner.line2h "Υπερασπιστείτε τον ανοιχτό ιστό.">
-<!ENTITY aboutTor.donationBanner.line2i "Στηρίξτε την ιδιωτικότητα και την ελευθερία στο διαδίκτυο.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "Δωρίστε σήμερα και το Mozilla θα δωρίσει το ίδιο ποσό!">
-<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "Κάντε μια δωρεά τώρα!">
-<!ENTITY aboutTor.donationBanner.buttonB "Υπολογίστε με">
diff --git a/src/chrome/locale/en-US/aboutTor.dtd b/src/chrome/locale/en-US/aboutTor.dtd
index a36d812c..1400d7b5 100644
--- a/src/chrome/locale/en-US/aboutTor.dtd
+++ b/src/chrome/locale/en-US/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "Get the latest news from Tor straight to your inbox.">
<!ENTITY aboutTor.newsletter.link_text "Sign up for Tor News.">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: Strength in Numbers">
-
-<!ENTITY aboutTor.donationBanner.line2a "Anonymity loves company.">
-<!ENTITY aboutTor.donationBanner.line2b "Advance universal human rights.">
-<!ENTITY aboutTor.donationBanner.line2c "Stand up for freedom.">
-<!ENTITY aboutTor.donationBanner.line2d "Protect the privacy of millions.">
-<!ENTITY aboutTor.donationBanner.line2e "Keep Tor strong.">
-<!ENTITY aboutTor.donationBanner.line2f "We need your support!">
-<!ENTITY aboutTor.donationBanner.line2g "Support internet freedom.">
-<!ENTITY aboutTor.donationBanner.line2h "Defend the open web.">
-<!ENTITY aboutTor.donationBanner.line2i "Support privacy and freedom online.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "Give today, and Mozilla will match your donation.">
-<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "Donate Now">
-<!ENTITY aboutTor.donationBanner.buttonB "Count Me In">
diff --git a/src/chrome/locale/es-AR/aboutTor.dtd b/src/chrome/locale/es-AR/aboutTor.dtd
index fcb78004..1bb03e95 100644
--- a/src/chrome/locale/es-AR/aboutTor.dtd
+++ b/src/chrome/locale/es-AR/aboutTor.dtd
@@ -26,17 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "Recibí las últimas noticias de Tor derecho en tu bandeja de entrada.">
<!ENTITY aboutTor.newsletter.link_text "Registrate en Tor News.">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: Fortaleza en Canidad">
-
-<!ENTITY aboutTor.donationBanner.line2a "El anonimato ama la compañía.">
-<!ENTITY aboutTor.donationBanner.line2b "Avanzar los derechos humanos universales.">
-<!ENTITY aboutTor.donationBanner.line2c "Plantarse por la libertad.">
-<!ENTITY aboutTor.donationBanner.line2d "Proteger la privacidad de millones.">
-<!ENTITY aboutTor.donationBanner.line2e "Mantener fuerte a Tor.">
-<!ENTITY aboutTor.donationBanner.line2f "¡Necesitamos tu apoyo!">
-
-<!ENTITY aboutTor.donationBanner.line3 "Dá hoy, y Mozilla emparejará tu donación.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "Doná ahora">
-<!ENTITY aboutTor.donationBanner.buttonB "Contá conmigo">
diff --git a/src/chrome/locale/es/aboutTor.dtd b/src/chrome/locale/es/aboutTor.dtd
index 2bb31865..c0934bde 100644
--- a/src/chrome/locale/es/aboutTor.dtd
+++ b/src/chrome/locale/es/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "Recibe las últimas noticias de Tor directamente en tu bandeja de entrada.">
<!ENTITY aboutTor.newsletter.link_text "Inscríbete en Tor News.">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: La fuerza en la cantidad">
-
-<!ENTITY aboutTor.donationBanner.line2a "El anonimato ama la compañía.">
-<!ENTITY aboutTor.donationBanner.line2b "Promover los derechos humanos universales.">
-<!ENTITY aboutTor.donationBanner.line2c "Defiende la libertad.">
-<!ENTITY aboutTor.donationBanner.line2d "Protege la privacidad de millones de personas.">
-<!ENTITY aboutTor.donationBanner.line2e "Mantén fuerte a Tor.">
-<!ENTITY aboutTor.donationBanner.line2f "Necesitamos tu apoyo.">
-<!ENTITY aboutTor.donationBanner.line2g "Apoya la libertad en internet">
-<!ENTITY aboutTor.donationBanner.line2h "Defiende la web abierta">
-<!ENTITY aboutTor.donationBanner.line2i "Apoya la privacidad y la libertad en línea.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla donará una cantidad idéntica a cada donación hasta 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "Dona hoy, y Mozilla igualará tu donación.">
-<!ENTITY aboutTor.donationBanner.line3b "Dona ahora, y tu donación se duplicará.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "Dona ahora.">
-<!ENTITY aboutTor.donationBanner.buttonB "Cuenta conmigo.">
diff --git a/src/chrome/locale/eu/aboutTor.dtd b/src/chrome/locale/eu/aboutTor.dtd
index 9f1224bb..123091e5 100644
--- a/src/chrome/locale/eu/aboutTor.dtd
+++ b/src/chrome/locale/eu/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "Get the latest news from Tor straight to your inbox.">
<!ENTITY aboutTor.newsletter.link_text "Sign up for Tor News.">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: Strength in Numbers">
-
-<!ENTITY aboutTor.donationBanner.line2a "Anonymity loves company.">
-<!ENTITY aboutTor.donationBanner.line2b "Advance universal human rights.">
-<!ENTITY aboutTor.donationBanner.line2c "Stand up for freedom.">
-<!ENTITY aboutTor.donationBanner.line2d "Protect the privacy of millions.">
-<!ENTITY aboutTor.donationBanner.line2e "Keep Tor strong.">
-<!ENTITY aboutTor.donationBanner.line2f "We need your support!">
-<!ENTITY aboutTor.donationBanner.line2g "Support internet freedom.">
-<!ENTITY aboutTor.donationBanner.line2h "Defend the open web.">
-<!ENTITY aboutTor.donationBanner.line2i "Support privacy and freedom online.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "Give today, and Mozilla will match your donation.">
-<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "Donate Now">
-<!ENTITY aboutTor.donationBanner.buttonB "Count Me In">
diff --git a/src/chrome/locale/fa/aboutTor.dtd b/src/chrome/locale/fa/aboutTor.dtd
index 2f572883..a4908b04 100644
--- a/src/chrome/locale/fa/aboutTor.dtd
+++ b/src/chrome/locale/fa/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "آخرین اخبار تور را در صندوق ورودی خود دریافت کنید.">
<!ENTITY aboutTor.newsletter.link_text "ثبتنام برای اخبار تور.">
-
-<!ENTITY aboutTor.donationBanner.line1 "تور: قدرت در اعداد">
-
-<!ENTITY aboutTor.donationBanner.line2a "شرکت گمنامیت را دوست دارد.">
-<!ENTITY aboutTor.donationBanner.line2b "حمایت از حقوق بشر جهانی.">
-<!ENTITY aboutTor.donationBanner.line2c "برای آزادی ایستادگی کنید.">
-<!ENTITY aboutTor.donationBanner.line2d "از حریم خصوصی میلیونها محافظت کنید">
-<!ENTITY aboutTor.donationBanner.line2e "تور را محکم نگه دارید.">
-<!ENTITY aboutTor.donationBanner.line2f "ما به حمایت شما نیاز داریم!">
-<!ENTITY aboutTor.donationBanner.line2g "از آزادی اینترنت پشتیبانی کنید.">
-<!ENTITY aboutTor.donationBanner.line2h "Defend the open web.">
-<!ENTITY aboutTor.donationBanner.line2i "از حریم شخصی و آزادی برخط دفاع کنید.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "Give today, and Mozilla will match your donation.">
-<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "اکنون اهداء کنید">
-<!ENTITY aboutTor.donationBanner.buttonB "روی من حساب کن">
diff --git a/src/chrome/locale/fr/aboutTor.dtd b/src/chrome/locale/fr/aboutTor.dtd
index 0df6622d..6ae2392d 100644
--- a/src/chrome/locale/fr/aboutTor.dtd
+++ b/src/chrome/locale/fr/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "Obtenez les dernières nouvelles au sujet de Tor directement dans votre boîte de réception.">
<!ENTITY aboutTor.newsletter.link_text "Inscrivez-vous aux nouvelles de Tor">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor : l’union fait la force">
-
-<!ENTITY aboutTor.donationBanner.line2a "L’anonymat est contagieux.">
-<!ENTITY aboutTor.donationBanner.line2b "Promouvez les droits universels de la personne.">
-<!ENTITY aboutTor.donationBanner.line2c "Défendez la liberté.">
-<!ENTITY aboutTor.donationBanner.line2d "Protégez la vie privée de millions de personnes.">
-<!ENTITY aboutTor.donationBanner.line2e "Assurez la robustesse de Tor.">
-<!ENTITY aboutTor.donationBanner.line2f "Nous avons besoin de votre soutien !">
-<!ENTITY aboutTor.donationBanner.line2g "Soutenez la liberté sur Internet.">
-<!ENTITY aboutTor.donationBanner.line2h "Défendez le Web ouvert.">
-<!ENTITY aboutTor.donationBanner.line2i "Soutenez la vie privé et la liberté en ligne.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla versera un montant équivalent à chaque don jusqu’en 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "Faites un don aujourd’hui et Mozilla fera un don équivalent.">
-<!ENTITY aboutTor.donationBanner.line3b "Faites un don maintenant et sa force en sera doublée.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "Faites un don maintenant">
-<!ENTITY aboutTor.donationBanner.buttonB "Comptez sur moi">
diff --git a/src/chrome/locale/ga/aboutTor.dtd b/src/chrome/locale/ga/aboutTor.dtd
index 1978847e..ce6fe3f5 100644
--- a/src/chrome/locale/ga/aboutTor.dtd
+++ b/src/chrome/locale/ga/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "Faigh an nuacht is déanaí maidir le Tor i do bhosca isteach.">
<!ENTITY aboutTor.newsletter.link_text "Cláraigh le Nuachtlitir Tor.">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: Ní neart go cur le chéile">
-
-<!ENTITY aboutTor.donationBanner.line2a "Dul i bhfolach sa slua.">
-<!ENTITY aboutTor.donationBanner.line2b "Cuir cearta daonna chun cinn.">
-<!ENTITY aboutTor.donationBanner.line2c "Seas an fód ar son na saoirse.">
-<!ENTITY aboutTor.donationBanner.line2d "Cosain príobháideachas na milliún duine.">
-<!ENTITY aboutTor.donationBanner.line2e "Cuir taca le Tor.">
-<!ENTITY aboutTor.donationBanner.line2f "Tá do chúnamh de dhíth orainn!">
-<!ENTITY aboutTor.donationBanner.line2g "Tacaigh le saoirse ar an idirlíon.">
-<!ENTITY aboutTor.donationBanner.line2h "Seas an fód ar son an Ghréasáin oscailte">
-<!ENTITY aboutTor.donationBanner.line2i "Tacaigh le príobháideachas agus le saoirse ar líne.">
-<!ENTITY aboutTor.donationBanner.line2j "Tá Mozilla ag meaitseáil gach euro a bhronntar orainn go dtí 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "Tabhair síntiús airgid inniu agus tabharfaidh Mozilla an méid céanna arís dúinn.">
-<!ENTITY aboutTor.donationBanner.line3b "Beidh do bhronntanas airgid dhá uair níos láidre.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "Tabhair síntiús airgid anois">
-<!ENTITY aboutTor.donationBanner.buttonB "Cuir mise san áireamh">
diff --git a/src/chrome/locale/he/aboutTor.dtd b/src/chrome/locale/he/aboutTor.dtd
index 81a4386f..6d988035 100644
--- a/src/chrome/locale/he/aboutTor.dtd
+++ b/src/chrome/locale/he/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "קבל את החדשות האחרונות מאת Tor ישירות לתיבה הנכנסת שלך.">
<!ENTITY aboutTor.newsletter.link_text "הירשם עבור חדשות Tor.">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: חוזק במספרים">
-
-<!ENTITY aboutTor.donationBanner.line2a "אלמוניות אוהבת חברה.">
-<!ENTITY aboutTor.donationBanner.line2b "זכויות אדם קדומות יקומיות.">
-<!ENTITY aboutTor.donationBanner.line2c "סנגר על חירות.">
-<!ENTITY aboutTor.donationBanner.line2d "הגן על פרטיותם של מיליונים.">
-<!ENTITY aboutTor.donationBanner.line2e "שמור על Tor חזק.">
-<!ENTITY aboutTor.donationBanner.line2f "אנחנו צריכים את תמיכתך!">
-<!ENTITY aboutTor.donationBanner.line2g "תמוך בחירות אינטרנט.">
-<!ENTITY aboutTor.donationBanner.line2h "הגן על הרשת הפתוחה.">
-<!ENTITY aboutTor.donationBanner.line2i "תמוך בפרטיות ובחירות באופן מקוון.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla משווה כל תרומה עד 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "תן היום, ו־Mozilla תשווה את תרומתך.">
-<!ENTITY aboutTor.donationBanner.line3b "תן עכשיו, והמתנה שלך הופכת לחזקה פי שניים.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "תרום עכשיו">
-<!ENTITY aboutTor.donationBanner.buttonB "החשב אותי">
diff --git a/src/chrome/locale/hu/aboutTor.dtd b/src/chrome/locale/hu/aboutTor.dtd
index cbc0c571..b5dd867d 100644
--- a/src/chrome/locale/hu/aboutTor.dtd
+++ b/src/chrome/locale/hu/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "Kapja meg a legfrissebb Tor híreket közvetlenül email fiókjába.">
<!ENTITY aboutTor.newsletter.link_text "Iratkozzon fel a Tor hírekhez.">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: Erősség a számokban">
-
-<!ENTITY aboutTor.donationBanner.line2a "Az anonimitás szereti a cégeket.">
-<!ENTITY aboutTor.donationBanner.line2b "Általánosan növeli az emberi jogokat.">
-<!ENTITY aboutTor.donationBanner.line2c "Kiáll a szabadságért.">
-<!ENTITY aboutTor.donationBanner.line2d "Védi milliók magánéletét.">
-<!ENTITY aboutTor.donationBanner.line2e "Tartsuk a Tor-t erősnek.">
-<!ENTITY aboutTor.donationBanner.line2f "Szükségünk van a támogatására!">
-<!ENTITY aboutTor.donationBanner.line2g "Support internet freedom.">
-<!ENTITY aboutTor.donationBanner.line2h "Defend the open web.">
-<!ENTITY aboutTor.donationBanner.line2i "Support privacy and freedom online.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "Adjon ma és a Mozilla is annyival támogat.">
-<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "Támogasson most">
-<!ENTITY aboutTor.donationBanner.buttonB "Számítsatok bele">
diff --git a/src/chrome/locale/id/aboutTor.dtd b/src/chrome/locale/id/aboutTor.dtd
index 9370e3ad..3a4e3a27 100644
--- a/src/chrome/locale/id/aboutTor.dtd
+++ b/src/chrome/locale/id/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "Dapatkan berita Tor terbaru langsung ke inbox Anda.">
<!ENTITY aboutTor.newsletter.link_text "Daftar untuk mendapatkan Berita Tor.">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: Strength in Numbers">
-
-<!ENTITY aboutTor.donationBanner.line2a "Anonymity loves company.">
-<!ENTITY aboutTor.donationBanner.line2b "Advance universal human rights.">
-<!ENTITY aboutTor.donationBanner.line2c "Stand up for freedom.">
-<!ENTITY aboutTor.donationBanner.line2d "Protect the privacy of millions.">
-<!ENTITY aboutTor.donationBanner.line2e "Keep Tor strong.">
-<!ENTITY aboutTor.donationBanner.line2f "We need your support!">
-<!ENTITY aboutTor.donationBanner.line2g "Support internet freedom.">
-<!ENTITY aboutTor.donationBanner.line2h "Defend the open web.">
-<!ENTITY aboutTor.donationBanner.line2i "Support privacy and freedom online.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "Give today, and Mozilla will match your donation.">
-<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "Donate Now">
-<!ENTITY aboutTor.donationBanner.buttonB "Count Me In">
diff --git a/src/chrome/locale/is/aboutTor.dtd b/src/chrome/locale/is/aboutTor.dtd
index 0fd4f643..0a259108 100644
--- a/src/chrome/locale/is/aboutTor.dtd
+++ b/src/chrome/locale/is/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "Fáðu nýjustu fréttir af Tor beint í pósthólfið þitt.">
<!ENTITY aboutTor.newsletter.link_text "Skráðu þig til að fá Tor-fréttir.">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: Styrkur í fjöldanum">
-
-<!ENTITY aboutTor.donationBanner.line2a "Nafnleysi krefst félagsskapar.">
-<!ENTITY aboutTor.donationBanner.line2b "Setjum mannréttindi á oddinn.">
-<!ENTITY aboutTor.donationBanner.line2c "Stöndum saman með frelsinu.">
-<!ENTITY aboutTor.donationBanner.line2d "Verndum friðhelgi milljóna manna.">
-<!ENTITY aboutTor.donationBanner.line2e "Höldum Tor sterku">
-<!ENTITY aboutTor.donationBanner.line2f "Við þörfnumst stuðnings þíns!">
-<!ENTITY aboutTor.donationBanner.line2g "Stattu með frelsi á netinu.">
-<!ENTITY aboutTor.donationBanner.line2h "Verðu hinn opna vef.">
-<!ENTITY aboutTor.donationBanner.line2i "Verðu rétt þinn til einkalífs og frelsis á netinu.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla jafnar upp hvert fjárframlag allt til 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "Gefðu í dag - og Mozilla mun jafna framlag þitt.">
-<!ENTITY aboutTor.donationBanner.line3b "Gefðu upphæð núna - og gjöfin þín mun tvöfaldast.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "Styrkja núna">
-<!ENTITY aboutTor.donationBanner.buttonB "Reiknið með mér">
diff --git a/src/chrome/locale/it/aboutTor.dtd b/src/chrome/locale/it/aboutTor.dtd
index daad7130..b9687c45 100644
--- a/src/chrome/locale/it/aboutTor.dtd
+++ b/src/chrome/locale/it/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "Ottieni le ultime info da Tor direttamente nella tua casella di posta elettronica.">
<!ENTITY aboutTor.newsletter.link_text "Registrati alle Tor News.">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: la Forza in Numeri">
-
-<!ENTITY aboutTor.donationBanner.line2a "L'anonimato ama l'azienda.">
-<!ENTITY aboutTor.donationBanner.line2b "Migliora i diritti universali dell'uomo.">
-<!ENTITY aboutTor.donationBanner.line2c "Difendi la libertà.">
-<!ENTITY aboutTor.donationBanner.line2d "Protegge la privacy di milioni.">
-<!ENTITY aboutTor.donationBanner.line2e "Mantieni Tor forte.">
-<!ENTITY aboutTor.donationBanner.line2f "Abbiamo bisogno del tuo supporto!">
-<!ENTITY aboutTor.donationBanner.line2g "Supporta la libertà di internet.">
-<!ENTITY aboutTor.donationBanner.line2h "Difendi il web aperto.">
-<!ENTITY aboutTor.donationBanner.line2i "Sostieni la privacy e la libertà online.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla corrisponderà tutte le donazioni fino al 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "Dai oggi, e Mozilla ricambierà la tua donazione.">
-<!ENTITY aboutTor.donationBanner.line3b "Dona ora e il tuo regalo diventerà due volte più valoroso.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "Dona Ora">
-<!ENTITY aboutTor.donationBanner.buttonB "Contami">
diff --git a/src/chrome/locale/ja/aboutTor.dtd b/src/chrome/locale/ja/aboutTor.dtd
index e5c0d7ea..c8963418 100644
--- a/src/chrome/locale/ja/aboutTor.dtd
+++ b/src/chrome/locale/ja/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "Get the latest news from Tor straight to your inbox.">
<!ENTITY aboutTor.newsletter.link_text "Sign up for Tor News.">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: Strength in Numbers">
-
-<!ENTITY aboutTor.donationBanner.line2a "Anonymity loves company.">
-<!ENTITY aboutTor.donationBanner.line2b "Advance universal human rights.">
-<!ENTITY aboutTor.donationBanner.line2c "自由のために立ち上がる。">
-<!ENTITY aboutTor.donationBanner.line2d "Protect the privacy of millions.">
-<!ENTITY aboutTor.donationBanner.line2e "Keep Tor strong.">
-<!ENTITY aboutTor.donationBanner.line2f "我々にはあなたのサポートが必要です!">
-<!ENTITY aboutTor.donationBanner.line2g "Support internet freedom.">
-<!ENTITY aboutTor.donationBanner.line2h "Defend the open web.">
-<!ENTITY aboutTor.donationBanner.line2i "Support privacy and freedom online.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "Give today, and Mozilla will match your donation.">
-<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "今すぐ寄付">
-<!ENTITY aboutTor.donationBanner.buttonB "Count Me In">
diff --git a/src/chrome/locale/ka/aboutTor.dtd b/src/chrome/locale/ka/aboutTor.dtd
index 3b5bdad3..ec34af9e 100644
--- a/src/chrome/locale/ka/aboutTor.dtd
+++ b/src/chrome/locale/ka/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "მიიღეთ სიახლეები Tor-ისგან, პირდაპირ თქვენს საფოსტო ყუთში.">
<!ENTITY aboutTor.newsletter.link_text "გამოიწერეთ Tor-ის სიახლეები.">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: სიძლიერე ციფრებში">
-
-<!ENTITY aboutTor.donationBanner.line2a "ვინაობის გამჟღავნებისგან დაცვა საჭიროებს ხალხის სიმრავლეს.">
-<!ENTITY aboutTor.donationBanner.line2b "გააუმჯობესეთ ადამიანის უფლებების დაცვა.">
-<!ENTITY aboutTor.donationBanner.line2c "მხარი დაუჭირეთ თავისუფლებას.">
-<!ENTITY aboutTor.donationBanner.line2d "დაიცავით მილიონობით ადამიანის პირადი მონაცემები.">
-<!ENTITY aboutTor.donationBanner.line2e "შეინარჩუნეთ Tor ძლიერი.">
-<!ENTITY aboutTor.donationBanner.line2f "ჩვენ გვესაჭიროება თქვენი გვერდში დგომა!">
-<!ENTITY aboutTor.donationBanner.line2g "მხარი დაუჭირეთ თავისუფალ ინტერნეტს.">
-<!ENTITY aboutTor.donationBanner.line2h "დაიცავით ინტერნეტის ღიაობა.">
-<!ENTITY aboutTor.donationBanner.line2i "მხარი დაუჭირეთ პირადი მონაცემების ხელშეუხებლობისა და თავისუფლების უზრუნველყოფას ინტერნეტსივრცეში.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla გააორმაგებს თითოეულ შემოწირულ შენატანს 2019 წლამდე.">
-
-<!ENTITY aboutTor.donationBanner.line3 "გაეცით დღესვე და Mozilla გააორმაგებს თქვენს შემოწირულობას.">
-<!ENTITY aboutTor.donationBanner.line3b "გაეცით თანხა ახლავე და თქვენი შემოწირულობა ორჯერ მეტად მძლავრი იქნება.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "თანხის გაღება ახლავე">
-<!ENTITY aboutTor.donationBanner.buttonB "ჩემი წვლილის აღნიშვნა">
diff --git a/src/chrome/locale/ko/aboutTor.dtd b/src/chrome/locale/ko/aboutTor.dtd
index cf8143ab..984b53af 100644
--- a/src/chrome/locale/ko/aboutTor.dtd
+++ b/src/chrome/locale/ko/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "최신의 Tor 뉴스를 받은 편지함에 곧장 받으십시오.">
<!ENTITY aboutTor.newsletter.link_text "Tor 뉴스를 구독.">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: Strength in Numbers">
-
-<!ENTITY aboutTor.donationBanner.line2a "Anonymity loves company.">
-<!ENTITY aboutTor.donationBanner.line2b "Advance universal human rights.">
-<!ENTITY aboutTor.donationBanner.line2c "Stand up for freedom.">
-<!ENTITY aboutTor.donationBanner.line2d "Protect the privacy of millions.">
-<!ENTITY aboutTor.donationBanner.line2e "Keep Tor strong.">
-<!ENTITY aboutTor.donationBanner.line2f "We need your support!">
-<!ENTITY aboutTor.donationBanner.line2g "Support internet freedom.">
-<!ENTITY aboutTor.donationBanner.line2h "Defend the open web.">
-<!ENTITY aboutTor.donationBanner.line2i "Support privacy and freedom online.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "Give today, and Mozilla will match your donation.">
-<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "Donate Now">
-<!ENTITY aboutTor.donationBanner.buttonB "Count Me In">
diff --git a/src/chrome/locale/nb/aboutTor.dtd b/src/chrome/locale/nb/aboutTor.dtd
index a5e61845..89bd5a7f 100644
--- a/src/chrome/locale/nb/aboutTor.dtd
+++ b/src/chrome/locale/nb/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "Få de siste nyhetene fra Tor rett til innboksen din.">
<!ENTITY aboutTor.newsletter.link_text "Registrer deg for Tor Nyheter.">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: Strength in Numbers">
-
-<!ENTITY aboutTor.donationBanner.line2a "Anonymity loves company.">
-<!ENTITY aboutTor.donationBanner.line2b "Advance universal human rights.">
-<!ENTITY aboutTor.donationBanner.line2c "Stand up for freedom.">
-<!ENTITY aboutTor.donationBanner.line2d "Protect the privacy of millions.">
-<!ENTITY aboutTor.donationBanner.line2e "Keep Tor strong.">
-<!ENTITY aboutTor.donationBanner.line2f "We need your support!">
-<!ENTITY aboutTor.donationBanner.line2g "Support internet freedom.">
-<!ENTITY aboutTor.donationBanner.line2h "Defend the open web.">
-<!ENTITY aboutTor.donationBanner.line2i "Support privacy and freedom online.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "Give today, and Mozilla will match your donation.">
-<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "Donate Now">
-<!ENTITY aboutTor.donationBanner.buttonB "Count Me In">
diff --git a/src/chrome/locale/nl/aboutTor.dtd b/src/chrome/locale/nl/aboutTor.dtd
index 8929fc65..822c3548 100644
--- a/src/chrome/locale/nl/aboutTor.dtd
+++ b/src/chrome/locale/nl/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "Krijg het laatste Tor nieuws regelrecht in jouw inbox.">
<!ENTITY aboutTor.newsletter.link_text "Meld je aan voor Tor Nieuws.">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: Kracht in Nummers">
-
-<!ENTITY aboutTor.donationBanner.line2a "Anonymity loves company.">
-<!ENTITY aboutTor.donationBanner.line2b "Universele rechten van de mens bevorderen.">
-<!ENTITY aboutTor.donationBanner.line2c "Stand up for freedom.">
-<!ENTITY aboutTor.donationBanner.line2d "Bescherm de privacy van miljoenen.">
-<!ENTITY aboutTor.donationBanner.line2e "Houdt Tor sterk.">
-<!ENTITY aboutTor.donationBanner.line2f "We hebben jouw ondersteuning nodig!">
-<!ENTITY aboutTor.donationBanner.line2g "Support internet freedom.">
-<!ENTITY aboutTor.donationBanner.line2h "Defend the open web.">
-<!ENTITY aboutTor.donationBanner.line2i "Support privacy and freedom online.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "Geef vandaag, en Mozilla geeft hetzelfde bedrag.">
-<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "Geef Nu">
-<!ENTITY aboutTor.donationBanner.buttonB "Ik Doe Mee">
diff --git a/src/chrome/locale/pl/aboutTor.dtd b/src/chrome/locale/pl/aboutTor.dtd
index b523d30d..fe79cc3d 100644
--- a/src/chrome/locale/pl/aboutTor.dtd
+++ b/src/chrome/locale/pl/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "Get the latest news from Tor straight to your inbox.">
<!ENTITY aboutTor.newsletter.link_text "Sign up for Tor News.">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: Siła w liczbach">
-
-<!ENTITY aboutTor.donationBanner.line2a "Anonymity loves company.">
-<!ENTITY aboutTor.donationBanner.line2b "Advance universal human rights.">
-<!ENTITY aboutTor.donationBanner.line2c "Stand up for freedom.">
-<!ENTITY aboutTor.donationBanner.line2d "Protect the privacy of millions.">
-<!ENTITY aboutTor.donationBanner.line2e "Keep Tor strong.">
-<!ENTITY aboutTor.donationBanner.line2f "We need your support!">
-<!ENTITY aboutTor.donationBanner.line2g "Support internet freedom.">
-<!ENTITY aboutTor.donationBanner.line2h "Defend the open web.">
-<!ENTITY aboutTor.donationBanner.line2i "Support privacy and freedom online.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "Give today, and Mozilla will match your donation.">
-<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "Donate Now">
-<!ENTITY aboutTor.donationBanner.buttonB "Count Me In">
diff --git a/src/chrome/locale/pt-BR/aboutTor.dtd b/src/chrome/locale/pt-BR/aboutTor.dtd
index 02a848a7..130f2b13 100644
--- a/src/chrome/locale/pt-BR/aboutTor.dtd
+++ b/src/chrome/locale/pt-BR/aboutTor.dtd
@@ -27,22 +27,3 @@
<!ENTITY aboutTor.newsletter.tagline "Receba as últimas notícias do Tor diretamente na sua caixa de e-mail.">
<!ENTITY aboutTor.newsletter.link_text "Inscreva-se para receber Notícias do Tor.">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: Nossa Força em Números">
-
-<!ENTITY aboutTor.donationBanner.line2a "Anonimidade adora companhia ">
-<!ENTITY aboutTor.donationBanner.line2b "Avançar os direitos humanos universais.">
-<!ENTITY aboutTor.donationBanner.line2c "Defender a liberdade.">
-<!ENTITY aboutTor.donationBanner.line2d "Proteger a privacidade de milhões de pessoas.">
-<!ENTITY aboutTor.donationBanner.line2e "Manter a força do Tor.">
-<!ENTITY aboutTor.donationBanner.line2f "Precisamos do seu apoio!">
-<!ENTITY aboutTor.donationBanner.line2g "Apóie a liberdade na internet.">
-<!ENTITY aboutTor.donationBanner.line2h "Defenda a web aberta.">
-<!ENTITY aboutTor.donationBanner.line2i "Apóie a privacidade e liberdade online.">
-<!ENTITY aboutTor.donationBanner.line2j "A Mozilla está combinando cada doação até 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "Doe hoje, e a Mozilla duplicará a sua doação.">
-<!ENTITY aboutTor.donationBanner.line3b "Dê agora, e seu presente se torna duas vezes mais forte.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "Doar Agora">
-<!ENTITY aboutTor.donationBanner.buttonB "Estou dentro">
diff --git a/src/chrome/locale/ru/aboutTor.dtd b/src/chrome/locale/ru/aboutTor.dtd
index 1bc187b8..b3d2f631 100644
--- a/src/chrome/locale/ru/aboutTor.dtd
+++ b/src/chrome/locale/ru/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "Получайте последние новости Tor прямо на ваш почтовый ящик.">
<!ENTITY aboutTor.newsletter.link_text "Подпишитесь на новости Tor.">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: Сила в цифрах">
-
-<!ENTITY aboutTor.donationBanner.line2a "Анонимность уважает компании.">
-<!ENTITY aboutTor.donationBanner.line2b "Продвижение всеобщих прав человека.">
-<!ENTITY aboutTor.donationBanner.line2c "Встаньте на свободу.">
-<!ENTITY aboutTor.donationBanner.line2d "Обеспечиваем конфиденциальность миллионам людей.">
-<!ENTITY aboutTor.donationBanner.line2e "Сохраните Tor сильным.">
-<!ENTITY aboutTor.donationBanner.line2f "Нам нужна твоя поддержка!">
-<!ENTITY aboutTor.donationBanner.line2g "Support internet freedom.">
-<!ENTITY aboutTor.donationBanner.line2h "Defend the open web.">
-<!ENTITY aboutTor.donationBanner.line2i "Support privacy and freedom online.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "Пожертвуйте сегодня и Mozilla удвоит Ваше пожертвование.">
-<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "Пожертвовать">
-<!ENTITY aboutTor.donationBanner.buttonB "Посчитайте">
diff --git a/src/chrome/locale/sv/aboutTor.dtd b/src/chrome/locale/sv/aboutTor.dtd
index f2938e54..423d6e96 100644
--- a/src/chrome/locale/sv/aboutTor.dtd
+++ b/src/chrome/locale/sv/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "Få de senaste nyheterna från Tor direkt till din inkorg.">
<!ENTITY aboutTor.newsletter.link_text "Anmäl dig till Tor-nyheter.">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: Styrka i antal">
-
-<!ENTITY aboutTor.donationBanner.line2a "Anonymitet älskar sällskap.">
-<!ENTITY aboutTor.donationBanner.line2b "Främja universella mänskliga rättigheter.">
-<!ENTITY aboutTor.donationBanner.line2c "Stå upp för frihet.">
-<!ENTITY aboutTor.donationBanner.line2d "Skydda miljontals privatliv.">
-<!ENTITY aboutTor.donationBanner.line2e "Håll Tor stark.">
-<!ENTITY aboutTor.donationBanner.line2f "Vi behöver ert stöd!">
-<!ENTITY aboutTor.donationBanner.line2g "Stöd internetfrihet.">
-<!ENTITY aboutTor.donationBanner.line2h "Försvara den öppna webben.">
-<!ENTITY aboutTor.donationBanner.line2i "Stöd integritet och frihet på nätet.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla matchar varje donation fram till 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "Ge idag, och Mozilla kommer att matcha din donation.">
-<!ENTITY aboutTor.donationBanner.line3b "Ge nu, och din gåva blir dubbelt så stark.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "Donera nu">
-<!ENTITY aboutTor.donationBanner.buttonB "Räkna med mig">
diff --git a/src/chrome/locale/tr/aboutTor.dtd b/src/chrome/locale/tr/aboutTor.dtd
index 789e3d81..ce8761f2 100644
--- a/src/chrome/locale/tr/aboutTor.dtd
+++ b/src/chrome/locale/tr/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "Tor ile ilgili son gelişmeler doğrudan e-posta kutunuza gelsin.">
<!ENTITY aboutTor.newsletter.link_text "Tor Haber Bültenine Abone Olun">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: Birlikten Kuvvet Doğar">
-
-<!ENTITY aboutTor.donationBanner.line2a "Anonimlik birlikteliği sever.">
-<!ENTITY aboutTor.donationBanner.line2b "Evrensel insan haklarını geliştir.">
-<!ENTITY aboutTor.donationBanner.line2c "Özgürlüğü savun.">
-<!ENTITY aboutTor.donationBanner.line2d "Milyonların gizliliğini koru.">
-<!ENTITY aboutTor.donationBanner.line2e "Tor uygulamasının gücünü koru.">
-<!ENTITY aboutTor.donationBanner.line2f "Desteğinize ihtiyacımız var!">
-<!ENTITY aboutTor.donationBanner.line2g "İnternet özgürlüğünü destekleyin">
-<!ENTITY aboutTor.donationBanner.line2h "Açık web düşüncesini savunun.">
-<!ENTITY aboutTor.donationBanner.line2i "Kişisel gizliliği ve çevrimiçi özgürlüğü destekleyin.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla 2019 yılına kadar yapılan her bağışa karşılık veriyor.">
-
-<!ENTITY aboutTor.donationBanner.line3 "Bugün yaptığınız her bağış kadar Mozilla da bağış yapacak.">
-<!ENTITY aboutTor.donationBanner.line3b "Bağış yapın ve hediyeniz iki kat güzel olsun.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "Şimdi Bağış Yapın">
-<!ENTITY aboutTor.donationBanner.buttonB "Ben de Varım">
diff --git a/src/chrome/locale/vi/aboutTor.dtd b/src/chrome/locale/vi/aboutTor.dtd
index 09c26101..f8bc3896 100644
--- a/src/chrome/locale/vi/aboutTor.dtd
+++ b/src/chrome/locale/vi/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "Nhận thông tin mới nhất từ Tor được gửi tới hộp thư của bạn.">
<!ENTITY aboutTor.newsletter.link_text "Đăng kí nhận tin tức từ Tor.">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: Sức mạnh nằm ở Số lượng người tham gia mạng lưới">
-
-<!ENTITY aboutTor.donationBanner.line2a "Việc ẩn danh cần sự đồng hành của cộng đồng">
-<!ENTITY aboutTor.donationBanner.line2b "Nâng cao phổ biến nhân quyền.">
-<!ENTITY aboutTor.donationBanner.line2c "Đứng lên vì tự do.">
-<!ENTITY aboutTor.donationBanner.line2d "Bảo vệ sự riêng tư của hàng triệu người.">
-<!ENTITY aboutTor.donationBanner.line2e "Giữ cho Tor trở nên mạnh mẽ.">
-<!ENTITY aboutTor.donationBanner.line2f "Chúng tôi cần sự hỗ trợ của bạn!">
-<!ENTITY aboutTor.donationBanner.line2g "Support internet freedom.">
-<!ENTITY aboutTor.donationBanner.line2h "Defend the open web.">
-<!ENTITY aboutTor.donationBanner.line2i "Support privacy and freedom online.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "Hãy đóng góp ngay hôm nay, và Mozilla sẽ đóng góp tương ứng với phần của bạn.">
-<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "Đóng góp Ngay bây giờ">
-<!ENTITY aboutTor.donationBanner.buttonB "Hãy cho tôi tham gia">
diff --git a/src/chrome/locale/zh-CN/aboutTor.dtd b/src/chrome/locale/zh-CN/aboutTor.dtd
index 2707eb0a..36e9b9a5 100644
--- a/src/chrome/locale/zh-CN/aboutTor.dtd
+++ b/src/chrome/locale/zh-CN/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "通过邮件获取 Tor 的最新消息。">
<!ENTITY aboutTor.newsletter.link_text "注册 Tor 新闻列表">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor:众人拾柴火焰高">
-
-<!ENTITY aboutTor.donationBanner.line2a "匿名的表示对公司的爱意。">
-<!ENTITY aboutTor.donationBanner.line2b "推进基本人权。">
-<!ENTITY aboutTor.donationBanner.line2c "为自由呐喊。">
-<!ENTITY aboutTor.donationBanner.line2d "保护数百万人的隐私。">
-<!ENTITY aboutTor.donationBanner.line2e "让 Tor 网络保持健壮。">
-<!ENTITY aboutTor.donationBanner.line2f "我们需要你的帮助!">
-<!ENTITY aboutTor.donationBanner.line2g "支持互联网自由。">
-<!ENTITY aboutTor.donationBanner.line2h "捍卫互联网的开放。">
-<!ENTITY aboutTor.donationBanner.line2i "保障隐私和网络自由。">
-<!ENTITY aboutTor.donationBanner.line2j "直到2019年,Mozilla 将匹配所有捐赠。">
-
-<!ENTITY aboutTor.donationBanner.line3 "现在捐款, Mozilla 也能从你的捐赠中受益。">
-<!ENTITY aboutTor.donationBanner.line3b "现在捐赠,您的支持将化作双倍的力量。">
-
-<!ENTITY aboutTor.donationBanner.buttonA "现在就捐助">
-<!ENTITY aboutTor.donationBanner.buttonB "算我一个">
diff --git a/src/chrome/locale/zh-TW/aboutTor.dtd b/src/chrome/locale/zh-TW/aboutTor.dtd
index bcbec612..bd5fa14d 100644
--- a/src/chrome/locale/zh-TW/aboutTor.dtd
+++ b/src/chrome/locale/zh-TW/aboutTor.dtd
@@ -26,22 +26,3 @@
<!ENTITY aboutTor.newsletter.tagline "將 Tor 的最新消息直接傳送到您的收件匣。">
<!ENTITY aboutTor.newsletter.link_text "訂閱 Tor 的新資訊。">
-
-<!ENTITY aboutTor.donationBanner.line1 "Tor: Strength in Numbers">
-
-<!ENTITY aboutTor.donationBanner.line2a "Anonymity loves company.">
-<!ENTITY aboutTor.donationBanner.line2b "Advance universal human rights.">
-<!ENTITY aboutTor.donationBanner.line2c "Stand up for freedom.">
-<!ENTITY aboutTor.donationBanner.line2d "Protect the privacy of millions.">
-<!ENTITY aboutTor.donationBanner.line2e "Keep Tor strong.">
-<!ENTITY aboutTor.donationBanner.line2f "我們需要您的支援!">
-<!ENTITY aboutTor.donationBanner.line2g "Support internet freedom.">
-<!ENTITY aboutTor.donationBanner.line2h "Defend the open web.">
-<!ENTITY aboutTor.donationBanner.line2i "Support privacy and freedom online.">
-<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
-
-<!ENTITY aboutTor.donationBanner.line3 "今日您捐款,Mozilla 也會捐出相同數額。">
-<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
-
-<!ENTITY aboutTor.donationBanner.buttonA "立刻捐款">
-<!ENTITY aboutTor.donationBanner.buttonB "我也要加入!">
diff --git a/src/chrome/skin/aboutTor.css b/src/chrome/skin/aboutTor.css
index 02d18b78..8560124b 100644
--- a/src/chrome/skin/aboutTor.css
+++ b/src/chrome/skin/aboutTor.css
@@ -282,126 +282,78 @@ body:not([showmanual]) .showForManual {
border-radius: 50px 50px 0 0;
}
-/* Donation Banner
+/* Tor News Signup Banner
* While this banner is present, we need to
* offset the elements normally at the top of
* the window.
*/
-#donation-banner {
+#tornews-banner {
display: flex;
- align-items: stretch;
+ align-items: center;
background-color: white;
color: var(--abouttor-bg-toron-color);
font-size: 16px;
- height: 200px;
- justify-content: center;
+ height: 60px;
+ justify-content: space-between;
left: 0px;
right: 0px;
top: 0px;
- position: absolute;
- transform: translateY(-200px);
+ transform: translateY(-60px);
transition: transform 200ms;
- z-index: 1;
}
-body[show-donation-banner="true"] #donation-banner {
+body[show-tornews-banner="true"] #tornews-banner {
transform: translateY(0px);
transition: transform 0ms;
}
-#donation-banner-image {
- background: url('chrome://torbutton/skin/donation_banner_image_3x.png') no-repeat center center;
- background-size: contain;
- height: 190px;
- margin: 10px 10px 0px 0px;
- width: 400px;
+#tornews-banner-message {
+ align-items: center;
+ display: flex;
+ justify-content: center;
+}
+
+#tornews-banner-message a {
+ color: var(--abouttor-bg-toron-color);
+}
+
+#tornews-banner-icon {
+ background: url('chrome://torbutton/skin/newsletter_3x.png') no-repeat center center;
+ background-size: cover;
+ height: 32px;
+ margin: 0px 16px;
+ width: 32px;
}
-#donation-banner-closer {
+#tornews-banner-closer {
display: flex;
align-items: center;
font-size: 20px;
height: 22px;
justify-content: center;
- margin: 4px;
+ margin: 4px 20px;
padding: 4px;
- position: absolute;
- offset-inline-end: 0px;
- top: 0px;
width: 22px;
-moz-user-select: none;
}
-#donation-banner-closer:hover {
+#tornews-banner-closer:hover {
background-color: gray;
cursor: pointer;
}
-#donation-banner-lines {
- align-items: start;
- display: flex;
- flex-direction: column;
- justify-content: space-around;
- padding: 20px 0px;
-}
-
-#donation-banner-line1 {
- font-size: 11px;
- font-weight: bold;
- text-transform: uppercase;
-}
-
-#donation-banner-line2 {
- font-size: 20px;
- font-weight: bold;
-}
-
-#donation-banner-line2 span {
- background-color: #a9fef8;
-}
-
-#donation-banner-line3 {
- font-size: 14px;
-}
-
-#donation-banner-button {
- background-color: var(--abouttor-bg-toron-color);
- border-radius: 3px;
- border: 0px;
- color: white;
- font-size: 14px;
- font-weight: bold;
- margin: 10px 0px;
- padding: 10px 24px;
- text-decoration: none;
-}
-
-#donation-banner-button:hover {
- background-color: #683d7d;
- cursor: pointer;
-}
-
-body[show-donation-banner="false"] .torcontent-container,
-body[show-donation-banner="false"] .onion-pattern-container,
-body[show-donation-banner="false"] #torstatus-version,
-body[show-donation-banner="false"] #onboarding-overlay-button {
+body[show-tornews-banner="false"] #torstatus-version,
+body[show-tornews-banner="false"] #onboarding-overlay-button {
transition: transform 200ms;
}
-body[show-donation-banner="true"] .torcontent-container,
-body[show-donation-banner="true"] .onion-pattern-container {
- transform: translateY(80px);
+body[show-tornews-banner="true"] #torstatus-version,
+body[show-tornews-banner="true"] #onboarding-overlay-button {
+ transform: translateY(60px);
transition: transform 0ms;
}
-body[show-donation-banner="true"] #torstatus-version,
-body[show-donation-banner="true"] #onboarding-overlay-button {
- transform: translateY(200px);
- transition: transform 0ms;
- position: absolute;
-}
-
/*
* Mobile specific css
*/
@@ -442,30 +394,3 @@ body[mobile] .onion-pattern-container {
position: absolute;
bottom: 0px;
}
-
-body[mobile] #donation-banner {
- position: static;
-}
-
-body[mobile][show-donation-banner="true"] .torcontent-container,
-body[mobile][show-donation-banner="true"] .onion-pattern-container {
- transform: none;
-}
-
-body[mobile][show-donation-banner="false"] .torcontent-container {
- transform: translateY(-200px);
-}
-
-@media only screen and (max-width: 480px) {
- #donation-banner-image {
- display: none;
- }
-
- #donation-banner-lines {
- align-items: stretch;
- }
-
- #donation-banner-button {
- text-align: center;
- }
-}
diff --git a/src/chrome/skin/donation_banner_image_3x.png b/src/chrome/skin/donation_banner_image_3x.png
deleted file mode 100644
index 6eb7fbbb..00000000
Binary files a/src/chrome/skin/donation_banner_image_3x.png and /dev/null differ
diff --git a/src/chrome/skin/newsletter_3x.png b/src/chrome/skin/newsletter_3x.png
new file mode 100644
index 00000000..821572fa
Binary files /dev/null and b/src/chrome/skin/newsletter_3x.png differ
diff --git a/src/defaults/preferences/preferences.js b/src/defaults/preferences/preferences.js
index eb055a65..45b60ce8 100644
--- a/src/defaults/preferences/preferences.js
+++ b/src/defaults/preferences/preferences.js
@@ -6,7 +6,7 @@ pref("extensions.torbutton.logmethod",1); // 0=stdout, 1=errorconsole, 2=debuglo
pref("extensions.torbutton.display_circuit", true);
pref("extensions.torbutton(a)torproject.org.description", "chrome://torbutton/locale/torbutton.properties");
pref("extensions.torbutton.updateNeeded", false);
-pref("extensions.torbutton.donation_banner_countdown2", 12);
+pref("extensions.torbutton.tornews_banner_countdown", 4);
// Tor check and proxy prefs
pref("extensions.torbutton.test_enabled",true);
1
0

22 Jan '19
commit 4f8bf590850eb72dc95a2c83b7cb78f03ef67f49
Author: Georg Koppen <gk(a)torproject.org>
Date: Fri Jan 18 09:18:26 2019 +0000
Bug 29035: Post-YE campaign clean-up 2018
Removing the newsletter signup banner
---
src/chrome/content/aboutTor/aboutTor-content.js | 21 -------
src/chrome/content/aboutTor/aboutTor.xhtml | 13 -----
src/chrome/content/torbutton.js | 17 ------
src/chrome/skin/aboutTor.css | 72 ------------------------
src/chrome/skin/newsletter_3x.png | Bin 6735 -> 0 bytes
src/defaults/preferences/preferences.js | 1 -
6 files changed, 124 deletions(-)
diff --git a/src/chrome/content/aboutTor/aboutTor-content.js b/src/chrome/content/aboutTor/aboutTor-content.js
index e2167de0..94ecefe5 100644
--- a/src/chrome/content/aboutTor/aboutTor-content.js
+++ b/src/chrome/content/aboutTor/aboutTor-content.js
@@ -24,7 +24,6 @@ let { bindPrefAndInit, show_torbrowser_manual } = Cu.import("resource://torbutto
var AboutTorListener = {
kAboutTorLoadedMessage: "AboutTor:Loaded",
kAboutTorChromeDataMessage: "AboutTor:ChromeData",
- kAboutTorHideTorNewsBanner: "AboutTor:HideTorNewsBanner",
get isAboutTor() {
return content.document.documentURI.toLowerCase() == "about:tor";
@@ -59,24 +58,6 @@ var AboutTorListener = {
}
},
- setupBannerClosing: function () {
- let that = this;
- let closer = content.document.getElementById("tornews-banner-closer");
- closer.addEventListener("click", function () {
- sendAsyncMessage(that.kAboutTorHideTorNewsBanner);
- });
- let link = content.document.querySelector("#tornews-banner-message a");
- link.addEventListener("click", function () {
- // Wait until page unloads so we don't hide banner before that.
- content.addEventListener("unload", function () {
- sendAsyncMessage(that.kAboutTorHideTorNewsBanner);
- });
- });
- bindPrefAndInit("extensions.torbutton.tornews_banner_countdown",
- countdown => content.document.body.setAttribute(
- "show-tornews-banner", countdown > 0));
- },
-
onPageLoad: function() {
// Arrange to update localized text and links.
bindPrefAndInit("intl.locale.requested", aNewVal => {
@@ -85,8 +66,6 @@ var AboutTorListener = {
}
});
- this.setupBannerClosing();
-
// Add message and event listeners.
addMessageListener(this.kAboutTorChromeDataMessage, this);
addEventListener("pagehide", this, false);
diff --git a/src/chrome/content/aboutTor/aboutTor.xhtml b/src/chrome/content/aboutTor/aboutTor.xhtml
index a34d0220..5ddf6ab9 100644
--- a/src/chrome/content/aboutTor/aboutTor.xhtml
+++ b/src/chrome/content/aboutTor/aboutTor.xhtml
@@ -32,19 +32,6 @@ window.addEventListener("pageshow", function() {
</script>
</head>
<body dir="&locale.dir;">
- <div id="tornews-banner">
- <div><!--EMPTY SPACER DIV--></div>
- <div id="tornews-banner-message">
- <div id="tornews-banner-icon"></div>
- <div>&aboutTor.newsletter.tagline;
- <a href="https://newsletter.torproject.org">
- &aboutTor.newsletter.link_text;
- </a>
- </div>
- </div>
- <div id="tornews-banner-closer">×</div>
- </div>
-
<div class="torcontent-container">
<div id="torstatus-version"/>
<img class="torcontent-logo" src="resource://torbutton-assets/torbrowser_mobile_logo.png"/>
diff --git a/src/chrome/content/torbutton.js b/src/chrome/content/torbutton.js
index dc8d9d97..f99be5b0 100644
--- a/src/chrome/content/torbutton.js
+++ b/src/chrome/content/torbutton.js
@@ -17,7 +17,6 @@ const k_tb_last_browser_version_pref = "extensions.torbutton.lastBrowserVersion"
const k_tb_browser_update_needed_pref = "extensions.torbutton.updateNeeded";
const k_tb_last_update_check_pref = "extensions.torbutton.lastUpdateCheck";
const k_tb_tor_check_failed_topic = "Torbutton:TorCheckFailed";
-const k_tb_tornews_banner_countdown = "extensions.torbutton.tornews_banner_countdown";
var m_tb_prefs = Services.prefs;
@@ -222,14 +221,6 @@ function torbutton_init_toolbutton()
}
}
-// Show the Sign Up for Tor News banner a finite number of times.
-function torbutton_tornews_banner_countdown() {
- let count = m_tb_prefs.getIntPref(k_tb_tornews_banner_countdown, 0);
- if (count > 0) {
- m_tb_prefs.setIntPref(k_tb_tornews_banner_countdown, count - 1);
- }
-}
-
function torbutton_is_mobile() {
return Services.appinfo.OS === "Android";
}
@@ -342,10 +333,6 @@ function torbutton_init() {
// Add about:tor IPC message listener.
window.messageManager.addMessageListener("AboutTor:Loaded",
torbutton_abouttor_message_handler);
- window.messageManager.addMessageListener("AboutTor:HideTorNewsBanner",
- torbutton_abouttor_message_handler);
-
- torbutton_tornews_banner_countdown();
setupPreferencesForMobile();
@@ -433,10 +420,6 @@ var torbutton_abouttor_message_handler = {
aMessage.target.messageManager.sendAsyncMessage("AboutTor:ChromeData",
this.chromeData);
break;
- case "AboutTor:HideTorNewsBanner":
- torbutton_log(5, "message AboutTor:HideTorNewsBanner received");
- m_tb_prefs.setIntPref(k_tb_tornews_banner_countdown, 0);
- break;
}
},
diff --git a/src/chrome/skin/aboutTor.css b/src/chrome/skin/aboutTor.css
index 8560124b..982b147a 100644
--- a/src/chrome/skin/aboutTor.css
+++ b/src/chrome/skin/aboutTor.css
@@ -282,78 +282,6 @@ body:not([showmanual]) .showForManual {
border-radius: 50px 50px 0 0;
}
-/* Tor News Signup Banner
- * While this banner is present, we need to
- * offset the elements normally at the top of
- * the window.
- */
-
-#tornews-banner {
- display: flex;
- align-items: center;
- background-color: white;
- color: var(--abouttor-bg-toron-color);
- font-size: 16px;
- height: 60px;
- justify-content: space-between;
- left: 0px;
- right: 0px;
- top: 0px;
- transform: translateY(-60px);
- transition: transform 200ms;
-}
-
-body[show-tornews-banner="true"] #tornews-banner {
- transform: translateY(0px);
- transition: transform 0ms;
-}
-
-#tornews-banner-message {
- align-items: center;
- display: flex;
- justify-content: center;
-}
-
-#tornews-banner-message a {
- color: var(--abouttor-bg-toron-color);
-}
-
-#tornews-banner-icon {
- background: url('chrome://torbutton/skin/newsletter_3x.png') no-repeat center center;
- background-size: cover;
- height: 32px;
- margin: 0px 16px;
- width: 32px;
-}
-
-#tornews-banner-closer {
- display: flex;
- align-items: center;
- font-size: 20px;
- height: 22px;
- justify-content: center;
- margin: 4px 20px;
- padding: 4px;
- width: 22px;
- -moz-user-select: none;
-}
-
-#tornews-banner-closer:hover {
- background-color: gray;
- cursor: pointer;
-}
-
-body[show-tornews-banner="false"] #torstatus-version,
-body[show-tornews-banner="false"] #onboarding-overlay-button {
- transition: transform 200ms;
-}
-
-body[show-tornews-banner="true"] #torstatus-version,
-body[show-tornews-banner="true"] #onboarding-overlay-button {
- transform: translateY(60px);
- transition: transform 0ms;
-}
-
/*
* Mobile specific css
*/
diff --git a/src/chrome/skin/newsletter_3x.png b/src/chrome/skin/newsletter_3x.png
deleted file mode 100644
index 821572fa..00000000
Binary files a/src/chrome/skin/newsletter_3x.png and /dev/null differ
diff --git a/src/defaults/preferences/preferences.js b/src/defaults/preferences/preferences.js
index 45b60ce8..270131d2 100644
--- a/src/defaults/preferences/preferences.js
+++ b/src/defaults/preferences/preferences.js
@@ -6,7 +6,6 @@ pref("extensions.torbutton.logmethod",1); // 0=stdout, 1=errorconsole, 2=debuglo
pref("extensions.torbutton.display_circuit", true);
pref("extensions.torbutton(a)torproject.org.description", "chrome://torbutton/locale/torbutton.properties");
pref("extensions.torbutton.updateNeeded", false);
-pref("extensions.torbutton.tornews_banner_countdown", 4);
// Tor check and proxy prefs
pref("extensions.torbutton.test_enabled",true);
1
0
commit 3edfe4d54f22d81c61b68c3760cc8320ce45fe42
Author: Georg Koppen <gk(a)torproject.org>
Date: Fri Jan 18 09:23:03 2019 +0000
Adjusting copyright year to 2019
---
src/chrome/content/aboutTor/aboutTor-content.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/chrome/content/aboutTor/aboutTor-content.js b/src/chrome/content/aboutTor/aboutTor-content.js
index 94ecefe5..b91fd17d 100644
--- a/src/chrome/content/aboutTor/aboutTor-content.js
+++ b/src/chrome/content/aboutTor/aboutTor-content.js
@@ -1,5 +1,5 @@
/*************************************************************************
- * Copyright (c) 2017, The Tor Project, Inc.
+ * Copyright (c) 2019, The Tor Project, Inc.
* See LICENSE for licensing information.
*
* vim: set sw=2 sts=2 ts=8 et syntax=javascript:
1
0

22 Jan '19
commit c097649928aebba435f0379151c25388c924f3cb
Author: Georg Koppen <gk(a)torproject.org>
Date: Fri Jan 18 09:29:21 2019 +0000
Bug 29035: Add link for newsletter sign-up
Patch based on a version written by Arthur Edelstein
---
src/chrome/content/aboutTor/aboutTor.xhtml | 7 +++++--
src/chrome/skin/aboutTor.css | 16 +++++++++++++++-
src/chrome/skin/icon-newsletter.png | Bin 0 -> 649 bytes
3 files changed, 20 insertions(+), 3 deletions(-)
diff --git a/src/chrome/content/aboutTor/aboutTor.xhtml b/src/chrome/content/aboutTor/aboutTor.xhtml
index 5ddf6ab9..639c2fca 100644
--- a/src/chrome/content/aboutTor/aboutTor.xhtml
+++ b/src/chrome/content/aboutTor/aboutTor.xhtml
@@ -62,9 +62,12 @@ window.addEventListener("pageshow", function() {
</div>
<div id="bottom">
- <p class="showForManual moreInfoLink">&aboutTor.torbrowser_user_manual_questions.label;
+ <p id="manual" class="showForManual moreInfoLink">&aboutTor.torbrowser_user_manual_questions.label;
<a id="manualLink" target="_blank">&aboutTor.torbrowser_user_manual_link.label;</a></p>
- <p>&aboutTor.tor_mission.label;
+ <p id="newsletter" class="moreInfoLink"><img class="imageStyle" src="resource://torbutton-assets/icon-newsletter.png"/><br/>&aboutTor.newsletter.tagline;<br/>
+ <a href="https://newsletter.torproject.org">&aboutTor.newsletter.link_text; »</a>
+ </p>
+ <p id="mission">&aboutTor.tor_mission.label;
<a href="&aboutTor.getInvolved.link;">&aboutTor.getInvolved.label;</a></p>
</div>
</div>
diff --git a/src/chrome/skin/aboutTor.css b/src/chrome/skin/aboutTor.css
index 982b147a..1bdf301d 100644
--- a/src/chrome/skin/aboutTor.css
+++ b/src/chrome/skin/aboutTor.css
@@ -149,6 +149,19 @@ body:not([showmanual]) .showForManual {
font-size: 15px;
}
+#bottom img.imageStyle {
+ padding-inline-end: 10px;
+}
+
+/* Hide the linebreaks on large enough screens (desktops, laptops, and
+ * tablets).
+ */
+@media only screen and (min-width: 768px) {
+ #bottom br {
+ display: none;
+ }
+}
+
.searchbox form {
width: 500px;
margin: 39px auto 0px auto;
@@ -293,7 +306,8 @@ body:not([showmanual]) .showForManual {
body[mobile] #torstatus-version,
body[mobile] .searchbox,
body[mobile] .top .heading2,
-body[mobile] #bottom {
+body[mobile] #manual,
+body[mobile] #mission {
display: none;
}
diff --git a/src/chrome/skin/icon-newsletter.png b/src/chrome/skin/icon-newsletter.png
new file mode 100644
index 00000000..7532ba9c
Binary files /dev/null and b/src/chrome/skin/icon-newsletter.png differ
1
0

[torbutton/maint-2.0] Bug 27175: Add pref to allow users to persist custom noscript settings
by gk@torproject.org 22 Jan '19
by gk@torproject.org 22 Jan '19
22 Jan '19
commit d0adb5ad47e97e2143bac6595084a33e6355acb8
Author: Arthur Edelstein <arthuredelstein(a)gmail.com>
Date: Mon Sep 17 23:03:26 2018 -0700
Bug 27175: Add pref to allow users to persist custom noscript settings
The pref is called "extensions.torbutton.noscript_persist".
Warning! It is dangerous and could reveal what sites you have visited
in the past.
(We also use a pref named "extensions.torbutton.noscript_inited" to keep
track of the first run.)
---
src/defaults/preferences/preferences.js | 3 +++
src/modules/noscript-control.js | 31 +++++++++++++++++++++++--------
2 files changed, 26 insertions(+), 8 deletions(-)
diff --git a/src/defaults/preferences/preferences.js b/src/defaults/preferences/preferences.js
index b991a3ae..eb055a65 100644
--- a/src/defaults/preferences/preferences.js
+++ b/src/defaults/preferences/preferences.js
@@ -48,6 +48,9 @@ pref("extensions.torbutton.prompt_torbrowser", true);
pref("extensions.torbutton.confirm_plugins", true);
pref("extensions.torbutton.confirm_newnym", true);
+pref("extensions.torbutton.noscript_inited", false);
+pref("extensions.torbutton.noscript_persist", false);
+
// Browser home page:
pref("browser.startup.homepage", "chrome://torbutton/content/locale/non-localized.properties");
diff --git a/src/modules/noscript-control.js b/src/modules/noscript-control.js
index 621f2b7f..275f9dba 100644
--- a/src/modules/noscript-control.js
+++ b/src/modules/noscript-control.js
@@ -5,9 +5,10 @@
// ## Utilities
const { utils: Cu } = Components;
+const { Services } = Cu.import("resource://gre/modules/Services.jsm", {});
const { LegacyExtensionContext } =
Cu.import("resource://gre/modules/LegacyExtensionsUtils.jsm", {});
-const { bindPrefAndInit } =
+const { bindPref } =
Cu.import("resource://torbutton/modules/utils.js", {});
let logger = Components.classes["@torproject.org/torbutton-logger;1"]
.getService(Components.interfaces.nsISupports).wrappedJSObject;
@@ -128,14 +129,28 @@ var initialize = () => {
// Wait for the first message from NoScript to arrive, and then
// bind the security_slider pref to the NoScript settings.
let messageListener = (a,b,c) => {
- log(3, `Message received from NoScript: ${JSON.stringify([a,b,c])}`);
- if (!["started", "pageshow"].includes(a.__meta.name)) {
- return;
+ try {
+ log(3, `Message received from NoScript: ${JSON.stringify([a,b,c])}`);
+ if (!["started", "pageshow"].includes(a.__meta.name)) {
+ return;
+ }
+ extensionContext.api.browser.runtime.onMessage.removeListener(messageListener);
+ let noscriptPersist = Services.prefs.getBoolPref("extensions.torbutton.noscript_persist", false);
+ let noscriptInited = Services.prefs.getBoolPref("extensions.torbutton.noscript_inited", false);
+ // Set the noscript safety level once if we have never run noscript
+ // before, or if we are not allowing noscript per-site settings to be
+ // persisted between browser sessions. Otherwise make sure that the
+ // security slider position, if changed, will rewrite the noscript
+ // settings.
+ bindPref("extensions.torbutton.security_slider",
+ sliderState => setNoScriptSafetyLevel(securitySliderToSafetyLevel(sliderState)),
+ !noscriptPersist || !noscriptInited);
+ if (!noscriptInited) {
+ Services.prefs.setBoolPref("extensions.torbutton.noscript_inited", true);
+ }
+ } catch (e) {
+ log(5, e.message);
}
- extensionContext.api.browser.runtime.onMessage.removeListener(messageListener);
- bindPrefAndInit(
- "extensions.torbutton.security_slider",
- sliderState => setNoScriptSafetyLevel(securitySliderToSafetyLevel(sliderState)));
};
extensionContext.api.browser.runtime.onMessage.addListener(messageListener);
log(3, "Listening for message from NoScript.");
1
0