tbb-commits
Threads by month
- ----- 2026 -----
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- 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
- 20078 discussions
[gitian-builder/tor-browser-builder-3] ensure guest upgrade occurs before attempting to get manifest
by gk@torproject.org 22 Jan '16
by gk@torproject.org 22 Jan '16
22 Jan '16
commit 5c81bf36119dbecc17e55568ef3bc9f30dce0cff
Author: Devrandom <c1.devrandom(a)niftybox.net>
Date: Mon Mar 23 20:47:39 2015 -0700
ensure guest upgrade occurs before attempting to get manifest
fixes #85
---
.gitignore | 1 +
RELEASE_NOTES | 13 +++++++++++++
bin/gbuild | 9 ++++++++-
target-bin/grab-packages.sh | 6 +++---
target-bin/upgrade-system.sh | 15 +++++++++++++++
5 files changed, 40 insertions(+), 4 deletions(-)
diff --git a/.gitignore b/.gitignore
index 54df527..696aae0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,3 +9,4 @@ inputs
base*
*.qcow2
sigs
+target-bin/bootstrap-fixup
diff --git a/RELEASE_NOTES b/RELEASE_NOTES
index 514cfdc..7662703 100644
--- a/RELEASE_NOTES
+++ b/RELEASE_NOTES
@@ -1,3 +1,16 @@
+2015-03-23
+----------
+
+Now ensuring that `apt-get dist-upgrade` occurs at least once before package manifest
+is computed. This is because distributions usually don't store old versions of packages
+in the repos, so we can't download the exact package version we have installed if it's
+out of date.
+
+gbuild now has a --upgrade flag that forces an upgrade after the first one.
+
+Other Notes
+===========
+
Important:
We are planning on switching from using lxc-start to using lxc-execute. lxc-execute requires lxc-init (or init.lxc) to be available on the guest at one of the expected places. You might have to manually install lxc on your base VM image or recreate the image.
diff --git a/bin/gbuild b/bin/gbuild
index da49d50..d256986 100755
--- a/bin/gbuild
+++ b/bin/gbuild
@@ -92,7 +92,11 @@ def build_one_configuration(suite, arch, build_desc, reference_datetime)
info "Installing additional packages (log in var/install.log)"
system! "on-target -u root -e DEBIAN_FRONTEND=noninteractive apt-get --no-install-recommends -y install #{build_desc["packages"].join(" ")} > var/install.log 2>&1"
- info "Grabbing package manifest"
+ if @options[:upgrade] || system("on-target -u root '[ ! -e /var/cache/gitian/initial-upgrade ]'")
+ info "Upgrading system, may take a while"
+ system! "on-target -u root bash < target-bin/upgrade-system.sh > var/install.log 2>&1"
+ end
+ info "Creating package manifest"
system! "on-target -u root bash < target-bin/grab-packages.sh > var/base-#{suitearch}.manifest"
info "Creating build script (var/build-script)"
@@ -130,6 +134,9 @@ OptionParser.new do |opts|
opts.on("-i", "--skip-image", "reuse current target image") do |v|
@options[:skip_image] = v
end
+ opts.on("--upgrade", "upgrade guest with latest packages") do |v|
+ @options[:upgrade] = v
+ end
opts.on("-q", "--quiet", "be quiet") do |v|
@options[:quiet] = v
end
diff --git a/target-bin/grab-packages.sh b/target-bin/grab-packages.sh
index adf8e34..2fef08e 100644
--- a/target-bin/grab-packages.sh
+++ b/target-bin/grab-packages.sh
@@ -6,7 +6,7 @@ set -e
cd /var/cache/apt/archives
-#apt-get clean
-
-dpkg-query -W -f '${Package}\n' | xargs -n 50 apt-get install --reinstall -y -d > /dev/null
+# make sure all packages with installed versions are downloaded
+dpkg-query -W -f '${Package}=${Version}\n' | xargs -n 50 apt-get install -q --reinstall -y -d > /tmp/download.log
+grep "cannot be downloaded" /tmp/download.log && { echo Could not download some packages, please run gbuild --upgrade 1>&2 ; exit 1 ; }
sha256sum *.deb | sort --key 2
diff --git a/target-bin/upgrade-system.sh b/target-bin/upgrade-system.sh
new file mode 100644
index 0000000..9384229
--- /dev/null
+++ b/target-bin/upgrade-system.sh
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+# Upgrade system
+
+set -e
+
+mkdir -p /var/cache/gitian
+
+# remove obsolete grub, it causes package dependency issues
+apt-get -q -y purge grub > /dev/null 2>&1 || true
+
+# upgrade packages
+DEBIAN_FRONTEND=noninteractive apt-get -y dist-upgrade > /dev/null > /var/cache/gitian/upgrade.log 2>&1
+
+touch /var/cache/gitian/initial-upgrade
1
0
[tor-browser/tor-browser-38.6.0esr-6.0-1] Bug 1202266 - Suppress '-Wformat-security' in libstagefright CXXFLAGS. r=kentuckyfriedtakahe
by gk@torproject.org 22 Jan '16
by gk@torproject.org 22 Jan '16
22 Jan '16
commit fcbfae6fc60a23fe79a80d543d12891f0a66b93e
Author: Johannes Pfrang <johannespfrang(a)gmail.com>
Date: Thu Sep 10 09:49:00 2015 +0200
Bug 1202266 - Suppress '-Wformat-security' in libstagefright CXXFLAGS. r=kentuckyfriedtakahe
--HG--
extra : rebase_source : a93c2b3648b6dd14bf0a679fa241e8780c693780
---
media/libstagefright/moz.build | 1 +
1 file changed, 1 insertion(+)
diff --git a/media/libstagefright/moz.build b/media/libstagefright/moz.build
index 651ae85..f43a09f 100644
--- a/media/libstagefright/moz.build
+++ b/media/libstagefright/moz.build
@@ -142,6 +142,7 @@ elif CONFIG['GNU_CXX']:
]
CXXFLAGS += [
'-Wno-format',
+ '-Wno-format-security',
'-Wno-multichar',
'-Wno-sign-compare',
'-Wno-unused',
1
0
[tor-browser-bundle/master] Bug 15578: Switch Linux descriptors over to Wheezy
by gk@torproject.org 22 Jan '16
by gk@torproject.org 22 Jan '16
22 Jan '16
commit f78282bad0e1e2255adcf65198137ee14d7b2235
Author: Georg Koppen <gk(a)torproject.org>
Date: Mon Dec 7 12:33:16 2015 +0000
Bug 15578: Switch Linux descriptors over to Wheezy
Besides using Wheezy for building Linux bundles this patch cleans up our
usage of libfaketime as well to make it obvious where exactly we still
need it.
---
gitian/Makefile | 2 +-
gitian/README.build | 2 +-
gitian/check-prerequisites.sh | 41 ++++++++++----------
gitian/descriptors/linux/gitian-bundle.yml | 7 +---
gitian/descriptors/linux/gitian-firefox.yml | 9 ++---
.../linux/gitian-pluggable-transports.yml | 7 ++--
gitian/descriptors/linux/gitian-tor.yml | 7 ++--
gitian/descriptors/linux/gitian-utils.yml | 40 ++++++++++++++-----
gitian/make-vms.sh | 29 ++++++++------
9 files changed, 85 insertions(+), 59 deletions(-)
diff --git a/gitian/Makefile b/gitian/Makefile
index 8f89bca..50d4328 100644
--- a/gitian/Makefile
+++ b/gitian/Makefile
@@ -120,7 +120,7 @@ clean-bundle:
vmclean:
rm -rf ../../gitian-builder/*.qcow2
rm -rf ../../gitian-builder/base-*
- rm -rf ../../gitian-builder/target-{lucid,precise}*
+ rm -rf ../../gitian-builder/target-{lucid,wheezy,precise}*
distclean: vmclean
rm -rf ../../gitian-builder/inputs/*
diff --git a/gitian/README.build b/gitian/README.build
index f289791..4d01d6a 100644
--- a/gitian/README.build
+++ b/gitian/README.build
@@ -177,7 +177,7 @@ Known Issues and Quirks:
where 'make vmclean' causes the rebuild of two VMs in a row.. This might
trigger weird bugs in python-vm-builder.. To rebuild only one set of VMs,
use either 'rm ../../gitian-builder/*precise*' (to remove the Windows/Mac
- VMs) or 'rm ../../gitian-builder/*lucid*' (to remove the Linux VMs).
+ VMs) or 'rm ../../gitian-builder/*wheezy*' (to remove the Linux VMs).
You probably want to make sure you have no stray qemu processes before
rebuilding the VMs or starting a new build, too. 'killall qemu-kvm' is
diff --git a/gitian/check-prerequisites.sh b/gitian/check-prerequisites.sh
index cc16d0e..a5f8393 100755
--- a/gitian/check-prerequisites.sh
+++ b/gitian/check-prerequisites.sh
@@ -17,7 +17,7 @@ then
VERSION=`cat /etc/issue | grep -Eo '[0-9]{2}' | head -1`
if [ "$VERSION" -ge "14" ];
then
- dpkg -s ruby apache2 git apt-cacher-ng python-vm-builder qemu-kvm virt-what lxc lxctl fakeroot faketime zip unzip subversion torsocks tor 2>/dev/null >/dev/null
+ dpkg -s ruby apache2 git apt-cacher-ng qemu-kvm virt-what lxc lxctl fakeroot faketime zip unzip subversion torsocks tor 2>/dev/null >/dev/null
if [ $? -ne 0 ];
then
@@ -25,7 +25,7 @@ then
echo
echo "Please run:"
echo " sudo apt-get install torsocks tor"
- echo " sudo torsocks apt-get install ruby apache2 git apt-cacher-ng python-vm-builder qemu-kvm virt-what lxc lxctl fakeroot faketime zip unzip subversion"
+ echo " sudo torsocks apt-get install ruby apache2 git apt-cacher-ng qemu-kvm virt-what lxc lxctl fakeroot faketime zip unzip subversion"
exit 1
fi
else
@@ -45,28 +45,29 @@ then
echo " sudo torsocks apt-get install ruby git apt-cacher-ng qemu-kvm virt-what lxc lxctl fakeroot zip unzip python-cheetah debootstrap parted kpartx rsync"
exit 1
fi
-
- # python-vm-builder is special as we don't have a Debian package for it.
- vmbuilder --help 2>/dev/null >/dev/null
- if [ $? -ne 0 ];
- then
- echo "The VM tool python-vm-builder is missing."
- echo
- echo "Please run"
- echo 'torsocks wget -U "" http://archive.ubuntu.com/ubuntu/pool/universe/v/vm-builder/vm-builder_0.12…'
- echo 'echo "ec12e0070a007989561bfee5862c89a32c301992dd2771c4d5078ef1b3014f03 vm-builder_0.12.4+bzr489.orig.tar.gz" | sha256sum -c'
- echo "# (verification -- must return OK)"
- echo "tar -zxvf vm-builder_0.12.4+bzr489.orig.tar.gz"
- echo "cd vm-builder-0.12.4+bzr489"
- echo "sudo python setup.py install"
- echo "cd .."
- exit 1
- fi
else
echo "We need Debian or Ubuntu which seem to be missing. Aborting."
exit 1
fi
+# vmbuilder is special as we don't have a package for it yet.
+# XXX: Make sure an already installed vmbuilder is recent enough.
+vmbuilder --help 2>/dev/null >/dev/null
+if [ $? -ne 0 ];
+then
+ echo "The VM tool python-vm-builder is missing."
+ echo
+ echo "Please run"
+ echo 'torsocks wget -U "" https://bugs.launchpad.net/ubuntu/+archive/primary/+files/vm-builder_0.12.4…'
+ echo 'echo "76cbf8c52c391160b2641e7120dbade5afded713afaa6032f733a261f13e6a8e vm-builder_0.12.4+bzr494.orig.tar.gz" | sha256sum -c'
+ echo "# (verification -- must return OK)"
+ echo "tar -zxvf vm-builder_0.12.4+bzr494.orig.tar.gz"
+ echo "cd vm-builder-0.12.4+bzr494"
+ echo "sudo python setup.py install"
+ echo "cd .."
+ exit 1
+fi
+
update_responses_pkg="libyaml-perl libfile-slurp-perl libxml-writer-perl libio-captureoutput-perl libfile-which-perl libparallel-forkmanager-perl libxml-libxml-perl libwww-perl libjson-perl"
missing_pkg=''
for pkg in $update_responses_pkg
@@ -80,7 +81,7 @@ if [ -n "$missing_pkg" ]
then
echo "You are missing one or more dependencies for the update_responses script"
echo "Please run"
- echo " sudo apt-get install $missing_pkg"
+ echo " sudo torsocks apt-get install $missing_pkg"
exit 1
fi
diff --git a/gitian/descriptors/linux/gitian-bundle.yml b/gitian/descriptors/linux/gitian-bundle.yml
index 15f6359..bfecb0f 100644
--- a/gitian/descriptors/linux/gitian-bundle.yml
+++ b/gitian/descriptors/linux/gitian-bundle.yml
@@ -1,7 +1,8 @@
---
name: "bundle-linux"
+distro: "debian"
suites:
-- "lucid"
+- "wheezy"
architectures:
- "i386"
- "amd64"
@@ -28,7 +29,6 @@ remotes:
- "url": "https://github.com/wolfcw/libfaketime"
"dir": "faketime"
files:
-# TODO: Can we use an env for this file+version??
- "tor-browser-linux32-gbuilt.zip"
- "tor-browser-linux64-gbuilt.zip"
- "tor-linux32-gbuilt.zip"
@@ -113,9 +113,6 @@ script: |
cd ../../../
#
cd https-everywhere
- # Workaround for git not knowing `git submodule -f` in the version shipped in
- # 10.04.
- sed 's/recursive -f/recursive/' -i makexpi.sh
# XXX: Bloody hack to workaround a bug in HTTPS_E's git hash extraction in
# makexpi.sh. See https://trac.torproject.org/projects/tor/ticket/10066
# The solution there does not work for us as doing something like
diff --git a/gitian/descriptors/linux/gitian-firefox.yml b/gitian/descriptors/linux/gitian-firefox.yml
index 1efed90..468d6e5 100644
--- a/gitian/descriptors/linux/gitian-firefox.yml
+++ b/gitian/descriptors/linux/gitian-firefox.yml
@@ -1,7 +1,8 @@
---
name: "torbrowser-linux"
+distro: "debian"
suites:
-- "lucid"
+- "wheezy"
architectures:
- "i386"
- "amd64"
@@ -11,9 +12,10 @@ packages:
- "autoconf2.13"
- "libgtk2.0-dev"
- "libdbus-glib-1-dev"
-- "yasm-1"
+- "yasm"
- "libasound2-dev"
- "libgstreamer-plugins-base0.10-dev"
+- "libxt-dev"
- "hardening-wrapper"
# To pass configure since ESR 31.
- "libpulse-dev"
@@ -51,9 +53,6 @@ script: |
export DEB_BUILD_HARDENING_FORMAT=1
export DEB_BUILD_HARDENING_PIE=1
#
- mkdir -p $INSTDIR/build/bin/
- ln -s /usr/bin/yasm-1 $INSTDIR/build/bin/yasm
- export PATH=$PATH:$INSTDIR/build/bin
# Preparing Python for Tor Browser
unzip -d $INSTDIR python-linux$GBUILD_BITS-utils.zip
# TODO: We might want to have a smarter solution than hard-coding the version.
diff --git a/gitian/descriptors/linux/gitian-pluggable-transports.yml b/gitian/descriptors/linux/gitian-pluggable-transports.yml
index 31deebb..0643e6b 100644
--- a/gitian/descriptors/linux/gitian-pluggable-transports.yml
+++ b/gitian/descriptors/linux/gitian-pluggable-transports.yml
@@ -1,7 +1,8 @@
---
name: "pluggable-transports-linux"
+distro: "debian"
suites:
-- "lucid"
+- "wheezy"
architectures:
- "i386"
- "amd64"
@@ -57,7 +58,6 @@ script: |
INSTDIR="$HOME/install"
PTDIR="$INSTDIR/Tor/PluggableTransports"
mkdir -p $PTDIR
- export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
export FAKETIME=$REFERENCE_DATETIME
export TZ=UTC
export LC_ALL=C
@@ -251,7 +251,8 @@ script: |
cp -a obfs4proxy $PTDIR
cd ../..
- # Grabbing the results
+ # Grabbing the results and making sure timestamps don't spoil them
+ export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
cd $INSTDIR
~/build/dzip.sh pluggable-transports-linux$GBUILD_BITS-gbuilt.zip Tor/ Docs/
cp pluggable-transports-linux$GBUILD_BITS-gbuilt.zip $OUTDIR/
diff --git a/gitian/descriptors/linux/gitian-tor.yml b/gitian/descriptors/linux/gitian-tor.yml
index 0e35d2f..bc1dc67 100644
--- a/gitian/descriptors/linux/gitian-tor.yml
+++ b/gitian/descriptors/linux/gitian-tor.yml
@@ -1,7 +1,8 @@
---
name: "tor-linux"
+distro: "debian"
suites:
-- "lucid"
+- "wheezy"
architectures:
- "i386"
- "amd64"
@@ -29,7 +30,6 @@ files:
script: |
INSTDIR="$HOME/install"
source versions
- export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
export FAKETIME=$REFERENCE_DATETIME
export TZ=UTC
export LC_ALL=C
@@ -93,7 +93,8 @@ script: |
objcopy --add-gnu-debuglink=./Debug/Tor/$LIB $INSTDIR/Tor/$LIB
done
- # Grabbing the results
+ # Grabbing the results and making sure timestamps don't spoil them
+ export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
~/build/dzip.sh tor-linux$GBUILD_BITS-gbuilt.zip Data/ Tor/
~/build/dzip.sh tor-linux$GBUILD_BITS-debug.zip Debug/
cp tor-linux$GBUILD_BITS-gbuilt.zip $OUTDIR/
diff --git a/gitian/descriptors/linux/gitian-utils.yml b/gitian/descriptors/linux/gitian-utils.yml
index 740a22c..34e93dc 100644
--- a/gitian/descriptors/linux/gitian-utils.yml
+++ b/gitian/descriptors/linux/gitian-utils.yml
@@ -1,7 +1,8 @@
---
name: "utils-linux"
+distro: "debian"
suites:
-- "lucid"
+- "wheezy"
architectures:
- "i386"
- "amd64"
@@ -22,6 +23,8 @@ packages:
- "libxslt-dev"
# Needed for passing the Python related part of configure in ESR 31.
- "libssl-dev"
+# Needed for binutils (64bit) as we are building with PIE enabled.
+- "libstdc++6-4.7-pic"
reference_datetime: "2000-01-01 00:00:00"
remotes:
- "url": "https://github.com/libevent/libevent.git"
@@ -40,6 +43,7 @@ script: |
source versions
export TZ=UTC
export LC_ALL=C
+ export FAKETIME=$REFERENCE_DATETIME
umask 0022
# Config options for hardening-wrapper
@@ -51,16 +55,33 @@ script: |
# Building Binutils
tar xjf binutils.tar.bz2
+ # The libstdc++ shipped by default is non-PIC which breaks the binutils build
+ # if we build with DEB_BUILD_HARDENING_PIE=1. We need to install a PIC one AND
+ # make sure it gets used before the non-PIC one would.
+ if [ $GBUILD_BITS == "64" ];
+ then
+ ln -s /usr/lib/gcc/x86_64-linux-gnu/4.7/libstdc++_pic.a libstdc++.a
+ export LDFLAGS="-L/home/debian -lstdc++"
+ fi
cd binutils*
# We want to use gold as the linker in our toolchain mainly as it is way
# faster when linking Tor Browser code (especially libxul). But apart from
# that it fixes #12103 and issues with ESR 31 and our Gitian setup as well
# (see bug #12743).
- ./configure --prefix=$INSTDIR/binutils --disable-multilib --enable-gold
+ ./configure --prefix=$INSTDIR/binutils --disable-multilib --enable-gold --enable-plugins
make $MAKEOPTS
make install
cd ..
+ export LDFLAGS=""
+ # We need to disable `-Werror=format-security` as GCC does not build with it
+ # anymore. It seems it got audited for those problems already:
+ # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=48817.
+ export DEB_BUILD_HARDENING_FORMAT=0
+ # libfaketime gets into our way when building GCC 4.9.x. See:
+ # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61314 for details. Thus, we
+ # avoid it for the toolchain and cross our fingers.
+ # TODO: Test a newer libfaketime than 0.8.
# Building GCC
tar xjf gcc.tar.bz2
cd gcc-*
@@ -69,13 +90,7 @@ script: |
make install
cd ..
- # libfaketime gets into our way when building GCC 4.9.x. See:
- # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61314 for details. Thus, we
- # avoid it for the toolchain and cross our fingers.
- # TODO: Test a newer libfaketime than 0.8.
- export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
- export FAKETIME=$REFERENCE_DATETIME
-
+ export DEB_BUILD_HARDENING_FORMAT=1
# Building Libevent
cd libevent
./autogen.sh
@@ -86,6 +101,7 @@ script: |
cd ..
# Building OpenSSL
+ export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
tar xzf openssl.tar.gz
cd openssl-*
find -type f -print0 | xargs -0 touch --date="$REFERENCE_DATETIME"
@@ -111,6 +127,7 @@ script: |
cd ..
# Building lxml
+ export LD_PRELOAD=""
tar xzf lxml.tar.gz
cd lxml-*
# Make sure we use our freshly built python binary here. Otherwise bad things
@@ -118,7 +135,9 @@ script: |
# rules.
$INSTDIR/python/bin/python2.7 setup.py build
cd build/lib*
+ export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
~/build/dzip.sh lxml-$LXML_VER-linux$GBUILD_BITS-utils.zip lxml
+ export LD_PRELOAD=""
cp *utils.zip $OUTDIR
cd ../../../
@@ -135,7 +154,8 @@ script: |
make install
cd ..
- # Grabbing the remaining results
+ # Grabbing the remaining results and making sure timestamps don't spoil them
+ export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
cd $INSTDIR
~/build/dzip.sh binutils-$BINUTILS_VER-linux$GBUILD_BITS-utils.zip binutils
~/build/dzip.sh gcc-$GCC_VER-linux$GBUILD_BITS-utils.zip gcc
diff --git a/gitian/make-vms.sh b/gitian/make-vms.sh
index a3b43b5..469a9ca 100755
--- a/gitian/make-vms.sh
+++ b/gitian/make-vms.sh
@@ -33,7 +33,14 @@ build_and_test_vm() {
export LXC_ARCH=$arch
./bin/make-base-vm --suite $dist --lxc --arch $arch
else
- ./bin/make-base-vm --suite $dist --arch $arch
+ if [ "$dist" = "wheezy" ];
+ then
+ export DISTRO=debian
+ ./bin/make-base-vm --distro debian --suite $dist --arch $arch
+ else
+ export DISTRO=ubuntu
+ ./bin/make-base-vm --suite $dist --arch $arch
+ fi
fi
make-clean-vm --suite $dist --arch $arch
@@ -56,21 +63,21 @@ build_and_test_vm() {
return 0
}
-while ! build_and_test_vm lucid i386 32
+while ! build_and_test_vm wheezy i386 32
do
- stop-target 32 lucid
- rm ./base-lucid-i386*
+ stop-target 32 wheezy
+ rm ./base-wheezy-i386*
echo
- echo "Lucid i386 VM build failed... Trying again"
+ echo "Wheezy i386 VM build failed... Trying again"
echo
done
-while ! build_and_test_vm lucid amd64 64
+while ! build_and_test_vm wheezy amd64 64
do
- stop-target 64 lucid
- rm ./base-lucid-amd64*
+ stop-target 64 wheezy
+ rm ./base-wheezy-amd64*
echo
- echo "Lucid amd64 VM build failed... Trying again"
+ echo "Wheezy amd64 VM build failed... Trying again"
echo
done
@@ -79,7 +86,7 @@ do
stop-target 32 precise
rm ./base-precise-i386*
echo
- echo "Lucid amd64 VM build failed... Trying again"
+ echo "Precise amd64 VM build failed... Trying again"
echo
done
@@ -88,7 +95,7 @@ do
stop-target 64 precise
rm ./base-precise-amd64*
echo
- echo "Lucid amd64 VM build failed... Trying again"
+ echo "Precise amd64 VM build failed... Trying again"
echo
done
1
0
22 Jan '16
commit ac9da1d5965169f91973d57737fcd20e06351b08
Author: Nicolas Vigier <boklm(a)torproject.org>
Date: Sun Jan 10 17:09:43 2016 +0100
Bug 15578: drop our Python build
After switching to Debian Wheezy, we don't need to build Python since
the version provided by the distribution is recent enough.
---
gitian/descriptors/linux/gitian-bundle.yml | 9 +--------
gitian/descriptors/linux/gitian-firefox.yml | 8 +-------
gitian/descriptors/linux/gitian-utils.yml | 25 -------------------------
gitian/fetch-inputs.sh | 7 ++-----
gitian/mkbundle-linux.sh | 12 ------------
gitian/verify-tags.sh | 5 ++---
gitian/versions | 5 -----
gitian/versions.alpha | 5 -----
gitian/versions.beta | 5 -----
gitian/versions.nightly | 5 -----
10 files changed, 6 insertions(+), 80 deletions(-)
diff --git a/gitian/descriptors/linux/gitian-bundle.yml b/gitian/descriptors/linux/gitian-bundle.yml
index bfecb0f..e44635e 100644
--- a/gitian/descriptors/linux/gitian-bundle.yml
+++ b/gitian/descriptors/linux/gitian-bundle.yml
@@ -14,6 +14,7 @@ packages:
- "libxslt1.1"
- "libxml2-utils"
- "sqlite3"
+- "python-lxml"
reference_datetime: "2000-01-01 00:00:00"
remotes:
- "url": "https://git.torproject.org/tor-launcher.git"
@@ -35,10 +36,6 @@ files:
- "tor-linux64-gbuilt.zip"
- "pluggable-transports-linux32-gbuilt.zip"
- "pluggable-transports-linux64-gbuilt.zip"
-- "python-linux32-utils.zip"
-- "python-linux64-utils.zip"
-- "lxml-linux32-utils.zip"
-- "lxml-linux64-utils.zip"
- "torrc-defaults-appendix-linux"
- "bridge_prefs.js"
- "meek-http-helper-user.js"
@@ -83,10 +80,6 @@ script: |
mkdir -p ${TB_STAGE_DIR}/Browser/TorBrowser/Data/Browser/profile.meek-http-helper/extensions
mkdir -p ${TB_STAGE_DIR}/Browser/TorBrowser/Data/Browser/Caches
mkdir -p ${TB_STAGE_DIR}/Browser/TorBrowser/Docs/sources/
- # Preparing Python for HTTPS-Everywhere.
- unzip -d $INSTDIR python-linux$GBUILD_BITS-utils.zip
- export PATH=$INSTDIR/python/bin:$PATH
- unzip -d $INSTDIR/python/lib/python2.7 lxml-linux$GBUILD_BITS-utils.zip
#
# Extract the MAR tools.
unzip -d ~/build ~/build/mar-tools-linux${GBUILD_BITS}.zip
diff --git a/gitian/descriptors/linux/gitian-firefox.yml b/gitian/descriptors/linux/gitian-firefox.yml
index 468d6e5..f7ea1c6 100644
--- a/gitian/descriptors/linux/gitian-firefox.yml
+++ b/gitian/descriptors/linux/gitian-firefox.yml
@@ -17,6 +17,7 @@ packages:
- "libgstreamer-plugins-base0.10-dev"
- "libxt-dev"
- "hardening-wrapper"
+- "python-dev"
# To pass configure since ESR 31.
- "libpulse-dev"
# We built GCC but not the libmpc2, thus we need to install it.
@@ -32,8 +33,6 @@ files:
- "binutils-linux64-utils.zip"
- "gcc-linux32-utils.zip"
- "gcc-linux64-utils.zip"
-- "python-linux32-utils.zip"
-- "python-linux64-utils.zip"
- "re-dzip.sh"
- "dzip.sh"
- "versions"
@@ -53,11 +52,6 @@ script: |
export DEB_BUILD_HARDENING_FORMAT=1
export DEB_BUILD_HARDENING_PIE=1
#
- # Preparing Python for Tor Browser
- unzip -d $INSTDIR python-linux$GBUILD_BITS-utils.zip
- # TODO: We might want to have a smarter solution than hard-coding the version.
- ln -sf $INSTDIR/python/bin/python2.7 $INSTDIR/python/bin/python
- export PATH=$INSTDIR/python/bin:$PATH
# Preparing Binutils and GCC for Tor Browser
unzip -d $INSTDIR binutils-linux$GBUILD_BITS-utils.zip
# Make sure gold is used with the hardening wrapper for full RELRO, see
diff --git a/gitian/descriptors/linux/gitian-utils.yml b/gitian/descriptors/linux/gitian-utils.yml
index 34e93dc..e8801cc 100644
--- a/gitian/descriptors/linux/gitian-utils.yml
+++ b/gitian/descriptors/linux/gitian-utils.yml
@@ -33,8 +33,6 @@ files:
- "binutils.tar.bz2"
- "gcc.tar.bz2"
- "openssl.tar.gz"
-- "python.tar.bz2"
-- "lxml.tar.gz"
- "gmp.tar.bz2"
- "versions"
- "dzip.sh"
@@ -117,29 +115,7 @@ script: |
make install
cd ..
- # Building Python
- # Fx 24 ESR and HTTPS Everywhere >= 3.5 do not work with Python < 2.7 anymore.
- # But 10.04 does only ship with Python 2.6. Thus, we compile 2.7 ourselves...
- tar xjf python.tar.bz2
- cd Python-*
- ./configure
- make $MAKEOPTS altinstall prefix=$INSTDIR/python exec-prefix=$INSTDIR/python
- cd ..
-
- # Building lxml
- export LD_PRELOAD=""
- tar xzf lxml.tar.gz
- cd lxml-*
- # Make sure we use our freshly built python binary here. Otherwise bad things
- # may happen when we do so in the bundle step assembling the HTTPS-Everywhere
- # rules.
- $INSTDIR/python/bin/python2.7 setup.py build
- cd build/lib*
- export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
- ~/build/dzip.sh lxml-$LXML_VER-linux$GBUILD_BITS-utils.zip lxml
export LD_PRELOAD=""
- cp *utils.zip $OUTDIR
- cd ../../../
# Building GMP
tar xjf gmp.tar.bz2
@@ -161,6 +137,5 @@ script: |
~/build/dzip.sh gcc-$GCC_VER-linux$GBUILD_BITS-utils.zip gcc
~/build/dzip.sh openssl-$OPENSSL_VER-linux$GBUILD_BITS-utils.zip openssl
~/build/dzip.sh libevent-${LIBEVENT_TAG#release-}-linux$GBUILD_BITS-utils.zip libevent
- ~/build/dzip.sh python-$PYTHON_VER-linux$GBUILD_BITS-utils.zip python
~/build/dzip.sh gmp-$GMP_VER-linux$GBUILD_BITS-utils.zip gmp
cp *utils.zip $OUTDIR/
diff --git a/gitian/fetch-inputs.sh b/gitian/fetch-inputs.sh
index 206023b..9d6f2f3 100755
--- a/gitian/fetch-inputs.sh
+++ b/gitian/fetch-inputs.sh
@@ -112,12 +112,11 @@ update_git() {
##############################################################################
# Get+verify sigs that exist
-for i in OPENSSL BINUTILS GCC PYTHON PYCRYPTO PYTHON_MSI GMP LXML
+for i in OPENSSL BINUTILS GCC PYCRYPTO PYTHON_MSI GMP
do
PACKAGE="${i}_PACKAGE"
URL="${i}_URL"
- if [ "${i}" == "PYTHON" -o "${i}" == "PYCRYPTO" -o "${i}" == "PYTHON_MSI" -o \
- "${i}" == "LXML" -o "${i}" == "OPENSSL" ]; then
+ if [ "${i}" == "PYCRYPTO" -o "${i}" == "PYTHON_MSI" -o "${i}" == "OPENSSL" ]; then
SUFFIX="asc"
else
SUFFIX="sig"
@@ -226,7 +225,6 @@ ln -sf "$NOSCRIPT_PACKAGE" noscript(a)noscript.net.xpi
ln -sf "$OPENSSL_PACKAGE" openssl.tar.gz
ln -sf "$BINUTILS_PACKAGE" binutils.tar.bz2
ln -sf "$GCC_PACKAGE" gcc.tar.bz2
-ln -sf "$PYTHON_PACKAGE" python.tar.bz2
ln -sf "$PYTHON_MSI_PACKAGE" python.msi
ln -sf "$PYCRYPTO_PACKAGE" pycrypto.tar.gz
ln -sf "$ARGPARSE_PACKAGE" argparse.tar.gz
@@ -236,7 +234,6 @@ ln -sf "$TWISTED_PACKAGE" twisted.tar.bz2
ln -sf "$PY2EXE_PACKAGE" py2exe.exe
ln -sf "$SETUPTOOLS_PACKAGE" setuptools.tar.gz
ln -sf "$GMP_PACKAGE" gmp.tar.bz2
-ln -sf "$LXML_PACKAGE" lxml.tar.gz
ln -sf "$PARSLEY_PACKAGE" parsley.tar.gz
ln -sf "$GO_PACKAGE" go.tar.gz
diff --git a/gitian/mkbundle-linux.sh b/gitian/mkbundle-linux.sh
index 0c70732..f8aaec1 100755
--- a/gitian/mkbundle-linux.sh
+++ b/gitian/mkbundle-linux.sh
@@ -108,10 +108,6 @@ if [ ! -f inputs/binutils-$BINUTILS_VER-linux32-utils.zip -o \
! -f inputs/openssl-$OPENSSL_VER-linux64-utils.zip -o \
! -f inputs/libevent-${LIBEVENT_TAG_ORIG#release-}-linux32-utils.zip -o \
! -f inputs/libevent-${LIBEVENT_TAG_ORIG#release-}-linux64-utils.zip -o \
- ! -f inputs/python-$PYTHON_VER-linux32-utils.zip -o \
- ! -f inputs/python-$PYTHON_VER-linux64-utils.zip -o \
- ! -f inputs/lxml-$LXML_VER-linux32-utils.zip -o \
- ! -f inputs/lxml-$LXML_VER-linux64-utils.zip -o \
! -f inputs/gmp-$GMP_VER-linux32-utils.zip -o \
! -f inputs/gmp-$GMP_VER-linux64-utils.zip ];
then
@@ -136,10 +132,6 @@ then
ln -sf openssl-$OPENSSL_VER-linux64-utils.zip openssl-linux64-utils.zip
ln -sf libevent-${LIBEVENT_TAG_ORIG#release-}-linux32-utils.zip libevent-linux32-utils.zip
ln -sf libevent-${LIBEVENT_TAG_ORIG#release-}-linux64-utils.zip libevent-linux64-utils.zip
- ln -sf python-$PYTHON_VER-linux32-utils.zip python-linux32-utils.zip
- ln -sf python-$PYTHON_VER-linux64-utils.zip python-linux64-utils.zip
- ln -sf lxml-$LXML_VER-linux32-utils.zip lxml-linux32-utils.zip
- ln -sf lxml-$LXML_VER-linux64-utils.zip lxml-linux64-utils.zip
ln -sf gmp-$GMP_VER-linux32-utils.zip gmp-linux32-utils.zip
ln -sf gmp-$GMP_VER-linux64-utils.zip gmp-linux64-utils.zip
cd ..
@@ -159,10 +151,6 @@ else
ln -sf openssl-$OPENSSL_VER-linux64-utils.zip openssl-linux64-utils.zip
ln -sf libevent-${LIBEVENT_TAG_ORIG#release-}-linux32-utils.zip libevent-linux32-utils.zip
ln -sf libevent-${LIBEVENT_TAG_ORIG#release-}-linux64-utils.zip libevent-linux64-utils.zip
- ln -sf python-$PYTHON_VER-linux32-utils.zip python-linux32-utils.zip
- ln -sf python-$PYTHON_VER-linux64-utils.zip python-linux64-utils.zip
- ln -sf lxml-$LXML_VER-linux32-utils.zip lxml-linux32-utils.zip
- ln -sf lxml-$LXML_VER-linux64-utils.zip lxml-linux64-utils.zip
ln -sf gmp-$GMP_VER-linux32-utils.zip gmp-linux32-utils.zip
ln -sf gmp-$GMP_VER-linux64-utils.zip gmp-linux64-utils.zip
cd ..
diff --git a/gitian/verify-tags.sh b/gitian/verify-tags.sh
index 82a810a..fc62344 100755
--- a/gitian/verify-tags.sh
+++ b/gitian/verify-tags.sh
@@ -121,12 +121,11 @@ noto-fonts $NOTOFONTS_TAG
EOF
# Verify signatures on signed packages
-for i in OPENSSL BINUTILS GCC PYTHON PYCRYPTO PYTHON_MSI GMP LXML
+for i in OPENSSL BINUTILS GCC PYCRYPTO PYTHON_MSI GMP
do
PACKAGE="${i}_PACKAGE"
URL="${i}_URL"
- if [ "${i}" == "PYTHON" -o "${i}" == "PYCRYPTO" -o "${i}" == "PYTHON_MSI" -o \
- "${i}" == "LXML" -o "${i}" == "OPENSSL" ]; then
+ if [ "${i}" == "PYCRYPTO" -o "${i}" == "PYTHON_MSI" -o "${i}" == "OPENSSL" ]; then
SUFFIX="asc"
else
SUFFIX="sig"
diff --git a/gitian/versions b/gitian/versions
index 7ff094e..bd484bb 100755
--- a/gitian/versions
+++ b/gitian/versions
@@ -52,7 +52,6 @@ ZOPEINTERFACE_VER=4.0.5
TWISTED_VER=13.2.0
PY2EXE_VER=0.6.9
SETUPTOOLS_VER=1.4
-LXML_VER=3.3.5
PARSLEY_VER=1.2
GO_VER=1.4.2
NOTOCJKFONT_VER=1.004
@@ -68,7 +67,6 @@ OSXSDK_OLD_PACKAGE=apple-uni-sdk-10.6_20110407-0.flosoft1_i386.deb
MSVCR100_PACKAGE=msvcr100.dll
BINUTILS_PACKAGE=binutils-${BINUTILS_VER}.tar.bz2
GCC_PACKAGE=gcc-${GCC_VER}.tar.bz2
-PYTHON_PACKAGE=Python-${PYTHON_VER}.tar.bz2
PYTHON_MSI_PACKAGE=python-${PYTHON_VER}.msi
PYCRYPTO_PACKAGE=pycrypto-${PYCRYPTO_VER}.tar.gz
ARGPARSE_PACKAGE=argparse-${ARGPARSE_VER}.tar.gz
@@ -77,7 +75,6 @@ ZOPEINTERFACE_PACKAGE=zope.interface-${ZOPEINTERFACE_VER}.zip
TWISTED_PACKAGE=Twisted-${TWISTED_VER}.tar.bz2
PY2EXE_PACKAGE=py2exe-${PY2EXE_VER}.win32-py2.7.exe
SETUPTOOLS_PACKAGE=setuptools-${SETUPTOOLS_VER}.tar.gz
-LXML_PACKAGE=lxml-${LXML_VER}.tar.gz
PARSLEY_PACKAGE=Parsley-${PARSLEY_VER}.tar.gz
GO_PACKAGE=go${GO_VER}.src.tar.gz
NOTOCJKFONT_PACKAGE=NotoSansCJKsc-Regular.otf
@@ -114,7 +111,6 @@ OSXSDK_URL=https://launchpad.net/~flosoft/+archive/cross-apple/+files/${OSX…
BINUTILS_URL=https://ftp.gnu.org/gnu/binutils/${BINUTILS_PACKAGE}
GCC_URL=https://ftp.gnu.org/gnu/gcc/gcc-${GCC_VER}/${GCC_PACKAGE}
NOSCRIPT_URL=https://addons.cdn.mozilla.net/user-media/addons/722/${NOSCRIP…
-PYTHON_URL=https://www.python.org/ftp/python/${PYTHON_VER}/${PYTHON_PACKAGE}
PYTHON_MSI_URL=https://www.python.org/ftp/python/${PYTHON_VER}/${PYTHON_MSI…
PYCRYPTO_URL=https://pypi.python.org/packages/source/p/pycrypto/${PYCRYPTO_…
ARGPARSE_URL=https://argparse.googlecode.com/files/${ARGPARSE_PACKAGE}
@@ -124,7 +120,6 @@ TWISTED_URL=https://pypi.python.org/packages/source/T/Twisted/${TWISTED_PAC…
# TWISTED_URL=https://twistedmatrix.com/Releases/Twisted/$(echo ${TWISTED_VER} | awk -F. '{print $1"."$2}')/${TWISTED_PACKAGE}
PY2EXE_URL=http://liquidtelecom.dl.sourceforge.net/project/py2exe/py2exe/${…
SETUPTOOLS_URL=https://pypi.python.org/packages/source/s/setuptools/${SETUP…
-LXML_URL=https://pypi.python.org/packages/source/l/lxml/${LXML_PACKAGE}
PARSLEY_URL=https://pypi.python.org/packages/source/P/Parsley/${PARSLEY_PAC…
GO_URL=https://golang.org/dl/${GO_PACKAGE}
NOTOCJKFONT_URL=https://github.com/googlei18n/noto-cjk/raw/f36eda03dfa5582a…
diff --git a/gitian/versions.alpha b/gitian/versions.alpha
index 95ca078..5b7ef02 100755
--- a/gitian/versions.alpha
+++ b/gitian/versions.alpha
@@ -52,7 +52,6 @@ ZOPEINTERFACE_VER=4.0.5
TWISTED_VER=13.2.0
PY2EXE_VER=0.6.9
SETUPTOOLS_VER=1.4
-LXML_VER=3.3.5
PARSLEY_VER=1.2
GO_VER=1.4.2
NOTOCJKFONT_VER=1.004
@@ -68,7 +67,6 @@ OSXSDK_OLD_PACKAGE=apple-uni-sdk-10.6_20110407-0.flosoft1_i386.deb
MSVCR100_PACKAGE=msvcr100.dll
BINUTILS_PACKAGE=binutils-${BINUTILS_VER}.tar.bz2
GCC_PACKAGE=gcc-${GCC_VER}.tar.bz2
-PYTHON_PACKAGE=Python-${PYTHON_VER}.tar.bz2
PYTHON_MSI_PACKAGE=python-${PYTHON_VER}.msi
PYCRYPTO_PACKAGE=pycrypto-${PYCRYPTO_VER}.tar.gz
ARGPARSE_PACKAGE=argparse-${ARGPARSE_VER}.tar.gz
@@ -77,7 +75,6 @@ ZOPEINTERFACE_PACKAGE=zope.interface-${ZOPEINTERFACE_VER}.zip
TWISTED_PACKAGE=Twisted-${TWISTED_VER}.tar.bz2
PY2EXE_PACKAGE=py2exe-${PY2EXE_VER}.win32-py2.7.exe
SETUPTOOLS_PACKAGE=setuptools-${SETUPTOOLS_VER}.tar.gz
-LXML_PACKAGE=lxml-${LXML_VER}.tar.gz
PARSLEY_PACKAGE=Parsley-${PARSLEY_VER}.tar.gz
GO_PACKAGE=go${GO_VER}.src.tar.gz
NOTOCJKFONT_PACKAGE=NotoSansCJKsc-Regular.otf
@@ -114,7 +111,6 @@ OSXSDK_URL=https://launchpad.net/~flosoft/+archive/cross-apple/+files/${OSX…
BINUTILS_URL=https://ftp.gnu.org/gnu/binutils/${BINUTILS_PACKAGE}
GCC_URL=https://ftp.gnu.org/gnu/gcc/gcc-${GCC_VER}/${GCC_PACKAGE}
NOSCRIPT_URL=https://addons.cdn.mozilla.net/user-media/addons/722/${NOSCRIP…
-PYTHON_URL=https://www.python.org/ftp/python/${PYTHON_VER}/${PYTHON_PACKAGE}
PYTHON_MSI_URL=https://www.python.org/ftp/python/${PYTHON_VER}/${PYTHON_MSI…
PYCRYPTO_URL=https://pypi.python.org/packages/source/p/pycrypto/${PYCRYPTO_…
ARGPARSE_URL=https://argparse.googlecode.com/files/${ARGPARSE_PACKAGE}
@@ -124,7 +120,6 @@ TWISTED_URL=https://pypi.python.org/packages/source/T/Twisted/${TWISTED_PAC…
# TWISTED_URL=https://twistedmatrix.com/Releases/Twisted/$(echo ${TWISTED_VER} | awk -F. '{print $1"."$2}')/${TWISTED_PACKAGE}
PY2EXE_URL=http://liquidtelecom.dl.sourceforge.net/project/py2exe/py2exe/${…
SETUPTOOLS_URL=https://pypi.python.org/packages/source/s/setuptools/${SETUP…
-LXML_URL=https://pypi.python.org/packages/source/l/lxml/${LXML_PACKAGE}
PARSLEY_URL=https://pypi.python.org/packages/source/P/Parsley/${PARSLEY_PAC…
GO_URL=https://golang.org/dl/${GO_PACKAGE}
NOTOCJKFONT_URL=https://github.com/googlei18n/noto-cjk/raw/f36eda03dfa5582a…
diff --git a/gitian/versions.beta b/gitian/versions.beta
index 43c5fde..1bde7e5 100755
--- a/gitian/versions.beta
+++ b/gitian/versions.beta
@@ -48,7 +48,6 @@ TWISTED_VER=13.2.0
M2CRYPTO_VER=0.21.1
PY2EXE_VER=0.6.9
SETUPTOOLS_VER=1.4
-LXML_VER=3.3.5
PARSLEY_VER=1.2
GO_VER=1.4.2
NOTOCJKFONT_VER=1.004
@@ -64,7 +63,6 @@ MINGW_PACKAGE=mingw-w64-svn-snapshot.zip
MSVCR100_PACKAGE=msvcr100.dll
BINUTILS_PACKAGE=binutils-${BINUTILS_VER}.tar.bz2
GCC_PACKAGE=gcc-${GCC_VER}.tar.bz2
-PYTHON_PACKAGE=Python-${PYTHON_VER}.tar.bz2
PYTHON_MSI_PACKAGE=python-${PYTHON_VER}.msi
PYCRYPTO_PACKAGE=pycrypto-${PYCRYPTO_VER}.tar.gz
ARGPARSE_PACKAGE=argparse-${ARGPARSE_VER}.tar.gz
@@ -74,7 +72,6 @@ TWISTED_PACKAGE=Twisted-${TWISTED_VER}.tar.bz2
M2CRYPTO_PACKAGE=M2Crypto-${M2CRYPTO_VER}.tar.gz
PY2EXE_PACKAGE=py2exe-${PY2EXE_VER}.win32-py2.7.exe
SETUPTOOLS_PACKAGE=setuptools-${SETUPTOOLS_VER}.tar.gz
-LXML_PACKAGE=lxml-${LXML_VER}.tar.gz
PARSLEY_PACKAGE=Parsley-${PARSLEY_VER}.tar.gz
GO_PACKAGE=go${GO_VER}.src.tar.gz
NOTOCJKFONT_PACKAGE=NotoSansCJKsc-Regular.otf
@@ -111,7 +108,6 @@ OSXSDK_URL=https://launchpad.net/~flosoft/+archive/cross-apple/+files/${OSX…
BINUTILS_URL=https://ftp.gnu.org/gnu/binutils/${BINUTILS_PACKAGE}
GCC_URL=https://ftp.gnu.org/gnu/gcc/gcc-${GCC_VER}/${GCC_PACKAGE}
NOSCRIPT_URL=https://addons.cdn.mozilla.net/storage/public-staging/722/${NO…
-PYTHON_URL=https://www.python.org/ftp/python/${PYTHON_VER}/${PYTHON_PACKAGE}
PYTHON_MSI_URL=https://www.python.org/ftp/python/${PYTHON_VER}/${PYTHON_MSI…
PYCRYPTO_URL=https://pypi.python.org/packages/source/p/pycrypto/${PYCRYPTO_…
ARGPARSE_URL=https://argparse.googlecode.com/files/${ARGPARSE_PACKAGE}
@@ -122,7 +118,6 @@ TWISTED_URL=https://pypi.python.org/packages/source/T/Twisted/${TWISTED_PAC…
M2CRYPTO_URL=https://pypi.python.org/packages/source/M/M2Crypto/${M2CRYPTO_…
PY2EXE_URL=http://softlayer-dal.dl.sourceforge.net/project/py2exe/py2exe/${…
SETUPTOOLS_URL=https://pypi.python.org/packages/source/s/setuptools/${SETUP…
-LXML_URL=https://pypi.python.org/packages/source/l/lxml/${LXML_PACKAGE}
PARSLEY_URL=https://pypi.python.org/packages/source/P/Parsley/${PARSLEY_PAC…
GO_URL=https://golang.org/dl/${GO_PACKAGE}
NOTOCJKFONT_URL=https://github.com/googlei18n/noto-cjk/raw/f36eda03dfa5582a…
diff --git a/gitian/versions.nightly b/gitian/versions.nightly
index b1c7387..c64d4bb 100755
--- a/gitian/versions.nightly
+++ b/gitian/versions.nightly
@@ -59,7 +59,6 @@ ZOPEINTERFACE_VER=4.0.5
TWISTED_VER=13.2.0
PY2EXE_VER=0.6.9
SETUPTOOLS_VER=1.4
-LXML_VER=3.3.5
PARSLEY_VER=1.2
GO_VER=1.4.2
NOTOCJKFONT_VER=1.004
@@ -75,7 +74,6 @@ OSXSDK_OLD_PACKAGE=apple-uni-sdk-10.6_20110407-0.flosoft1_i386.deb
MSVCR100_PACKAGE=msvcr100.dll
BINUTILS_PACKAGE=binutils-${BINUTILS_VER}.tar.bz2
GCC_PACKAGE=gcc-${GCC_VER}.tar.bz2
-PYTHON_PACKAGE=Python-${PYTHON_VER}.tar.bz2
PYTHON_MSI_PACKAGE=python-${PYTHON_VER}.msi
PYCRYPTO_PACKAGE=pycrypto-${PYCRYPTO_VER}.tar.gz
ARGPARSE_PACKAGE=argparse-${ARGPARSE_VER}.tar.gz
@@ -84,7 +82,6 @@ ZOPEINTERFACE_PACKAGE=zope.interface-${ZOPEINTERFACE_VER}.zip
TWISTED_PACKAGE=Twisted-${TWISTED_VER}.tar.bz2
PY2EXE_PACKAGE=py2exe-${PY2EXE_VER}.win32-py2.7.exe
SETUPTOOLS_PACKAGE=setuptools-${SETUPTOOLS_VER}.tar.gz
-LXML_PACKAGE=lxml-${LXML_VER}.tar.gz
PARSLEY_PACKAGE=Parsley-${PARSLEY_VER}.tar.gz
GO_PACKAGE=go${GO_VER}.src.tar.gz
NOTOCJKFONT_PACKAGE=NotoSansCJKsc-Regular.otf
@@ -121,7 +118,6 @@ OSXSDK_URL=https://launchpad.net/~flosoft/+archive/cross-apple/+files/${OSX…
BINUTILS_URL=https://ftp.gnu.org/gnu/binutils/${BINUTILS_PACKAGE}
GCC_URL=https://ftp.gnu.org/gnu/gcc/gcc-${GCC_VER}/${GCC_PACKAGE}
NOSCRIPT_URL=https://addons.cdn.mozilla.net/user-media/addons/722/${NOSCRIP…
-PYTHON_URL=https://www.python.org/ftp/python/${PYTHON_VER}/${PYTHON_PACKAGE}
PYTHON_MSI_URL=https://www.python.org/ftp/python/${PYTHON_VER}/${PYTHON_MSI…
PYCRYPTO_URL=https://pypi.python.org/packages/source/p/pycrypto/${PYCRYPTO_…
ARGPARSE_URL=https://argparse.googlecode.com/files/${ARGPARSE_PACKAGE}
@@ -131,7 +127,6 @@ TWISTED_URL=https://pypi.python.org/packages/source/T/Twisted/${TWISTED_PAC…
# TWISTED_URL=https://twistedmatrix.com/Releases/Twisted/$(echo ${TWISTED_VER} | awk -F. '{print $1"."$2}')/${TWISTED_PACKAGE}
PY2EXE_URL=http://liquidtelecom.dl.sourceforge.net/project/py2exe/py2exe/${…
SETUPTOOLS_URL=https://pypi.python.org/packages/source/s/setuptools/${SETUP…
-LXML_URL=https://pypi.python.org/packages/source/l/lxml/${LXML_PACKAGE}
PARSLEY_URL=https://pypi.python.org/packages/source/P/Parsley/${PARSLEY_PAC…
GO_URL=https://golang.org/dl/${GO_PACKAGE}
NOTOCJKFONT_URL=https://github.com/googlei18n/noto-cjk/raw/f36eda03dfa5582a…
1
0
commit 56c9e21c35d93e29d2750184fa44d23f46aef71c
Author: Georg Koppen <gk(a)torproject.org>
Date: Thu Jan 21 20:22:19 2016 +0000
Release preparations
---
Bundle-Data/Docs/ChangeLog.txt | 49 +++++++++++++++++++++++++++++++++++++
gitian/versions | 32 ++++++++++--------------
tools/update-responses/config.yml | 12 ++++-----
3 files changed, 68 insertions(+), 25 deletions(-)
diff --git a/Bundle-Data/Docs/ChangeLog.txt b/Bundle-Data/Docs/ChangeLog.txt
index dbb01bd..6042c2f 100644
--- a/Bundle-Data/Docs/ChangeLog.txt
+++ b/Bundle-Data/Docs/ChangeLog.txt
@@ -1,3 +1,52 @@
+Tor Browser 5.5 -- January 26 2016
+ * All Platforms
+ * Update Firefox to 38.6.0esr
+ * Update libevent to 2.0.22-stable
+ * Update NoScript to 2.9.0.2
+ * Update Torbutton to 1.9.4.3
+ * Bug 16990: Show circuit display for connections using multi-party channels
+ * Bug 18019: Avoid empty prompt shown after non-en-US update
+ * Bug 18004: Remove Tor fundraising donation banner
+ * Bug 16940: After update, load local change notes
+ * Bug 17108: Polish about:tor appearance
+ * Bug 17568: Clean up tor-control-port.js
+ * Bug 16620: Move window.name handling into a Firefox patch
+ * Bug 17351: Code cleanup
+ * Translation updates
+ * Update Tor Launcher to 0.2.7.8
+ * Bug 18113: Randomly permutate available default bridges of chosen type
+ * Bug 13313: Bundle a fixed set of fonts to defend against fingerprinting
+ * Bug 10140: Add new Tor Browser locale (Japanese)
+ * Bug 17428: Remove Flashproxy
+ * Bug 13512: Load a static tab with change notes after an update
+ * Bug 9659: Avoid loop due to optimistic data SOCKS code (fix of #3875)
+ * Bug 15564: Isolate SharedWorkers by first-party domain
+ * Bug 16940: After update, load local change notes
+ * Bug 17759: Apply whitelist to local fonts in @font-face (fix of #13313)
+ * Bug 17009: Shift and Alt keys leak physical keyboard layout (fix of #15646)
+ * Bug 17369: Disable RC4 fallback
+ * Bug 17442: Remove custom updater certificate pinning
+ * Bug 16620: Move window.name handling into a Firefox patch
+ * Bug 17220: Support math symbols in font whitelist
+ * Bug 10599+17305: Include updater and build patches needed for hardened builds
+ * Bug 18115+18102+18071+18091: Update/add new obfs4 bridge
+ * Bug 18072: Change recommended pluggable transport type to obfs4
+ * Bug 18008: Create a new MAR Signing key and bake it into Tor Browser
+ * Bug 16322: Use onion address for DuckDuckGo search engine
+ * Bug 17917: Changelog after update is empty if JS is disabled
+ * Windows
+ * Bug 17250: Add localized font names to font whitelist
+ * Bug 16707: Allow more system fonts to get used on Windows
+ * Bug 13819: Ship expert bundles with console enabled
+ * Bug 17250: Fix broken Japanese fonts
+ * Bug 17870: Add intermediate certificate for authenticode signing
+ * OS X
+ * Bug 17122: Rename Japanese OS X bundle
+ * Bug 16707: Allow more system fonts to get used on OS X
+ * Bug 17661: Whitelist font .Helvetica Neue DeskInterface
+ * Linux
+ * Bug 16672: Don't use font whitelisting for Linux users
+
Tor Browser 5.5a6-hardened -- January 7 2016
* All Platforms
* Update NoScript to 2.9
diff --git a/gitian/versions b/gitian/versions
index 8e35391..7ff094e 100755
--- a/gitian/versions
+++ b/gitian/versions
@@ -3,27 +3,25 @@ BUNDLE_LOCALES="ar de es-ES fa fr it ko nl pl pt-PT ru tr vi zh-CN"
BUNDLE_LOCALES_LINUX="ja"
BUNDLE_LOCALES_WIN32="ja"
BUNDLE_LOCALES_MAC="ja-JP-mac"
-
BUILD_PT_BUNDLES=1
VERIFY_TAGS=1
-FIREFOX_VERSION=38.2.0esr
+FIREFOX_VERSION=38.6.0esr
TORBROWSER_UPDATE_CHANNEL=release
-TORBROWSER_TAG=tor-browser-${FIREFOX_VERSION}-5.0-1-build2
-TOR_TAG=tor-0.2.6.10
-TORLAUNCHER_TAG=0.2.7.7
-TORBUTTON_TAG=1.9.3.2
-HTTPSE_TAG=5.1.0
+TORBROWSER_TAG=tor-browser-${FIREFOX_VERSION}-5.5-1-build1
+TOR_TAG=tor-0.2.7.6
+TORLAUNCHER_TAG=0.2.7.8
+TORBUTTON_TAG=1.9.4.3
+HTTPSE_TAG=5.1.2
NSIS_TAG=v0.3
ZLIB_TAG=v1.2.8
-LIBEVENT_TAG=release-2.0.21-stable
+LIBEVENT_TAG=release-2.0.22-stable
MINGW_TAG=a883b47a45ff74ced41dfbd9f748d5c2c61f3c01 # due to bug 1156131
PYPTLIB_TAG=pyptlib-0.0.6
OBFSPROXY_TAG=obfsproxy-0.2.12
-FLASHPROXY_TAG=1.6
LIBFTE_TAG=85ef8ae58dbf0d02ea26b627e343784b5574c428 # sketch master with fix
FTEPROXY_TAG=597f8378f6f4f3de570b8e1064c2e4cb8d67fbd0 # tag 0.2.19
LIBDMG_TAG=dfd5e5cc3dc1191e37d3c3a6118975afdd1d7014
@@ -38,12 +36,12 @@ GO_X_NET_TAG=7dbad50ab5b31073856416cdcfeb2796d682f844
OBFS4_TAG=obfs4proxy-0.0.5
NOTOFONTS_TAG=720e34851382ee3c1ef024d8dffb68ffbfb234c2
-GITIAN_TAG=tor-browser-builder-3.x-8
+GITIAN_TAG=tor-browser-builder-3.x-8-gpgsux
-OPENSSL_VER=1.0.1p
+OPENSSL_VER=1.0.1q
GMP_VER=5.1.3
FIREFOX_LANG_VER=$FIREFOX_VERSION
-FIREFOX_LANG_BUILD=build2
+FIREFOX_LANG_BUILD=build1
BINUTILS_VER=2.24
GCC_VER=5.1.0
PYTHON_VER=2.7.5
@@ -52,7 +50,6 @@ ARGPARSE_VER=1.2.1
PYYAML_VER=3.11
ZOPEINTERFACE_VER=4.0.5
TWISTED_VER=13.2.0
-M2CRYPTO_VER=0.21.1
PY2EXE_VER=0.6.9
SETUPTOOLS_VER=1.4
LXML_VER=3.3.5
@@ -63,7 +60,7 @@ NOTOCJKFONT_VER=1.004
## File names for the source packages
OPENSSL_PACKAGE=openssl-${OPENSSL_VER}.tar.gz
GMP_PACKAGE=gmp-${GMP_VER}.tar.bz2
-NOSCRIPT_PACKAGE=noscript_security_suite-2.6.9.34-sm+fn+fx.xpi
+NOSCRIPT_PACKAGE=noscript_security_suite-2.9.0.2-sm+fx+fn.xpi
TOOLCHAIN4_PACKAGE=x86_64-apple-darwin10.tar.xz
TOOLCHAIN4_OLD_PACKAGE=multiarch-darwin11-cctools127.2-gcc42-5666.3-llvmgcc42-2336.1-Linux-120724.tar.xz
OSXSDK_PACKAGE=MacOSX10.7.sdk.tar.gz
@@ -78,7 +75,6 @@ ARGPARSE_PACKAGE=argparse-${ARGPARSE_VER}.tar.gz
PYYAML_PACKAGE=PyYAML-${PYYAML_VER}.tar.gz
ZOPEINTERFACE_PACKAGE=zope.interface-${ZOPEINTERFACE_VER}.zip
TWISTED_PACKAGE=Twisted-${TWISTED_VER}.tar.bz2
-M2CRYPTO_PACKAGE=M2Crypto-${M2CRYPTO_VER}.tar.gz
PY2EXE_PACKAGE=py2exe-${PY2EXE_VER}.win32-py2.7.exe
SETUPTOOLS_PACKAGE=setuptools-${SETUPTOOLS_VER}.tar.gz
LXML_PACKAGE=lxml-${LXML_VER}.tar.gz
@@ -88,20 +84,19 @@ NOTOCJKFONT_PACKAGE=NotoSansCJKsc-Regular.otf
STIXMATHFONT_PACKAGE=STIXv1.1.1-latex.zip
# Hashes for packages with weak sigs or no sigs
-OPENSSL_HASH=bd5ee6803165c0fb60bbecbacacf244f1f90d2aa0d71353af610c29121e9b2f1
+OPENSSL_HASH=b3658b84e9ea606a5ded3c972a5517cd785282e7ea86b20c78aa4b773a047fb7
GMP_HASH=752079520b4690531171d0f4532e40f08600215feefede70b24fabdc6f1ab160
OSXSDK_HASH=da77bb0003fcca5ea8c4e8cb2da8828ded750c54afdcac29ec6f3b46ad5e3adf
OSXSDK_OLD_HASH=6602d8d5ddb371fbc02e2a5967d9bd0cd7358d46f9417753c8234b923f2ea6fc
TOOLCHAIN4_HASH=7b71bfe02820409b994c5c33a7eab81a81c72550f5da85ff7af70da3da244645
TOOLCHAIN4_OLD_HASH=65c1b2d302358a6b95a26c6828a66908a199276193bb0b268f2dcc1a997731e9
-NOSCRIPT_HASH=d17e3eeb8cc6ddc6c6cabd002184eced5c8cf061c9d337bac2085e7d2daceacd
+NOSCRIPT_HASH=f3c9dec710e02d809fa85ac76750e5f074656105c1bde03d400cb597b2eb1fba
MSVCR100_HASH=1221a09484964a6f38af5e34ee292b9afefccb3dc6e55435fd3aaf7c235d9067
PYCRYPTO_HASH=f2ce1e989b272cfcb677616763e0a2e7ec659effa67a88aa92b3a65528f60a3c
ARGPARSE_HASH=ddaf4b0a618335a32b6664d4ae038a1de8fbada3b25033f9021510ed2b3941a4
PYYAML_HASH=c36c938a872e5ff494938b33b14aaa156cb439ec67548fcab3535bb78b0846e8
ZOPEINTERFACE_HASH=1a7c84716bbd9981915b64a81d8a3f076a5934a8c8df4224655469b3564940cc
TWISTED_HASH=095175638c019ac7c0604f4c291724a16ff1acd062e181b01293bf4dcbc62cf3
-M2CRYPTO_HASH=25b94498505c2d800ee465db0cc1aff097b1615adc3ac042a1c85ceca264fc0a
PY2EXE_HASH=610a8800de3d973ed5ed4ac505ab42ad058add18a68609ac09e6cf3598ef056c
SETUPTOOLS_HASH=75d288687066ed124311d6ca5f40ffa92a0e81adcd7fff318c6e84082713cf39
PARSLEY_HASH=50d30cee70770fd44db7cea421cb2fb75af247c3a1cd54885c06b30a7c85dd23
@@ -127,7 +122,6 @@ PYYAML_URL=https://pypi.python.org/packages/source/P/PyYAML/${PYYAML_PACKAG…
ZOPEINTERFACE_URL=https://pypi.python.org/packages/source/z/zope.interface/…
TWISTED_URL=https://pypi.python.org/packages/source/T/Twisted/${TWISTED_PAC…
# TWISTED_URL=https://twistedmatrix.com/Releases/Twisted/$(echo ${TWISTED_VER} | awk -F. '{print $1"."$2}')/${TWISTED_PACKAGE}
-M2CRYPTO_URL=https://pypi.python.org/packages/source/M/M2Crypto/${M2CRYPTO_PACKAGE}
PY2EXE_URL=http://liquidtelecom.dl.sourceforge.net/project/py2exe/py2exe/${…
SETUPTOOLS_URL=https://pypi.python.org/packages/source/s/setuptools/${SETUP…
LXML_URL=https://pypi.python.org/packages/source/l/lxml/${LXML_PACKAGE}
diff --git a/tools/update-responses/config.yml b/tools/update-responses/config.yml
index d61793c..362c146 100644
--- a/tools/update-responses/config.yml
+++ b/tools/update-responses/config.yml
@@ -10,14 +10,14 @@ build_targets:
osx64: Darwin_x86_64-gcc3
channels:
alpha: 5.5a6
- release: 5.0
+ release: 5.5
versions:
- 5.0:
- platformVersion: 38.2.0
- detailsURL: https://www.torproject.org/projects/torbrowser.html.en
- download_url: https://www.torproject.org/dist/torbrowser/5.0
+ 5.5:
+ platformVersion: 38.6.0
+ detailsURL: https://blog.torproject.org/blog/tor-browser-55-released
+ download_url: https://www.torproject.org/dist/torbrowser/5.5
incremental_from:
- - 4.5.3
+ - 5.0.7
migrate_archs:
osx32: osx64
osx32:
1
0
commit 5cf4922eedbca64f956f0cc589701757f0b88680
Author: Georg Koppen <gk(a)torproject.org>
Date: Thu Jan 21 14:41:57 2016 +0000
Version bump
---
src/install.rdf | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/install.rdf b/src/install.rdf
index a7524b7..06ebe1a 100644
--- a/src/install.rdf
+++ b/src/install.rdf
@@ -7,7 +7,7 @@
<em:creator>The Tor Project, Inc.</em:creator>
<em:contributor>Pearl Crescent, LLC</em:contributor>
<em:id>tor-launcher(a)torproject.org</em:id>
- <em:version>0.2.7.7</em:version>
+ <em:version>0.2.7.8</em:version>
<em:homepageURL>https://www.torproject.org/projects/torbrowser.html</em:homepageURL>
<em:updateURL>data:text/plain,</em:updateURL>
<em:updateKey>-</em:updateKey>
1
0
[tor-launcher/maint-0.2.7] Bug 18113: Randomly permutate available default bridges of chosen type.
by gk@torproject.org 21 Jan '16
by gk@torproject.org 21 Jan '16
21 Jan '16
commit 99ea6908eace93472b72670abc1f0bc6c4f86dfa
Author: Isis Lovecruft <isis(a)torproject.org>
Date: Thu Jan 21 03:37:43 2016 +0000
Bug 18113: Randomly permutate available default bridges of chosen type.
* ADDS a new function to TorLauncherUtil, rearrangeBridges() which
takes an array of items and returns a random permutation of that
array.
* CHANGE defaultBridges() getter to call this.rearrangeBridges()
before returning the default bridges. This causing the ordering of
the default bridges in the torrc to vary among clients, resulting
in a more even distribution of clients to default bridges.
---
src/modules/tl-util.jsm | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/src/modules/tl-util.jsm b/src/modules/tl-util.jsm
index ac680a8..2ef4b15 100644
--- a/src/modules/tl-util.jsm
+++ b/src/modules/tl-util.jsm
@@ -242,6 +242,19 @@ let TorLauncherUtil = // Public
} catch (e) {}
},
+ // Currently, this returns a random permutation of an array, bridgeArray.
+ // Later, we might want to change this function to weight based on the
+ // bridges' bandwidths.
+ rearrangeBridges: function(bridgeArray)
+ {
+ for (var j, x, i = bridgeArray.length; i;
+ j = parseInt(Math.random() * i),
+ x = bridgeArray[--i],
+ bridgeArray[i] = bridgeArray[j],
+ bridgeArray[j] = x);
+ return bridgeArray;
+ },
+
get shouldStartAndOwnTor()
{
const kPrefStartTor = "extensions.torlauncher.start_tor";
@@ -341,6 +354,7 @@ let TorLauncherUtil = // Public
bridgeArray.push(s);
}
}
+ this.rearrangeBridges(bridgeArray);
return bridgeArray;
} catch(e) {};
1
0
commit 92db556549b0ec74772a5e3d3ea169edd2463b59
Author: Georg Koppen <gk(a)torproject.org>
Date: Thu Jan 21 11:58:41 2016 +0000
Changelog fix
---
src/CHANGELOG | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/CHANGELOG b/src/CHANGELOG
index b8b1853..baf3fd0 100644
--- a/src/CHANGELOG
+++ b/src/CHANGELOG
@@ -1,6 +1,6 @@
1.9.4.3
* Bug 16990: Show circuit display for connections using multi-party channels
- * Bug 18019: Empty prompt shown after non-en-US update
+ * Bug 18019: Avoid empty prompt shown after non-en-US update
* Bug 18004: Remove Tor fundraising donation banner
* Code cleanup
* Translation updates
1
0
commit 0cd72154dd04a4d15567f4585a6607cfb2d4ece6
Author: Georg Koppen <gk(a)torproject.org>
Date: Thu Jan 21 11:05:24 2016 +0000
Include changelogs from maint-1.9.3
---
src/CHANGELOG | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/src/CHANGELOG b/src/CHANGELOG
index 2d8647f..c56939d 100644
--- a/src/CHANGELOG
+++ b/src/CHANGELOG
@@ -23,6 +23,21 @@
* Bug 16797: brandShorterName is missing from brand.properties
* Translation updates
+1.9.3.7
+ * Bug 16990: Avoid matching '250 ' to the end of node name
+ * Bug 17565: Tor fundraising campaign donation banner
+ * Bug 17770: Fix alignments on donation banner
+ * Bug 17792: Include donation banner in some non en-US Tor Browsers
+ * Translation updates
+
+1.9.3.5
+ * Bug 9623: Spoof Referer when leaving a .onion domain
+ * Bug 16735: about:tor should accommodate different fonts/font sizes
+ * Bug 16937: Don't translate the hompepage/spellchecker dictionary string
+ * Bug 17164: Don't show text-select cursor on circuit display
+ * Bug 17351: Remove unused code
+ * Translation updates
+
1.9.3.4
* Bug 16887: Update intl.accept_languages value
* Bug 15493: Update circuit display on new circuit info
1
0
[tor-browser/tor-browser-38.5.0esr-5.5-2] fixup! Bug 15646: Prevent keyboard layout fingerprinting in KeyboardEvent
by gk@torproject.org 21 Jan '16
by gk@torproject.org 21 Jan '16
21 Jan '16
commit 1ad4ed85948e5814e46744cedd0b5a9b1707cac4
Author: Arthur Edelstein <arthuredelstein(a)gmail.com>
Date: Wed Jan 20 17:51:46 2016 -0800
fixup! Bug 15646: Prevent keyboard layout fingerprinting in KeyboardEvent
---
dom/events/KeyCodeConsensus.h | 21 ++++++++++-----------
1 file changed, 10 insertions(+), 11 deletions(-)
diff --git a/dom/events/KeyCodeConsensus.h b/dom/events/KeyCodeConsensus.h
index 47d8341..e789326 100644
--- a/dom/events/KeyCodeConsensus.h
+++ b/dom/events/KeyCodeConsensus.h
@@ -181,15 +181,14 @@ static void createKeyCodes()
KEY("8", Digit8, 56)
KEY("9", Digit9, 57)
- SHIFT("!", Digit0, 48)
- SHIFT("@", Digit1, 49)
- SHIFT("#", Digit2, 50)
- SHIFT("$", Digit3, 51)
- SHIFT("%", Digit4, 52)
- SHIFT("^", Digit5, 53)
- SHIFT("&", Digit6, 54)
- SHIFT("*", Digit7, 55)
- SHIFT("(", Digit8, 56)
- SHIFT(")", Digit9, 57)
-
+ SHIFT(")", Digit0, 48)
+ SHIFT("!", Digit1, 49)
+ SHIFT("@", Digit2, 50)
+ SHIFT("#", Digit3, 51)
+ SHIFT("$", Digit4, 52)
+ SHIFT("%", Digit5, 53)
+ SHIFT("^", Digit6, 54)
+ SHIFT("&", Digit7, 55)
+ SHIFT("*", Digit8, 56)
+ SHIFT("(", Digit9, 57)
}
1
0
[tor-browser-bundle/hardened-builds] Bug 17917: Changelog after update is empty if JS is disabled
by gk@torproject.org 21 Jan '16
by gk@torproject.org 21 Jan '16
21 Jan '16
commit 69c12f1a8817c35d2e815d3bd3ab090c2434f067
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Fri Jan 15 11:30:13 2016 -0500
Bug 17917: Changelog after update is empty if JS is disabled
Add about:tbupdate to NoScript's whitelist.
---
.../Browser/profile.default/preferences/extension-overrides.js | 6 +++---
.../Browser/profile.default/preferences/extension-overrides.js | 6 +++---
.../Browser/profile.default/preferences/extension-overrides.js | 6 +++---
3 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/Bundle-Data/linux/Data/Browser/profile.default/preferences/extension-overrides.js b/Bundle-Data/linux/Data/Browser/profile.default/preferences/extension-overrides.js
index 83d4bbf..865398e 100644
--- a/Bundle-Data/linux/Data/Browser/profile.default/preferences/extension-overrides.js
+++ b/Bundle-Data/linux/Data/Browser/profile.default/preferences/extension-overrides.js
@@ -17,9 +17,9 @@ pref("extensions.https_everywhere.toolbar_hint_shown", true);
# NoScript Preferences:
pref("capability.policy.maonoscript.javascript.enabled", "allAccess");
-pref("capability.policy.maonoscript.sites", "about: chrome: resource: blob: mediasource: moz-safe-about:");
-pref("noscript.default", "about: chrome: resource: blob: mediasource: moz-safe-about:");
-pref("noscript.mandatory", "about: chrome: resource: blob: mediasource: moz-safe-about:");
+pref("capability.policy.maonoscript.sites", "about: about:tbupdate chrome: resource: blob: mediasource: moz-safe-about:");
+pref("noscript.default", "about: about:tbupdate chrome: resource: blob: mediasource: moz-safe-about:");
+pref("noscript.mandatory", "about: about:tbupdate chrome: resource: blob: mediasource: moz-safe-about:");
pref("noscript.ABE.enabled", false);
pref("noscript.ABE.notify", false);
pref("noscript.ABE.wanIpAsLocal", false);
diff --git a/Bundle-Data/mac/TorBrowser/Data/Browser/profile.default/preferences/extension-overrides.js b/Bundle-Data/mac/TorBrowser/Data/Browser/profile.default/preferences/extension-overrides.js
index 83d4bbf..865398e 100644
--- a/Bundle-Data/mac/TorBrowser/Data/Browser/profile.default/preferences/extension-overrides.js
+++ b/Bundle-Data/mac/TorBrowser/Data/Browser/profile.default/preferences/extension-overrides.js
@@ -17,9 +17,9 @@ pref("extensions.https_everywhere.toolbar_hint_shown", true);
# NoScript Preferences:
pref("capability.policy.maonoscript.javascript.enabled", "allAccess");
-pref("capability.policy.maonoscript.sites", "about: chrome: resource: blob: mediasource: moz-safe-about:");
-pref("noscript.default", "about: chrome: resource: blob: mediasource: moz-safe-about:");
-pref("noscript.mandatory", "about: chrome: resource: blob: mediasource: moz-safe-about:");
+pref("capability.policy.maonoscript.sites", "about: about:tbupdate chrome: resource: blob: mediasource: moz-safe-about:");
+pref("noscript.default", "about: about:tbupdate chrome: resource: blob: mediasource: moz-safe-about:");
+pref("noscript.mandatory", "about: about:tbupdate chrome: resource: blob: mediasource: moz-safe-about:");
pref("noscript.ABE.enabled", false);
pref("noscript.ABE.notify", false);
pref("noscript.ABE.wanIpAsLocal", false);
diff --git a/Bundle-Data/windows/Data/Browser/profile.default/preferences/extension-overrides.js b/Bundle-Data/windows/Data/Browser/profile.default/preferences/extension-overrides.js
index 83d4bbf..865398e 100644
--- a/Bundle-Data/windows/Data/Browser/profile.default/preferences/extension-overrides.js
+++ b/Bundle-Data/windows/Data/Browser/profile.default/preferences/extension-overrides.js
@@ -17,9 +17,9 @@ pref("extensions.https_everywhere.toolbar_hint_shown", true);
# NoScript Preferences:
pref("capability.policy.maonoscript.javascript.enabled", "allAccess");
-pref("capability.policy.maonoscript.sites", "about: chrome: resource: blob: mediasource: moz-safe-about:");
-pref("noscript.default", "about: chrome: resource: blob: mediasource: moz-safe-about:");
-pref("noscript.mandatory", "about: chrome: resource: blob: mediasource: moz-safe-about:");
+pref("capability.policy.maonoscript.sites", "about: about:tbupdate chrome: resource: blob: mediasource: moz-safe-about:");
+pref("noscript.default", "about: about:tbupdate chrome: resource: blob: mediasource: moz-safe-about:");
+pref("noscript.mandatory", "about: about:tbupdate chrome: resource: blob: mediasource: moz-safe-about:");
pref("noscript.ABE.enabled", false);
pref("noscript.ABE.notify", false);
pref("noscript.ABE.wanIpAsLocal", false);
1
0
[tor-browser-bundle/master] Bug 17917: Changelog after update is empty if JS is disabled
by gk@torproject.org 21 Jan '16
by gk@torproject.org 21 Jan '16
21 Jan '16
commit 16b935d869a8673ceac199e3617873db34ae8f0b
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Fri Jan 15 11:30:13 2016 -0500
Bug 17917: Changelog after update is empty if JS is disabled
Add about:tbupdate to NoScript's whitelist.
---
.../Browser/profile.default/preferences/extension-overrides.js | 6 +++---
.../Browser/profile.default/preferences/extension-overrides.js | 6 +++---
.../Browser/profile.default/preferences/extension-overrides.js | 6 +++---
3 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/Bundle-Data/linux/Data/Browser/profile.default/preferences/extension-overrides.js b/Bundle-Data/linux/Data/Browser/profile.default/preferences/extension-overrides.js
index 83d4bbf..865398e 100644
--- a/Bundle-Data/linux/Data/Browser/profile.default/preferences/extension-overrides.js
+++ b/Bundle-Data/linux/Data/Browser/profile.default/preferences/extension-overrides.js
@@ -17,9 +17,9 @@ pref("extensions.https_everywhere.toolbar_hint_shown", true);
# NoScript Preferences:
pref("capability.policy.maonoscript.javascript.enabled", "allAccess");
-pref("capability.policy.maonoscript.sites", "about: chrome: resource: blob: mediasource: moz-safe-about:");
-pref("noscript.default", "about: chrome: resource: blob: mediasource: moz-safe-about:");
-pref("noscript.mandatory", "about: chrome: resource: blob: mediasource: moz-safe-about:");
+pref("capability.policy.maonoscript.sites", "about: about:tbupdate chrome: resource: blob: mediasource: moz-safe-about:");
+pref("noscript.default", "about: about:tbupdate chrome: resource: blob: mediasource: moz-safe-about:");
+pref("noscript.mandatory", "about: about:tbupdate chrome: resource: blob: mediasource: moz-safe-about:");
pref("noscript.ABE.enabled", false);
pref("noscript.ABE.notify", false);
pref("noscript.ABE.wanIpAsLocal", false);
diff --git a/Bundle-Data/mac/TorBrowser/Data/Browser/profile.default/preferences/extension-overrides.js b/Bundle-Data/mac/TorBrowser/Data/Browser/profile.default/preferences/extension-overrides.js
index 83d4bbf..865398e 100644
--- a/Bundle-Data/mac/TorBrowser/Data/Browser/profile.default/preferences/extension-overrides.js
+++ b/Bundle-Data/mac/TorBrowser/Data/Browser/profile.default/preferences/extension-overrides.js
@@ -17,9 +17,9 @@ pref("extensions.https_everywhere.toolbar_hint_shown", true);
# NoScript Preferences:
pref("capability.policy.maonoscript.javascript.enabled", "allAccess");
-pref("capability.policy.maonoscript.sites", "about: chrome: resource: blob: mediasource: moz-safe-about:");
-pref("noscript.default", "about: chrome: resource: blob: mediasource: moz-safe-about:");
-pref("noscript.mandatory", "about: chrome: resource: blob: mediasource: moz-safe-about:");
+pref("capability.policy.maonoscript.sites", "about: about:tbupdate chrome: resource: blob: mediasource: moz-safe-about:");
+pref("noscript.default", "about: about:tbupdate chrome: resource: blob: mediasource: moz-safe-about:");
+pref("noscript.mandatory", "about: about:tbupdate chrome: resource: blob: mediasource: moz-safe-about:");
pref("noscript.ABE.enabled", false);
pref("noscript.ABE.notify", false);
pref("noscript.ABE.wanIpAsLocal", false);
diff --git a/Bundle-Data/windows/Data/Browser/profile.default/preferences/extension-overrides.js b/Bundle-Data/windows/Data/Browser/profile.default/preferences/extension-overrides.js
index 83d4bbf..865398e 100644
--- a/Bundle-Data/windows/Data/Browser/profile.default/preferences/extension-overrides.js
+++ b/Bundle-Data/windows/Data/Browser/profile.default/preferences/extension-overrides.js
@@ -17,9 +17,9 @@ pref("extensions.https_everywhere.toolbar_hint_shown", true);
# NoScript Preferences:
pref("capability.policy.maonoscript.javascript.enabled", "allAccess");
-pref("capability.policy.maonoscript.sites", "about: chrome: resource: blob: mediasource: moz-safe-about:");
-pref("noscript.default", "about: chrome: resource: blob: mediasource: moz-safe-about:");
-pref("noscript.mandatory", "about: chrome: resource: blob: mediasource: moz-safe-about:");
+pref("capability.policy.maonoscript.sites", "about: about:tbupdate chrome: resource: blob: mediasource: moz-safe-about:");
+pref("noscript.default", "about: about:tbupdate chrome: resource: blob: mediasource: moz-safe-about:");
+pref("noscript.mandatory", "about: about:tbupdate chrome: resource: blob: mediasource: moz-safe-about:");
pref("noscript.ABE.enabled", false);
pref("noscript.ABE.notify", false);
pref("noscript.ABE.wanIpAsLocal", false);
1
0
commit 53299a96c848d806d490e3b7068d81be352d7620
Author: Arthur Edelstein <arthuredelstein(a)gmail.com>
Date: Wed Jan 6 13:48:27 2016 -0800
Bug 16990: Code cleanup
---
src/chrome/content/tor-circuit-display.js | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/src/chrome/content/tor-circuit-display.js b/src/chrome/content/tor-circuit-display.js
index d5ef3d3..c99d25d 100644
--- a/src/chrome/content/tor-circuit-display.js
+++ b/src/chrome/content/tor-circuit-display.js
@@ -141,7 +141,7 @@ let collectIsolationData = function (aController, updateUI) {
knownCircuitIDs[streamEvent.CircuitID] = true;
let circuitStatus = yield getCircuitStatusByID(aController, streamEvent.CircuitID),
credentials = circuitStatus ?
- (trimQuotes(circuitStatus.SOCKS_USERNAME) + ":" +
+ (trimQuotes(circuitStatus.SOCKS_USERNAME) + "|" +
trimQuotes(circuitStatus.SOCKS_PASSWORD)) :
null;
if (credentials) {
@@ -235,7 +235,7 @@ let getSOCKSCredentialsForBrowser = function (browser) {
if (!(channel instanceof Ci.nsIProxiedChannel)) return null;
let proxyInfo = channel.proxyInfo;
if (proxyInfo === null) return null;
- return proxyInfo.username + ":" + proxyInfo.password;
+ return [proxyInfo.username, proxyInfo.password];
};
// __onionSiteRelayLine__.
@@ -251,11 +251,12 @@ let updateCircuitDisplay = function () {
let credentials = getSOCKSCredentialsForBrowser(selectedBrowser),
nodeData = null;
if (credentials) {
- // Check if we have anything to show for these credentials.
- nodeData = credentialsToNodeDataMap[credentials];
+ let [SOCKS_username, SOCKS_password] = credentials;
+ // Check if we have anything to show for these credentials.
+ nodeData = credentialsToNodeDataMap[SOCKS_username + "|" + SOCKS_password];
if (nodeData) {
// Update the displayed domain.
- let domain = credentials.split(":")[0];
+ let domain = SOCKS_username;
document.getElementById("domain").innerHTML = "(" + domain + "):";
// Update the displayed information for the relay nodes.
let lines = nodeLines(nodeData),
@@ -310,8 +311,9 @@ let syncDisplayWithSelectedTab = (function() {
// ## Main function
-// setupDisplay(host, port, password, enablePrefName)__.
-// Returns a function that lets you start/stop automatic display of the Tor circuit.
+// __setupDisplay(host, port, password, enablePrefName)__.
+// Once called, the Tor circuit display will be started whenever
+// the "enablePref" is set to true, and stopped when it is set to false.
// A reference to this function (called createTorCircuitDisplay) is exported as a global.
let setupDisplay = function (host, port, password, enablePrefName) {
let myController = null,
1
0
[tor-browser-bundle/hardened-builds] Bug 18115: Adding new default obfs4 bridge "MaBishomarim" to the bottom.
by gk@torproject.org 21 Jan '16
by gk@torproject.org 21 Jan '16
21 Jan '16
commit 8f65825303389fbb253a0fa263c7b977380e195b
Author: Nima Fatemi <nima(a)torproject.org>
Date: Thu Jan 21 06:28:18 2016 +0000
Bug 18115: Adding new default obfs4 bridge "MaBishomarim" to the bottom.
---
Bundle-Data/PTConfigs/bridge_prefs.js | 1 +
1 file changed, 1 insertion(+)
diff --git a/Bundle-Data/PTConfigs/bridge_prefs.js b/Bundle-Data/PTConfigs/bridge_prefs.js
index 0121f6b..421e1aa 100644
--- a/Bundle-Data/PTConfigs/bridge_prefs.js
+++ b/Bundle-Data/PTConfigs/bridge_prefs.js
@@ -27,6 +27,7 @@ pref("extensions.torlauncher.default_bridge.obfs4.4", "obfs4 109.105.109.165:105
pref("extensions.torlauncher.default_bridge.obfs4.5", "obfs4 83.212.101.3:41213 A09D536DD1752D542E1FBB3C9CE4449D51298239 cert=lPRQ/MXdD1t5SRZ9MquYQNT9m5DV757jtdXdlePmRCudUU9CFUOX1Tm7/meFSyPOsud7Cw iat-mode=0");
pref("extensions.torlauncher.default_bridge.obfs4.6", "obfs4 104.131.108.182:56880 EF577C30B9F788B0E1801CF7E433B3B77792B77A cert=0SFhfDQrKjUJP8Qq6wrwSICEPf3Vl/nJRsYxWbg3QRoSqhl2EB78MPS2lQxbXY4EW1wwXA iat-mode=0");
pref("extensions.torlauncher.default_bridge.obfs4.7", "obfs4 109.105.109.147:13764 BBB28DF0F201E706BE564EFE690FE9577DD8386D cert=KfMQN/tNMFdda61hMgpiMI7pbwU1T+wxjTulYnfw+4sgvG0zSH7N7fwT10BI8MUdAD7iJA iat-mode=0");
+pref("extensions.torlauncher.default_bridge.obfs4.8", "obfs4 154.35.22.11:49868 A832D176ECD5C7C6B58825AE22FC4C90FA249637 cert=YPbQqXPiqTUBfjGFLpm9JYEFTBvnzEJDKJxXG5Sxzrr/v2qrhGU4Jls9lHjLAhqpXaEfZw iat-mode=0");
pref("extensions.torlauncher.default_bridge.meek-google.1", "meek 0.0.2.0:1 46D4A71197B8FA515A826C6B017C522FE264655B url=https://meek-reflect.appspot.com/ front=www.google.com");
pref("extensions.torlauncher.default_bridge.meek-amazon.1", "meek 0.0.2.0:2 B9E7141C594AF25699E0079C1F0146F409495296 url=https://d2zfqthxsdq309.cloudfront.net/ front=a0.awsstatic.com");
1
0
[tor-browser-bundle/hardened-builds] Bug 18115: Adding new default obfs4 bridge "Mosaddegh"
by gk@torproject.org 21 Jan '16
by gk@torproject.org 21 Jan '16
21 Jan '16
commit ae110f6f69659ea7aa830dcc8b1c8f3df815d0ec
Author: Nima Fatemi <nima(a)torproject.org>
Date: Thu Jan 21 06:17:45 2016 +0000
Bug 18115: Adding new default obfs4 bridge "Mosaddegh"
---
Bundle-Data/PTConfigs/bridge_prefs.js | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/Bundle-Data/PTConfigs/bridge_prefs.js b/Bundle-Data/PTConfigs/bridge_prefs.js
index f79a7fc..0121f6b 100644
--- a/Bundle-Data/PTConfigs/bridge_prefs.js
+++ b/Bundle-Data/PTConfigs/bridge_prefs.js
@@ -20,12 +20,13 @@ pref("extensions.torlauncher.default_bridge.fte-ipv6.2", "fte [2001:49f0:d00a:1:
pref("extensions.torlauncher.default_bridge.scramblesuit.1", "scramblesuit 83.212.101.3:443 A09D536DD1752D542E1FBB3C9CE4449D51298239 password=XTCXLG2JAMJKZW2POLBAOWOQETQSMASH");
-pref("extensions.torlauncher.default_bridge.obfs4.1", "obfs4 198.245.60.50:443 752CF7825B3B9EA6A98C83AC41F7099D67007EA5 cert=xpmQtKUqQ/6v5X7ijgYE/f03+l2/EuQ1dexjyUhh16wQlu/cpXUGalmhDIlhuiQPNEKmKw iat-mode=0");
-pref("extensions.torlauncher.default_bridge.obfs4.2", "obfs4 192.99.11.54:443 7B126FAB960E5AC6A629C729434FF84FB5074EC2 cert=VW5f8+IBUWpPFxF+rsiVy2wXkyTQG7vEd+rHeN2jV5LIDNu8wMNEOqZXPwHdwMVEBdqXEw iat-mode=0");
-pref("extensions.torlauncher.default_bridge.obfs4.3", "obfs4 109.105.109.165:10527 8DFCD8FB3285E855F5A55EDDA35696C743ABFC4E cert=Bvg/itxeL4TWKLP6N1MaQzSOC6tcRIBv6q57DYAZc3b2AzuM+/TfB7mqTFEfXILCjEwzVA iat-mode=0");
-pref("extensions.torlauncher.default_bridge.obfs4.4", "obfs4 83.212.101.3:41213 A09D536DD1752D542E1FBB3C9CE4449D51298239 cert=lPRQ/MXdD1t5SRZ9MquYQNT9m5DV757jtdXdlePmRCudUU9CFUOX1Tm7/meFSyPOsud7Cw iat-mode=0");
-pref("extensions.torlauncher.default_bridge.obfs4.5", "obfs4 104.131.108.182:56880 EF577C30B9F788B0E1801CF7E433B3B77792B77A cert=0SFhfDQrKjUJP8Qq6wrwSICEPf3Vl/nJRsYxWbg3QRoSqhl2EB78MPS2lQxbXY4EW1wwXA iat-mode=0");
-pref("extensions.torlauncher.default_bridge.obfs4.6", "obfs4 109.105.109.147:13764 BBB28DF0F201E706BE564EFE690FE9577DD8386D cert=KfMQN/tNMFdda61hMgpiMI7pbwU1T+wxjTulYnfw+4sgvG0zSH7N7fwT10BI8MUdAD7iJA iat-mode=0");
+pref("extensions.torlauncher.default_bridge.obfs4.1", "obfs4 154.35.22.10:41835 8FB9F4319E89E5C6223052AA525A192AFBC85D55 cert=GGGS1TX4R81m3r0HBl79wKy1OtPPNR2CZUIrHjkRg65Vc2VR8fOyo64f9kmT1UAFG7j0HQ iat-mode=0");
+pref("extensions.torlauncher.default_bridge.obfs4.2", "obfs4 198.245.60.50:443 752CF7825B3B9EA6A98C83AC41F7099D67007EA5 cert=xpmQtKUqQ/6v5X7ijgYE/f03+l2/EuQ1dexjyUhh16wQlu/cpXUGalmhDIlhuiQPNEKmKw iat-mode=0");
+pref("extensions.torlauncher.default_bridge.obfs4.3", "obfs4 192.99.11.54:443 7B126FAB960E5AC6A629C729434FF84FB5074EC2 cert=VW5f8+IBUWpPFxF+rsiVy2wXkyTQG7vEd+rHeN2jV5LIDNu8wMNEOqZXPwHdwMVEBdqXEw iat-mode=0");
+pref("extensions.torlauncher.default_bridge.obfs4.4", "obfs4 109.105.109.165:10527 8DFCD8FB3285E855F5A55EDDA35696C743ABFC4E cert=Bvg/itxeL4TWKLP6N1MaQzSOC6tcRIBv6q57DYAZc3b2AzuM+/TfB7mqTFEfXILCjEwzVA iat-mode=0");
+pref("extensions.torlauncher.default_bridge.obfs4.5", "obfs4 83.212.101.3:41213 A09D536DD1752D542E1FBB3C9CE4449D51298239 cert=lPRQ/MXdD1t5SRZ9MquYQNT9m5DV757jtdXdlePmRCudUU9CFUOX1Tm7/meFSyPOsud7Cw iat-mode=0");
+pref("extensions.torlauncher.default_bridge.obfs4.6", "obfs4 104.131.108.182:56880 EF577C30B9F788B0E1801CF7E433B3B77792B77A cert=0SFhfDQrKjUJP8Qq6wrwSICEPf3Vl/nJRsYxWbg3QRoSqhl2EB78MPS2lQxbXY4EW1wwXA iat-mode=0");
+pref("extensions.torlauncher.default_bridge.obfs4.7", "obfs4 109.105.109.147:13764 BBB28DF0F201E706BE564EFE690FE9577DD8386D cert=KfMQN/tNMFdda61hMgpiMI7pbwU1T+wxjTulYnfw+4sgvG0zSH7N7fwT10BI8MUdAD7iJA iat-mode=0");
pref("extensions.torlauncher.default_bridge.meek-google.1", "meek 0.0.2.0:1 46D4A71197B8FA515A826C6B017C522FE264655B url=https://meek-reflect.appspot.com/ front=www.google.com");
pref("extensions.torlauncher.default_bridge.meek-amazon.1", "meek 0.0.2.0:2 B9E7141C594AF25699E0079C1F0146F409495296 url=https://d2zfqthxsdq309.cloudfront.net/ front=a0.awsstatic.com");
1
0
[tor-browser-bundle/master] Bug 18115: Adding new default obfs4 bridge "MaBishomarim" to the bottom.
by gk@torproject.org 21 Jan '16
by gk@torproject.org 21 Jan '16
21 Jan '16
commit eb0ea02833c240188d815820c1de72a97776d712
Author: Nima Fatemi <nima(a)torproject.org>
Date: Thu Jan 21 06:28:18 2016 +0000
Bug 18115: Adding new default obfs4 bridge "MaBishomarim" to the bottom.
---
Bundle-Data/PTConfigs/bridge_prefs.js | 1 +
1 file changed, 1 insertion(+)
diff --git a/Bundle-Data/PTConfigs/bridge_prefs.js b/Bundle-Data/PTConfigs/bridge_prefs.js
index 0121f6b..421e1aa 100644
--- a/Bundle-Data/PTConfigs/bridge_prefs.js
+++ b/Bundle-Data/PTConfigs/bridge_prefs.js
@@ -27,6 +27,7 @@ pref("extensions.torlauncher.default_bridge.obfs4.4", "obfs4 109.105.109.165:105
pref("extensions.torlauncher.default_bridge.obfs4.5", "obfs4 83.212.101.3:41213 A09D536DD1752D542E1FBB3C9CE4449D51298239 cert=lPRQ/MXdD1t5SRZ9MquYQNT9m5DV757jtdXdlePmRCudUU9CFUOX1Tm7/meFSyPOsud7Cw iat-mode=0");
pref("extensions.torlauncher.default_bridge.obfs4.6", "obfs4 104.131.108.182:56880 EF577C30B9F788B0E1801CF7E433B3B77792B77A cert=0SFhfDQrKjUJP8Qq6wrwSICEPf3Vl/nJRsYxWbg3QRoSqhl2EB78MPS2lQxbXY4EW1wwXA iat-mode=0");
pref("extensions.torlauncher.default_bridge.obfs4.7", "obfs4 109.105.109.147:13764 BBB28DF0F201E706BE564EFE690FE9577DD8386D cert=KfMQN/tNMFdda61hMgpiMI7pbwU1T+wxjTulYnfw+4sgvG0zSH7N7fwT10BI8MUdAD7iJA iat-mode=0");
+pref("extensions.torlauncher.default_bridge.obfs4.8", "obfs4 154.35.22.11:49868 A832D176ECD5C7C6B58825AE22FC4C90FA249637 cert=YPbQqXPiqTUBfjGFLpm9JYEFTBvnzEJDKJxXG5Sxzrr/v2qrhGU4Jls9lHjLAhqpXaEfZw iat-mode=0");
pref("extensions.torlauncher.default_bridge.meek-google.1", "meek 0.0.2.0:1 46D4A71197B8FA515A826C6B017C522FE264655B url=https://meek-reflect.appspot.com/ front=www.google.com");
pref("extensions.torlauncher.default_bridge.meek-amazon.1", "meek 0.0.2.0:2 B9E7141C594AF25699E0079C1F0146F409495296 url=https://d2zfqthxsdq309.cloudfront.net/ front=a0.awsstatic.com");
1
0
[tor-browser-bundle/master] Bug 18115: Adding new default obfs4 bridge "Mosaddegh"
by gk@torproject.org 21 Jan '16
by gk@torproject.org 21 Jan '16
21 Jan '16
commit bf09e53ce3752e086b5d6fde1a09f480f020e115
Author: Nima Fatemi <nima(a)torproject.org>
Date: Thu Jan 21 06:17:45 2016 +0000
Bug 18115: Adding new default obfs4 bridge "Mosaddegh"
---
Bundle-Data/PTConfigs/bridge_prefs.js | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/Bundle-Data/PTConfigs/bridge_prefs.js b/Bundle-Data/PTConfigs/bridge_prefs.js
index f79a7fc..0121f6b 100644
--- a/Bundle-Data/PTConfigs/bridge_prefs.js
+++ b/Bundle-Data/PTConfigs/bridge_prefs.js
@@ -20,12 +20,13 @@ pref("extensions.torlauncher.default_bridge.fte-ipv6.2", "fte [2001:49f0:d00a:1:
pref("extensions.torlauncher.default_bridge.scramblesuit.1", "scramblesuit 83.212.101.3:443 A09D536DD1752D542E1FBB3C9CE4449D51298239 password=XTCXLG2JAMJKZW2POLBAOWOQETQSMASH");
-pref("extensions.torlauncher.default_bridge.obfs4.1", "obfs4 198.245.60.50:443 752CF7825B3B9EA6A98C83AC41F7099D67007EA5 cert=xpmQtKUqQ/6v5X7ijgYE/f03+l2/EuQ1dexjyUhh16wQlu/cpXUGalmhDIlhuiQPNEKmKw iat-mode=0");
-pref("extensions.torlauncher.default_bridge.obfs4.2", "obfs4 192.99.11.54:443 7B126FAB960E5AC6A629C729434FF84FB5074EC2 cert=VW5f8+IBUWpPFxF+rsiVy2wXkyTQG7vEd+rHeN2jV5LIDNu8wMNEOqZXPwHdwMVEBdqXEw iat-mode=0");
-pref("extensions.torlauncher.default_bridge.obfs4.3", "obfs4 109.105.109.165:10527 8DFCD8FB3285E855F5A55EDDA35696C743ABFC4E cert=Bvg/itxeL4TWKLP6N1MaQzSOC6tcRIBv6q57DYAZc3b2AzuM+/TfB7mqTFEfXILCjEwzVA iat-mode=0");
-pref("extensions.torlauncher.default_bridge.obfs4.4", "obfs4 83.212.101.3:41213 A09D536DD1752D542E1FBB3C9CE4449D51298239 cert=lPRQ/MXdD1t5SRZ9MquYQNT9m5DV757jtdXdlePmRCudUU9CFUOX1Tm7/meFSyPOsud7Cw iat-mode=0");
-pref("extensions.torlauncher.default_bridge.obfs4.5", "obfs4 104.131.108.182:56880 EF577C30B9F788B0E1801CF7E433B3B77792B77A cert=0SFhfDQrKjUJP8Qq6wrwSICEPf3Vl/nJRsYxWbg3QRoSqhl2EB78MPS2lQxbXY4EW1wwXA iat-mode=0");
-pref("extensions.torlauncher.default_bridge.obfs4.6", "obfs4 109.105.109.147:13764 BBB28DF0F201E706BE564EFE690FE9577DD8386D cert=KfMQN/tNMFdda61hMgpiMI7pbwU1T+wxjTulYnfw+4sgvG0zSH7N7fwT10BI8MUdAD7iJA iat-mode=0");
+pref("extensions.torlauncher.default_bridge.obfs4.1", "obfs4 154.35.22.10:41835 8FB9F4319E89E5C6223052AA525A192AFBC85D55 cert=GGGS1TX4R81m3r0HBl79wKy1OtPPNR2CZUIrHjkRg65Vc2VR8fOyo64f9kmT1UAFG7j0HQ iat-mode=0");
+pref("extensions.torlauncher.default_bridge.obfs4.2", "obfs4 198.245.60.50:443 752CF7825B3B9EA6A98C83AC41F7099D67007EA5 cert=xpmQtKUqQ/6v5X7ijgYE/f03+l2/EuQ1dexjyUhh16wQlu/cpXUGalmhDIlhuiQPNEKmKw iat-mode=0");
+pref("extensions.torlauncher.default_bridge.obfs4.3", "obfs4 192.99.11.54:443 7B126FAB960E5AC6A629C729434FF84FB5074EC2 cert=VW5f8+IBUWpPFxF+rsiVy2wXkyTQG7vEd+rHeN2jV5LIDNu8wMNEOqZXPwHdwMVEBdqXEw iat-mode=0");
+pref("extensions.torlauncher.default_bridge.obfs4.4", "obfs4 109.105.109.165:10527 8DFCD8FB3285E855F5A55EDDA35696C743ABFC4E cert=Bvg/itxeL4TWKLP6N1MaQzSOC6tcRIBv6q57DYAZc3b2AzuM+/TfB7mqTFEfXILCjEwzVA iat-mode=0");
+pref("extensions.torlauncher.default_bridge.obfs4.5", "obfs4 83.212.101.3:41213 A09D536DD1752D542E1FBB3C9CE4449D51298239 cert=lPRQ/MXdD1t5SRZ9MquYQNT9m5DV757jtdXdlePmRCudUU9CFUOX1Tm7/meFSyPOsud7Cw iat-mode=0");
+pref("extensions.torlauncher.default_bridge.obfs4.6", "obfs4 104.131.108.182:56880 EF577C30B9F788B0E1801CF7E433B3B77792B77A cert=0SFhfDQrKjUJP8Qq6wrwSICEPf3Vl/nJRsYxWbg3QRoSqhl2EB78MPS2lQxbXY4EW1wwXA iat-mode=0");
+pref("extensions.torlauncher.default_bridge.obfs4.7", "obfs4 109.105.109.147:13764 BBB28DF0F201E706BE564EFE690FE9577DD8386D cert=KfMQN/tNMFdda61hMgpiMI7pbwU1T+wxjTulYnfw+4sgvG0zSH7N7fwT10BI8MUdAD7iJA iat-mode=0");
pref("extensions.torlauncher.default_bridge.meek-google.1", "meek 0.0.2.0:1 46D4A71197B8FA515A826C6B017C522FE264655B url=https://meek-reflect.appspot.com/ front=www.google.com");
pref("extensions.torlauncher.default_bridge.meek-amazon.1", "meek 0.0.2.0:2 B9E7141C594AF25699E0079C1F0146F409495296 url=https://d2zfqthxsdq309.cloudfront.net/ front=a0.awsstatic.com");
1
0
20 Jan '16
commit e18194b1622b4d8ef1b7a9674b63d1213e678199
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Wed Jan 20 11:42:12 2016 -0500
Bug 11773: setup wizard UI flow improvements
Add a new "Reconfigure" prompt that is displayed after
bootstrapping fails. This makes it so users experience the
same configuration sequence each time rather than forcing
them to move backwards through the wizard pages.
Add a new "Remove Settings and Connect" prompt that is
displayed if the user clicks "Connect" while some bridge or
proxy settings are present. This avoids a problem where old
settings may be used without users being aware of them.
Improve some of the configuration prompts and status text based
on early feedback from UC Berkeley usability studies.
---
src/chrome/content/network-settings-wizard.xul | 48 ++++++-
src/chrome/content/network-settings.js | 165 +++++++++++++++++++-----
src/chrome/content/network-settings.xul | 2 +-
src/chrome/content/progress.js | 2 +
src/chrome/locale/en/network-settings.dtd | 15 ++-
src/chrome/locale/en/progress.dtd | 2 +-
src/chrome/skin/network-settings.css | 3 +-
7 files changed, 189 insertions(+), 48 deletions(-)
diff --git a/src/chrome/content/network-settings-wizard.xul b/src/chrome/content/network-settings-wizard.xul
index 00c1682..56217c5 100644
--- a/src/chrome/content/network-settings-wizard.xul
+++ b/src/chrome/content/network-settings-wizard.xul
@@ -19,7 +19,7 @@
windowtype="TorLauncher:NetworkSettings"
persist="screenX screenY"
buttonlabelextra2="&torsettings.copyLog;"
- onwizardfinish="return applySettings();"
+ onwizardfinish="return applySettings(false);"
onwizardcancel="return onCancel();"
onload="initDialog();"
onunload="deinitDialog();">
@@ -46,7 +46,8 @@
<separator/>
<label>&torSettings.connectPrompt2;</label>
<label>&torSettings.connectPrompt3;</label>
- <button label="&torSettings.connect;" oncommand="useSettings();"/>
+ <button label="&torSettings.connect;"
+ oncommand="onWizardFirstPanelConnect();"/>
<separator class="tall"/>
<label>&torSettings.configurePrompt1;</label>
<label>&torSettings.configurePrompt2;</label>
@@ -74,7 +75,9 @@
<radio id="bridgesRadioYes" label="&torSettings.yes;" />
<radio id="bridgesRadioNo" label="&torSettings.no;" selected="true" />
</radiogroup>
- <description class="questionHelp">&torSettings.bridgeHelp;
+ <description class="questionHelp">&torSettings.bridgeExplanation1;
+ </description>
+ <description class="questionHelp">&torSettings.bridgeExplanation2;
</description>
</vbox>
</hbox>
@@ -94,7 +97,8 @@
<separator />
<vbox>
<label id="bridgeSettingsPrompt"
- class="question">&torSettings.bridgeSettingsPrompt;</label>
+ class="question">&torSettings.bridgeSettingsPrompt; 
+&torsettings.useBridges.note;</label>
<groupbox id="bridgeSpecificSettings" />
</vbox>
</wizardpage>
@@ -120,7 +124,9 @@
<radio id="proxyRadioYes" label="&torSettings.yes;" />
<radio id="proxyRadioNo" label="&torSettings.no;" selected="true" />
</radiogroup>
- <description class="questionHelp">&torSettings.proxyHelp;
+ <description class="questionHelp">&torSettings.proxyExplanation1;
+ </description>
+ <description class="questionHelp">&torSettings.proxyExplanation2;
</description>
</vbox>
</hbox>
@@ -168,8 +174,36 @@
<separator/>
<hbox>
<spring flex="1" />
- <button id="restartTorButton" label="&torsettings.restartTor;" hidden="true"
- oncommand="onRestartTor()" />
+ <button id="restartTorButton" label="&torsettings.restartTor;"
+ hidden="true" oncommand="onRestartTor()" />
+ <button id="reconfigTorButton" label="&torsettings.reconfigTor;"
+ hidden="true" oncommand="onWizardReconfig()" />
+ <spring flex="1" />
+ </hbox>
+ <spring flex="1" />
+ </wizardpage>
+
+ <wizardpage pageid="discardSettings" next="notUsed"
+ onpageshow="showWizardNavButtons(false);"
+ onextra2="onCopyLog();">
+ <hbox class="tbb-header">
+ <vbox class="tbb-logo-box" align="start">
+ <image class="tbb-logo" />
+ </vbox>
+ </hbox>
+ <spring flex="1" />
+ <hbox>
+ <spring flex="1" />
+ <description flex="1">&torsettings.discardSettings.prompt;</description>
+ <spring flex="1" />
+ </hbox>
+ <separator/>
+ <hbox>
+ <spring flex="1" />
+ <button id="discardSettingsGoBack" oncommand="showPanel();"/>
+ <separator/>
+ <button label="&torsettings.discardSettings.proceed;"
+ oncommand="removeSettingsAndConnect()" />
<spring flex="1" />
</hbox>
<spring flex="1" />
diff --git a/src/chrome/content/network-settings.js b/src/chrome/content/network-settings.js
index 9d3cb60..d145f77 100644
--- a/src/chrome/content/network-settings.js
+++ b/src/chrome/content/network-settings.js
@@ -35,6 +35,8 @@ const kTorLogHasWarnOrErrTopic = "TorLogHasWarnOrErr";
const kWizardProxyRadioGroup = "proxyRadioGroup";
const kWizardUseBridgesRadioGroup = "useBridgesRadioGroup";
+const kWizardFirstPageID = "first";
+
const kLocaleList = "localeList";
const kUseProxyCheckbox = "useProxy";
const kProxyTypeMenulist = "proxyType";
@@ -200,6 +202,12 @@ function initDialog()
if (accessKey)
helpBtn.setAttribute("accesskey", accessKey);
}
+
+ // Set Discard Settings back button label to match the wizard Back button.
+ let wizardBackBtn = document.documentElement.getButton("back");
+ let backBtn = document.getElementById("discardSettingsGoBack");
+ if (wizardBackBtn && backBtn)
+ backBtn.label = wizardBackBtn.label;
}
initDefaultBridgeTypeMenu();
@@ -214,7 +222,7 @@ function initDialog()
(status != gTorProcessService.kStatusRunning))
{
if (status == gTorProcessService.kStatusExited)
- showErrorMessage(true, null);
+ showErrorMessage(true, null, false);
else
showStartingTorPanel();
addObserver(kTorProcessReadyTopic);
@@ -384,6 +392,25 @@ function getWizard()
}
+function onWizardFirstPanelConnect()
+{
+ // If the user configured bridge or proxy settings, prompt before
+ // discarding their data.
+ if (isBridgeConfigured() || isProxyConfigured())
+ showPanel("discardSettings");
+ else
+ removeSettingsAndConnect()
+}
+
+
+function removeSettingsAndConnect()
+{
+ applySettings(true); // Use default settings.
+ if (!gIsBootstrapComplete)
+ readTorSettings(); // Ensure UI matches the settings that were used.
+}
+
+
function onWizardConfigure()
{
getWizard().advance("bridges");
@@ -497,12 +524,12 @@ var gObserver = {
{
removeObserver(kTorProcessReadyTopic);
removeObserver(kTorProcessDidNotStartTopic);
- showErrorMessage(false, aData);
+ showErrorMessage(false, aData, false);
}
else if (kTorProcessExitedTopic == aTopic)
{
removeObserver(kTorProcessExitedTopic);
- showErrorMessage(true, null);
+ showErrorMessage(true, null, false);
}
else if (kTorOpenProgressTopic == aTopic)
{
@@ -560,7 +587,7 @@ function readTorSettings()
if (!didSucceed)
{
// Unable to communicate with tor. Hide settings and display an error.
- showErrorMessage(false, null);
+ showErrorMessage(false, null, false);
setTimeout(function()
{
@@ -581,7 +608,7 @@ function showPanel(aPanelID)
{
var wizard = getWizard();
if (!aPanelID)
- aPanelID = (wizard) ? "first" : "settings";
+ aPanelID = (wizard) ? kWizardFirstPageID : "settings";
var deckElem = document.getElementById("deck");
if (deckElem)
@@ -589,7 +616,7 @@ function showPanel(aPanelID)
else if (wizard.currentPage.pageid != aPanelID)
wizard.goTo(aPanelID);
- if (wizard && (aPanelID == "first"))
+ if (wizard && (aPanelID == kWizardFirstPageID))
setTimeout( function() { showWizardNavButtons(false); }, 0);
showOrHideButton("accept", (aPanelID == "settings"), true);
@@ -627,7 +654,7 @@ function showStartingTorPanel()
}
-function showErrorMessage(aTorExited, aErrorMsg)
+function showErrorMessage(aTorExited, aErrorMsg, aShowReconfigButton)
{
var elem = document.getElementById("errorPanelMessage");
var btn = document.getElementById("restartTorButton");
@@ -653,6 +680,15 @@ function showErrorMessage(aTorExited, aErrorMsg)
if (elem)
elem.textContent = (aErrorMsg) ? aErrorMsg : "";
+ let reconfigBtn = document.getElementById("reconfigTorButton");
+ if (reconfigBtn)
+ {
+ if (aShowReconfigButton)
+ reconfigBtn.removeAttribute("hidden");
+ else
+ reconfigBtn.setAttribute("hidden", true);
+ }
+
showPanel("errorPanel");
var haveWizard = (getWizard() != null);
@@ -856,6 +892,17 @@ function onRestartTor()
}
+function onWizardReconfig()
+{
+ showPanel(kWizardFirstPageID);
+ onWizardConfigure();
+ // Because a similar delayed call is used to hide the buttons when the
+ // first wizard page is displayed, we use setTimeout() here to ensure
+ // that the navigation buttons are visible.
+ window.setTimeout(function() { showWizardNavButtons(true); }, 0);
+}
+
+
function onCancel()
{
if (gRestoreAfterHelpPanelID) // Is help open?
@@ -927,7 +974,9 @@ function onOpenHelp()
forAssistance.setAttribute("hidden", true);
}
else
+ {
overrideButtonLabel("cancel", "done");
+ }
}
@@ -948,7 +997,9 @@ function closeHelp()
forAssistance.removeAttribute("hidden");
}
else
+ {
restoreButtonLabel("cancel");
+ }
showPanel(gRestoreAfterHelpPanelID);
gRestoreAfterHelpPanelID = null;
@@ -1130,15 +1181,16 @@ function initBridgeSettings()
// Returns true if settings were successfully applied.
-function applySettings()
+function applySettings(aUseDefaults)
{
TorLauncherLogger.log(2, "applySettings ---------------------" +
"----------------------------------------------");
var didSucceed = false;
try
{
- didSucceed = applyBridgeSettings() &&
- applyProxySettings() && applyFirewallSettings();
+ didSucceed = applyBridgeSettings(aUseDefaults) &&
+ applyProxySettings(aUseDefaults) &&
+ applyFirewallSettings(aUseDefaults);
}
catch (e) { TorLauncherLogger.safelog(4, "Error in applySettings: ", e); }
@@ -1164,10 +1216,26 @@ function useSettings()
if (!gIsBootstrapComplete)
openProgressDialog();
+ let wizardElem = getWizard();
if (gIsBootstrapComplete)
+ {
close();
+ }
+ else if (wizardElem)
+ {
+ // If the user went down the "Configure" path and another error (e.g.,
+ // Tor Exited) has not already been shown, display a generic message
+ // with a "Reconfigure" button.
+ let pageid = wizardElem.currentPage.pageid;
+ if ((pageid != kWizardFirstPageID) && (pageid != "errorPanel"))
+ {
+ let msg = TorLauncherUtil.getLocalizedString("tor_bootstrap_failed");
+ showErrorMessage(false, msg, true);
+ }
+ }
}
+
function openProgressDialog()
{
var chromeURL = "chrome://torlauncher/content/progress.xul";
@@ -1184,9 +1252,10 @@ function onProgressDialogClose(aBootstrapCompleted)
// Returns true if settings were successfully applied.
-function applyProxySettings()
+function applyProxySettings(aUseDefaults)
{
- var settings = getAndValidateProxySettings();
+ let settings = aUseDefaults ? getDefaultProxySettings()
+ : getAndValidateProxySettings();
if (!settings)
return false;
@@ -1194,34 +1263,40 @@ function applyProxySettings()
}
-// Return a settings object if successful and null if not.
-function getAndValidateProxySettings()
+function getDefaultProxySettings()
{
- // TODO: validate user-entered data. See Vidalia's NetworkPage::save()
-
- var settings = {};
+ let settings = {};
settings[kTorConfKeySocks4Proxy] = null;
settings[kTorConfKeySocks5Proxy] = null;
settings[kTorConfKeySocks5ProxyUsername] = null;
settings[kTorConfKeySocks5ProxyPassword] = null;
settings[kTorConfKeyHTTPSProxy] = null;
settings[kTorConfKeyHTTPSProxyAuthenticator] = null;
+ return settings;
+}
+
+
+// Return a settings object if successful and null if not.
+function getAndValidateProxySettings()
+{
+ var settings = getDefaultProxySettings();
+ // TODO: validate user-entered data. See Vidalia's NetworkPage::save()
var proxyType, proxyAddrPort, proxyUsername, proxyPassword;
if (isProxyConfigured())
{
- proxyAddrPort = createColonStr(getElemValue(kProxyAddr, null),
- getElemValue(kProxyPort, null));
- if (!proxyAddrPort)
+ proxyType = getElemValue(kProxyTypeMenulist, null);
+ if (!proxyType)
{
- reportValidationError("error_proxy_addr_missing");
+ reportValidationError("error_proxy_type_missing");
return null;
}
- proxyType = getElemValue(kProxyTypeMenulist, null);
- if (!proxyType)
+ proxyAddrPort = createColonStr(getElemValue(kProxyAddr, null),
+ getElemValue(kProxyPort, null));
+ if (!proxyAddrPort)
{
- reportValidationError("error_proxy_type_missing");
+ reportValidationError("error_proxy_addr_missing");
return null;
}
@@ -1268,10 +1343,16 @@ function reportValidationError(aStrKey)
// Returns true if settings were successfully applied.
-function applyFirewallSettings()
+function applyFirewallSettings(aUseDefaults)
{
- var settings = (getWizard()) ? getAutoFirewallSettings()
- : getAndValidateFirewallSettings();
+ let settings;
+ if (aUseDefaults)
+ settings = getDefaultFirewallSettings();
+ else if (getWizard())
+ settings = getAutoFirewallSettings();
+ else
+ settings = getAndValidateFirewallSettings();
+
if (!settings)
return false;
@@ -1296,6 +1377,12 @@ function getAndValidateFirewallSettings()
}
+function getDefaultFirewallSettings()
+{
+ return constructFirewallSettings(undefined);
+}
+
+
// Return a settings object if successful and null if not.
// Only used for the wizard.
function getAutoFirewallSettings()
@@ -1386,9 +1473,10 @@ function initDefaultBridgeTypeMenu()
// Returns true if settings were successfully applied.
-function applyBridgeSettings()
+function applyBridgeSettings(aUseDefaults)
{
- var settings = getAndValidateBridgeSettings();
+ let settings = (aUseDefaults) ? getDefaultBridgeSettings()
+ : getAndValidateBridgeSettings();
if (!settings)
return false;
@@ -1396,13 +1484,19 @@ function applyBridgeSettings()
}
-// Return a settings object if successful and null if not.
-function getAndValidateBridgeSettings()
+function getDefaultBridgeSettings()
{
- var settings = {};
+ let settings = {};
settings[kTorConfKeyUseBridges] = null;
settings[kTorConfKeyBridgeList] = null;
+ return settings;
+}
+
+// Return a settings object if successful and null if not.
+function getAndValidateBridgeSettings()
+{
+ var settings = getDefaultBridgeSettings();
var useBridges = isBridgeConfigured();
var defaultBridgeType;
var bridgeList;
@@ -1432,8 +1526,9 @@ function getAndValidateBridgeSettings()
}
}
- // Since it returns a filterd list of bridges, TorLauncherUtil.defaultBridges
- // must be called after setting the kPrefDefaultBridgeType pref.
+ // Since it returns a filtered list of bridges,
+ // TorLauncherUtil.defaultBridges must be called after setting the
+ // kPrefDefaultBridgeType pref.
TorLauncherUtil.setCharPref(kPrefDefaultBridgeType, defaultBridgeType);
if (defaultBridgeType)
bridgeList = TorLauncherUtil.defaultBridges;
@@ -1651,7 +1746,9 @@ function parseColonStr(aStr)
rv[1] = aStr.substring(idx + 1);
}
else
+ {
rv[0] = aStr;
+ }
return rv;
}
diff --git a/src/chrome/content/network-settings.xul b/src/chrome/content/network-settings.xul
index 9fffbec..727e7f6 100644
--- a/src/chrome/content/network-settings.xul
+++ b/src/chrome/content/network-settings.xul
@@ -20,7 +20,7 @@
persist="screenX screenY"
buttons="accept,cancel,extra2,help"
buttonlabelextra2="&torsettings.copyLog;"
- ondialogaccept="return applySettings();"
+ ondialogaccept="return applySettings(false);"
ondialogcancel="return onCancel();"
ondialogextra2="onCopyLog();"
ondialoghelp="onOpenHelp();"
diff --git a/src/chrome/content/progress.js b/src/chrome/content/progress.js
index b44dca5..48362e7 100644
--- a/src/chrome/content/progress.js
+++ b/src/chrome/content/progress.js
@@ -170,6 +170,8 @@ var gObserver = {
// TODO: provide a way to access tor log e.g., leave this dialog open
// and display the open settings button or provide a way to do
// that from our error alerts.
+ if (kTorBootstrapErrorTopic == aTopic)
+ stopTorBootstrap();
cleanup();
window.close();
}
diff --git a/src/chrome/locale/en/network-settings.dtd b/src/chrome/locale/en/network-settings.dtd
index b193750..75ece3b 100644
--- a/src/chrome/locale/en/network-settings.dtd
+++ b/src/chrome/locale/en/network-settings.dtd
@@ -13,26 +13,32 @@
<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored or proxied.">
-<!ENTITY torSettings.configurePrompt2 "I need to configure bridge or local proxy settings.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge or local proxy settings before I connect to the Tor network.">
<!ENTITY torSettings.configure "Configure">
-<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt2 "I would like to make a direct connection to the Tor network.">
<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
<!ENTITY torSettings.connect "Connect">
<!ENTITY torSettings.proxyPageTitle "Local Proxy Configuration">
<!ENTITY torSettings.proxyQuestion "Does this computer need to use a local proxy to access the Internet?">
<!-- see https://www.torproject.org/docs/proxychain.html.en -->
-<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a local proxy.">
+<!ENTITY torSettings.proxyExplanation1 "In most cases a local proxy is not needed, but it may be required when connecting through a company, school, or university network.">
+<!ENTITY torSettings.proxyExplanation2 "If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a local proxy is needed.">
<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
<!ENTITY torSettings.bridgePageTitle "Tor Bridges Configuration">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeExplanation1 "If you are not sure how to answer this question, choose No (if you are unable to connect to the Tor network without a bridge, you can add one later).">
+<!ENTITY torSettings.bridgeExplanation2 "If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
<!ENTITY torsettings.restartTor "Restart Tor">
+<!ENTITY torsettings.reconfigTor "Reconfigure">
+
+<!ENTITY torsettings.discardSettings.prompt "You have configured Tor bridges or you have entered local proxy settings.  To make a direct connection to the Tor network, these settings must be removed.">
+<!ENTITY torsettings.discardSettings.proceed "Remove Settings and Connect">
<!ENTITY torsettings.optional "Optional">
@@ -50,6 +56,7 @@
<!ENTITY torsettings.firewall.allowedPorts "Allowed Ports:">
<!ENTITY torsettings.useBridges.checkbox "My Internet Service Provider (ISP) blocks connections to the Tor network">
<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.note "Each type of bridge uses a different method to avoid censorship.  If one bridge does not work, try again using a different one.">
<!ENTITY torsettings.useBridges.type "Transport type:">
<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
diff --git a/src/chrome/locale/en/progress.dtd b/src/chrome/locale/en/progress.dtd
index ebd9cef..9ac9ad7 100644
--- a/src/chrome/locale/en/progress.dtd
+++ b/src/chrome/locale/en/progress.dtd
@@ -1,4 +1,4 @@
<!ENTITY torprogress.dialog.title "Tor Status">
<!ENTITY torprogress.openSettings "Open Settings">
<!ENTITY torprogress.heading "Connecting to the Tor network">
-<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.  This may take several minutes.">
diff --git a/src/chrome/skin/network-settings.css b/src/chrome/skin/network-settings.css
index 610ab26..20d3528 100644
--- a/src/chrome/skin/network-settings.css
+++ b/src/chrome/skin/network-settings.css
@@ -72,7 +72,7 @@ separator.tall {
}
.questionHelp {
- margin-right: 20px;
+ margin: 0px 0px 12px 20px;
}
.instructions {
@@ -109,6 +109,7 @@ wizard#TorLauncherLocalePicker button[dlgtype="next"] {
font-weight: bold;
}
+#bridgeNote,
#bridgeDefaultEntry,
#bridgeCustomEntry {
margin-left: 1.8em;
1
0
[tor-browser/tor-browser-38.5.0esr-5.5-2] Bug 16322: Update DuckDuckGo search engine
by gk@torproject.org 20 Jan '16
by gk@torproject.org 20 Jan '16
20 Jan '16
commit 912db6de1e8851870434a948b8721cd2aebf11de
Author: Georg Koppen <gk(a)torproject.org>
Date: Wed Jan 20 12:27:59 2016 +0000
Bug 16322: Update DuckDuckGo search engine
We are replacing the clearnet URL with an onion service one (thanks to a
patch by a cypherpunk) and are removing the duplicated DDG search
engine. Duplicating DDG happend due to bug 1061736 where Mozilla
included DDG itself into Firefox. Interestingly, this caused breaking
the DDG search if JavaScript is disabled as the Mozilla engine, which
gets loaded earlier, does not use the html version of the search page.
Moreover, the Mozilla engine tracked where the users were searching from
by adding a respective parameter to the search query. We got rid of that
feature as well.
---
browser/locales/en-US/searchplugins/ddg.xml | 50 ++++++++++++--------
browser/locales/en-US/searchplugins/duckduckgo.xml | 29 ------------
browser/locales/en-US/searchplugins/list.txt | 1 -
3 files changed, 29 insertions(+), 51 deletions(-)
diff --git a/browser/locales/en-US/searchplugins/ddg.xml b/browser/locales/en-US/searchplugins/ddg.xml
index d68deb4..d612d3c 100644
--- a/browser/locales/en-US/searchplugins/ddg.xml
+++ b/browser/locales/en-US/searchplugins/ddg.xml
@@ -1,21 +1,29 @@
-<?xml version="1.0" encoding="utf-8"?>
-<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
- <ShortName>DuckDuckGo</ShortName>
- <Description>Search DuckDuckGo</Description>
- <InputEncoding>UTF-8</InputEncoding>
- <Image height="16" width="16">data:image/icon;base64,AAABAAIAEBAAAAEAIABoBAAAJgAAACAgAAABACAAqBAAAI4EAAAoAAAAEAAAACAAAAABACAAAAAAAAAEAAATCwAAEwsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA11RgALs6oACbQ9wAj0v8AI9L/ACfQ9wAu0agANdUYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzzN4CNdL/oK/z//////////////////////+jsPv/BDXX/wAz0t4AAAAAAAAAAAAAAAAAAAAAAAAAAAAyzvNSduD//////8jK/v+P+Lf/IbQL/17RPP+J3Y//wOKX//////9YeuX/ADLO8wAAAAAAAAAAAAAAAAAw091piOX/8/X9/1Fx5P9xhu//WOWZ/0W9Lv9Lwjn/J8BB/xyDAP9bdfL/9fP//2mI5v8AMNPdAAAAAAc610YRQ9f//////0Zr4P8AGdD/sb32////////////wrv//wAh1/8MPab/ACPc/05r4///////EkPX/wc610YANtWkrr/y/6S48P8AJ9L/AB3R/+/w/v///////////3+D7f8AQeL/AYTw/wFr5/8AMNb/p7Tv/6698v8AM9WkADLW//////8yXt//AC3V/wAw1/////////////z///8A0P7/AKb1/wWI7P8AuPf/AJ3w/zZW3P//////ADHV/wAx2P//////AzrZ/wAu1/84ZOL////////////e////AND//wC1+f8Atff/AZbv/wY62f8ELNf//////wAw1/8AMtn//////wAw2f8ALNn/kKrz////+//cwbH////////////R////Rcb8/wDO/f8A/P//AHzo//////8AMNj/ADXa//////8vXuL/ACna/4yq9///79T/jUkg/9i+r///////r2Q0/7Cozv8BKdr/AirY/z
dZ4P//////ADTa/wI72tOuv/T/prr0/wAl2v+JqPb//7yW/+bUxv/9+/n////u//W+n/+Op/L/ADPd/wAv2v+ru/T/r7/0/wI72tMLQd1DEEjg//////9Cbef/ADng///////////////////////R3///AC3g/wAy3v9SeOn//////xFI4P8LQd1DAAAAAAM64PNmiuz/9/j//2mN7f/m7P3///////////9Cb+n/ACXd/wAt3v9rju3//////2iL7P8DOuDzAAAAAAAAAAAAAAAAAT3g/0p16f//////3OT8/3OS7v8AKt3/ACPc/zhn5/+xw/b//////0956v8CPeD/AAAAAAAAAAAAAAAAAAAAAAAAAAAEPODzBUDh/5uz8//7/f7/////////////////prz0/wtF4v8FQeDzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtF5kYDQOOkADrj/wA44v8AOeP/ADzk/wVB46QPReZGAAAAAAAAAAAAAAAAAAAAAPAPAADgBwAAwAMAAIABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIABAADAAwAA4AcAAPAPAAAoAAAAIAAAAEAAAAABACAAAAAAAAAQAAATCwAAEwsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChIzyAnRNFwJ0TQryND0d8nRNH/J0TR/ydE0f8nRNH/I0PR3ydE0K8nRNFwKEjPIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChE00AlRdK/J0XS/ydF0v8nRdL/XXPd/11z3f94i+P/k6Lp/5Oi6f9rf+D/NVDV/ydF0v8nRdL/JUXSvyhE00AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAzxAnRNOvJ0XT/ydF0/8lRdK/KEXSYOvu+6/+/v6//v7+v/39/c////////////7+/r/J0fOAKEXSYCVF0r8nRdP/J0XT/ydE068gQM8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlRdUwJ0bT7ydG0/8nRtHPKETTQAAAAADHx8dA2vHhn5TYpN/o9+z/////////////////8PL83ydG0o8lRdUwAAAAAChE00AnRtHPJ0bT/ydG0+8lRdUwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKEXVYCdG1P8nRtT/KEbTgAAAAAAmRtZQI0PU38jIyP/F6s//Rrtk/0a7ZP9/yIr/c796/4vLkv+JpNf/M3Kq/zyWh/8zeKTfJkbWUAAAAAAoRtOAJ0bU/ydG1P8oRdVgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACVF1TAnR9X/J0fV/yhF1WAgQM8QJ0fTrydH1f9CW8//2tra/6Pdsv9Gu2T/Rrtk/0WzWv9Gu2T/Rrtk/0a7ZP9Gu2T/Rrtk/z6egP8nR9X/J0fTryBAzxAoRdVgJ0fV/ydH1f8lRdUwAAAAAAAAAAAAAAAAAAAAAAAAAAAgQM8QJ0fV7ydH1f8oSNVgIEDPECdH1c8nR9X/J0fV/1xwyf/t7e3/o92y/0a7ZP9Gu2T/Ra5U/0a7ZP9Gu2T/Rrtk/0a7ZP9Gu2T/Pp6A/ydH1f8nR9X/J0fVzyBAzxAoSNVgJ0fV/ydH1e8gQM8QAAAAAAAAAAAAAAAAAAAAACdH1q8nR9b/KEjVgCBQzxAnR9bPJ0fW/ydH1v8nR9b/gIzB//r6+v+j3bL/Rrtk/13Ed/+i26//ruG7/z6egf8+noH/Rrtk/0a7ZP86kI//J0fW/ydH1v8nR9b/
J0fWzyBQzxAoSNWAJ0fW/ydH1q8AAAAAAAAAAAAAAAAoSNdAJkjW/yZH1s8AAAAAJEfWryZI1v8mSNb/JkjW/yZI1v+jqsT//////+j37P/R7tj////////////W3ff/JkjW/yZI1v8uZbr/PJeI/zJzrP8mSNb/JkjW/yZI1v8mSNb/JEfWrwAAAAAmR9bPJkjW/yhI10AAAAAAAAAAACVI1r8mSNf/KEjXQCZJ1lAmSNf/JkjX/yZI1/8mSNf/JkjX/9HR0f///////////////////////////5Ok6/8mSNf/JkjX/yZI1/8mSNf/JkjX/yZI1/8mSNf/JkjX/yZI1/8mSNf/JknWUChI10AmSNf/JUjWvwAAAAAoSNcgJknY/yZH2M8AAAAAI0nY3yZJ2P8mSdj/JknY/yZJ2P9KZM//39/f////////////////////////////XHfi/yZJ2P8mSdj/JknY/yZJ2P8mSdj/JknY/yZJ2P8mSdj/JknY/yZJ2P8jSdjfAAAAACZH2M8mSdj/KEjXICdJ2HAmSdj/JUjXYCVK2jAmSdj/JknY/yZJ2P8mSdj/JknY/2V4yf/t7e3///////////////////////////9cd+L/HXTj/xSf7/8Nwfj/CdL8/wnS/P8J0vz/ELDz/xt85v8mSdj/JknY/yZJ2P8lStowJUjXYCZJ2P8nSdhwJErZryZK2f8oSNcgJUnajyZK2f8mStn/JkrZ/yZK2f8mStn/iJPA////////////////////////////0ff+/xjV/P8J0vz/Drn1/xiO6/8Yjuv/GI7r/xCw8/8Lyvr/CdL8/xmF6P8mStn/JkrZ/yVJ2o8oSNcgJkrZ/yRK2a8jStrfI0rZ3wAAAAAlSdq/Jkra/yZK2v8mStr/Jkra/yZK2v+xtsf///////////////////////////8o2Pz/CdL8/wvK+v8mStr/Jkra/
yZK2v8mStr/Jkra/yZK2v8iW97/Jkra/yZK2v8mStr/JUnavwAAAAAjStnfI0ra3yZK2v8lSdq/AAAAACZH2O8mStr/Jkra/yZK2v8mStr/L1HY/9HR0f///////////////////////////yjY/P8J0vz/CdL8/xCw9P8QsPT/ELD0/xSf7/8ddeX/Jkra/yZK2v8mStr/Jkra/yZK2v8mR9jvAAAAACVJ2r8mStr/Jkvb/yVJ2r8AAAAAJkvb/yZL2/8mS9v/Jkvb/yZL2/9KZtL/4+Pj////////////////////////////4Pn//0fd/f8J0vz/CdL8/wnS/P8J0vz/CdL8/wnS/P8Lyvr/Fpfu/yJc3/8mS9v/Jkvb/yZL2/8AAAAAJUnavyZL2/8mS9z/JUncvwAAAAAmS9z/Jkvc/yZL3P8mS9z/Jkvc/26AyP/x8fH//////////////////////////////////////9H3/v/C9P7/o+7+/2fa+/8Oufb/CdL8/wnS/P8J0vz/CdL8/xiP7P8mS9z/Jkvc/wAAAAAlSdy/Jkvc/yZM3P8lTNy/AAAAACZJ2e8mTNz/Jkzc/yZM3P8mTNz/iJTB////////////qnth/5VaOf/x6eX///////////////////////Hp5f/x6eX/ydL2/yZM3P8kVN7/G37o/xKo8v8QsfT/HXbm/yZM3P8mSdnvAAAAACVM3L8mTNz/I0vc3yZJ2u8AAAAAJUzevyZM3f8mTN3/Jkzd/yZM3f+fqc3///////////+VWjn/v5yI/+re1///////////////////////jk8s/7iRe//J0vb/Jkzd/yZM3f8mTN3/Jkzd/yZM3f8mTN3/Jkzd/yVM3r8AAAAAI0vc3yNL3N8kTd2vJk3d/yhQ3yAlTd2PJk3d/yZN3f8mTd3/Jk3d/6St0v////////////Hp5f/q3tf///////////
////////////////+xhm7/49PK/6Cx8P8mTd3/Jk3d/yZN3f8mTd3/Jk3d/yZN3f8mTd3/JU3djyhQ3yAmTd3/JE3drydN33AmTd7/J03fcCVK3zAmTd7/Jk3e/yZN3v8mTd7/pK7S///////Sp5r/////////////////////////////////////////////////T27k/yZN3v8mTd7/Jk3e/yZN3v8mTd7/Jk3e/yZN3v8lSt8wJ03fcCZN3v8nTd9wKFDfICZO3/8mTt3PAAAAACVN3r8mTt//Jk7f/yZO3/+EltX//////+fRyv/SqaD/59LO///////////////////////at63/vIBy/7Glxf8mTt//Jk7f/yZO3/8mTt//Jk7f/yZO3/8mTt//JU3evwAAAAAmTt3PJk7f/yhQ3yAAAAAAJE/dryZO3/8oUN9AKFDfQCZO3/8mTt//Jk7f/zhb2v/o6/T/////////////////////////////////////////////////XHrn/yZO3/8mTt//Jk7f/yZO3/8mTt//Jk7f/yZO3/8oUN9AKFDfQCZO3/8kT92vAAAAAAAAAAAoUN9AJk7g/yZO4M8AAAAAJk/hnyZO4P8mTuD/Jk7g/05v5v/k6fv//////////////////////////////////////3eR7P8mTuD/Jk7g/yZO4P8mTuD/Jk7g/yZO4P8mTuD/Jk/hnwAAAAAmTuDPJk7g/yhQ30AAAAAAAAAAAAAAAAAjT+GfJU/h/yVO4Y8gUN8QIk7gzyVP4f8lT+H/SWnW/0lp1v+bq+H/8fHx/////////////////6Cy8v9OcOb/JU/h/yVP4f8lT+H/JU/h/yVP4f8lT+H/JU/h/yJO4M8gUN8QJU7hjyVP4f8jT+GfAAAAAAAAAAAAAAAAAAAAACBQ3xAlTOHvJU/h/yVQ4mAgUN8QIk7hzyVP4f+ktOv
///////////////////////H0/f9phur/JU/h/yVP4f8lT+H/JU/h/yVP4f8lT+H/JU/h/yVP4f8iTuHPIFDfECVQ4mAlT+H/JUzh7yBQ3xAAAAAAAAAAAAAAAAAAAAAAAAAAACVQ3zAlUOLvJVDi/yVQ4mAgUN8QI1Din4mb2//J0/j/ydP4/6299P93ku3/M1vk/yVQ4v8lUOL/JVDi/yVQ4v8lUOL/JVDi/yVQ4v8lUOL/I1DinyBQ3xAlUOJgJVDi/yVQ4u8lUN8wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACVQ5DAlUOLvJVDi/yVQ4o8AAAAAJFDjQCVQ4r8lUOL/JVDi/yVQ4v8lUOL/JVDi/yVQ4v8lUOL/JVDi/yVQ4v8lUOL/JVDivyRQ40AAAAAAJVDijyVQ4v8lUOLvJVDkMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACVQ5DAjUeTfJVHj/yNR5N8kUONAAAAAACVQ5DAmUuOAJVHivyNR5N8lUeP/JVHj/yNR5N8lUeK/JlLjgCVQ5DAAAAAAJFDjQCNR5N8lUeP/I1Hk3yVQ5DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBQ3xAjUuSfJVHk/yVR5P8jUeTfJFLkcChQ5yAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoUOcgJFLkcCNR5N8lUeT/JVHk/yNS5J8gUN8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkUONAI1LknyVS5P8lUuT/JVLk/yVS5O8lUeS/JVHkvyVR5L8lUeS/JVLk7yVS5P8lUuT/JVLk/yRS468kUONAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAIFDfECVS5GAjUuWfIlPlzyVS5f8lUuX/JVLl/yVS5f8iU+XPI1LlnyVS5GAgUN8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/AA///AAD//AAAP/ggBB/wgAEP4AAAB8AAAAPAAAADiAAAEYAAAAEQAAAIAAAAAAAAAAAgAAAEIAAABCAAAAQgAAAEIAAABCAAAAQAAAAAAAAAABAAAAiAAAABiAAAEcAAAAPAAAAD4AAAB/CAAQ/4IAQf/AfgP/8AAP//wAP/</Image>
- <Image height="26" width="65">data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDoxNTg5QTM3RjNCMjA2ODExODIyQUVEOUNBRDIxQzhDMyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxRTYyNzYzMzFBQUUxMUU0ODc3NTg3NjMyNDFCNzExQSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxRTYyNzYzMjFBQUUxMUU0ODc3NTg3NjMyNDFCNzExQSIgeG1wOkNyZWF0b3J
Ub29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDE4MDExNzQwNzIwNjgxMTg3MUZCQUIxMEI4RjU1NzYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MTU4OUEzN0YzQjIwNjgxMTgyMkFFRDlDQUQyMUM4QzMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7hxyCFAAAF4UlEQVR42tSZa2wUVRTH/3dmp92+tnRpCiUgxFoKCDQplsRIfZSgCEHSapBGBCURQvCLWkkQg9GYGNDwTYlGUCMoCA2EtEpEq1KjRJCA9EEElba2FajbN213d+b6vzOzZZfi99mb/DJ3d/aczD33vO6skFLCq6O9YubYXChE4n1+LublaVJO5hLDvRUhjaSefMolno+XU0uOX7WG5BxLSBsXc448Qo6SFWSuywr3O3XvnPqtK3PbkWxGUL5whHzN7WyAZeWQRZBWFz+v4v6+w3sKztFFFpEc0mDLOLJinNIkCocMXppJLhdcCssMw4zu5fOX2XGi6RAa91Rot8aNMsB6kkJOk24yh6seSjZPEHzoZmlfZaaU1pqR/Dsv+XfVlQXf/QbZ67dBz5sKKzxK20TpGBbU5qrtJWXkEllDMqWrK94jPG0ESzpwPTUkl8yQFvZL09oaLlqIG1LDQFoA6Y9vxJQ9Dch+bjus4WEaIwxpmjSGdJKgw1ay39bh6KqJ6U8GTyjnc1aQheQ1UqV2Of3LPTBPfI40RkVsEdmVGzClphmZy9bAitAQlhnvEbBlHR1KV4VbVbydE66sLFI+e8mN5e1Qc7o6IqMIr3sVhVUb/le2e1c1Bk8cgvAxFWjj9rqQvA7HGIVeN4LqA1SJm0iO
ci/LQDc3aZrg4RZkpBgYHY4iK8OXIHetz4RPi6K/ao4b9PrtkuVKElL9hafDgfuzjrQQk5QxH9hxPphfgAy/gYHByDgDqJGXrSOYlYrAo1WQUTc32LJj+aHM1dlEnvK2EYClpIasiotrmL5URE2JiQEDuw+ewunGjgS5hrNtWLp5P/QHKhk9lh1BDuKmIYAnyWGyxNuJUWI2+ZncG5/djKF+DA45ZX7Hh9/j2HdNCWKzC/JRsXg+sgrmQ4aFjS/LQvqsYejpqiTYepTOn8g8n8c9QQ21zdPiDxD+620IhULIC2TiYl01/CmJy8jNNrCxMh/hjiMIVvYioziK1BlRQJcIHc1B6KscqpLTXN2pPo/nhNjwxR2jIFgdBtouAzPuSDSAZLPUXgX0HYFgLjRIcLnO3sFAb33AJnLdYFNp9w/6Lco97Qm57o7dbKC5wpHffgHuL09srjo22AYY/tOPoQsBiFRgtJ3zljQqo/HoCfbSnULR6eq2vJ4TWskCcnYsJ9hGYIz/1YQR65bTYOARe5FW2EDfqQD+rQ1iqDkN/qlhTHhwAJnFQ6oxiuUWpfMe0uzpPuH3ZUV7eZlFVpPWsRjh+WA4OAV579UiPzghQaajuhgZc1qRWTIKnQ4g0i27N77RlI5rXwQR/seI9cnTyWfkvNfDYR8v35K/iSoBd8eSY8r1doR6escZYfRqLvrPDEDsM+ALWNADJiLdBttoYXuJEPamK13t5D6y1evNUj3pJzvIJqfRYV5XyZGFf/CPlnEy6UXzoLEZYDqEHBCIdBpsmFSsODEgHb1K105Xd4PnD1B86M2kmjSSA/Yi6AlSaBhtPG3/5mTXcTT3nLPnwYcq4KP7X52cgvc3TcWvpQFVDu1UIoWt74CrS+nc7P3qIO00rkLiBfcQdReZCamVqAqRcuUiolzJDx11aO4+gxxjOnqtbmhvzITO+6Yh0DthhF4jYmeHs4Q1FJfd+T6ZLC9VpHOcnk7qyQJSq
zzB39WKnr5h+HhS1DUfOvs64RNRVgATlnDawoghYoWl1pWtd3WVJ0WfEDf6pGqhnTdCTGqihCw3urt2h0LdecH0ydB1Aw8XLkfPjRGUTixB4JUtuDDXj0nXokMmsJbyddJJiOoYPZuO0ZdsRlDjsnTa5x/JCDTxEnPfpIH6Y28uXvHYttUFzyNb1cTY+4TyC8ezD37wltT1k5YmXmRkjbhhMI2BcTVpXrS2LJ011jmO/VfgPO7L/GKnfSQ0zU+EaR2SlnWGN53FaRpdw1cKTX+Cxlrr5oMt5G2713Kq7NhLxmQ1gpPvpXyWs2f4oSz+oHHznxrRwOvHnHwkYpK3McJ/AgwADmrfhvtTyFYAAAAASUVORK5CYII=</Image>
- <Image height="52" width="130">data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIIAAAA0CAYAAABGkOCVAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDoxNTg5QTM3RjNCMjA2ODExODIyQUVEOUNBRDIxQzhDMyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo4RTdBNDY4ODFBQUQxMUU0ODc3NTg3NjMyNDFCNzExQSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4RTdBNDY4NzFBQUQxMUU0ODc3NTg3NjMyNDFCNzExQSIgeG1wOkNyZWF0b3
JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6OTE3MzgzQ0I2QjIwNjgxMTgyMkFFRDlDQUQyMUM4QzMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MTU4OUEzN0YzQjIwNjgxMTgyMkFFRDlDQUQyMUM4QzMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7NVVBAAAAO30lEQVR42uxdCXRU1Rn+3nszk5nJhmEJAYKyJJJAWFyqUqwWwaJi0aKA9bh0USwunEo9UGmrHG0Vj3LUUoEqFQGXciqgiFCoVtsKeBAJS9JWtrAmIUxmkpnJJDNv6X/fu5O8mUwmkwkoPef9Od/cN/ct9593v/vf//73vhdB0zRY0nU5dktxuzxBMG3zD6GD84XYHYMI1xMuJZQQ2MWzCS6+P0TwE74i/Juwi7CFcCR6gY6qUeMf5t2JjhUsInxjRBhJyUOEewn2NNWIEFYQFlM17rWI8P9FhJsILxGGdHDpOsJ+wmlCA8/LJfQhjCD07uC8Q4TZhI3pEMFmVenXJqMJ7xIGx+UfJawivEf4IsVrXUaYQriLcCHPY8T6gHCYMJVQ3hXlLIvw9ViE1wg/iTt8JeFpuvsHYs4BehLKCAWEHnyXj1BN2EfwmGuMzimi5FeEu+Ouv5zwU6trOD+IUEif/zS1WiZvEWZSzQT4gQ5WYbwVj0+x+I+5dXmNrhPm18miz6WEO+OszdV0zHGLCN8cEZj53mnaXUO4ke72blYTArRS+r6QMLnVFggmu5C6sO5gLl23kp/NuqBNhL6mYy7XTN1OoioXrSo9JzKJ7vVOjTtrhLWEAoMEag5UZaMmyxVqJDKZAFUmKDJBpd0Eqin
TuZ1hMqGCV34ObZfzstaajmGEnGT5CF+vRbg0zul7krCAN8Ufa6K0vLnkCmSXXQ5nuBmavx6qtw4t+3dC9p6GIJH/LkkQRMm4oNBlC8F8kT/x7Sd4+WYnc5c1ajj3UhBHgofppi/mdbmGmHA75DDC9afh63cxSr4zMeZk+Uw1Au+/jsCGN6C2NEGw2clmk9EWumS4l/PWP43KXkBle2j793wf060fdzwti3CuLAIfy0eHhwtMrZE5jONAZl+lSrUvXI/+w0qTXF1D/Su/QeP65RDsDrISkkGGrlmHf+mOYptVeoJvH04Uw7CIkKYcjSMCVdESSh7gX1lM4JYYEuj1qyKU1w/eUdcC3jPQMnNh65UP9+Dh6FFUin79+8e4ioG/vYszCx80uguyDkLUOqROCDMZ1vPYA5OlVOs/s4hw9onAmncF32YRwXy+/TZhRsy4TVWoD4gAkTA0RYHjuh/Adc0tyBhcAme/iyDGVXLk5GE0bfsr/NRlsK7DIITUFTK8Q7iDb9fCiFAyGQ4+0rCIcPaIUMHJwORb0ISddGfv4kGj2AE8jQ4QaUFkwh3o9/OFcNtSd9M8L8+D/8PVeneBrpHhbtJpFelkHtJWcjJYw8duiSZEMYFQyrfX8BudQ9srTceQJaBclYgQURCc/hiGPPZCl0jApOcjzyJz3GRodA39WubrJ8dKXSfmLDIdjbxSrrt+jGUR0pSqKRdHN9msXxnfvgBGOHiDESgyE4eYIMvwFw5D8bJNyOiOozrjEiiNXmNUkbpVYIGnm2GErb08j4WsR1oWoftSbCLBW5wERe1IYOoW5HseT4sEClmAWk8zzgQ19H7kd5RBfoaqInYWIalM5rr5uK7guhdbROhOz6DpmMVThqd5usiUZ4AqUVNUBHsVIm9oiX5+U4uCpavLsWTVbmz6+FCn5R2vDuhRR7+vCdLYSbAVFpHfqeiGpl15HSOq21OmPP03WF1DmnLk+3rXECS4eYCGBWok
FhdKxBqBRgqnR30Xg+e/jF7ZWXjng68wdkwBBvbPTqt8/+a3UbdoLgQHdxxTF+aYkJOBk1xn9huyLIuQvhRyEjB5jaf3dRQgYmi5oC8k0bjl024qSpsETLIn3UHugabPS6BrjTmq43KeZjJCWERIt2sAbjBN6mzSjDn/25JNEKk2B+RIxBiumZw8D5n7lKJDX1bhqjtfwUtvbde/u0aPNSapgK7gNq7rJlPe9RYR0mfCVaa7u53nXZesBgRNQSgUirnM4y9uxogpi/DE4q3kN0SSFrlszQ4cPeXFF/tOwNcCOMuuNBxGVTOxLQFi9biO67rdlHe5RYT0ZQRP63jap+NDBR32gA/+QDBmz5sby2G3iThe68O2L48mLXDGDaPhsElgk9Q9aOiRMbi0HQk0VSDHlCBzqEIbGdqkd5zupRYR0u8ahvH7X8HTkUlNMnUFTs8peLz1Mde5+doShGVVb+VXjipMWuZN1wxD1dZ5WP3MNCPDmWUYBBZfokpXIoJelnt0ED1vrUfeFC/cw5uIK0K8PqN4up+nxdY0dPqSxdNTPO2X3CAQEWqP4nhDY8yuxfOnYM49V2NA3x66ZehSbMHfAi0iwd5XRmZJE1zDQ3BfHIJg582fzU/ZNNQsy0dwj8u8+KmApyd5mmsRoRtxBC7RJec5yboGtjjNUX8aQpMfTeEI3I62RxkGDchLrVD5DJl9sihyNYRwBSTtVQx64RRsubrJIZ2MmmZdgyBqeur7KAeBclfb4IVXPE+jrMy0iNB9CfO0k4dUBDZU0K2C1+uDO793aldXybSfmgOt/nWqyBazywFHL2Mlk6aIrfmMAEqTiMbPcuH9KBtqQNIjB2yoaRJ7nO7WCqWzID2jMZ7OeMC6B3dtFbw+H/qnQAQtuA3q4QlEhpCxUkm00SWiC12FVnLprZ9FKytdaNyejWC522j9ktE1RIljjkfF6R62iJC+syjzhtQjzgPvmAmCCFcNWYQGX+cFRKqhH
vi2UYGiHYIkEh9ERBpt1BUokHIUqC0iQv/JgH93JoJ73VACkk4K3TcQDAJoieekorpGdQ9YREifCWzJF5uwGcZzKjpjDqsZZ3UVTsQ5jAkPD+3h/DGWqWmyiCO/LtTNfusSRr2la8Z3xjNJayssebAxqmsJT49Yw8f0ZR9Ph/L0YHKDYKxIdjTUQQg2ItjSkvzw7Al6VwBB1U9Vmw2LIHBz3wqJE4JVvMIcRUKExxJYDCExIQ7G6V5pESH9rqHcNC4fzPMqk4aY2ehBZN1Dle4wJmeCDeKgNYaJFxXYesgYMKcGrqJmvuJN0GMHKlU6iBDOoc3oMaERBffXYcjCEyhaUgV7fjiRHpVc18GmvL1W15A+EzbT51P8G5t3+AOMBaKlnfkKTt1PaMCAvvmdWIVbUbtxKpwFW5B9WRiZpSEdbFpb9lHVUYsX3Sokl9o6nNV9SOoiGj/LRrjWET9aYLKe59xgyttqESF9i2B+fmE6DCK8Sni8U4eRRg6eem9K5QT/G0T9h70hrpaQNaoZWWVNcBc3w5EvG6Fj3qoZAeSAiACNGLyf5KD5uIMZlUTyqknnqOyxiNA9YUvS2PIvtmScRW2qYDzdXJRsCOk8dRgn/P6UChAzaMRgU/WxIKtk/263bgmkbBkZ/WXYsmSoYQGR03a0kAWIOo+6/9B+2HiA6+hC2zL3DXo5Vl12S5aYtmdz8zw3uUUQYPd7IQYa4G8KdVqAY8CFdJaqDwtZ5Yp2Sh0qOY8SQgdp6FhOQ8dKN8Ieux5a1vdLbSOJOJnLdZwd/xssIqTbNRjrQdg6hObo8i+ev45woqPlYvoEkMAdRl/n8QTn0BFQ2VI30ySj4QtorYCoz3HraHUA25fNdFrHdYwuVWvmv8EiwlmQ+Txl3eyjWvv+N8EwUtS7B6+vodOLZ44Za0wv8poz6p1aPpFD4hBTW6A0nR/2KNoiyvNbuyCrHtN2FqNYxKKMfPsF3v9uo+1VyaakXdWH4f
F27jA6i8tgc+eyZcwspABBocqn0o4OdOKP9w/A+1P6UL4Wr1M82Kt5tjHdmI48T+a668dYRDg7Yl6ruJbPArJX2RxP5CYYRKhCYyDQmv3+oZX44ear8NwXj2JX7T9iTuk5/lbYI0QAIoFiF7B2al+svKc/avpm4MBQt24dhI7XLTId7uY6re1AZ2vSKX2TEOOJreAmlz0nwB5Jn0k3fhkdMYa2T7CGHTt0oBbY1AS7tw4NgSbkZrnpcmTiaWSw37ML+zw70dPZB9cXTseO2h04ekkl1CuK4WzW4AxrCGRJsMlGxbNtmU1IaUg0sdBMGKMZpc6k/ZNMUdEVMaMTq0bPWlcx0WSK2buMLtOMF1+VEVpiuwaCaMw71PPuQSC/QRSogkU7HGIGGsM+vLhjCU4E9xA9FDhY2MAmoMkt6pbBsAKGjxhyiom6gxZetofrstS0b2K7YapVhWdN2JPGU03f2TOQF9FdP6inxhNGsYEl8hPq+cjBJbn5HoEIQZVNpBA0I5XYs4m84hPNHdjldpm+uLLN73KaynW1iHAOZS3d/CdNzZLNUJZR911D23mEv7eNAUVknGwbOWTY3K0ntf7RiSp7uQb/kwUFClt4IpF1IIuish5BbGcKWBl5epmsq9JwyLTvyTg/wSLCOZQFdM+Xta5gNx6SncKH8+MJP6IGrqj6GsZjCAQNh7GXKx+qpkIhyKqMiBpGVoYbh2tCOF4XQq1Xw3TvtXjouUMY94kXeZ4wIuQ4OshnsBPoeop+baMMjZe5l0cZWMYyRN/llEAsZzFNUZOP3R/g5jkaZVzPI3iz6LQVZOhXkFPwjBCJzHOcqYbPH0J+1kDI9McmlAbmFGFG8QMY1etK1ARrdZ8hz2WsITn05gaM++g0vkNk8OfY0ewSmWV4lnb9UmsLJrJ5j1kmfdhr/OZFX76JBD2M9exjmlLxvWGpOJCzeKVExasHmzRsNcKMMjzjb19aMO2+mcVFQ7Du2EqUXDA
Gw7LLOrxmw5b1OPbb2RBtjs8FUWTkekN/a6Mxr8CcwD/DeDw/Kg/Srlc609UiwrklAvtgD8J8SjAvVd5LRHiE8Gn0NTqZKz692aGq853ZOSMycnIzJWcGbHx5e0RWEGluQaTB63H7z7ztfe/Nh71b1vE3ruk24BrCy+DvOuBSr+cL2J/KGxQsIpx7IkTlecKc2AO0esJiqMrrUJQq5hgyS2HUidY+EiUK+pPPomRjaxgH0cjjXhiv+o9fD88inL9oHaBYRDiviMA22aNMiwi3xRGCgU0oUJehB3vY01M0xNP4ZITAnkPIp8Y/nLZHkhWYqAce2stfWGBLMEc0LSKcl0SISj5vsewVd5ndVCXIHdHno/EBIc6QWEQ4f4nQaghIriDcCOMfelyaYvHsX/mwf9DxIeHz+NcopUOE/wkwAAeR3z4C+zelAAAAAElFTkSuQmCC</Image>
- <Url type="text/html" method="get" template="https://duckduckgo.com/">
- <Param name="q" value="{searchTerms}"/>
- <MozParam name="t" condition="purpose" purpose="contextmenu" value="ffcm"/>
- <MozParam name="t" condition="purpose" purpose="keyword" value="ffab"/>
- <MozParam name="t" condition="purpose" purpose="searchbar" value="ffsb"/>
- <MozParam name="t" condition="purpose" purpose="homepage" value="ffhp"/>
- <MozParam name="t" condition="purpose" purpose="newtab" value="ffnt"/>
- </Url>
- <Url type="application/x-suggestions+json" template="https://ac.duckduckgo.com/ac/">
- <Param name="q" value="{searchTerms}"/>
- <Param name="type" value="list"/>
- </Url>
-</OpenSearchDescription>
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>DuckDuckGo</ShortName>
+<Description>Duck Duck Go</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">data:image/png;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAANcNAADXDQAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAJyDsJmlk8pf6+v3s/v7+++zr/fcnIOyzJyDsgCcg7CYAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAnIOwBJyDscCcg7PZttJ7/7Pfs//////++xO7/S5GA/ycg7P8n
+IOz2JyDscCcg7AEAAAAAAAAAAAAAAAAnIOwBJyDstScg7P8nIOz/Y8p5/2fHZf9Yv0z/YcF2/1rB
+Uv8nIOz/JyDs/ycg7P8nIOy1JyDsAQAAAAAAAAAAJyDscCcg7P8nIOz/JyDs/4jQoP/p9+n/////
+/05X3v9LkYD/JyDs/ycg7P8nIOz/JyDs/ycg7HAAAAAAJyDsJicg7PYnIOz/JyDs/zUu7f/+/v//
+//////////89N+7/JyDs/yUo7f8nIOz/JyDs/ycg7P8nIOz2JyDsJicg7IAnIOz/JyDs/ycg7P9h
+XPH////////////t/P//GIr2/wfD+/8Gyfz/DKv5/yM57/8nIOz/JyDs/ycg7H8nIOyzJyDs/ycg
+7P8nIOz/jov1////////////Otz9/w3G/P8cWfH/JSvt/ycg7P8nIOz/JyDs/ycg7P8nIOyzJyDs
+5icg7P8nIOz/JyDs/7u5+f///////////27l/v8E0v3/BNL9/wTQ/f8Oofn/IT7v/ycg7P8nIOz/
+JyDs5icg7OYnIOz/JyDs/ycg7P/p6P3/uWsC////////////5fr//6Po/f8Thfb/DKv5/w6f+f8n IOz/JyDs/ycg7OYnIOyzJyDs/ycg7P8nIOz/9/b+/////////////////7lrAv/V1Pv/JyDs/ycg
+7P8nIOz/JyDs/ycg7P8nIOyzJyDsgCcg7P8nIOz/JyDs/8/N+///////////////////////iIX1
+/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDsfycg7CYnIOz2JyDs/ycg7P9FP+7/q6n4/+7u/f/n5v3/
+fXn0/yoj7P8nIOz/JyDs/ycg7P8nIOz/JyDs9icg7CYAAAAAJyDscCcg7P8nIOz/wsD6/+no/f/Y
+1/z/eHTz/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs/ycg7HAAAAAAAAAAACcg7AEnIOy1JyDs/ycg
+7P8nIOz/JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs/ycg7LUnIOwBAAAAAAAAAAAAAAAAJyDs
+AScg7HAnIOz2JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs9icg7HAnIOwBAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAJyDsJicg7IAnIOyzJyDs5icg7OYnIOyzJyDsgCcg7CYAAAAAAAAAAAAAAAAA
+AAAA+B8AAPAPAADAAwAAwAMAAIABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAACAAQAAwAMAAMAD
+AADwDwAA+B8AAA==</Image>
+<Url type="text/html" method="POST" template="http://3g2upl4pq6kufc4m.onion/html/">
+ <Param name="q" value="{searchTerms}"/>
+</Url>
+<SearchForm>http://3g2upl4pq6kufc4m.onion/html/</SearchForm>
+</SearchPlugin>
\ No newline at end of file
diff --git a/browser/locales/en-US/searchplugins/duckduckgo.xml b/browser/locales/en-US/searchplugins/duckduckgo.xml
deleted file mode 100644
index 4f00b4d..0000000
--- a/browser/locales/en-US/searchplugins/duckduckgo.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
-<ShortName>DuckDuckGo</ShortName>
-<Description>Duck Duck Go</Description>
-<InputEncoding>UTF-8</InputEncoding>
-<Image width="16" height="16">data:image/png;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAANcNAADXDQAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAJyDsJmlk8pf6+v3s/v7+++zr/fcnIOyzJyDsgCcg7CYAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAnIOwBJyDscCcg7PZttJ7/7Pfs//////++xO7/S5GA/ycg7P8n
-IOz2JyDscCcg7AEAAAAAAAAAAAAAAAAnIOwBJyDstScg7P8nIOz/Y8p5/2fHZf9Yv0z/YcF2/1rB
-Uv8nIOz/JyDs/ycg7P8nIOy1JyDsAQAAAAAAAAAAJyDscCcg7P8nIOz/JyDs/4jQoP/p9+n/////
-/05X3v9LkYD/JyDs/ycg7P8nIOz/JyDs/ycg7HAAAAAAJyDsJicg7PYnIOz/JyDs/zUu7f/+/v//
-//////////89N+7/JyDs/yUo7f8nIOz/JyDs/ycg7P8nIOz2JyDsJicg7IAnIOz/JyDs/ycg7P9h
-XPH////////////t/P//GIr2/wfD+/8Gyfz/DKv5/yM57/8nIOz/JyDs/ycg7H8nIOyzJyDs/ycg
-7P8nIOz/jov1////////////Otz9/w3G/P8cWfH/JSvt/ycg7P8nIOz/JyDs/ycg7P8nIOyzJyDs
-5icg7P8nIOz/JyDs/7u5+f///////////27l/v8E0v3/BNL9/wTQ/f8Oofn/IT7v/ycg7P8nIOz/
-JyDs5icg7OYnIOz/JyDs/ycg7P/p6P3/uWsC////////////5fr//6Po/f8Thfb/DKv5/w6f+f8n IOz/JyDs/ycg7OYnIOyzJyDs/ycg7P8nIOz/9/b+/////////////////7lrAv/V1Pv/JyDs/ycg
-7P8nIOz/JyDs/ycg7P8nIOyzJyDsgCcg7P8nIOz/JyDs/8/N+///////////////////////iIX1
-/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDsfycg7CYnIOz2JyDs/ycg7P9FP+7/q6n4/+7u/f/n5v3/
-fXn0/yoj7P8nIOz/JyDs/ycg7P8nIOz/JyDs9icg7CYAAAAAJyDscCcg7P8nIOz/wsD6/+no/f/Y
-1/z/eHTz/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs/ycg7HAAAAAAAAAAACcg7AEnIOy1JyDs/ycg
-7P8nIOz/JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs/ycg7LUnIOwBAAAAAAAAAAAAAAAAJyDs
-AScg7HAnIOz2JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs9icg7HAnIOwBAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAJyDsJicg7IAnIOyzJyDs5icg7OYnIOyzJyDsgCcg7CYAAAAAAAAAAAAAAAAA
-AAAA+B8AAPAPAADAAwAAwAMAAIABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAACAAQAAwAMAAMAD
-AADwDwAA+B8AAA==</Image>
-<Url type="text/html" method="POST" template="https://duckduckgo.com/html/">
- <Param name="q" value="{searchTerms}"/>
-</Url>
-<SearchForm>https://duckduckgo.com/html/</SearchForm>
-</SearchPlugin>
diff --git a/browser/locales/en-US/searchplugins/list.txt b/browser/locales/en-US/searchplugins/list.txt
index 956fb8e..71b6c0f 100644
--- a/browser/locales/en-US/searchplugins/list.txt
+++ b/browser/locales/en-US/searchplugins/list.txt
@@ -5,4 +5,3 @@ wikipedia
startpage
yahoo
google
-duckduckgo
1
0
[tor-browser/tor-browser-38.5.0esr-5.5-2] Bug 18008: Create a new MAR Signing key
by gk@torproject.org 20 Jan '16
by gk@torproject.org 20 Jan '16
20 Jan '16
commit f724aa4d55ad63f7524ce81e3b0307e396c19981
Author: Georg Koppen <gk(a)torproject.org>
Date: Mon Jan 18 10:51:05 2016 +0000
Bug 18008: Create a new MAR Signing key
This is part of our plan to rotate the main key used for signing MAR
files about once a year to make. This is a defense in depth measure as
there is no official way for revoking MAR signing keys.
We begin with just replacing the secondary key as this one got mostly
used to sign MAR files over the last year.
---
toolkit/mozapps/update/updater/release_secondary.der | Bin 1233 -> 1229 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
diff --git a/toolkit/mozapps/update/updater/release_secondary.der b/toolkit/mozapps/update/updater/release_secondary.der
index 334fad8..49a7c01 100644
Binary files a/toolkit/mozapps/update/updater/release_secondary.der and b/toolkit/mozapps/update/updater/release_secondary.der differ
1
0
[torbutton/master] Bug 16990: Correctly get proxyInfo from multi-part channel
by gk@torproject.org 20 Jan '16
by gk@torproject.org 20 Jan '16
20 Jan '16
commit e123feb185fa7cb8bf9daced6718c9801fe3e808
Author: Arthur Edelstein <arthuredelstein(a)gmail.com>
Date: Wed Jan 6 10:59:45 2016 -0800
Bug 16990: Correctly get proxyInfo from multi-part channel
---
src/chrome/content/tor-circuit-display.js | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/src/chrome/content/tor-circuit-display.js b/src/chrome/content/tor-circuit-display.js
index 94a5346..d5ef3d3 100644
--- a/src/chrome/content/tor-circuit-display.js
+++ b/src/chrome/content/tor-circuit-display.js
@@ -228,11 +228,11 @@ let getSOCKSCredentialsForBrowser = function (browser) {
if (docShell === null) return null;
let channel = docShell.currentDocumentChannel;
if (channel === null) return null;
- try {
- channel.QueryInterface(Ci.nsIProxiedChannel);
- } catch (e) {
- return null;
+ if (channel instanceof Ci.nsIMultiPartChannel) {
+ channel = channel.baseChannel;
}
+ if (channel === null) return null;
+ if (!(channel instanceof Ci.nsIProxiedChannel)) return null;
let proxyInfo = channel.proxyInfo;
if (proxyInfo === null) return null;
return proxyInfo.username + ":" + proxyInfo.password;
@@ -271,6 +271,8 @@ let updateCircuitDisplay = function () {
"<li>" + uiString("internet") + "</li>";
document.getElementById("circuit-nodes").innerHTML = nodeInnerHTML;
}
+ } else {
+ logger.eclog(5, "no SOCKS credentials found for current document.");
}
// Only show the Tor circuit if we have credentials and node data.
showCircuitDisplay(credentials && nodeData);
1
0
[tor-browser-bundle/hardened-builds] Bug 18104: Add new default obfs4 bridge, noether, and renumber the others.
by gk@torproject.org 20 Jan '16
by gk@torproject.org 20 Jan '16
20 Jan '16
commit a1efda4e4c74b18440c3a091cfecdb8ab34f62d3
Author: Isis Lovecruft <isis(a)torproject.org>
Date: Tue Jan 19 20:10:49 2016 +0000
Bug 18104: Add new default obfs4 bridge, noether, and renumber the others.
---
Bundle-Data/PTConfigs/bridge_prefs.js | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/Bundle-Data/PTConfigs/bridge_prefs.js b/Bundle-Data/PTConfigs/bridge_prefs.js
index 685c651..f79a7fc 100644
--- a/Bundle-Data/PTConfigs/bridge_prefs.js
+++ b/Bundle-Data/PTConfigs/bridge_prefs.js
@@ -21,10 +21,11 @@ pref("extensions.torlauncher.default_bridge.fte-ipv6.2", "fte [2001:49f0:d00a:1:
pref("extensions.torlauncher.default_bridge.scramblesuit.1", "scramblesuit 83.212.101.3:443 A09D536DD1752D542E1FBB3C9CE4449D51298239 password=XTCXLG2JAMJKZW2POLBAOWOQETQSMASH");
pref("extensions.torlauncher.default_bridge.obfs4.1", "obfs4 198.245.60.50:443 752CF7825B3B9EA6A98C83AC41F7099D67007EA5 cert=xpmQtKUqQ/6v5X7ijgYE/f03+l2/EuQ1dexjyUhh16wQlu/cpXUGalmhDIlhuiQPNEKmKw iat-mode=0");
-pref("extensions.torlauncher.default_bridge.obfs4.2", "obfs4 109.105.109.165:10527 8DFCD8FB3285E855F5A55EDDA35696C743ABFC4E cert=Bvg/itxeL4TWKLP6N1MaQzSOC6tcRIBv6q57DYAZc3b2AzuM+/TfB7mqTFEfXILCjEwzVA iat-mode=0");
-pref("extensions.torlauncher.default_bridge.obfs4.3", "obfs4 83.212.101.3:41213 A09D536DD1752D542E1FBB3C9CE4449D51298239 cert=lPRQ/MXdD1t5SRZ9MquYQNT9m5DV757jtdXdlePmRCudUU9CFUOX1Tm7/meFSyPOsud7Cw iat-mode=0");
-pref("extensions.torlauncher.default_bridge.obfs4.4", "obfs4 104.131.108.182:56880 EF577C30B9F788B0E1801CF7E433B3B77792B77A cert=0SFhfDQrKjUJP8Qq6wrwSICEPf3Vl/nJRsYxWbg3QRoSqhl2EB78MPS2lQxbXY4EW1wwXA iat-mode=0");
-pref("extensions.torlauncher.default_bridge.obfs4.5", "obfs4 109.105.109.147:13764 BBB28DF0F201E706BE564EFE690FE9577DD8386D cert=KfMQN/tNMFdda61hMgpiMI7pbwU1T+wxjTulYnfw+4sgvG0zSH7N7fwT10BI8MUdAD7iJA iat-mode=0");
+pref("extensions.torlauncher.default_bridge.obfs4.2", "obfs4 192.99.11.54:443 7B126FAB960E5AC6A629C729434FF84FB5074EC2 cert=VW5f8+IBUWpPFxF+rsiVy2wXkyTQG7vEd+rHeN2jV5LIDNu8wMNEOqZXPwHdwMVEBdqXEw iat-mode=0");
+pref("extensions.torlauncher.default_bridge.obfs4.3", "obfs4 109.105.109.165:10527 8DFCD8FB3285E855F5A55EDDA35696C743ABFC4E cert=Bvg/itxeL4TWKLP6N1MaQzSOC6tcRIBv6q57DYAZc3b2AzuM+/TfB7mqTFEfXILCjEwzVA iat-mode=0");
+pref("extensions.torlauncher.default_bridge.obfs4.4", "obfs4 83.212.101.3:41213 A09D536DD1752D542E1FBB3C9CE4449D51298239 cert=lPRQ/MXdD1t5SRZ9MquYQNT9m5DV757jtdXdlePmRCudUU9CFUOX1Tm7/meFSyPOsud7Cw iat-mode=0");
+pref("extensions.torlauncher.default_bridge.obfs4.5", "obfs4 104.131.108.182:56880 EF577C30B9F788B0E1801CF7E433B3B77792B77A cert=0SFhfDQrKjUJP8Qq6wrwSICEPf3Vl/nJRsYxWbg3QRoSqhl2EB78MPS2lQxbXY4EW1wwXA iat-mode=0");
+pref("extensions.torlauncher.default_bridge.obfs4.6", "obfs4 109.105.109.147:13764 BBB28DF0F201E706BE564EFE690FE9577DD8386D cert=KfMQN/tNMFdda61hMgpiMI7pbwU1T+wxjTulYnfw+4sgvG0zSH7N7fwT10BI8MUdAD7iJA iat-mode=0");
pref("extensions.torlauncher.default_bridge.meek-google.1", "meek 0.0.2.0:1 46D4A71197B8FA515A826C6B017C522FE264655B url=https://meek-reflect.appspot.com/ front=www.google.com");
pref("extensions.torlauncher.default_bridge.meek-amazon.1", "meek 0.0.2.0:2 B9E7141C594AF25699E0079C1F0146F409495296 url=https://d2zfqthxsdq309.cloudfront.net/ front=a0.awsstatic.com");
1
0
[tor-browser-bundle/master] Bug 18104: Add new default obfs4 bridge, noether, and renumber the others.
by gk@torproject.org 20 Jan '16
by gk@torproject.org 20 Jan '16
20 Jan '16
commit 92dcbb1e9c64c045dcca43005cb95a5e06fef762
Author: Isis Lovecruft <isis(a)torproject.org>
Date: Tue Jan 19 20:10:49 2016 +0000
Bug 18104: Add new default obfs4 bridge, noether, and renumber the others.
---
Bundle-Data/PTConfigs/bridge_prefs.js | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/Bundle-Data/PTConfigs/bridge_prefs.js b/Bundle-Data/PTConfigs/bridge_prefs.js
index 685c651..f79a7fc 100644
--- a/Bundle-Data/PTConfigs/bridge_prefs.js
+++ b/Bundle-Data/PTConfigs/bridge_prefs.js
@@ -21,10 +21,11 @@ pref("extensions.torlauncher.default_bridge.fte-ipv6.2", "fte [2001:49f0:d00a:1:
pref("extensions.torlauncher.default_bridge.scramblesuit.1", "scramblesuit 83.212.101.3:443 A09D536DD1752D542E1FBB3C9CE4449D51298239 password=XTCXLG2JAMJKZW2POLBAOWOQETQSMASH");
pref("extensions.torlauncher.default_bridge.obfs4.1", "obfs4 198.245.60.50:443 752CF7825B3B9EA6A98C83AC41F7099D67007EA5 cert=xpmQtKUqQ/6v5X7ijgYE/f03+l2/EuQ1dexjyUhh16wQlu/cpXUGalmhDIlhuiQPNEKmKw iat-mode=0");
-pref("extensions.torlauncher.default_bridge.obfs4.2", "obfs4 109.105.109.165:10527 8DFCD8FB3285E855F5A55EDDA35696C743ABFC4E cert=Bvg/itxeL4TWKLP6N1MaQzSOC6tcRIBv6q57DYAZc3b2AzuM+/TfB7mqTFEfXILCjEwzVA iat-mode=0");
-pref("extensions.torlauncher.default_bridge.obfs4.3", "obfs4 83.212.101.3:41213 A09D536DD1752D542E1FBB3C9CE4449D51298239 cert=lPRQ/MXdD1t5SRZ9MquYQNT9m5DV757jtdXdlePmRCudUU9CFUOX1Tm7/meFSyPOsud7Cw iat-mode=0");
-pref("extensions.torlauncher.default_bridge.obfs4.4", "obfs4 104.131.108.182:56880 EF577C30B9F788B0E1801CF7E433B3B77792B77A cert=0SFhfDQrKjUJP8Qq6wrwSICEPf3Vl/nJRsYxWbg3QRoSqhl2EB78MPS2lQxbXY4EW1wwXA iat-mode=0");
-pref("extensions.torlauncher.default_bridge.obfs4.5", "obfs4 109.105.109.147:13764 BBB28DF0F201E706BE564EFE690FE9577DD8386D cert=KfMQN/tNMFdda61hMgpiMI7pbwU1T+wxjTulYnfw+4sgvG0zSH7N7fwT10BI8MUdAD7iJA iat-mode=0");
+pref("extensions.torlauncher.default_bridge.obfs4.2", "obfs4 192.99.11.54:443 7B126FAB960E5AC6A629C729434FF84FB5074EC2 cert=VW5f8+IBUWpPFxF+rsiVy2wXkyTQG7vEd+rHeN2jV5LIDNu8wMNEOqZXPwHdwMVEBdqXEw iat-mode=0");
+pref("extensions.torlauncher.default_bridge.obfs4.3", "obfs4 109.105.109.165:10527 8DFCD8FB3285E855F5A55EDDA35696C743ABFC4E cert=Bvg/itxeL4TWKLP6N1MaQzSOC6tcRIBv6q57DYAZc3b2AzuM+/TfB7mqTFEfXILCjEwzVA iat-mode=0");
+pref("extensions.torlauncher.default_bridge.obfs4.4", "obfs4 83.212.101.3:41213 A09D536DD1752D542E1FBB3C9CE4449D51298239 cert=lPRQ/MXdD1t5SRZ9MquYQNT9m5DV757jtdXdlePmRCudUU9CFUOX1Tm7/meFSyPOsud7Cw iat-mode=0");
+pref("extensions.torlauncher.default_bridge.obfs4.5", "obfs4 104.131.108.182:56880 EF577C30B9F788B0E1801CF7E433B3B77792B77A cert=0SFhfDQrKjUJP8Qq6wrwSICEPf3Vl/nJRsYxWbg3QRoSqhl2EB78MPS2lQxbXY4EW1wwXA iat-mode=0");
+pref("extensions.torlauncher.default_bridge.obfs4.6", "obfs4 109.105.109.147:13764 BBB28DF0F201E706BE564EFE690FE9577DD8386D cert=KfMQN/tNMFdda61hMgpiMI7pbwU1T+wxjTulYnfw+4sgvG0zSH7N7fwT10BI8MUdAD7iJA iat-mode=0");
pref("extensions.torlauncher.default_bridge.meek-google.1", "meek 0.0.2.0:1 46D4A71197B8FA515A826C6B017C522FE264655B url=https://meek-reflect.appspot.com/ front=www.google.com");
pref("extensions.torlauncher.default_bridge.meek-amazon.1", "meek 0.0.2.0:2 B9E7141C594AF25699E0079C1F0146F409495296 url=https://d2zfqthxsdq309.cloudfront.net/ front=a0.awsstatic.com");
1
0
[torbutton/master] Bug 18019: Empty prompt shown after non-en-US update
by gk@torproject.org 19 Jan '16
by gk@torproject.org 19 Jan '16
19 Jan '16
commit 00a735a2284fe0bf90018b2f93a3ee8c47036ecd
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Thu Jan 14 16:41:25 2016 -0500
Bug 18019: Empty prompt shown after non-en-US update
Avoid displaying the "request English language web pages?" prompt
on non-HTTP pages. Previously, the prompt was displayed when the
about:tbupdate page was opened and, on Linux at least, the prompt
dialog came up blank. To avoid a similar problem in the case where
someone sets their homepage to an HTTP page, we delay showing the
prompt for two seconds when the URL of the page that is being loaded
matches one of the configured home page URLs.
Remove references to the following obsolete Firefox preferences:
intl.accept_charsets
intl.charsetmenu.browser.cache
Remove the following unused default preferences:
extensions.torbutton.saved.accept_charsets
extensions.torbutton.spoof_charset
extensions.torbutton.spoof_language
extensions.torbutton.spoof_locale
Remove the following unused entity from all dtd files:
torbutton.prefs.spoof_english
---
src/chrome/content/torbutton.js | 153 ++++++++++++++++++++++++-------
src/chrome/locale/af/torbutton.dtd | 1 -
src/chrome/locale/ak/torbutton.dtd | 1 -
src/chrome/locale/am/torbutton.dtd | 1 -
src/chrome/locale/ar/torbutton.dtd | 1 -
src/chrome/locale/arn/torbutton.dtd | 1 -
src/chrome/locale/ast/torbutton.dtd | 1 -
src/chrome/locale/az/torbutton.dtd | 1 -
src/chrome/locale/be/torbutton.dtd | 1 -
src/chrome/locale/bg/torbutton.dtd | 1 -
src/chrome/locale/bms/torbutton.dtd | 1 -
src/chrome/locale/bn-IN/torbutton.dtd | 1 -
src/chrome/locale/bn/torbutton.dtd | 1 -
src/chrome/locale/bo/torbutton.dtd | 1 -
src/chrome/locale/br/torbutton.dtd | 1 -
src/chrome/locale/bs/torbutton.dtd | 1 -
src/chrome/locale/ca/torbutton.dtd | 1 -
src/chrome/locale/cs/torbutton.dtd | 1 -
src/chrome/locale/csb/torbutton.dtd | 1 -
src/chrome/locale/cy/torbutton.dtd | 1 -
src/chrome/locale/da/torbutton.dtd | 1 -
src/chrome/locale/de/torbutton.dtd | 1 -
src/chrome/locale/dz/torbutton.dtd | 1 -
src/chrome/locale/el/torbutton.dtd | 1 -
src/chrome/locale/en/torbutton.dtd | 1 -
src/chrome/locale/eo/torbutton.dtd | 1 -
src/chrome/locale/es/torbutton.dtd | 1 -
src/chrome/locale/et/torbutton.dtd | 1 -
src/chrome/locale/eu/torbutton.dtd | 1 -
src/chrome/locale/fa/torbutton.dtd | 1 -
src/chrome/locale/fi/torbutton.dtd | 1 -
src/chrome/locale/fil/torbutton.dtd | 1 -
src/chrome/locale/fo/torbutton.dtd | 1 -
src/chrome/locale/fr/torbutton.dtd | 1 -
src/chrome/locale/fur/torbutton.dtd | 1 -
src/chrome/locale/fy/torbutton.dtd | 1 -
src/chrome/locale/ga/torbutton.dtd | 1 -
src/chrome/locale/gl/torbutton.dtd | 1 -
src/chrome/locale/gu/torbutton.dtd | 1 -
src/chrome/locale/gun/torbutton.dtd | 1 -
src/chrome/locale/ha/torbutton.dtd | 1 -
src/chrome/locale/he/torbutton.dtd | 1 -
src/chrome/locale/hi/torbutton.dtd | 1 -
src/chrome/locale/hr/torbutton.dtd | 1 -
src/chrome/locale/ht/torbutton.dtd | 1 -
src/chrome/locale/hu/torbutton.dtd | 1 -
src/chrome/locale/hy/torbutton.dtd | 1 -
src/chrome/locale/id/torbutton.dtd | 1 -
src/chrome/locale/is/torbutton.dtd | 1 -
src/chrome/locale/it/torbutton.dtd | 1 -
src/chrome/locale/ja/torbutton.dtd | 1 -
src/chrome/locale/jv/torbutton.dtd | 1 -
src/chrome/locale/ka/torbutton.dtd | 1 -
src/chrome/locale/km/torbutton.dtd | 1 -
src/chrome/locale/kn/torbutton.dtd | 1 -
src/chrome/locale/ko/torbutton.dtd | 1 -
src/chrome/locale/ku/torbutton.dtd | 1 -
src/chrome/locale/kw/torbutton.dtd | 1 -
src/chrome/locale/ky/torbutton.dtd | 1 -
src/chrome/locale/lb/torbutton.dtd | 1 -
src/chrome/locale/lg/torbutton.dtd | 1 -
src/chrome/locale/ln/torbutton.dtd | 1 -
src/chrome/locale/lo/torbutton.dtd | 1 -
src/chrome/locale/lt/torbutton.dtd | 1 -
src/chrome/locale/lv/torbutton.dtd | 1 -
src/chrome/locale/mg/torbutton.dtd | 1 -
src/chrome/locale/mi/torbutton.dtd | 1 -
src/chrome/locale/mk/torbutton.dtd | 1 -
src/chrome/locale/ml/torbutton.dtd | 1 -
src/chrome/locale/mn/torbutton.dtd | 1 -
src/chrome/locale/mr/torbutton.dtd | 1 -
src/chrome/locale/ms/torbutton.dtd | 1 -
src/chrome/locale/mt/torbutton.dtd | 1 -
src/chrome/locale/my/torbutton.dtd | 1 -
src/chrome/locale/nah/torbutton.dtd | 1 -
src/chrome/locale/nap/torbutton.dtd | 1 -
src/chrome/locale/nb/torbutton.dtd | 1 -
src/chrome/locale/ne/torbutton.dtd | 1 -
src/chrome/locale/nl/torbutton.dtd | 1 -
src/chrome/locale/nn/torbutton.dtd | 1 -
src/chrome/locale/nso/torbutton.dtd | 1 -
src/chrome/locale/oc/torbutton.dtd | 1 -
src/chrome/locale/or/torbutton.dtd | 1 -
src/chrome/locale/pa/torbutton.dtd | 1 -
src/chrome/locale/pap/torbutton.dtd | 1 -
src/chrome/locale/pl/torbutton.dtd | 1 -
src/chrome/locale/pms/torbutton.dtd | 1 -
src/chrome/locale/ps/torbutton.dtd | 1 -
src/chrome/locale/pt-BR/torbutton.dtd | 1 -
src/chrome/locale/pt/torbutton.dtd | 1 -
src/chrome/locale/ro/torbutton.dtd | 1 -
src/chrome/locale/ru/torbutton.dtd | 1 -
src/chrome/locale/sco/torbutton.dtd | 1 -
src/chrome/locale/sk/torbutton.dtd | 1 -
src/chrome/locale/sl/torbutton.dtd | 1 -
src/chrome/locale/so/torbutton.dtd | 1 -
src/chrome/locale/son/torbutton.dtd | 1 -
src/chrome/locale/sq/torbutton.dtd | 1 -
src/chrome/locale/sr/torbutton.dtd | 1 -
src/chrome/locale/st/torbutton.dtd | 1 -
src/chrome/locale/su/torbutton.dtd | 1 -
src/chrome/locale/sv/torbutton.dtd | 1 -
src/chrome/locale/sw/torbutton.dtd | 1 -
src/chrome/locale/ta/torbutton.dtd | 1 -
src/chrome/locale/te/torbutton.dtd | 1 -
src/chrome/locale/tg/torbutton.dtd | 1 -
src/chrome/locale/th/torbutton.dtd | 1 -
src/chrome/locale/ti/torbutton.dtd | 1 -
src/chrome/locale/tk/torbutton.dtd | 1 -
src/chrome/locale/tr/torbutton.dtd | 1 -
src/chrome/locale/uk/torbutton.dtd | 1 -
src/chrome/locale/ur/torbutton.dtd | 1 -
src/chrome/locale/ve/torbutton.dtd | 1 -
src/chrome/locale/vi/torbutton.dtd | 1 -
src/chrome/locale/wa/torbutton.dtd | 1 -
src/chrome/locale/wo/torbutton.dtd | 1 -
src/chrome/locale/zh-CN/torbutton.dtd | 1 -
src/chrome/locale/zh-HK/torbutton.dtd | 1 -
src/chrome/locale/zh-TW/torbutton.dtd | 1 -
src/chrome/locale/zu/torbutton.dtd | 1 -
src/defaults/preferences/preferences.js | 4 -
121 files changed, 122 insertions(+), 154 deletions(-)
diff --git a/src/chrome/content/torbutton.js b/src/chrome/content/torbutton.js
index 58ab20e..0d1cfe8 100644
--- a/src/chrome/content/torbutton.js
+++ b/src/chrome/content/torbutton.js
@@ -650,6 +650,13 @@ function torbutton_init() {
torbutton_log(3, 'init completed');
}
+
+function torbutton_should_prompt_for_language_preference() {
+ return torbutton_get_general_useragent_locale().substring(0, 2) != "en" &&
+ !m_tb_prefs.getBoolPref("extensions.torbutton.prompted_language");
+}
+
+
// Bug 1506 P3: This code asks the user once if they want to spoof their
// language to English.
//
@@ -657,20 +664,21 @@ function torbutton_init() {
// the extensions.torbutton.spoof_english preference accordingly.
function torbutton_prompt_for_language_preference() {
var prompts = Cc["@mozilla.org/embedcomp/prompt-service;1"]
- .getService(Components.interfaces.nsIPromptService);
+ .getService(Ci.nsIPromptService);
// Display two buttons, both with string titles.
var flags = prompts.STD_YES_NO_BUTTONS;
var message = torbutton_get_property_string("torbutton.popup.prompted_language");
- var response = prompts.confirmEx(null, "", message, flags, null, null, null,
- null, {value: false});
+ m_tb_prefs.setBoolPref("extensions.torbutton.prompted_language", true);
+ // Display modal prompt, anchored to this window.
+ var response = prompts.confirmEx(window, "", message, flags,
+ null, null, null, null, {value: false});
// Update preferences to reflect their response and to prevent the prompt from
// being displayed again.
m_tb_prefs.setBoolPref("extensions.torbutton.spoof_english", response == 0);
- m_tb_prefs.setBoolPref("extensions.torbutton.prompted_language", true);
}
function torbutton_confirm_plugins() {
@@ -2211,16 +2219,10 @@ function torbutton_update_fingerprinting_prefs() {
// Governed also by the spoof_english dialog..
if (m_tb_prefs.getBoolPref("extensions.torbutton.spoof_english")) {
m_tb_prefs.setCharPref("intl.accept_languages", "en-US, en");
- m_tb_prefs.setCharPref("intl.accept_charsets", "iso-8859-1,*,utf-8");
- m_tb_prefs.setCharPref("intl.charsetmenu.browser.cache", "UTF-8");
m_tb_prefs.setBoolPref("javascript.use_us_english_locale", true);
} else {
if(m_tb_prefs.prefHasUserValue("intl.accept_languages"))
m_tb_prefs.clearUserPref("intl.accept_languages");
- if(m_tb_prefs.prefHasUserValue("intl.charsetmenu.browser.cache"))
- m_tb_prefs.clearUserPref("intl.charsetmenu.browser.cache");
- if(m_tb_prefs.prefHasUserValue("intl.accept_charsets"))
- m_tb_prefs.clearUserPref("intl.accept_charsets");
m_tb_prefs.setBoolPref("javascript.use_us_english_locale", false);
}
} else {
@@ -2229,11 +2231,6 @@ function torbutton_update_fingerprinting_prefs() {
if(m_tb_prefs.prefHasUserValue("intl.accept_languages"))
m_tb_prefs.clearUserPref("intl.accept_languages");
- if(m_tb_prefs.prefHasUserValue("intl.charsetmenu.browser.cache"))
- m_tb_prefs.clearUserPref("intl.charsetmenu.browser.cache");
- if(m_tb_prefs.prefHasUserValue("intl.accept_charsets"))
- m_tb_prefs.clearUserPref("intl.accept_charsets");
-
}
}
@@ -2955,8 +2952,6 @@ function torbutton_do_startup()
}
// Bug 1506 P0: Has some tagging code (can be removed)
-// and the language prompt (probably the wrong place for the
-// call)
function torbutton_new_tab(event)
{
// listening for new tabs
@@ -2972,17 +2967,6 @@ function torbutton_new_tab(event)
if (!tor_tag) { // tor is enabled...
torbutton_do_async_versioncheck();
}
-
- // XXX: This is possibly slightly the wrong place to do this check,
- // but we know the TabOpen effect is late enough to provide the popup
- // after firefox is visible, which makes it more clear whose popup this is.
- //
- // Ask the user if they want to make "English requests" if their default
- // language isn't English and the prompt hasn't been displayed before.
- if (torbutton_get_general_useragent_locale().substring(0, 2) != "en" &&
- !m_tb_prefs.getBoolPref("extensions.torbutton.prompted_language")) {
- torbutton_prompt_for_language_preference();
- }
}
// Bug 1506 P3: Used to decide if we should resize the window.
@@ -3127,13 +3111,22 @@ function torbutton_new_window(event)
torbutton_do_startup();
+ let progress = Cc["@mozilla.org/docloaderservice;1"]
+ .getService(Ci.nsIWebProgress);
+
if (m_tb_prefs.getBoolPref("extensions.torbutton.resize_new_windows")
&& m_tb_prefs.getBoolPref("extensions.torbutton.tor_enabled")
&& torbutton_is_windowed(window)) {
- var progress = Cc["@mozilla.org/docloaderservice;1"].getService(Ci.
- nsIWebProgress);
progress.addProgressListener(torbutton_resizelistener,
- Components.interfaces.nsIWebProgress.NOTIFY_STATE_DOCUMENT);
+ Ci.nsIWebProgress.NOTIFY_STATE_DOCUMENT);
+ }
+
+ // If the default language is not English and we have not already asked,
+ // add a web progress listener that will show a "request English language
+ // web pages?" prompt the first time an http or https page is opened.
+ if (torbutton_should_prompt_for_language_preference()) {
+ progress.addProgressListener(torbutton_langPromptListener,
+ Ci.nsIWebProgress.NOTIFY_STATE_DOCUMENT);
}
// Check the version on every new window. We're already pinging check in these cases.
@@ -3451,4 +3444,102 @@ var torbutton_resizelistener =
onSecurityChange: function() {}
};
+var torbutton_langPromptListener =
+{
+ QueryInterface: function(aIID)
+ {
+ if (aIID.equals(Ci.nsIWebProgressListener) ||
+ aIID.equals(Ci.nsISupportsWeakReference) ||
+ aIID.equals(Ci.nsISupports))
+ return this;
+ throw Cr.NS_NOINTERFACE;
+ },
+
+ onLocationChange: function(aProgress, aRequest, aURI) {},
+
+ onStateChange: function(aProgress, aRequest, aFlag, aStatus) {
+ if (aFlag & Ci.nsIWebProgressListener.STATE_START) {
+ // If we are loading an HTTP page, show the
+ // "request English language web pages?" prompt.
+ try {
+ let httpChannel = aRequest.QueryInterface(Ci.nsIHttpChannel);
+
+ // The above QI did not throw, so we must have an HTTP request.
+ // Remove this listener and display the prompt if another window has
+ // not already done so.
+ let progress = Cc["@mozilla.org/docloaderservice;1"]
+ .getService(Ci.nsIWebProgress);
+ progress.removeProgressListener(torbutton_langPromptListener,
+ Ci.nsIWebProgress.NOTIFY_STATE_DOCUMENT);
+
+ if (torbutton_should_prompt_for_language_preference()) {
+ if (torbutton_is_homepage_url(aRequest.URI)) {
+ // If the homepage is being loaded, display the prompt after a
+ // delay to avoid a problem where a blank prompt is displayed.
+ // In this case, the homepage will be loaded using the current
+ // spoof English setting, which is OK.
+ setTimeout(function() {
+ if (torbutton_should_prompt_for_language_preference())
+ torbutton_prompt_for_language_preference();
+ }, 2000);
+ } else {
+ // No delay is needed. Display the prompt and fix up the
+ // Accept-Language header before allowing the load to continue.
+ torbutton_prompt_for_language_preference();
+
+ // The Accept-Language header for this request was set when the
+ // channel was created. Reset it to match the value that will be
+ // used for future requests.
+ let val = torbutton_get_current_accept_language_value(aRequest.URI);
+ if (val)
+ httpChannel.setRequestHeader("Accept-Language", val, false);
+ }
+ }
+ } catch (e) {}
+ }
+ },
+
+ onProgressChange: function(aProgress, aRequest, curSelfProgress,
+ maxSelfProgress, curTotalProgress,
+ maxTotalProgress) {},
+ onStatusChange: function(aProgress, aRequest, stat, message) {},
+ onSecurityChange: function() {}
+};
+
+
+// aURI should be an http or https nsIURI object.
+function torbutton_get_current_accept_language_value(aURI)
+{
+ try {
+ let ioService = Cc["@mozilla.org/network/io-service;1"]
+ .getService(Ci.nsIIOService);
+ let channel = ioService.newChannelFromURI(aURI);
+ let httpChannel = channel.QueryInterface(Ci.nsIHttpChannel);
+ return httpChannel.getRequestHeader("Accept-Language");
+ } catch (e) {}
+
+ return null;
+}
+
+function torbutton_is_homepage_url(aURI)
+{
+ if (!aURI)
+ return false;
+
+ let homePageURLs;
+ let choice = m_tb_prefs.getIntPref("browser.startup.page");
+ if ((1 == choice) || (3 == choice)) try {
+ // A homepage may be used at startup. Get the values and check against
+ // aURI.spec.
+ homePageURLs = m_tb_prefs.getComplexValue("browser.startup.homepage",
+ Ci.nsIPrefLocalizedString).data;
+ } catch (e) {}
+
+ if (!homePageURLs)
+ return false;
+
+ let urls = homePageURLs.split('|');
+ return (urls.indexOf(aURI.spec) >= 0);
+}
+
//vim:set ts=4
diff --git a/src/chrome/locale/af/torbutton.dtd b/src/chrome/locale/af/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/af/torbutton.dtd
+++ b/src/chrome/locale/af/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/ak/torbutton.dtd b/src/chrome/locale/ak/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/ak/torbutton.dtd
+++ b/src/chrome/locale/ak/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/am/torbutton.dtd b/src/chrome/locale/am/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/am/torbutton.dtd
+++ b/src/chrome/locale/am/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/ar/torbutton.dtd b/src/chrome/locale/ar/torbutton.dtd
index 4908910..ebcbf72 100644
--- a/src/chrome/locale/ar/torbutton.dtd
+++ b/src/chrome/locale/ar/torbutton.dtd
@@ -74,7 +74,6 @@
<!ENTITY torbutton.prefs.no_shutdown "لا تمسح ملفات تعريف الارتباط (كوكيز) عند إغلاق المتصفح">
<!ENTITY torbutton.prefs.disable_sessionstore "عطّل حفظ الجلسة (محبّذ)">
<!ENTITY torbutton.prefs.headers "الترويسات">
-<!ENTITY torbutton.prefs.spoof_english "انتحل صفة متصفح إنجليزي أمريكي">
<!ENTITY torbutton.prefs.refererspoofing "تزييف المرجع">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "محاكاة ساخرة ذكية للتحويل أثناء عمل تور (سخرية المجال المرجعي المتقاطع)">
diff --git a/src/chrome/locale/arn/torbutton.dtd b/src/chrome/locale/arn/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/arn/torbutton.dtd
+++ b/src/chrome/locale/arn/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/ast/torbutton.dtd b/src/chrome/locale/ast/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/ast/torbutton.dtd
+++ b/src/chrome/locale/ast/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/az/torbutton.dtd b/src/chrome/locale/az/torbutton.dtd
index 2953324..3130db7 100644
--- a/src/chrome/locale/az/torbutton.dtd
+++ b/src/chrome/locale/az/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Sönərkən kukiləri silmə">
<!ENTITY torbutton.prefs.disable_sessionstore "Yaddaşa verərkən söndür (məsləhətdir)">
<!ENTITY torbutton.prefs.headers "Başlıqlar">
-<!ENTITY torbutton.prefs.spoof_english "ENG səyyahını dəyiş">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/be/torbutton.dtd b/src/chrome/locale/be/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/be/torbutton.dtd
+++ b/src/chrome/locale/be/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/bg/torbutton.dtd b/src/chrome/locale/bg/torbutton.dtd
index d0cd061..271f389 100644
--- a/src/chrome/locale/bg/torbutton.dtd
+++ b/src/chrome/locale/bg/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/bms/torbutton.dtd b/src/chrome/locale/bms/torbutton.dtd
index 0bee3a1..740060d 100644
--- a/src/chrome/locale/bms/torbutton.dtd
+++ b/src/chrome/locale/bms/torbutton.dtd
@@ -59,7 +59,6 @@
<!ENTITY torbutton.prefs.no_shutdown "ပိတ္သိမ္းလွ်င္ cookies မ်ားကုိ မရွင္းလင္းပါႏွင့္">
<!ENTITY torbutton.prefs.disable_sessionstore "သိမ္းဆည္းေနစဥ္ Session ကုိ ပိတ္ပင္ထားရန္ (အၾကံျပဳေထာက္ခံပါသည္)">
<!ENTITY torbutton.prefs.headers "ေခါင္းစည္းမ်ား">
-<!ENTITY torbutton.prefs.spoof_english "US အဂၤလိပ္ browser ကုိ Spoof လုပ္ရန္">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/bn-IN/torbutton.dtd b/src/chrome/locale/bn-IN/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/bn-IN/torbutton.dtd
+++ b/src/chrome/locale/bn-IN/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/bn/torbutton.dtd b/src/chrome/locale/bn/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/bn/torbutton.dtd
+++ b/src/chrome/locale/bn/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/bo/torbutton.dtd b/src/chrome/locale/bo/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/bo/torbutton.dtd
+++ b/src/chrome/locale/bo/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/br/torbutton.dtd b/src/chrome/locale/br/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/br/torbutton.dtd
+++ b/src/chrome/locale/br/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/bs/torbutton.dtd b/src/chrome/locale/bs/torbutton.dtd
index cc23948..f5de8f0 100644
--- a/src/chrome/locale/bs/torbutton.dtd
+++ b/src/chrome/locale/bs/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/ca/torbutton.dtd b/src/chrome/locale/ca/torbutton.dtd
index 38408ec..188aa83 100644
--- a/src/chrome/locale/ca/torbutton.dtd
+++ b/src/chrome/locale/ca/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "No esborris les galetes a l'hora de tancar">
<!ENTITY torbutton.prefs.disable_sessionstore "Desactivar guardat de sessió (recommendat)">
<!ENTITY torbutton.prefs.headers "Capçaleres">
-<!ENTITY torbutton.prefs.spoof_english "Simular navegador anglès">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/cs/torbutton.dtd b/src/chrome/locale/cs/torbutton.dtd
index f02122e..2a6f104 100644
--- a/src/chrome/locale/cs/torbutton.dtd
+++ b/src/chrome/locale/cs/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Hlava">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/csb/torbutton.dtd b/src/chrome/locale/csb/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/csb/torbutton.dtd
+++ b/src/chrome/locale/csb/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/cy/torbutton.dtd b/src/chrome/locale/cy/torbutton.dtd
index 550acef..b66337f 100644
--- a/src/chrome/locale/cy/torbutton.dtd
+++ b/src/chrome/locale/cy/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/da/torbutton.dtd b/src/chrome/locale/da/torbutton.dtd
index 214f2aa..c2c5169 100644
--- a/src/chrome/locale/da/torbutton.dtd
+++ b/src/chrome/locale/da/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Ryd ikke mine cookies ved nedlukning">
<!ENTITY torbutton.prefs.disable_sessionstore "Deaktiver Sessions Lagring (anbefales)">
<!ENTITY torbutton.prefs.headers "Hoveder">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US Engelsk Browser">
<!ENTITY torbutton.prefs.refererspoofing "Forfalskning af henviser">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart forfalskning af henviser under brug af Tor (forfalsk henvisninger som går på tværs af domæner)">
diff --git a/src/chrome/locale/de/torbutton.dtd b/src/chrome/locale/de/torbutton.dtd
index ebfdb3d..99ef7ba 100644
--- a/src/chrome/locale/de/torbutton.dtd
+++ b/src/chrome/locale/de/torbutton.dtd
@@ -74,7 +74,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Cookies beim Beenden des Browsers nicht löschen">
<!ENTITY torbutton.prefs.disable_sessionstore "Speichern des Browserzustandes zwischen Programmaufrufen deaktivieren (empfohlen)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Englischen Browser (US) vortäuschen">
<!ENTITY torbutton.prefs.refererspoofing "Absender tarnen">
<!ENTITY torbutton.prefs.spoofblank "Einen leeren Absender vortäuschen, während Tor benutzt wird (kann einige Seiten ruinieren)">
<!ENTITY torbutton.prefs.smartspoof "Intelligente Absendertarnung während der Benutzung von Tor (Vortäuschung verschiedener Domainabsender)">
diff --git a/src/chrome/locale/dz/torbutton.dtd b/src/chrome/locale/dz/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/dz/torbutton.dtd
+++ b/src/chrome/locale/dz/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/el/torbutton.dtd b/src/chrome/locale/el/torbutton.dtd
index f0fbbe6..d20db4b 100644
--- a/src/chrome/locale/el/torbutton.dtd
+++ b/src/chrome/locale/el/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Να μην γίνει εκκαθάριση cookies κατά το κλείσιμο">
<!ENTITY torbutton.prefs.disable_sessionstore "Απενεργοποίηση αποθήκευσης συνεδρίας (συνιστάται)">
<!ENTITY torbutton.prefs.headers "Κεφαλίδες">
-<!ENTITY torbutton.prefs.spoof_english "Παραπλάνηση της γλώσσας US English του Περιηγητή">
<!ENTITY torbutton.prefs.refererspoofing "Παραπλάνηση διεύθυνσης αναφοράς">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Παραπλάνηση ευφυούς αναφορέα κατά την χρήση του Tor (παραπλανεί ">
diff --git a/src/chrome/locale/en/torbutton.dtd b/src/chrome/locale/en/torbutton.dtd
index 8ff33c5..223302e 100644
--- a/src/chrome/locale/en/torbutton.dtd
+++ b/src/chrome/locale/en/torbutton.dtd
@@ -74,7 +74,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/eo/torbutton.dtd b/src/chrome/locale/eo/torbutton.dtd
index 07499c0..472f5b8 100644
--- a/src/chrome/locale/eo/torbutton.dtd
+++ b/src/chrome/locale/eo/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/es/torbutton.dtd b/src/chrome/locale/es/torbutton.dtd
index 94a7219..15c355e 100644
--- a/src/chrome/locale/es/torbutton.dtd
+++ b/src/chrome/locale/es/torbutton.dtd
@@ -74,7 +74,6 @@
<!ENTITY torbutton.prefs.no_shutdown "No borrar mis cookies al cerrar">
<!ENTITY torbutton.prefs.disable_sessionstore "Deshabilitar el guardado de sesiones (recomendado)">
<!ENTITY torbutton.prefs.headers "Cabeceras">
-<!ENTITY torbutton.prefs.spoof_english "Simular navegador en inglés de EEUU">
<!ENTITY torbutton.prefs.refererspoofing "Simulación del remitente (referer, dirección desde la que accedemos a otra)">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Simular smart referer al usar de Tor (suprime el remitente en cambios de dominio)">
diff --git a/src/chrome/locale/et/torbutton.dtd b/src/chrome/locale/et/torbutton.dtd
index 8240b08..dfd7e0c 100644
--- a/src/chrome/locale/et/torbutton.dtd
+++ b/src/chrome/locale/et/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/eu/torbutton.dtd b/src/chrome/locale/eu/torbutton.dtd
index 066fbc3..43b5a18 100644
--- a/src/chrome/locale/eu/torbutton.dtd
+++ b/src/chrome/locale/eu/torbutton.dtd
@@ -74,7 +74,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Ez garbitu nire cookieak itzaltzerakoan">
<!ENTITY torbutton.prefs.disable_sessionstore "Ezagitu Saioa Gordetzea (gomendatua)">
<!ENTITY torbutton.prefs.headers "Goiburuak">
-<!ENTITY torbutton.prefs.spoof_english "AEB Ingelera Nabigatzailea balitz ordeztu">
<!ENTITY torbutton.prefs.refererspoofing "Refereraren nortasuna ordeztu">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Adimentsuki ordeztu referera Tor erabiltzen den bitartean (zeharkako domeinu refererak ordezten ditu)">
diff --git a/src/chrome/locale/fa/torbutton.dtd b/src/chrome/locale/fa/torbutton.dtd
index d860beb..23864a3 100644
--- a/src/chrome/locale/fa/torbutton.dtd
+++ b/src/chrome/locale/fa/torbutton.dtd
@@ -74,7 +74,6 @@
<!ENTITY torbutton.prefs.no_shutdown "پاک نکردن کوکی ها هنگام بستن">
<!ENTITY torbutton.prefs.disable_sessionstore "غیرفعال کردن ذخیرهسازی نشست (Session) ها (توصیه شده)">
<!ENTITY torbutton.prefs.headers "سربرگها">
-<!ENTITY torbutton.prefs.spoof_english "جعل هویت یک مرورگر با زبان انگليسی آمریکایی">
<!ENTITY torbutton.prefs.refererspoofing "جعل هويت ارجاع دهنده">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "جعل هويت هوشمندانه ارجاع دهنده هنگام استفاده از تُر (ارجاع دهنده های ميان دامنهای را جعل هويت می کند)">
diff --git a/src/chrome/locale/fi/torbutton.dtd b/src/chrome/locale/fi/torbutton.dtd
index db531b9..c580ded 100644
--- a/src/chrome/locale/fi/torbutton.dtd
+++ b/src/chrome/locale/fi/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Älä poista evästeitä lopettaessa">
<!ENTITY torbutton.prefs.disable_sessionstore "Estä istunnon (Session) tallennus (suositeltavaa)">
<!ENTITY torbutton.prefs.headers "Tunnistetiedot">
-<!ENTITY torbutton.prefs.spoof_english 'Näytä selaimen asetus ulospäin "US English"'>
<!ENTITY torbutton.prefs.refererspoofing "Referer-tunnisteen väärentäminen">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Väärennä referer-tunniste älykkäästi, kun Tor on käytössä (lähettää väärennetyn tunnisteen)">
diff --git a/src/chrome/locale/fil/torbutton.dtd b/src/chrome/locale/fil/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/fil/torbutton.dtd
+++ b/src/chrome/locale/fil/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/fo/torbutton.dtd b/src/chrome/locale/fo/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/fo/torbutton.dtd
+++ b/src/chrome/locale/fo/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/fr/torbutton.dtd b/src/chrome/locale/fr/torbutton.dtd
index 290505a..c1cf801 100644
--- a/src/chrome/locale/fr/torbutton.dtd
+++ b/src/chrome/locale/fr/torbutton.dtd
@@ -74,7 +74,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Ne pas supprimer mes cookies à la fermeture">
<!ENTITY torbutton.prefs.disable_sessionstore "Désactiver la fonction de sauvegarde de session (recommandé)">
<!ENTITY torbutton.prefs.headers "Entêtes">
-<!ENTITY torbutton.prefs.spoof_english "Imiter un navigateur anglais US">
<!ENTITY torbutton.prefs.refererspoofing "Altération d'adresse référente">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Altération intelligente de l'adresse référente lorsque Tor est actif (altère les réferences aux domaines externes)">
diff --git a/src/chrome/locale/fur/torbutton.dtd b/src/chrome/locale/fur/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/fur/torbutton.dtd
+++ b/src/chrome/locale/fur/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/fy/torbutton.dtd b/src/chrome/locale/fy/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/fy/torbutton.dtd
+++ b/src/chrome/locale/fy/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/ga/torbutton.dtd b/src/chrome/locale/ga/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/ga/torbutton.dtd
+++ b/src/chrome/locale/ga/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/gl/torbutton.dtd b/src/chrome/locale/gl/torbutton.dtd
index e71657a..cf56f33 100644
--- a/src/chrome/locale/gl/torbutton.dtd
+++ b/src/chrome/locale/gl/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/gu/torbutton.dtd b/src/chrome/locale/gu/torbutton.dtd
index ff1d104..46e01d1 100644
--- a/src/chrome/locale/gu/torbutton.dtd
+++ b/src/chrome/locale/gu/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "બંધ કરતી વખતે મારી કૂકીઓ સાફ ન કરો">
<!ENTITY torbutton.prefs.disable_sessionstore "સત્રને સંગ્રહ કરવાનું નિષ્ક્રિય કરો (સૂચવેલ)">
<!ENTITY torbutton.prefs.headers "શીર્ષકો">
-<!ENTITY torbutton.prefs.spoof_english "યુએસ અંગ્રેજી બ્રાઉઝરને છેતરો">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/gun/torbutton.dtd b/src/chrome/locale/gun/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/gun/torbutton.dtd
+++ b/src/chrome/locale/gun/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/ha/torbutton.dtd b/src/chrome/locale/ha/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/ha/torbutton.dtd
+++ b/src/chrome/locale/ha/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/he/torbutton.dtd b/src/chrome/locale/he/torbutton.dtd
index aaf1ff2..12523f3 100644
--- a/src/chrome/locale/he/torbutton.dtd
+++ b/src/chrome/locale/he/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "אל תנקה את הקוקיז שלי בזמן סגירת הדפדפן">
<!ENTITY torbutton.prefs.disable_sessionstore "ביטול שמירת מושב (מומלץ)">
<!ENTITY torbutton.prefs.headers "כותרות">
-<!ENTITY torbutton.prefs.spoof_english 'דפדפן אנגלית לזייף ארה"ב'>
<!ENTITY torbutton.prefs.refererspoofing "זיוף Referer">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "לזייף referer חכם במהלך שימוש טור (משייכי מזייף צולב דומיין)">
diff --git a/src/chrome/locale/hi/torbutton.dtd b/src/chrome/locale/hi/torbutton.dtd
index 081cbba..5dc00ee 100644
--- a/src/chrome/locale/hi/torbutton.dtd
+++ b/src/chrome/locale/hi/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/hr/torbutton.dtd b/src/chrome/locale/hr/torbutton.dtd
index 83d400d..bd37ad5 100644
--- a/src/chrome/locale/hr/torbutton.dtd
+++ b/src/chrome/locale/hr/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/ht/torbutton.dtd b/src/chrome/locale/ht/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/ht/torbutton.dtd
+++ b/src/chrome/locale/ht/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/hu/torbutton.dtd b/src/chrome/locale/hu/torbutton.dtd
index 557f4a9..6979247 100644
--- a/src/chrome/locale/hu/torbutton.dtd
+++ b/src/chrome/locale/hu/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Kilépéskor ne törölje a sütijeimet">
<!ENTITY torbutton.prefs.disable_sessionstore "Munkafolyamat mentésének tiltása (ajánlott)">
<!ENTITY torbutton.prefs.headers "Fejlécek">
-<!ENTITY torbutton.prefs.spoof_english "Amerikai angol böngészőnek álcázás">
<!ENTITY torbutton.prefs.refererspoofing "Hivatkozó oldal hamisítás">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Intelligens hivatkozó oldal hazudás a Tor használat alatt (kereszt domain hivatkozást hazudik)">
diff --git a/src/chrome/locale/hy/torbutton.dtd b/src/chrome/locale/hy/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/hy/torbutton.dtd
+++ b/src/chrome/locale/hy/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/id/torbutton.dtd b/src/chrome/locale/id/torbutton.dtd
index cf2ecde..7a73427 100644
--- a/src/chrome/locale/id/torbutton.dtd
+++ b/src/chrome/locale/id/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Jangan bersihkan cookie saya ketika mematikan browser">
<!ENTITY torbutton.prefs.disable_sessionstore "Nonaktifkan Penyimpanan Sesi (disarankan)">
<!ENTITY torbutton.prefs.headers "Header">
-<!ENTITY torbutton.prefs.spoof_english "Aktifkan penyamar untuk browser US-English">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/is/torbutton.dtd b/src/chrome/locale/is/torbutton.dtd
index 6893200..ced330e 100644
--- a/src/chrome/locale/is/torbutton.dtd
+++ b/src/chrome/locale/is/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/it/torbutton.dtd b/src/chrome/locale/it/torbutton.dtd
index c42fb54..c92526f 100644
--- a/src/chrome/locale/it/torbutton.dtd
+++ b/src/chrome/locale/it/torbutton.dtd
@@ -74,7 +74,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Non cancellare i cookies alla chiusura del browser">
<!ENTITY torbutton.prefs.disable_sessionstore "Disabilita il salvataggio della sessione (consigliato)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Simula di essere un browser US English">
<!ENTITY torbutton.prefs.refererspoofing "Offusca i Referer">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Offusca in modo intelligente i Referef durante l'uso di Tor (offusca i riferimenti da un dominio ad un altro)">
diff --git a/src/chrome/locale/ja/torbutton.dtd b/src/chrome/locale/ja/torbutton.dtd
index 4582b06..64e91a4 100644
--- a/src/chrome/locale/ja/torbutton.dtd
+++ b/src/chrome/locale/ja/torbutton.dtd
@@ -74,7 +74,6 @@
<!ENTITY torbutton.prefs.no_shutdown "シャットダウン時に私のcookieを削除しない">
<!ENTITY torbutton.prefs.disable_sessionstore "セッション保存を無効化 (推奨)">
<!ENTITY torbutton.prefs.headers "ヘッダ送信">
-<!ENTITY torbutton.prefs.spoof_english "アメリカ英語のブラウザを詐称する">
<!ENTITY torbutton.prefs.refererspoofing "リファラを偽装する">
<!ENTITY torbutton.prefs.spoofblank "Tor使用中は空白のリファラに偽装する (一部のサイトを壊すかもしれません)">
<!ENTITY torbutton.prefs.smartspoof "Tor使用中はスマートなリファラ偽装 (クロスドメインのリファラを偽装する)">
diff --git a/src/chrome/locale/jv/torbutton.dtd b/src/chrome/locale/jv/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/jv/torbutton.dtd
+++ b/src/chrome/locale/jv/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/ka/torbutton.dtd b/src/chrome/locale/ka/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/ka/torbutton.dtd
+++ b/src/chrome/locale/ka/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/km/torbutton.dtd b/src/chrome/locale/km/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/km/torbutton.dtd
+++ b/src/chrome/locale/km/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/kn/torbutton.dtd b/src/chrome/locale/kn/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/kn/torbutton.dtd
+++ b/src/chrome/locale/kn/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/ko/torbutton.dtd b/src/chrome/locale/ko/torbutton.dtd
index 708c966..0ce3fce 100644
--- a/src/chrome/locale/ko/torbutton.dtd
+++ b/src/chrome/locale/ko/torbutton.dtd
@@ -74,7 +74,6 @@
<!ENTITY torbutton.prefs.no_shutdown "종료시 쿠키를 삭제하지 않음">
<!ENTITY torbutton.prefs.disable_sessionstore "세션을 저장하지 않음 (추천)">
<!ENTITY torbutton.prefs.headers "헤더">
-<!ENTITY torbutton.prefs.spoof_english "미국식 영어 브라우저로 조작">
<!ENTITY torbutton.prefs.refererspoofing "리퍼러 스푸핑">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Tor 사용시 스마트 리퍼러 조작 (도메인 리퍼러를 가로질러 조작)">
diff --git a/src/chrome/locale/ku/torbutton.dtd b/src/chrome/locale/ku/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/ku/torbutton.dtd
+++ b/src/chrome/locale/ku/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/kw/torbutton.dtd b/src/chrome/locale/kw/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/kw/torbutton.dtd
+++ b/src/chrome/locale/kw/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/ky/torbutton.dtd b/src/chrome/locale/ky/torbutton.dtd
index 50a94d9..9bd8a41 100644
--- a/src/chrome/locale/ky/torbutton.dtd
+++ b/src/chrome/locale/ky/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/lb/torbutton.dtd b/src/chrome/locale/lb/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/lb/torbutton.dtd
+++ b/src/chrome/locale/lb/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/lg/torbutton.dtd b/src/chrome/locale/lg/torbutton.dtd
index b3b9968..5b05d1d 100644
--- a/src/chrome/locale/lg/torbutton.dtd
+++ b/src/chrome/locale/lg/torbutton.dtd
@@ -59,7 +59,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/ln/torbutton.dtd b/src/chrome/locale/ln/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/ln/torbutton.dtd
+++ b/src/chrome/locale/ln/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/lo/torbutton.dtd b/src/chrome/locale/lo/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/lo/torbutton.dtd
+++ b/src/chrome/locale/lo/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/lt/torbutton.dtd b/src/chrome/locale/lt/torbutton.dtd
index 10c3b14..001c093 100644
--- a/src/chrome/locale/lt/torbutton.dtd
+++ b/src/chrome/locale/lt/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/lv/torbutton.dtd b/src/chrome/locale/lv/torbutton.dtd
index aed59e9..d1abb37 100644
--- a/src/chrome/locale/lv/torbutton.dtd
+++ b/src/chrome/locale/lv/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Izslēgšanās laikā neizdzēst manas sīkdatnes">
<!ENTITY torbutton.prefs.disable_sessionstore "Atspējot sesijas saglabāšanu (ieteicami)">
<!ENTITY torbutton.prefs.headers "Galvenes">
-<!ENTITY torbutton.prefs.spoof_english "Maldināt, uzdodoties par pārlūku, kurš strādā amerikāņu angļu valodā">
<!ENTITY torbutton.prefs.refererspoofing "Maldināšana, norādot aplamas atsauces">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Vieda maldināšana, Tor'a lietošanas laikā norādot aplamas atsauces (maldina, norādot šķērsdomēnu atsauces)">
diff --git a/src/chrome/locale/mg/torbutton.dtd b/src/chrome/locale/mg/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/mg/torbutton.dtd
+++ b/src/chrome/locale/mg/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/mi/torbutton.dtd b/src/chrome/locale/mi/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/mi/torbutton.dtd
+++ b/src/chrome/locale/mi/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/mk/torbutton.dtd b/src/chrome/locale/mk/torbutton.dtd
index 34895dd..6dc29be 100644
--- a/src/chrome/locale/mk/torbutton.dtd
+++ b/src/chrome/locale/mk/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Не ги бриши колачињата при исклучување">
<!ENTITY torbutton.prefs.disable_sessionstore "Не ја зачувувај сесијата (препорачано)">
<!ENTITY torbutton.prefs.headers "Идентификација">
-<!ENTITY torbutton.prefs.spoof_english "Преправај се дека користиш американски браусер">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/ml/torbutton.dtd b/src/chrome/locale/ml/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/ml/torbutton.dtd
+++ b/src/chrome/locale/ml/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/mn/torbutton.dtd b/src/chrome/locale/mn/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/mn/torbutton.dtd
+++ b/src/chrome/locale/mn/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/mr/torbutton.dtd b/src/chrome/locale/mr/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/mr/torbutton.dtd
+++ b/src/chrome/locale/mr/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/ms/torbutton.dtd b/src/chrome/locale/ms/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/ms/torbutton.dtd
+++ b/src/chrome/locale/ms/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/mt/torbutton.dtd b/src/chrome/locale/mt/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/mt/torbutton.dtd
+++ b/src/chrome/locale/mt/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/my/torbutton.dtd b/src/chrome/locale/my/torbutton.dtd
index 1f31c3c..b962348 100644
--- a/src/chrome/locale/my/torbutton.dtd
+++ b/src/chrome/locale/my/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "စက်ပိတ်ချိန်တွင် ကျွန်တော့် ကွက်ကီးကို မရှင်းပါနှင့်">
<!ENTITY torbutton.prefs.disable_sessionstore "လုပ်ငန်း သိမ်းဆည်းမှုကို ပိတ်ရန် (အကြံပြုထားသည်)">
<!ENTITY torbutton.prefs.headers "ခေါင်းစည်းများ">
-<!ENTITY torbutton.prefs.spoof_english "ယူအက်စ် အင်္ဂလိပ်သုံး ဘရောင်ဆာကို ပုံမှားရိုက်ရန်">
<!ENTITY torbutton.prefs.refererspoofing "ရည်ညွှန်းသူ ပုံမှားရိုက်ခြင်း">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Tor သုံးစွဲနေချိန်အတွင်း ရည်ညွှန်းချက် ပုံမှားရိုက်ခြင်းကို ပြင်ရန်(ဒိုမိန်း ရည်ညွှန်းချက်များကို ပုံမှားရိုက်ချက်များ)">
diff --git a/src/chrome/locale/nah/torbutton.dtd b/src/chrome/locale/nah/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/nah/torbutton.dtd
+++ b/src/chrome/locale/nah/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/nap/torbutton.dtd b/src/chrome/locale/nap/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/nap/torbutton.dtd
+++ b/src/chrome/locale/nap/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/nb/torbutton.dtd b/src/chrome/locale/nb/torbutton.dtd
index 92ff5d9..54dcc53 100644
--- a/src/chrome/locale/nb/torbutton.dtd
+++ b/src/chrome/locale/nb/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Ikke slett informasjonskapslene mine under avslutning">
<!ENTITY torbutton.prefs.disable_sessionstore "Deaktiver lagring av sesjoner (anbefalt)">
<!ENTITY torbutton.prefs.headers "Topptekst">
-<!ENTITY torbutton.prefs.spoof_english "Parodier US Engelsk nettleser">
<!ENTITY torbutton.prefs.refererspoofing "Henviserparodiering">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart henviserparodiering mens du bruker Tor (parodierer henvisninger på tvers av domener)">
diff --git a/src/chrome/locale/ne/torbutton.dtd b/src/chrome/locale/ne/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/ne/torbutton.dtd
+++ b/src/chrome/locale/ne/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/nl/torbutton.dtd b/src/chrome/locale/nl/torbutton.dtd
index e92bb6d..1522697 100644
--- a/src/chrome/locale/nl/torbutton.dtd
+++ b/src/chrome/locale/nl/torbutton.dtd
@@ -74,7 +74,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Verwijder mijn cookies niet na het afsluiten">
<!ENTITY torbutton.prefs.disable_sessionstore "Schakel sessie opslaan uit (aanbevolen)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Imiteer een US Engelse browser">
<!ENTITY torbutton.prefs.refererspoofing "Verwijzer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Slimme verwijzer spoofing tijdens Tor gebruik (spoofs cross-domain verwijzers)">
diff --git a/src/chrome/locale/nn/torbutton.dtd b/src/chrome/locale/nn/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/nn/torbutton.dtd
+++ b/src/chrome/locale/nn/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/nso/torbutton.dtd b/src/chrome/locale/nso/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/nso/torbutton.dtd
+++ b/src/chrome/locale/nso/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/oc/torbutton.dtd b/src/chrome/locale/oc/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/oc/torbutton.dtd
+++ b/src/chrome/locale/oc/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/or/torbutton.dtd b/src/chrome/locale/or/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/or/torbutton.dtd
+++ b/src/chrome/locale/or/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/pa/torbutton.dtd b/src/chrome/locale/pa/torbutton.dtd
index 1058026..bda5ba4 100644
--- a/src/chrome/locale/pa/torbutton.dtd
+++ b/src/chrome/locale/pa/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/pap/torbutton.dtd b/src/chrome/locale/pap/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/pap/torbutton.dtd
+++ b/src/chrome/locale/pap/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/pl/torbutton.dtd b/src/chrome/locale/pl/torbutton.dtd
index 7ead4b6..f617b53 100644
--- a/src/chrome/locale/pl/torbutton.dtd
+++ b/src/chrome/locale/pl/torbutton.dtd
@@ -74,7 +74,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Nie usuwaj ciasteczek przy wyłączaniu">
<!ENTITY torbutton.prefs.disable_sessionstore "Blokuj zapisywanie sesji przeglądarki (zalecane)">
<!ENTITY torbutton.prefs.headers "Nagłówki">
-<!ENTITY torbutton.prefs.spoof_english "Udawaj przeglądarkę z USA">
<!ENTITY torbutton.prefs.refererspoofing "Fałszowanie adresu zwrotnego">
<!ENTITY torbutton.prefs.spoofblank "Wysyłaj pusty adres zwrotny w czasie używania Tora (może zepsuć niektóre strony)">
<!ENTITY torbutton.prefs.smartspoof "Mądrze fałszuj adres zwrotny w czasie używania Tora (fałszuje odnośniki między stronami)">
diff --git a/src/chrome/locale/pms/torbutton.dtd b/src/chrome/locale/pms/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/pms/torbutton.dtd
+++ b/src/chrome/locale/pms/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/ps/torbutton.dtd b/src/chrome/locale/ps/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/ps/torbutton.dtd
+++ b/src/chrome/locale/ps/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/pt-BR/torbutton.dtd b/src/chrome/locale/pt-BR/torbutton.dtd
index 97f4bc0..d03fc5d 100644
--- a/src/chrome/locale/pt-BR/torbutton.dtd
+++ b/src/chrome/locale/pt-BR/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Não limpar meus cookies ao encerrar">
<!ENTITY torbutton.prefs.disable_sessionstore "Desabilitar o salvamento de sessão (recomendado)">
<!ENTITY torbutton.prefs.headers "Cabeçalhos">
-<!ENTITY torbutton.prefs.spoof_english "Aparentar um Navegador em Inglês Americano">
<!ENTITY torbutton.prefs.refererspoofing "Falsificar origem">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Falsificar de forma inteligente a origem durante o uso do Tor (falsifica a origem em domínios cruzados)">
diff --git a/src/chrome/locale/pt/torbutton.dtd b/src/chrome/locale/pt/torbutton.dtd
index 9b6f323..678ccb7 100644
--- a/src/chrome/locale/pt/torbutton.dtd
+++ b/src/chrome/locale/pt/torbutton.dtd
@@ -74,7 +74,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Não limpar os meus cookies ao encerrar">
<!ENTITY torbutton.prefs.disable_sessionstore "Desativar Função de Guardar a Sessão (recomendado)">
<!ENTITY torbutton.prefs.headers "Cabeçalhos">
-<!ENTITY torbutton.prefs.spoof_english "Enganar o Navegador em Inglês dos EUA">
<!ENTITY torbutton.prefs.refererspoofing "Enganar remetente">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Falsificação inteligente do referente durante o uso do Tor (falsifica referentes de domínios cruzados)">
diff --git a/src/chrome/locale/ro/torbutton.dtd b/src/chrome/locale/ro/torbutton.dtd
index eae1bc6..3e19345 100644
--- a/src/chrome/locale/ro/torbutton.dtd
+++ b/src/chrome/locale/ro/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Nu șterge cookie-urile mele la închidere">
<!ENTITY torbutton.prefs.disable_sessionstore "Dezactivați salvarea sesiunilor (recomandat)">
<!ENTITY torbutton.prefs.headers "Antete">
-<!ENTITY torbutton.prefs.spoof_english "Imitează browser-ul în Limba Engleză">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/ru/torbutton.dtd b/src/chrome/locale/ru/torbutton.dtd
index 2c40381..80e6382 100644
--- a/src/chrome/locale/ru/torbutton.dtd
+++ b/src/chrome/locale/ru/torbutton.dtd
@@ -74,7 +74,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Не очищать куки-файлы при закрытии браузера">
<!ENTITY torbutton.prefs.disable_sessionstore "Отключить сохранение сессий (желательно)">
<!ENTITY torbutton.prefs.headers "Заголовки">
-<!ENTITY torbutton.prefs.spoof_english "Заголовки как в версии браузера US English">
<!ENTITY torbutton.prefs.refererspoofing "Подстановка заголовка запроса (реферер)">
<!ENTITY torbutton.prefs.spoofblank "Имитировать пустой реферер во время использования Tor (может привести к невозможности просмотра некоторых сайтов)">
<!ENTITY torbutton.prefs.smartspoof "Ловкая подстановка реферера во время использования Tor (подмена перекрёстных доменных рефереров)">
diff --git a/src/chrome/locale/sco/torbutton.dtd b/src/chrome/locale/sco/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/sco/torbutton.dtd
+++ b/src/chrome/locale/sco/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/sk/torbutton.dtd b/src/chrome/locale/sk/torbutton.dtd
index 867764b..8535f04 100644
--- a/src/chrome/locale/sk/torbutton.dtd
+++ b/src/chrome/locale/sk/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/sl/torbutton.dtd b/src/chrome/locale/sl/torbutton.dtd
index 81140cd..29ae9cd 100644
--- a/src/chrome/locale/sl/torbutton.dtd
+++ b/src/chrome/locale/sl/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Ne zbriši piškotkov pri ugašanju">
<!ENTITY torbutton.prefs.disable_sessionstore "Onemogoči shranjevanje sej (proporočeno)">
<!ENTITY torbutton.prefs.headers "Headers (informacije na začetku paketa - naslavljanje)">
-<!ENTITY torbutton.prefs.spoof_english 'Navidezno "US English" brskalnik'>
<!ENTITY torbutton.prefs.refererspoofing "osveži prevaro">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/so/torbutton.dtd b/src/chrome/locale/so/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/so/torbutton.dtd
+++ b/src/chrome/locale/so/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/son/torbutton.dtd b/src/chrome/locale/son/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/son/torbutton.dtd
+++ b/src/chrome/locale/son/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/sq/torbutton.dtd b/src/chrome/locale/sq/torbutton.dtd
index c7ce160..0507557 100644
--- a/src/chrome/locale/sq/torbutton.dtd
+++ b/src/chrome/locale/sq/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/sr/torbutton.dtd b/src/chrome/locale/sr/torbutton.dtd
index a639874..13d3209 100644
--- a/src/chrome/locale/sr/torbutton.dtd
+++ b/src/chrome/locale/sr/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Не чисти моје колачиће при гашењу">
<!ENTITY torbutton.prefs.disable_sessionstore "Онемогући чување сесије (препоручује се)">
<!ENTITY torbutton.prefs.headers "Заглавља">
-<!ENTITY torbutton.prefs.spoof_english "Амерички енглески прегледач">
<!ENTITY torbutton.prefs.refererspoofing "Маскирање упућивача">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Паметно маскирање упућивача када је Tor омогућен (маскира преко домена упућивача)">
diff --git a/src/chrome/locale/st/torbutton.dtd b/src/chrome/locale/st/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/st/torbutton.dtd
+++ b/src/chrome/locale/st/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/su/torbutton.dtd b/src/chrome/locale/su/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/su/torbutton.dtd
+++ b/src/chrome/locale/su/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/sv/torbutton.dtd b/src/chrome/locale/sv/torbutton.dtd
index c384b60..cc809ec 100644
--- a/src/chrome/locale/sv/torbutton.dtd
+++ b/src/chrome/locale/sv/torbutton.dtd
@@ -74,7 +74,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Rensa inte mina kakor vid avstängning">
<!ENTITY torbutton.prefs.disable_sessionstore "Inaktivera Sessionssparande (rekommenderas)">
<!ENTITY torbutton.prefs.headers "Huvuden">
-<!ENTITY torbutton.prefs.spoof_english "Härma US Engelsk Webbläsare">
<!ENTITY torbutton.prefs.refererspoofing "Refererings härmning">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referat härmning under Tor användning (härmar kors domän referat)">
diff --git a/src/chrome/locale/sw/torbutton.dtd b/src/chrome/locale/sw/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/sw/torbutton.dtd
+++ b/src/chrome/locale/sw/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/ta/torbutton.dtd b/src/chrome/locale/ta/torbutton.dtd
index d4307cb..1393021 100644
--- a/src/chrome/locale/ta/torbutton.dtd
+++ b/src/chrome/locale/ta/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/te/torbutton.dtd b/src/chrome/locale/te/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/te/torbutton.dtd
+++ b/src/chrome/locale/te/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/tg/torbutton.dtd b/src/chrome/locale/tg/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/tg/torbutton.dtd
+++ b/src/chrome/locale/tg/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/th/torbutton.dtd b/src/chrome/locale/th/torbutton.dtd
index c2d103c..0a0d7d2 100644
--- a/src/chrome/locale/th/torbutton.dtd
+++ b/src/chrome/locale/th/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/ti/torbutton.dtd b/src/chrome/locale/ti/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/ti/torbutton.dtd
+++ b/src/chrome/locale/ti/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/tk/torbutton.dtd b/src/chrome/locale/tk/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/tk/torbutton.dtd
+++ b/src/chrome/locale/tk/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/tr/torbutton.dtd b/src/chrome/locale/tr/torbutton.dtd
index 273da1b..62114b5 100644
--- a/src/chrome/locale/tr/torbutton.dtd
+++ b/src/chrome/locale/tr/torbutton.dtd
@@ -74,7 +74,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Programı kapatığımda çerezlerim silinmesin">
<!ENTITY torbutton.prefs.disable_sessionstore "Oturum Kaydedilmesin (önerilir)">
<!ENTITY torbutton.prefs.headers "Üst Bilgiler">
-<!ENTITY torbutton.prefs.spoof_english "Amerikan İngilizce Web Tarayıcısı Aldatması">
<!ENTITY torbutton.prefs.refererspoofing "Gönderici aldatması">
<!ENTITY torbutton.prefs.spoofblank "Tor kullanılırken boş gönderici aldatması yapılsın (bazı sitelerde çalışmayabilir)">
<!ENTITY torbutton.prefs.smartspoof "Tor kullanılırken akıllı gönderici aldatması yapılsın (siteler arası göndericileri değiştirir)">
diff --git a/src/chrome/locale/uk/torbutton.dtd b/src/chrome/locale/uk/torbutton.dtd
index 68bfa9b..e0e7e39 100644
--- a/src/chrome/locale/uk/torbutton.dtd
+++ b/src/chrome/locale/uk/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Не чистити куків при вимкненні переглядача">
<!ENTITY torbutton.prefs.disable_sessionstore "Не дозволяти збереження сесій (рекомендовано)">
<!ENTITY torbutton.prefs.headers "Заголовки">
-<!ENTITY torbutton.prefs.spoof_english "Прикидатися переглядачем US English">
<!ENTITY torbutton.prefs.refererspoofing "Підстановка реферер">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Розумна підстановка реферера під час використання Tor (підміна перехресних доменних реферерів)">
diff --git a/src/chrome/locale/ur/torbutton.dtd b/src/chrome/locale/ur/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/ur/torbutton.dtd
+++ b/src/chrome/locale/ur/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/ve/torbutton.dtd b/src/chrome/locale/ve/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/ve/torbutton.dtd
+++ b/src/chrome/locale/ve/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/vi/torbutton.dtd b/src/chrome/locale/vi/torbutton.dtd
index c99f72c..48d6ace 100644
--- a/src/chrome/locale/vi/torbutton.dtd
+++ b/src/chrome/locale/vi/torbutton.dtd
@@ -74,7 +74,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Không xóa cookie của tôi khi tắt trình duyệt">
<!ENTITY torbutton.prefs.disable_sessionstore "Vô hiệu hóa Lưu Phiên Duyệt Web (khuyến cáo)">
<!ENTITY torbutton.prefs.headers "Đầu đề">
-<!ENTITY torbutton.prefs.spoof_english "Bắt chước Trình duyệt Tiếng Anh-Mỹ">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/wa/torbutton.dtd b/src/chrome/locale/wa/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/wa/torbutton.dtd
+++ b/src/chrome/locale/wa/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/wo/torbutton.dtd b/src/chrome/locale/wo/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/wo/torbutton.dtd
+++ b/src/chrome/locale/wo/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/zh-CN/torbutton.dtd b/src/chrome/locale/zh-CN/torbutton.dtd
index 757c4da..235e817 100644
--- a/src/chrome/locale/zh-CN/torbutton.dtd
+++ b/src/chrome/locale/zh-CN/torbutton.dtd
@@ -74,7 +74,6 @@
<!ENTITY torbutton.prefs.no_shutdown "关闭时不清除 cookies">
<!ENTITY torbutton.prefs.disable_sessionstore "禁用 Firefox 的会话保存(推荐)">
<!ENTITY torbutton.prefs.headers "Header">
-<!ENTITY torbutton.prefs.spoof_english "伪装浏览器语言为美国英语">
<!ENTITY torbutton.prefs.refererspoofing "伪造 Referer">
<!ENTITY torbutton.prefs.spoofblank "使用 Tor 时伪造空白 Referer(可能造成某些网站显示异常)">
<!ENTITY torbutton.prefs.smartspoof "使用 Tor 时伪造智能 Referer(伪造跨域 Referer)">
diff --git a/src/chrome/locale/zh-HK/torbutton.dtd b/src/chrome/locale/zh-HK/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/zh-HK/torbutton.dtd
+++ b/src/chrome/locale/zh-HK/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/zh-TW/torbutton.dtd b/src/chrome/locale/zh-TW/torbutton.dtd
index 2df0e4d..726e1c7 100644
--- a/src/chrome/locale/zh-TW/torbutton.dtd
+++ b/src/chrome/locale/zh-TW/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/chrome/locale/zu/torbutton.dtd b/src/chrome/locale/zu/torbutton.dtd
index d59c0c2..ca3741f 100644
--- a/src/chrome/locale/zu/torbutton.dtd
+++ b/src/chrome/locale/zu/torbutton.dtd
@@ -72,7 +72,6 @@
<!ENTITY torbutton.prefs.no_shutdown "Do not clear my cookies at shutdown">
<!ENTITY torbutton.prefs.disable_sessionstore "Disable Session Saving (recommended)">
<!ENTITY torbutton.prefs.headers "Headers">
-<!ENTITY torbutton.prefs.spoof_english "Spoof US English Browser">
<!ENTITY torbutton.prefs.refererspoofing "Referer spoofing">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Smart referer spoof during Tor usage (spoofs cross domain referers)">
diff --git a/src/defaults/preferences/preferences.js b/src/defaults/preferences/preferences.js
index cae5fbd..46bfc0e 100644
--- a/src/defaults/preferences/preferences.js
+++ b/src/defaults/preferences/preferences.js
@@ -89,7 +89,6 @@ pref("extensions.torbutton.saved.search_update", true);
pref("extensions.torbutton.saved.geo_enabled", true);
pref("extensions.torbutton.saved.zoom_specific", true);
pref("extensions.torbutton.saved.accept_languages", "");
-pref("extensions.torbutton.saved.accept_charsets", "");
pref("extensions.torbutton.saved.appname_override","");
pref("extensions.torbutton.saved.appversion_override","");
pref("extensions.torbutton.saved.platform_override","");
@@ -140,9 +139,6 @@ pref("extensions.torbutton.notor_sessionstore",true);
pref("extensions.torbutton.nonontor_sessionstore",false);
pref("extensions.torbutton.reload_crashed_jar",true);
pref("extensions.torbutton.spoof_english",true);
-pref("extensions.torbutton.spoof_charset",'iso-8859-1,*,utf-8');
-pref("extensions.torbutton.spoof_language",'en-us, en');
-pref("extensions.torbutton.spoof_locale",'en-US');
pref("extensions.torbutton.refererspoof", 0); //0=smart referer, 1=blank, 2=no spoofing
pref("extensions.torbutton.shutdown_method",1); // 0=none, 1=tor, 2=all
pref("extensions.torbutton.block_tforms",true);
1
0
[tor-browser-bundle/hardened-builds] Update port for ndnop3 obfs4 bridge and add new ndnop5 obfs4 brige.
by gk@torproject.org 19 Jan '16
by gk@torproject.org 19 Jan '16
19 Jan '16
commit 4a27862b00cc8dce3ed9288dedb938b0fe0e8c05
Author: David Fifield <david(a)bamsoftware.com>
Date: Mon Jan 18 13:53:58 2016 -0800
Update port for ndnop3 obfs4 bridge and add new ndnop5 obfs4 brige.
ndnop3 is listening on a new port. It will continue listening on its old
port too. ndnop5 is a new bridge with a different fingerprint.
---
Bundle-Data/PTConfigs/bridge_prefs.js | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/Bundle-Data/PTConfigs/bridge_prefs.js b/Bundle-Data/PTConfigs/bridge_prefs.js
index f4a8448..685c651 100644
--- a/Bundle-Data/PTConfigs/bridge_prefs.js
+++ b/Bundle-Data/PTConfigs/bridge_prefs.js
@@ -21,9 +21,10 @@ pref("extensions.torlauncher.default_bridge.fte-ipv6.2", "fte [2001:49f0:d00a:1:
pref("extensions.torlauncher.default_bridge.scramblesuit.1", "scramblesuit 83.212.101.3:443 A09D536DD1752D542E1FBB3C9CE4449D51298239 password=XTCXLG2JAMJKZW2POLBAOWOQETQSMASH");
pref("extensions.torlauncher.default_bridge.obfs4.1", "obfs4 198.245.60.50:443 752CF7825B3B9EA6A98C83AC41F7099D67007EA5 cert=xpmQtKUqQ/6v5X7ijgYE/f03+l2/EuQ1dexjyUhh16wQlu/cpXUGalmhDIlhuiQPNEKmKw iat-mode=0");
-pref("extensions.torlauncher.default_bridge.obfs4.2", "obfs4 109.105.109.165:24215 8DFCD8FB3285E855F5A55EDDA35696C743ABFC4E cert=Bvg/itxeL4TWKLP6N1MaQzSOC6tcRIBv6q57DYAZc3b2AzuM+/TfB7mqTFEfXILCjEwzVA iat-mode=0");
+pref("extensions.torlauncher.default_bridge.obfs4.2", "obfs4 109.105.109.165:10527 8DFCD8FB3285E855F5A55EDDA35696C743ABFC4E cert=Bvg/itxeL4TWKLP6N1MaQzSOC6tcRIBv6q57DYAZc3b2AzuM+/TfB7mqTFEfXILCjEwzVA iat-mode=0");
pref("extensions.torlauncher.default_bridge.obfs4.3", "obfs4 83.212.101.3:41213 A09D536DD1752D542E1FBB3C9CE4449D51298239 cert=lPRQ/MXdD1t5SRZ9MquYQNT9m5DV757jtdXdlePmRCudUU9CFUOX1Tm7/meFSyPOsud7Cw iat-mode=0");
pref("extensions.torlauncher.default_bridge.obfs4.4", "obfs4 104.131.108.182:56880 EF577C30B9F788B0E1801CF7E433B3B77792B77A cert=0SFhfDQrKjUJP8Qq6wrwSICEPf3Vl/nJRsYxWbg3QRoSqhl2EB78MPS2lQxbXY4EW1wwXA iat-mode=0");
+pref("extensions.torlauncher.default_bridge.obfs4.5", "obfs4 109.105.109.147:13764 BBB28DF0F201E706BE564EFE690FE9577DD8386D cert=KfMQN/tNMFdda61hMgpiMI7pbwU1T+wxjTulYnfw+4sgvG0zSH7N7fwT10BI8MUdAD7iJA iat-mode=0");
pref("extensions.torlauncher.default_bridge.meek-google.1", "meek 0.0.2.0:1 46D4A71197B8FA515A826C6B017C522FE264655B url=https://meek-reflect.appspot.com/ front=www.google.com");
pref("extensions.torlauncher.default_bridge.meek-amazon.1", "meek 0.0.2.0:2 B9E7141C594AF25699E0079C1F0146F409495296 url=https://d2zfqthxsdq309.cloudfront.net/ front=a0.awsstatic.com");
1
0