tbb-commits
Threads by month
- ----- 2026 -----
- July
- June
- May
- April
- 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
- 20633 discussions
[tor-browser/tor-browser-60.4.0esr-8.5-1] Bug 25702: Update Tor Browser icon to follow design guidelines
by gk@torproject.org 20 Jan '19
by gk@torproject.org 20 Jan '19
20 Jan '19
commit 7f7a40f907f74a531642a5cb4982f2d762316d38
Author: Richard Pospesel <richard(a)torproject.org>
Date: Fri Jan 11 16:08:47 2019 -0800
Bug 25702: Update Tor Browser icon to follow design guidelines
- Updated all of the branding in /browser/branding/official with new 'stable'
icon series.
- Updated /extensions/onboarding/content/img/tor-watermark.png with new icon and
add the source svg in the same directory
- Copied /browser/branding/official over /browser/branding/nightly and the new
/browser/branding/alpha directories. Replaced content with 'nightly' and
'alpha' icon series.
Updated VisualElements_70.png and VisualElements_150.png with updated icons in
each branding directory (fixes #22654)
- Updated firefox.VisualElementsManfiest.xml with updated colors in each
branding directory
- Updated content/identity-icons-brand.svg with Tor Browser icon (fixes #28111)
- Added firefox.svg to each branding directory from which all the other icons
are derived (apart from document.icns and document.ico)
- Added default256.png and default512.png icons
- Updated aboutTBUpdate.css to point to branding-aware icon128.png and removed
original icon
---
.../base/content/abouttbupdate/aboutTBUpdate.css | 2 +-
.../content/abouttbupdate/aboutTBUpdateLogo.png | Bin 23266 -> 0 bytes
browser/base/jar.mn | 1 -
browser/branding/alpha/VisualElements_150.png | Bin 0 -> 8412 bytes
browser/branding/alpha/VisualElements_70.png | Bin 0 -> 3496 bytes
browser/branding/alpha/background.png | Bin 0 -> 9347 bytes
browser/branding/alpha/bgstub.jpg | Bin 0 -> 12506 bytes
browser/branding/alpha/bgstub_2x.jpg | Bin 0 -> 49771 bytes
browser/branding/alpha/branding.nsi | 47 ++++++++++++++++++++
browser/branding/alpha/configure.sh | 5 +++
browser/branding/alpha/content/about-logo.png | Bin 0 -> 21173 bytes
browser/branding/alpha/content/about-logo(a)2x.png | Bin 0 -> 51309 bytes
browser/branding/alpha/content/about-wordmark.svg | 36 ++++++++++++++++
browser/branding/alpha/content/about.png | Bin 0 -> 18520 bytes
browser/branding/alpha/content/aboutDialog.css | 45 +++++++++++++++++++
.../alpha/content/identity-icons-brand.svg | 25 +++++++++++
browser/branding/alpha/content/jar.mn | 19 ++++++++
browser/branding/alpha/content/moz.build | 7 +++
browser/branding/alpha/default128.png | Bin 0 -> 9397 bytes
browser/branding/alpha/default16.png | Bin 0 -> 811 bytes
browser/branding/alpha/default256.png | Bin 0 -> 20481 bytes
browser/branding/alpha/default32.png | Bin 0 -> 1956 bytes
browser/branding/alpha/default48.png | Bin 0 -> 3067 bytes
browser/branding/alpha/default512.png | Bin 0 -> 44907 bytes
browser/branding/alpha/default64.png | Bin 0 -> 4318 bytes
browser/branding/alpha/disk.icns | Bin 0 -> 1548786 bytes
browser/branding/alpha/document.icns | Bin 0 -> 564054 bytes
browser/branding/alpha/document.ico | Bin 0 -> 119671 bytes
browser/branding/alpha/dsstore | Bin 0 -> 14340 bytes
.../alpha/firefox.VisualElementsManifest.xml | 8 ++++
browser/branding/alpha/firefox.icns | Bin 0 -> 30823 bytes
browser/branding/alpha/firefox.ico | Bin 0 -> 119941 bytes
browser/branding/alpha/firefox.svg | 25 +++++++++++
browser/branding/alpha/firefox64.ico | Bin 0 -> 119941 bytes
.../alpha/locales/browserconfig.properties | 6 +++
browser/branding/alpha/locales/en-US/brand.dtd | 9 ++++
browser/branding/alpha/locales/en-US/brand.ftl | 15 +++++++
.../branding/alpha/locales/en-US/brand.properties | 10 +++++
.../alpha/locales/en-US/tor-browser-brand.ftl | 5 +++
browser/branding/alpha/locales/jar.mn | 13 ++++++
browser/branding/alpha/locales/moz.build | 7 +++
browser/branding/alpha/moz.build | 13 ++++++
browser/branding/alpha/newtab.ico | Bin 0 -> 6518 bytes
browser/branding/alpha/newwindow.ico | Bin 0 -> 6518 bytes
browser/branding/alpha/pbmode.ico | Bin 0 -> 6518 bytes
browser/branding/alpha/pref/firefox-branding.js | 37 ++++++++++++++++
browser/branding/alpha/wizHeader.bmp | Bin 0 -> 34254 bytes
browser/branding/alpha/wizHeaderRTL.bmp | Bin 0 -> 34254 bytes
browser/branding/alpha/wizWatermark.bmp | Bin 0 -> 206038 bytes
browser/branding/branding-common.mozbuild | 2 +
browser/branding/nightly/VisualElements_150.png | Bin 21725 -> 11666 bytes
browser/branding/nightly/VisualElements_70.png | Bin 8636 -> 4273 bytes
browser/branding/nightly/configure.sh | 3 +-
.../nightly/content/identity-icons-brand.svg | 39 ++++++++++++-----
browser/branding/nightly/content/jar.mn | 2 +
browser/branding/nightly/default128.png | Bin 12923 -> 13686 bytes
browser/branding/nightly/default16.png | Bin 783 -> 891 bytes
browser/branding/nightly/default256.png | Bin 0 -> 33587 bytes
browser/branding/nightly/default32.png | Bin 2137 -> 2254 bytes
browser/branding/nightly/default48.png | Bin 3578 -> 3789 bytes
browser/branding/nightly/default512.png | Bin 0 -> 87830 bytes
browser/branding/nightly/default64.png | Bin 5262 -> 5426 bytes
browser/branding/nightly/document.icns | Bin 463531 -> 689723 bytes
browser/branding/nightly/document.ico | Bin 45441 -> 124422 bytes
.../nightly/firefox.VisualElementsManifest.xml | 2 +-
browser/branding/nightly/firefox.icns | Bin 834324 -> 41613 bytes
browser/branding/nightly/firefox.ico | Bin 68763 -> 131711 bytes
browser/branding/nightly/firefox.svg | 29 +++++++++++++
browser/branding/nightly/firefox64.ico | Bin 38630 -> 131711 bytes
browser/branding/nightly/locales/en-US/brand.dtd | 10 ++---
.../nightly/locales/en-US/brand.properties | 8 ++--
.../nightly/locales/en-US/tor-browser-brand.ftl | 5 +++
browser/branding/nightly/locales/jar.mn | 7 ++-
browser/branding/nightly/locales/moz.build | 2 -
browser/branding/nightly/pref/firefox-branding.js | 31 ++++++-------
browser/branding/nightly/wizHeader.bmp | Bin 25820 -> 34254 bytes
browser/branding/nightly/wizHeaderRTL.bmp | Bin 25820 -> 34254 bytes
browser/branding/nightly/wizWatermark.bmp | Bin 154544 -> 206038 bytes
browser/branding/official/VisualElements_150.png | Bin 21353 -> 7949 bytes
browser/branding/official/VisualElements_70.png | Bin 8532 -> 3374 bytes
.../official/content/identity-icons-brand.svg | 48 +++++++++++++--------
browser/branding/official/content/jar.mn | 2 +
browser/branding/official/default128.png | Bin 20445 -> 9007 bytes
browser/branding/official/default16.png | Bin 1413 -> 839 bytes
browser/branding/official/default22.png | Bin 1740 -> 0 bytes
browser/branding/official/default24.png | Bin 1969 -> 0 bytes
browser/branding/official/default256.png | Bin 48401 -> 19136 bytes
browser/branding/official/default32.png | Bin 2907 -> 1965 bytes
browser/branding/official/default48.png | Bin 5190 -> 3074 bytes
browser/branding/official/default512.png | Bin 0 -> 40438 bytes
browser/branding/official/default64.png | Bin 7805 -> 4196 bytes
browser/branding/official/document.icns | Bin 195435 -> 509227 bytes
browser/branding/official/document.ico | Bin 54601 -> 119916 bytes
.../official/firefox.VisualElementsManifest.xml | 2 +-
browser/branding/official/firefox.icns | Bin 242224 -> 31329 bytes
browser/branding/official/firefox.ico | Bin 75112 -> 118595 bytes
browser/branding/official/firefox.svg | 31 +++++++++++++
browser/branding/official/firefox64.ico | Bin 75112 -> 118595 bytes
browser/branding/official/mozicon128.png | Bin 19033 -> 0 bytes
.../onboarding/content/img/tor-watermark.png | Bin 5705 -> 3064 bytes
.../onboarding/content/img/tor-watermark.svg | 6 +++
.../shared/identity-block/identity-block.inc.css | 10 ++++-
102 files changed, 510 insertions(+), 64 deletions(-)
diff --git a/browser/base/content/abouttbupdate/aboutTBUpdate.css b/browser/base/content/abouttbupdate/aboutTBUpdate.css
index 7ec1950e1474..dc42f8ff5f9e 100644
--- a/browser/base/content/abouttbupdate/aboutTBUpdate.css
+++ b/browser/base/content/abouttbupdate/aboutTBUpdate.css
@@ -36,7 +36,7 @@ a {
}
#logo {
- background-image: url("chrome://browser/content/abouttbupdate/aboutTBUpdateLogo.png");
+ background-image: url("chrome://branding/content/icon128.png");
height: 128px;
width: 128px;
margin: 20px;
diff --git a/browser/base/content/abouttbupdate/aboutTBUpdateLogo.png b/browser/base/content/abouttbupdate/aboutTBUpdateLogo.png
deleted file mode 100644
index be5cae93fa96..000000000000
Binary files a/browser/base/content/abouttbupdate/aboutTBUpdateLogo.png and /dev/null differ
diff --git a/browser/base/jar.mn b/browser/base/jar.mn
index 1f7e132beb04..182c1711e422 100644
--- a/browser/base/jar.mn
+++ b/browser/base/jar.mn
@@ -48,7 +48,6 @@ browser.jar:
content/browser/abouttbupdate/aboutTBUpdate.xhtml (content/abouttbupdate/aboutTBUpdate.xhtml)
content/browser/abouttbupdate/aboutTBUpdate.js (content/abouttbupdate/aboutTBUpdate.js)
content/browser/abouttbupdate/aboutTBUpdate.css (content/abouttbupdate/aboutTBUpdate.css)
- content/browser/abouttbupdate/aboutTBUpdateLogo.png (content/abouttbupdate/aboutTBUpdateLogo.png)
#endif
* content/browser/browser.css (content/browser.css)
content/browser/browser.js (content/browser.js)
diff --git a/browser/branding/alpha/VisualElements_150.png b/browser/branding/alpha/VisualElements_150.png
new file mode 100644
index 000000000000..fbf4af94d813
Binary files /dev/null and b/browser/branding/alpha/VisualElements_150.png differ
diff --git a/browser/branding/alpha/VisualElements_70.png b/browser/branding/alpha/VisualElements_70.png
new file mode 100644
index 000000000000..1add6b0e77ff
Binary files /dev/null and b/browser/branding/alpha/VisualElements_70.png differ
diff --git a/browser/branding/alpha/background.png b/browser/branding/alpha/background.png
new file mode 100644
index 000000000000..a30b7d488b02
Binary files /dev/null and b/browser/branding/alpha/background.png differ
diff --git a/browser/branding/alpha/bgstub.jpg b/browser/branding/alpha/bgstub.jpg
new file mode 100644
index 000000000000..3b78c9498c93
Binary files /dev/null and b/browser/branding/alpha/bgstub.jpg differ
diff --git a/browser/branding/alpha/bgstub_2x.jpg b/browser/branding/alpha/bgstub_2x.jpg
new file mode 100644
index 000000000000..c724d1803c26
Binary files /dev/null and b/browser/branding/alpha/bgstub_2x.jpg differ
diff --git a/browser/branding/alpha/branding.nsi b/browser/branding/alpha/branding.nsi
new file mode 100644
index 000000000000..84d6d910b69d
--- /dev/null
+++ b/browser/branding/alpha/branding.nsi
@@ -0,0 +1,47 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# NSIS branding defines for nightly builds.
+# The official release build branding.nsi is located in other-license/branding/firefox/
+# The unofficial build branding.nsi is located in browser/branding/unofficial/
+
+# BrandFullNameInternal is used for some registry and file system values
+# instead of BrandFullName and typically should not be modified.
+!define BrandFullNameInternal "Nightly"
+!define BrandFullName "Firefox Nightly"
+!define CompanyName "mozilla.org"
+!define URLInfoAbout "https://www.mozilla.org"
+!define HelpLink "https://support.mozilla.org"
+
+!define URLStubDownload32 "https://download.mozilla.org/?os=win&lang=${AB_CD}&product=firefox-nightly-…"
+!define URLStubDownload64 "https://download.mozilla.org/?os=win64&lang=${AB_CD}&product=firefox-nightl…"
+!define URLManualDownload "https://www.mozilla.org/${AB_CD}/firefox/installer-help/?channel=nightly&in…"
+!define URLSystemRequirements "https://www.mozilla.org/firefox/system-requirements/"
+!define Channel "nightly"
+
+# The installer's certificate name and issuer expected by the stub installer
+!define CertNameDownload "Mozilla Corporation"
+!define CertIssuerDownload "DigiCert SHA2 Assured ID Code Signing CA"
+
+# Dialog units are used so the UI displays correctly with the system's DPI
+# settings.
+# The dialog units for the bitmap's dimensions should match exactly with the
+# bitmap's width and height in pixels.
+!define APPNAME_BMP_WIDTH_DU 159u
+!define APPNAME_BMP_HEIGHT_DU 28u
+!define INTRO_BLURB_WIDTH_DU "230u"
+!define INTRO_BLURB_EDGE_DU "198u"
+!define INTRO_BLURB_LTR_TOP_DU "16u"
+!define INTRO_BLURB_RTL_TOP_DU "11u"
+
+# UI Colors that can be customized for each channel
+!define FOOTER_CONTROL_TEXT_COLOR_NORMAL 0x000000
+!define FOOTER_CONTROL_TEXT_COLOR_FADED 0x999999
+!define FOOTER_BKGRD_COLOR 0xFFFFFF
+!define INTRO_BLURB_TEXT_COLOR 0xFFFFFF
+!define INSTALL_BLURB_TEXT_COLOR 0xFFFFFF
+!define INSTALL_PROGRESS_TEXT_COLOR_NORMAL 0xFFFFFF
+!define COMMON_TEXT_COLOR_NORMAL 0xFFFFFF
+!define COMMON_TEXT_COLOR_FADED 0xA1AAB3
+!define COMMON_BKGRD_COLOR 0x0F1B26
diff --git a/browser/branding/alpha/configure.sh b/browser/branding/alpha/configure.sh
new file mode 100644
index 000000000000..243091484f75
--- /dev/null
+++ b/browser/branding/alpha/configure.sh
@@ -0,0 +1,5 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+MOZ_APP_DISPLAYNAME="Tor Browser"
diff --git a/browser/branding/alpha/content/about-logo.png b/browser/branding/alpha/content/about-logo.png
new file mode 100644
index 000000000000..7d705be61dfd
Binary files /dev/null and b/browser/branding/alpha/content/about-logo.png differ
diff --git a/browser/branding/alpha/content/about-logo(a)2x.png b/browser/branding/alpha/content/about-logo(a)2x.png
new file mode 100644
index 000000000000..193c856f3e8c
Binary files /dev/null and b/browser/branding/alpha/content/about-logo(a)2x.png differ
diff --git a/browser/branding/alpha/content/about-wordmark.svg b/browser/branding/alpha/content/about-wordmark.svg
new file mode 100644
index 000000000000..6f71130b417d
--- /dev/null
+++ b/browser/branding/alpha/content/about-wordmark.svg
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<svg xmlns="http://www.w3.org/2000/svg" width="270px" height="48px" viewBox="0 0 270 48">
+ <path fill="#fff" d="M75.5,11.8V7.9c0-2.2,1.2-3.5,3.1-3.5c1,0,1.8,0.3,3,0.9l1.8-3.5c-1.7-1-3.5-1.4-5.7-1.4
+ C73.2,0.3,70,2.8,70,8c0,2.3,0.2,3.7,0.2,3.7h-2.5v3.8H70V37h5.4V15.6h5.1l1.4-3.8H75.5z M92.3,11.2c-6.7,0-11,5.2-11,13.3
+ c0,8.1,4.3,13.2,11.1,13.2c6.8,0,11.2-5,11.2-13.2C103.6,16.5,99.5,11.2,92.3,11.2z M92.5,33.6c-3.3,0-5.1-2.1-5.1-9.5
+ c0-6.1,1.5-8.8,5-8.8c3.2,0,5.2,2.1,5.2,9.3C97.6,30.9,95.8,33.6,92.5,33.6z M43.7,11.1c-2.5,0-4.4,1.3-6.4,4c0-1.4-0.3-2.8-0.9-4
+ l-5,1.3c0.6,1.6,0.9,3.6,0.9,6.8V37h5.5V19.9c0.5-2,2.4-3.7,4.7-3.7c0.6,0,1,0.1,1.6,0.4l1.7-5.1C45,11.2,44.5,11.1,43.7,11.1z
+ M0,37h5.7V21.2h9.6v-4.6H5.7V7.2h11.8l0.7-4.7H0V37z M21.4,37h5.5V11.2l-5.5,1V37z M24.2,0.7c-2,0-3.6,1.6-3.6,3.7
+ c0,2,1.5,3.6,3.5,3.6c2,0,3.7-1.6,3.7-3.6C27.8,2.3,26.2,0.7,24.2,0.7z M125.2,11.8h-6.4c-0.7,1.1-3.3,6.1-4,7.7
+ c-1.2-2.3-3.4-6.3-4.6-8.2l-5.9,1.2l7.3,10.8L102.2,37h6.9c0.9-1.4,4.5-7.5,5.5-9.4c0.5,0.9,4.6,8,5.5,9.4h6.9l-9.2-13.8L125.2,11.8
+ z M62.7,13.8c-2.1-1.9-4.4-2.6-6.9-2.6c-3.2,0-5.7,1-7.7,3.4C45.9,17.1,45,20,45,24.5c0,8.1,4.5,13.2,11.6,13.2
+ c3.4,0,6.4-1.1,9.1-3.3L63.4,31c-1.9,1.6-3.9,2.5-6.3,2.5c-4.9,0-6.2-3.7-6.2-7.2v-0.4H66v-1.2C66,18.9,64.9,15.8,62.7,13.8z
+ M51,21.8c0-4.1,1.7-6.5,4.8-6.5c2.8,0,4.5,2.4,4.5,6.5H51z M198.5,14.3l-2.4-2.4c-1.2,0.8-2.2,1.1-3.5,1.1c-3,0-3.8-1.4-7.6-1.4
+ c-5.4,0-9.2,3.4-9.2,8.4c0,3.3,2.2,6.1,5.6,7.2c-3.4,1-4.5,2.2-4.5,4.3c0,2.2,1.8,3.6,4.7,3.6h3.8c2.5,0,3.9,0.2,4.9,0.9
+ c0.9,0.6,1.4,1.6,1.4,3c0,3.1-2.2,4.4-6,4.4c-2,0-3.8-0.5-5.1-1.2c-0.9-0.6-1.5-1.6-1.5-2.9c0-0.8,0.3-1.7,0.7-2.2l-4.1,0.4
+ c-0.3,1-0.5,1.7-0.5,2.6c0,3.5,3,6.4,10.8,6.4c6.1,0,9.9-2.5,9.9-7.9c0-2.1-0.8-3.9-2.7-5.3c-1.5-1.1-3.1-1.4-6-1.4h-4
+ c-1.3,0-2-0.5-2-1.2c0-0.8,1.1-1.7,4.5-2.9c1.8,0,3.4-0.3,4.7-1.1c2.3-1.4,3.7-4.1,3.7-6.8c0-1.6-0.5-3-1.5-4.3
+ c0.4,0.2,1.1,0.3,1.7,0.3C195.8,15.8,196.9,15.4,198.5,14.3z M185,24.8c-3.1,0-4.8-1.7-4.8-4.8c0-3.5,1.6-5.1,4.7-5.1
+ c3.3,0,4.6,1.5,4.6,4.9C189.5,23.1,188,24.8,185,24.8z M168.6,1.3c-1.7,0-3,1.4-3,3.1c0,1.7,1.4,3,3,3c1.7,0,3.1-1.3,3.1-3
+ C171.6,2.7,170.3,1.3,168.6,1.3z M245.7,34.5c-1.1,0-1.4-0.6-1.4-2.5V6.5c0-3.8-0.6-5.9-0.6-5.9l-3.9,0.8c0,0,0.6,1.9,0.6,5.1v26.4
+ c0,1.8,0.4,2.8,1.2,3.5c0.7,0.7,1.7,1,2.9,1c1,0,1.5-0.1,2.5-0.5l-0.8-2.5C246.2,34.4,245.8,34.5,245.7,34.5z M212.7,11.6
+ c-3.2,0-6.1,1.8-8.3,3.9c0,0,0.2-1.8,0.2-3.4V6.3c0-3.8-0.7-5.9-0.7-5.9L200,1.1c0,0,0.7,1.9,0.7,5.1V37h3.9V19.3
+ c2.1-2.7,4.9-4.2,7.2-4.2c1.3,0,2.3,0.4,2.9,1c0.7,0.7,0.9,1.8,0.9,3.7V37h3.8V19.1c0-1.8-0.1-2.6-0.4-3.6
+ C218.4,13.2,215.7,11.6,212.7,11.6z M265.4,12.1l-4.9,16.4c-0.6,2-1.6,5.2-1.6,5.2s-0.7-3.9-1.5-6.2l-5.1-16.2l-3.9,1.3l5.4,15.6
+ c0.8,2.5,2.2,7.4,2.5,9l1.6-0.3c-1.3,5.1-2.5,6.7-5.7,7.6l1.2,2.7c4.4-1,6.4-4.3,8-9.3l8.6-25.8H265.4z M234.9,15l1.2-2.9h-6.2
+ c0-3.3,0.5-7.2,0.5-7.2l-4.1,0.9c0,0-0.4,3.9-0.4,6.3h-3.2V15h3.2v17.1c0,2.5,0.7,4.1,2.4,5c0.9,0.4,1.9,0.7,3.3,0.7
+ c1.8,0,3.1-0.4,4.4-1l-0.6-2.5c-0.7,0.3-1.3,0.5-2.4,0.5c-2.4,0-3.2-0.9-3.2-3.7V15H234.9z M166.5,37h4.1V11.5l-4.1,0.6V37z
+ M156.8,21.3c0,5,0.4,10.5,0.4,10.5s-1.4-3.8-3.2-7.2L142.7,2.7h-4.8V37h4.2l-0.2-19.9c0-4.5-0.4-9.3-0.4-9.3s1.7,4.1,3.9,8.2l11,21
+ h4.3V2.7h-4L156.8,21.3z M128.3,12.9c-0.3-0.1-0.7-0.1-1-0.1v2.3h0.3v-1c0.3,0,0.7,1,0.7,1s0.2,0,0.4,0c-0.2-0.3-0.3-0.7-0.6-1
+ C128.8,14.1,128.9,13.1,128.3,12.9z M127.6,13.8v-0.7c0,0,0.7,0,0.7,0.3C128.3,13.9,127.8,13.9,127.6,13.8z M128,12
+ c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S129.1,12,128,12z M128,15.5c-0.8,0-1.5-0.7-1.5-1.5s0.7-1.5,1.5-1.5s1.5,0.7,1.5,1.5
+ S128.8,15.5,128,15.5z"/>
+</svg>
diff --git a/browser/branding/alpha/content/about.png b/browser/branding/alpha/content/about.png
new file mode 100644
index 000000000000..3b93625ddd70
Binary files /dev/null and b/browser/branding/alpha/content/about.png differ
diff --git a/browser/branding/alpha/content/aboutDialog.css b/browser/branding/alpha/content/aboutDialog.css
new file mode 100644
index 000000000000..450a3b2783c1
--- /dev/null
+++ b/browser/branding/alpha/content/aboutDialog.css
@@ -0,0 +1,45 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#aboutDialogContainer {
+ background-color: #000f40;
+ color: #fff;
+}
+
+#leftBox {
+ background-image: url("chrome://branding/content/about-logo.png");
+ background-repeat: no-repeat;
+ background-size: 192px auto;
+ background-position: center 20%;
+ /* min-width and min-height create room for the logo */
+ min-width: 210px;
+ min-height: 210px;
+ margin-top: 20px;
+ margin-inline-start: 30px;
+}
+
+@media (min-resolution: 2dppx) {
+ #leftBox {
+ background-image: url("chrome://branding/content/about-logo@2x.png");
+ }
+}
+
+.text-link {
+ color: #fff !important;
+ text-decoration: underline;
+}
+
+.text-link:-moz-focusring {
+ border-color: #fff;
+}
+
+#rightBox {
+ margin-left: 30px;
+ margin-right: 30px;
+}
+
+#bottomBox {
+ background-color: #0f1126;
+ padding: 15px 10px 15px;
+}
diff --git a/browser/branding/alpha/content/identity-icons-brand.svg b/browser/branding/alpha/content/identity-icons-brand.svg
new file mode 100644
index 000000000000..9bfa43842e2d
--- /dev/null
+++ b/browser/branding/alpha/content/identity-icons-brand.svg
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="512px" height="512px" viewBox="-17 -17 546 546" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <defs>
+ <linearGradient x1="50%" y1="3.27248873%" x2="50%" y2="97.1599968%" id="linearGradient-1">
+ <stop stop-color="#00FEFF" offset="0%"></stop>
+ <stop stop-color="#0BE67D" offset="100%"></stop>
+ </linearGradient>
+ <path d="M25,25 C152.50841,25 255.874399,127.979815 255.874399,255.011855 C255.874399,382.043895 152.50841,485.02371 25,485.02371 L25,25 Z" id="path-2"></path>
+ <filter x="-20.8%" y="-8.7%" width="134.7%" height="117.4%" filterUnits="objectBoundingBox" id="filter-3">
+ <feOffset dx="-8" dy="0" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
+ <feGaussianBlur stdDeviation="12" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
+ <feColorMatrix values="0 0 0 0 0.0872579578 0 0 0 0 0.00490370801 0 0 0 0 0.234933036 0 0 0 0.5 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
+ </filter>
+ </defs>
+ <g id="Alpha" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+ <g>
+ <circle id="background" fill-opacity="0.9" fill="#030004" fill-rule="nonzero" cx="256" cy="256" r="246"></circle>
+ <path d="M256.525143,465.439707 L256.525143,434.406609 C354.826191,434.122748 434.420802,354.364917 434.420802,255.992903 C434.420802,157.627987 354.826191,77.8701558 256.525143,77.5862948 L256.525143,46.5531962 C371.964296,46.8441537 465.446804,140.489882 465.446804,255.992903 C465.446804,371.503022 371.964296,465.155846 256.525143,465.439707 Z M256.525143,356.820314 C311.970283,356.529356 356.8487,311.516106 356.8487,255.992903 C356.8487,200.476798 311.970283,155.463547 256.525143,155.17259 L256.525143,124.146588 C329.115485,124.430449 387.881799,183.338693 387.881799,255.992903 C387.881799,328.654211 329.115485,387.562455 256.525143,387.846316 L256.525143,356.820314 Z M256.525143,201.718689 C286.266674,202.00255 310.3026,226.180407 310.3026,255.992903 C310.3026,285.812497 286.266674,309.990353 256.525143,310.274214 L256.525143,201.718689 Z M0,255.992903 C0,397.384044 114.60886,512 256,512 C397.384044,512 512,397.384044 512,255.992903 C512,114.60886 397.384044,2.842170
94e-14 256,2.84217094e-14 C114.60886,2.84217094e-14 0,114.60886 0,255.992903 Z" id="center" fill="url(#linearGradient-1)"></path>
+ <g id="half" transform="translate(140.437200, 255.011855) scale(-1, 1) translate(-140.437200, -255.011855) ">
+ <use fill="black" fill-opacity="1" filter="url(#filter-3)" xlink:href="#path-2"></use>
+ <use fill="url(#linearGradient-1)" fill-rule="evenodd" xlink:href="#path-2"></use>
+ </g>
+ </g>
+ </g>
+</svg>
\ No newline at end of file
diff --git a/browser/branding/alpha/content/jar.mn b/browser/branding/alpha/content/jar.mn
new file mode 100644
index 000000000000..512af80a55de
--- /dev/null
+++ b/browser/branding/alpha/content/jar.mn
@@ -0,0 +1,19 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+browser.jar:
+% content branding %content/branding/ contentaccessible=yes
+ content/branding/about.png
+ content/branding/about-logo.png
+ content/branding/about-logo(a)2x.png
+ content/branding/about-wordmark.svg
+ content/branding/icon16.png (../default16.png)
+ content/branding/icon32.png (../default32.png)
+ content/branding/icon48.png (../default48.png)
+ content/branding/icon64.png (../default64.png)
+ content/branding/icon128.png (../default128.png)
+ content/branding/icon256.png (../default256.png)
+ content/branding/icon512.png (../default512.png)
+ content/branding/identity-icons-brand.svg
+ content/branding/aboutDialog.css
diff --git a/browser/branding/alpha/content/moz.build b/browser/branding/alpha/content/moz.build
new file mode 100644
index 000000000000..eb4454d28f88
--- /dev/null
+++ b/browser/branding/alpha/content/moz.build
@@ -0,0 +1,7 @@
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
diff --git a/browser/branding/alpha/default128.png b/browser/branding/alpha/default128.png
new file mode 100644
index 000000000000..fbc27b91d118
Binary files /dev/null and b/browser/branding/alpha/default128.png differ
diff --git a/browser/branding/alpha/default16.png b/browser/branding/alpha/default16.png
new file mode 100644
index 000000000000..3a4e1b679b27
Binary files /dev/null and b/browser/branding/alpha/default16.png differ
diff --git a/browser/branding/alpha/default256.png b/browser/branding/alpha/default256.png
new file mode 100644
index 000000000000..844f1a0323ee
Binary files /dev/null and b/browser/branding/alpha/default256.png differ
diff --git a/browser/branding/alpha/default32.png b/browser/branding/alpha/default32.png
new file mode 100644
index 000000000000..679f5f9db43f
Binary files /dev/null and b/browser/branding/alpha/default32.png differ
diff --git a/browser/branding/alpha/default48.png b/browser/branding/alpha/default48.png
new file mode 100644
index 000000000000..85f0253d88ca
Binary files /dev/null and b/browser/branding/alpha/default48.png differ
diff --git a/browser/branding/alpha/default512.png b/browser/branding/alpha/default512.png
new file mode 100644
index 000000000000..b12f58b88bb4
Binary files /dev/null and b/browser/branding/alpha/default512.png differ
diff --git a/browser/branding/alpha/default64.png b/browser/branding/alpha/default64.png
new file mode 100644
index 000000000000..c48f1c5bf4ee
Binary files /dev/null and b/browser/branding/alpha/default64.png differ
diff --git a/browser/branding/alpha/disk.icns b/browser/branding/alpha/disk.icns
new file mode 100644
index 000000000000..866d93a43bc8
Binary files /dev/null and b/browser/branding/alpha/disk.icns differ
diff --git a/browser/branding/alpha/document.icns b/browser/branding/alpha/document.icns
new file mode 100644
index 000000000000..7fbfffe2228e
Binary files /dev/null and b/browser/branding/alpha/document.icns differ
diff --git a/browser/branding/alpha/document.ico b/browser/branding/alpha/document.ico
new file mode 100644
index 000000000000..45aa08bb1658
Binary files /dev/null and b/browser/branding/alpha/document.ico differ
diff --git a/browser/branding/alpha/dsstore b/browser/branding/alpha/dsstore
new file mode 100644
index 000000000000..6b82c923a662
Binary files /dev/null and b/browser/branding/alpha/dsstore differ
diff --git a/browser/branding/alpha/firefox.VisualElementsManifest.xml b/browser/branding/alpha/firefox.VisualElementsManifest.xml
new file mode 100644
index 000000000000..15e2690fdd04
--- /dev/null
+++ b/browser/branding/alpha/firefox.VisualElementsManifest.xml
@@ -0,0 +1,8 @@
+<Application xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
+ <VisualElements
+ ShowNameOnSquare150x150Logo='on'
+ Square150x150Logo='browser\VisualElements\VisualElements_150.png'
+ Square70x70Logo='browser\VisualElements\VisualElements_70.png'
+ ForegroundText='light'
+ BackgroundColor='#1c191d'/>
+</Application>
diff --git a/browser/branding/alpha/firefox.icns b/browser/branding/alpha/firefox.icns
new file mode 100644
index 000000000000..174fb21dd662
Binary files /dev/null and b/browser/branding/alpha/firefox.icns differ
diff --git a/browser/branding/alpha/firefox.ico b/browser/branding/alpha/firefox.ico
new file mode 100644
index 000000000000..e25514996d37
Binary files /dev/null and b/browser/branding/alpha/firefox.ico differ
diff --git a/browser/branding/alpha/firefox.svg b/browser/branding/alpha/firefox.svg
new file mode 100644
index 000000000000..250c7adea0d6
--- /dev/null
+++ b/browser/branding/alpha/firefox.svg
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="512px" height="512px" viewBox="0 0 512 512" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <defs>
+ <linearGradient x1="50%" y1="3.27248873%" x2="50%" y2="97.1599968%" id="linearGradient-1">
+ <stop stop-color="#00FEFF" offset="0%"></stop>
+ <stop stop-color="#0BE67D" offset="100%"></stop>
+ </linearGradient>
+ <path d="M25,25 C152.50841,25 255.874399,127.979815 255.874399,255.011855 C255.874399,382.043895 152.50841,485.02371 25,485.02371 L25,25 Z" id="path-2"></path>
+ <filter x="-20.8%" y="-8.7%" width="134.7%" height="117.4%" filterUnits="objectBoundingBox" id="filter-3">
+ <feOffset dx="-8" dy="0" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
+ <feGaussianBlur stdDeviation="12" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
+ <feColorMatrix values="0 0 0 0 0.0872579578 0 0 0 0 0.00490370801 0 0 0 0 0.234933036 0 0 0 0.5 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
+ </filter>
+ </defs>
+ <g id="Alpha" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+ <g>
+ <circle id="background" fill-opacity="0.9" fill="#030004" fill-rule="nonzero" cx="256" cy="256" r="246"></circle>
+ <path d="M256.525143,465.439707 L256.525143,434.406609 C354.826191,434.122748 434.420802,354.364917 434.420802,255.992903 C434.420802,157.627987 354.826191,77.8701558 256.525143,77.5862948 L256.525143,46.5531962 C371.964296,46.8441537 465.446804,140.489882 465.446804,255.992903 C465.446804,371.503022 371.964296,465.155846 256.525143,465.439707 Z M256.525143,356.820314 C311.970283,356.529356 356.8487,311.516106 356.8487,255.992903 C356.8487,200.476798 311.970283,155.463547 256.525143,155.17259 L256.525143,124.146588 C329.115485,124.430449 387.881799,183.338693 387.881799,255.992903 C387.881799,328.654211 329.115485,387.562455 256.525143,387.846316 L256.525143,356.820314 Z M256.525143,201.718689 C286.266674,202.00255 310.3026,226.180407 310.3026,255.992903 C310.3026,285.812497 286.266674,309.990353 256.525143,310.274214 L256.525143,201.718689 Z M0,255.992903 C0,397.384044 114.60886,512 256,512 C397.384044,512 512,397.384044 512,255.992903 C512,114.60886 397.384044,2.842170
94e-14 256,2.84217094e-14 C114.60886,2.84217094e-14 0,114.60886 0,255.992903 Z" id="center" fill="url(#linearGradient-1)"></path>
+ <g id="half" transform="translate(140.437200, 255.011855) scale(-1, 1) translate(-140.437200, -255.011855) ">
+ <use fill="black" fill-opacity="1" filter="url(#filter-3)" xlink:href="#path-2"></use>
+ <use fill="url(#linearGradient-1)" fill-rule="evenodd" xlink:href="#path-2"></use>
+ </g>
+ </g>
+ </g>
+</svg>
\ No newline at end of file
diff --git a/browser/branding/alpha/firefox64.ico b/browser/branding/alpha/firefox64.ico
new file mode 100644
index 000000000000..e25514996d37
Binary files /dev/null and b/browser/branding/alpha/firefox64.ico differ
diff --git a/browser/branding/alpha/locales/browserconfig.properties b/browser/branding/alpha/locales/browserconfig.properties
new file mode 100644
index 000000000000..06cefece3b1e
--- /dev/null
+++ b/browser/branding/alpha/locales/browserconfig.properties
@@ -0,0 +1,6 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Do NOT localize or otherwise change these values
+browser.startup.homepage=about:home
diff --git a/browser/branding/alpha/locales/en-US/brand.dtd b/browser/branding/alpha/locales/en-US/brand.dtd
new file mode 100644
index 000000000000..aac10c9a47ac
--- /dev/null
+++ b/browser/branding/alpha/locales/en-US/brand.dtd
@@ -0,0 +1,9 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY brandShorterName "Tor Browser">
+<!ENTITY brandShortName "Tor Browser">
+<!ENTITY brandFullName "Tor Browser">
+<!ENTITY vendorShortName "Tor Project">
+<!ENTITY trademarkInfo.part1 "Firefox and the Firefox logos are trademarks of the Mozilla Foundation.">
diff --git a/browser/branding/alpha/locales/en-US/brand.ftl b/browser/branding/alpha/locales/en-US/brand.ftl
new file mode 100644
index 000000000000..a695ba5a0006
--- /dev/null
+++ b/browser/branding/alpha/locales/en-US/brand.ftl
@@ -0,0 +1,15 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+## Firefox Brand
+##
+## Firefox must be treated as a brand, and kept in English.
+## It cannot be:
+## - Declined to adapt to grammatical case.
+## - Transliterated.
+## - Translated.
+##
+## Reference: https://www.mozilla.org/styleguide/communications/translation/
+
+-brand-short-name = Alpha
diff --git a/browser/branding/alpha/locales/en-US/brand.properties b/browser/branding/alpha/locales/en-US/brand.properties
new file mode 100644
index 000000000000..1ac8467474dc
--- /dev/null
+++ b/browser/branding/alpha/locales/en-US/brand.properties
@@ -0,0 +1,10 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+brandShorterName=Tor Browser
+brandShortName=Tor Browser
+brandFullName=Tor Browser
+vendorShortName=Tor Project
+
+syncBrandShortName=Sync
diff --git a/browser/branding/alpha/locales/en-US/tor-browser-brand.ftl b/browser/branding/alpha/locales/en-US/tor-browser-brand.ftl
new file mode 100644
index 000000000000..7fecf9eccb5f
--- /dev/null
+++ b/browser/branding/alpha/locales/en-US/tor-browser-brand.ftl
@@ -0,0 +1,5 @@
+# For Tor Browser, we use a new file (different than the brand.ftl file
+# that is used by Firefox) to avoid picking up the -brand-short-name values
+# that Mozilla includes in the Firefox language packs.
+
+-brand-short-name = Tor Browser Alpha
diff --git a/browser/branding/alpha/locales/jar.mn b/browser/branding/alpha/locales/jar.mn
new file mode 100644
index 000000000000..c78c82947acd
--- /dev/null
+++ b/browser/branding/alpha/locales/jar.mn
@@ -0,0 +1,13 @@
+#filter substitution
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+[localization] @AB_CD@.jar:
+ branding (%*.ftl)
+
+@AB_CD@.jar:
+% locale branding @AB_CD@ %locale/branding/
+ locale/branding/brand.dtd (%brand.dtd)
+ locale/branding/brand.properties (%brand.properties)
+ locale/branding/browserconfig.properties
diff --git a/browser/branding/alpha/locales/moz.build b/browser/branding/alpha/locales/moz.build
new file mode 100644
index 000000000000..eb4454d28f88
--- /dev/null
+++ b/browser/branding/alpha/locales/moz.build
@@ -0,0 +1,7 @@
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
diff --git a/browser/branding/alpha/moz.build b/browser/branding/alpha/moz.build
new file mode 100644
index 000000000000..9045cee11bb8
--- /dev/null
+++ b/browser/branding/alpha/moz.build
@@ -0,0 +1,13 @@
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+DIRS += ['content', 'locales']
+
+DIST_SUBDIR = 'browser'
+export('DIST_SUBDIR')
+
+include('../branding-common.mozbuild')
+FirefoxBranding()
diff --git a/browser/branding/alpha/newtab.ico b/browser/branding/alpha/newtab.ico
new file mode 100644
index 000000000000..a9b37c08c6e1
Binary files /dev/null and b/browser/branding/alpha/newtab.ico differ
diff --git a/browser/branding/alpha/newwindow.ico b/browser/branding/alpha/newwindow.ico
new file mode 100644
index 000000000000..55372077102c
Binary files /dev/null and b/browser/branding/alpha/newwindow.ico differ
diff --git a/browser/branding/alpha/pbmode.ico b/browser/branding/alpha/pbmode.ico
new file mode 100644
index 000000000000..47677c13fba6
Binary files /dev/null and b/browser/branding/alpha/pbmode.ico differ
diff --git a/browser/branding/alpha/pref/firefox-branding.js b/browser/branding/alpha/pref/firefox-branding.js
new file mode 100644
index 000000000000..682da69ffce8
--- /dev/null
+++ b/browser/branding/alpha/pref/firefox-branding.js
@@ -0,0 +1,37 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+pref("startup.homepage_override_url", "");
+pref("startup.homepage_welcome_url", "https://www.mozilla.org/%LOCALE%/firefox/%VERSION%/firstrun/");
+pref("startup.homepage_welcome_url.additional", "");
+// Interval: Time between checks for a new version (in seconds)
+pref("app.update.interval", 43200); // 12 hours
+// The time interval between the downloading of mar file chunks in the
+// background (in seconds)
+// 0 means "download everything at once"
+pref("app.update.download.backgroundInterval", 0);
+// Give the user x seconds to react before showing the big UI. default=1 hour
+pref("app.update.promptWaitTime", 3600);
+// app.update.url.manual: URL user can browse to manually if for some reason
+// all update installation attempts fail.
+// app.update.url.details: a default value for the "More information about this
+// update" link supplied in the "An update is available" page of the update
+// wizard.
+pref("app.update.url.manual", "https://www.torproject.org/download/download-easy.html");
+pref("app.update.url.details", "https://www.torproject.org/projects/torbrowser.html");
+
+//pref("app.releaseNotesURL", "https://www.mozilla.org/%LOCALE%/firefox/%VERSION%/releasenotes/?utm_source…");
+
+// The number of days a binary is permitted to be old
+// without checking for an update. This assumes that
+// app.update.checkInstallTime is true.
+pref("app.update.checkInstallTime.days", 63);
+
+// Give the user x seconds to reboot before showing a badge on the hamburger
+// button. default=immediately
+pref("app.update.badgeWaitTime", 0);
+
+// Number of usages of the web console or scratchpad.
+// If this is less than 5, then pasting code into the web console or scratchpad is disabled
+pref("devtools.selfxss.count", 0);
diff --git a/browser/branding/alpha/wizHeader.bmp b/browser/branding/alpha/wizHeader.bmp
new file mode 100644
index 000000000000..a754d2db1e11
Binary files /dev/null and b/browser/branding/alpha/wizHeader.bmp differ
diff --git a/browser/branding/alpha/wizHeaderRTL.bmp b/browser/branding/alpha/wizHeaderRTL.bmp
new file mode 100644
index 000000000000..c944205be23f
Binary files /dev/null and b/browser/branding/alpha/wizHeaderRTL.bmp differ
diff --git a/browser/branding/alpha/wizWatermark.bmp b/browser/branding/alpha/wizWatermark.bmp
new file mode 100644
index 000000000000..9e523b5fa196
Binary files /dev/null and b/browser/branding/alpha/wizWatermark.bmp differ
diff --git a/browser/branding/branding-common.mozbuild b/browser/branding/branding-common.mozbuild
index c810138754d7..5d56361a0446 100644
--- a/browser/branding/branding-common.mozbuild
+++ b/browser/branding/branding-common.mozbuild
@@ -22,7 +22,9 @@ def FirefoxBranding():
FINAL_TARGET_FILES.chrome.icons.default += [
'default128.png',
'default16.png',
+ 'default256.png',
'default32.png',
'default48.png',
+ 'default512.png',
'default64.png',
]
diff --git a/browser/branding/nightly/VisualElements_150.png b/browser/branding/nightly/VisualElements_150.png
index d92384ef8274..a29d863d1766 100644
Binary files a/browser/branding/nightly/VisualElements_150.png and b/browser/branding/nightly/VisualElements_150.png differ
diff --git a/browser/branding/nightly/VisualElements_70.png b/browser/branding/nightly/VisualElements_70.png
index ff20e5d105ff..ccd90b8cf748 100644
Binary files a/browser/branding/nightly/VisualElements_70.png and b/browser/branding/nightly/VisualElements_70.png differ
diff --git a/browser/branding/nightly/configure.sh b/browser/branding/nightly/configure.sh
index 7c7f2cf8c820..243091484f75 100644
--- a/browser/branding/nightly/configure.sh
+++ b/browser/branding/nightly/configure.sh
@@ -2,5 +2,4 @@
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-MOZ_APP_DISPLAYNAME="Firefox Nightly"
-MOZ_MACBUNDLE_ID=nightly
+MOZ_APP_DISPLAYNAME="Tor Browser"
diff --git a/browser/branding/nightly/content/identity-icons-brand.svg b/browser/branding/nightly/content/identity-icons-brand.svg
index a7d2c6723945..fc1d9c997aeb 100644
--- a/browser/branding/nightly/content/identity-icons-brand.svg
+++ b/browser/branding/nightly/content/identity-icons-brand.svg
@@ -1,10 +1,29 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
- <defs>
- <linearGradient id="gradient" x1="32" x2="0" y2="32" gradientUnits="userSpaceOnUse">
- <stop offset="0" stop-color="#00c8d7"/>
- <stop offset=".85" stop-color="#a238ff"/>
- <stop offset="1" stop-color="#ff1ad9"/>
- </linearGradient>
- </defs>
- <path d="M31.4 14.627c-.044-.289-.088-.46-.088-.46s-.113.131-.3.379a10.807 10.807 0 0 0-.375-2.04 13.885 13.885 0 0 0-.94-2.418 10.077 10.077 0 0 0-.859-1.473q-.177-.264-.36-.512c-.571-.934-1.227-1.5-1.986-2.583a7.827 7.827 0 0 1-.992-2.692 10.88 10.88 0 0 0-.477 1.761c-.779-.786-1.458-1.345-1.866-1.726C21.133.978 21.367 0 21.367 0s-3.773 4.209-2.137 8.6a8.43 8.43 0 0 0 2.81 3.744c1.581 1.3 3.283 2.33 4.18 4.952a8.4 8.4 0 0 0-3.154-3.327 7.593 7.593 0 0 1 .6 3.006 7.145 7.145 0 0 1-8.736 6.96 6.576 6.576 0 0 1-1.77-.6 7.2 7.2 0 0 1-2.121-1.96l-.01-.017.126.046a6.516 6.516 0 0 0 .9.242 5.644 5.644 0 0 0 3.594-.424c1.129-.627 1.813-1.091 2.367-.908h.01c.542.172.969-.353.581-.9a2.949 2.949 0 0 0-2.846-1.114c-1.131.165-2.167.968-3.648.19a3.151 3.151 0 0 1-.278-.163c-.1-.058.318.088.221.022a7.342 7.342 0 0 1-.931-.555c-.022-.018.224.07.2.052a3.592 3.592 0 0 1-.971-.982 1.746 1.746 0 0 1-.066-1.559 1.376 1.376 0 0 1 .6-.566.7.7 0 0 1 .175-.079.254.254 0 0 1 .038-.009l.073.026c.146.067.3
65.177.542.275a4.5 4.5 0 0 1 .477.43 2.14 2.14 0 0 0 .294-1.122 5.173 5.173 0 0 0-.061-.751.118.118 0 0 1 .094.048.977.977 0 0 0-.079-.239v-.008s.053-.069.078-.095a1.437 1.437 0 0 1 .216-.176 10 10 0 0 1 1.469-.749c.416-.181.759-.32.83-.36a2.287 2.287 0 0 0 .294-.226 1.973 1.973 0 0 0 .661-1.143 1.6 1.6 0 0 0 .017-.178v-.105c-.06-.226-.449-.395-2.483-.586a1.778 1.778 0 0 1-1.454-1.364v.009-.016a5.153 5.153 0 0 1 1.992-2.474c.052-.042-.208.011-.156-.032a5.18 5.18 0 0 1 .532-.225c.072-.03-.21-.146-.539-.175a3.5 3.5 0 0 0-1.87.221 4.75 4.75 0 0 0-1.821 1.218 6.3 6.3 0 0 0-3.5-.291l-.01-.009h.012a2.951 2.951 0 0 1-.627-.7l-.008-.012-.014-.021a5.48 5.48 0 0 1-.237-.388 5.527 5.527 0 0 1-.176-.339c0-.008-.009-.011-.013-.012-.024 0-.041.111-.061.082v-.006a4.321 4.321 0 0 1-.304-1.698s-.685.271-1.5 2.1a8.109 8.109 0 0 0-.6 2.793c-.008.112-.011.2-.01.257v.107a6.637 6.637 0 0 0-.817 1.1 15.65 15.65 0 0 0-1.736 4.24 10.378 10.378 0 0 1 .928-1.626 15.04 15.04 0 0 0-1.049 5.514 14.257 14.257 0 0
1 .451-1.634 13.847 13.847 0 0 0 1.25 6.489 15.08 15.08 0 0 0 5.968 6.768 13.058 13.058 0 0 0 3.478 1.667c.163.059.327.117.5.173-.053-.021-.1-.044-.153-.067a15.752 15.752 0 0 0 4.506.659c5.41 0 7.2-2.06 7.36-2.266a2.738 2.738 0 0 0 .639-.858q.156-.064.316-.137l.067-.03.122-.057a11.347 11.347 0 0 0 2.284-1.43 5.511 5.511 0 0 0 2.129-3.11 1.944 1.944 0 0 0 .029-1.433q.083-.132.171-.28a12.743 12.743 0 0 0 1.913-6.2v-.184a7.762 7.762 0 0 0-.115-1.388z" fill="url(#gradient)"/>
-</svg>
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="512px" height="512px" viewBox="-17 -17 546 546" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <defs>
+ <linearGradient x1="25.1281738%" y1="5.44281006%" x2="54.3792725%" y2="100%" id="linearGradient-1">
+ <stop stop-color="#00E1E8" offset="0%"></stop>
+ <stop stop-color="#3500FF" offset="100%"></stop>
+ </linearGradient>
+ <linearGradient x1="25.1281738%" y1="5.44281006%" x2="54.3792725%" y2="100%" id="linearGradient-2">
+ <stop stop-color="#00E1E8" offset="0%"></stop>
+ <stop stop-color="#3500FF" offset="100%"></stop>
+ </linearGradient>
+ <path d="M25,25 C152.50841,25 255.874399,127.979815 255.874399,255.011855 C255.874399,382.043895 152.50841,485.02371 25,485.02371 L25,25 Z" id="path-3"></path>
+ <filter x="-20.8%" y="-8.7%" width="134.7%" height="117.4%" filterUnits="objectBoundingBox" id="filter-4">
+ <feOffset dx="-8" dy="0" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
+ <feGaussianBlur stdDeviation="12" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
+ <feColorMatrix values="0 0 0 0 0.0872579578 0 0 0 0 0.00490370801 0 0 0 0 0.234933036 0 0 0 0.5 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
+ </filter>
+ </defs>
+ <g id="Nightly" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+ <g>
+ <circle id="background" fill-opacity="0.9" fill="#030004" fill-rule="nonzero" cx="256" cy="256" r="246"></circle>
+ <path d="M256.525143,465.439707 L256.525143,434.406609 C354.826191,434.122748 434.420802,354.364917 434.420802,255.992903 C434.420802,157.627987 354.826191,77.8701558 256.525143,77.5862948 L256.525143,46.5531962 C371.964296,46.8441537 465.446804,140.489882 465.446804,255.992903 C465.446804,371.503022 371.964296,465.155846 256.525143,465.439707 Z M256.525143,356.820314 C311.970283,356.529356 356.8487,311.516106 356.8487,255.992903 C356.8487,200.476798 311.970283,155.463547 256.525143,155.17259 L256.525143,124.146588 C329.115485,124.430449 387.881799,183.338693 387.881799,255.992903 C387.881799,328.654211 329.115485,387.562455 256.525143,387.846316 L256.525143,356.820314 Z M256.525143,201.718689 C286.266674,202.00255 310.3026,226.180407 310.3026,255.992903 C310.3026,285.812497 286.266674,309.990353 256.525143,310.274214 L256.525143,201.718689 Z M0,255.992903 C0,397.384044 114.60886,512 256,512 C397.384044,512 512,397.384044 512,255.992903 C512,114.60886 397.384044,2.842170
94e-14 256,2.84217094e-14 C114.60886,2.84217094e-14 0,114.60886 0,255.992903 Z" id="center" fill="url(#linearGradient-1)"></path>
+ <g id="half" transform="translate(140.437200, 255.011855) scale(-1, 1) translate(-140.437200, -255.011855) ">
+ <use fill="black" fill-opacity="1" filter="url(#filter-4)" xlink:href="#path-3"></use>
+ <use fill="url(#linearGradient-2)" fill-rule="evenodd" xlink:href="#path-3"></use>
+ </g>
+ </g>
+ </g>
+</svg>
\ No newline at end of file
diff --git a/browser/branding/nightly/content/jar.mn b/browser/branding/nightly/content/jar.mn
index 40e013ec50b8..512af80a55de 100644
--- a/browser/branding/nightly/content/jar.mn
+++ b/browser/branding/nightly/content/jar.mn
@@ -13,5 +13,7 @@ browser.jar:
content/branding/icon48.png (../default48.png)
content/branding/icon64.png (../default64.png)
content/branding/icon128.png (../default128.png)
+ content/branding/icon256.png (../default256.png)
+ content/branding/icon512.png (../default512.png)
content/branding/identity-icons-brand.svg
content/branding/aboutDialog.css
diff --git a/browser/branding/nightly/default128.png b/browser/branding/nightly/default128.png
index b0f7bcb52cd2..12998ed018a7 100644
Binary files a/browser/branding/nightly/default128.png and b/browser/branding/nightly/default128.png differ
diff --git a/browser/branding/nightly/default16.png b/browser/branding/nightly/default16.png
index 7dcbad9c0e63..737ade977a6b 100644
Binary files a/browser/branding/nightly/default16.png and b/browser/branding/nightly/default16.png differ
diff --git a/browser/branding/nightly/default256.png b/browser/branding/nightly/default256.png
new file mode 100644
index 000000000000..f619aecbc6e3
Binary files /dev/null and b/browser/branding/nightly/default256.png differ
diff --git a/browser/branding/nightly/default32.png b/browser/branding/nightly/default32.png
index fd31fa0b97f5..499bc8ff7fc9 100644
Binary files a/browser/branding/nightly/default32.png and b/browser/branding/nightly/default32.png differ
diff --git a/browser/branding/nightly/default48.png b/browser/branding/nightly/default48.png
index 08f1f757590e..fc99e3829d5f 100644
Binary files a/browser/branding/nightly/default48.png and b/browser/branding/nightly/default48.png differ
diff --git a/browser/branding/nightly/default512.png b/browser/branding/nightly/default512.png
new file mode 100644
index 000000000000..4ff5f7fa3495
Binary files /dev/null and b/browser/branding/nightly/default512.png differ
diff --git a/browser/branding/nightly/default64.png b/browser/branding/nightly/default64.png
index 91aadf680cd6..5a84a5384942 100644
Binary files a/browser/branding/nightly/default64.png and b/browser/branding/nightly/default64.png differ
diff --git a/browser/branding/nightly/document.icns b/browser/branding/nightly/document.icns
index 85af9dacdedc..4acf7a5d1a4b 100644
Binary files a/browser/branding/nightly/document.icns and b/browser/branding/nightly/document.icns differ
diff --git a/browser/branding/nightly/document.ico b/browser/branding/nightly/document.ico
index d61e21e1a11b..ecb8e3dc6c73 100644
Binary files a/browser/branding/nightly/document.ico and b/browser/branding/nightly/document.ico differ
diff --git a/browser/branding/nightly/firefox.VisualElementsManifest.xml b/browser/branding/nightly/firefox.VisualElementsManifest.xml
index 16e932c60e45..15e2690fdd04 100644
--- a/browser/branding/nightly/firefox.VisualElementsManifest.xml
+++ b/browser/branding/nightly/firefox.VisualElementsManifest.xml
@@ -4,5 +4,5 @@
Square150x150Logo='browser\VisualElements\VisualElements_150.png'
Square70x70Logo='browser\VisualElements\VisualElements_70.png'
ForegroundText='light'
- BackgroundColor='#000f40'/>
+ BackgroundColor='#1c191d'/>
</Application>
diff --git a/browser/branding/nightly/firefox.icns b/browser/branding/nightly/firefox.icns
index 371152101582..5223801d095a 100644
Binary files a/browser/branding/nightly/firefox.icns and b/browser/branding/nightly/firefox.icns differ
diff --git a/browser/branding/nightly/firefox.ico b/browser/branding/nightly/firefox.ico
index 0155b3e800ed..eb28c93ab25f 100644
Binary files a/browser/branding/nightly/firefox.ico and b/browser/branding/nightly/firefox.ico differ
diff --git a/browser/branding/nightly/firefox.svg b/browser/branding/nightly/firefox.svg
new file mode 100644
index 000000000000..c11b568b8553
--- /dev/null
+++ b/browser/branding/nightly/firefox.svg
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="512px" height="512px" viewBox="0 0 512 512" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <defs>
+ <linearGradient x1="25.1281738%" y1="5.44281006%" x2="54.3792725%" y2="100%" id="linearGradient-1">
+ <stop stop-color="#00E1E8" offset="0%"></stop>
+ <stop stop-color="#3500FF" offset="100%"></stop>
+ </linearGradient>
+ <linearGradient x1="25.1281738%" y1="5.44281006%" x2="54.3792725%" y2="100%" id="linearGradient-2">
+ <stop stop-color="#00E1E8" offset="0%"></stop>
+ <stop stop-color="#3500FF" offset="100%"></stop>
+ </linearGradient>
+ <path d="M25,25 C152.50841,25 255.874399,127.979815 255.874399,255.011855 C255.874399,382.043895 152.50841,485.02371 25,485.02371 L25,25 Z" id="path-3"></path>
+ <filter x="-20.8%" y="-8.7%" width="134.7%" height="117.4%" filterUnits="objectBoundingBox" id="filter-4">
+ <feOffset dx="-8" dy="0" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
+ <feGaussianBlur stdDeviation="12" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
+ <feColorMatrix values="0 0 0 0 0.0872579578 0 0 0 0 0.00490370801 0 0 0 0 0.234933036 0 0 0 0.5 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
+ </filter>
+ </defs>
+ <g id="Nightly" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+ <g>
+ <circle id="background" fill-opacity="0.9" fill="#030004" fill-rule="nonzero" cx="256" cy="256" r="246"></circle>
+ <path d="M256.525143,465.439707 L256.525143,434.406609 C354.826191,434.122748 434.420802,354.364917 434.420802,255.992903 C434.420802,157.627987 354.826191,77.8701558 256.525143,77.5862948 L256.525143,46.5531962 C371.964296,46.8441537 465.446804,140.489882 465.446804,255.992903 C465.446804,371.503022 371.964296,465.155846 256.525143,465.439707 Z M256.525143,356.820314 C311.970283,356.529356 356.8487,311.516106 356.8487,255.992903 C356.8487,200.476798 311.970283,155.463547 256.525143,155.17259 L256.525143,124.146588 C329.115485,124.430449 387.881799,183.338693 387.881799,255.992903 C387.881799,328.654211 329.115485,387.562455 256.525143,387.846316 L256.525143,356.820314 Z M256.525143,201.718689 C286.266674,202.00255 310.3026,226.180407 310.3026,255.992903 C310.3026,285.812497 286.266674,309.990353 256.525143,310.274214 L256.525143,201.718689 Z M0,255.992903 C0,397.384044 114.60886,512 256,512 C397.384044,512 512,397.384044 512,255.992903 C512,114.60886 397.384044,2.842170
94e-14 256,2.84217094e-14 C114.60886,2.84217094e-14 0,114.60886 0,255.992903 Z" id="center" fill="url(#linearGradient-1)"></path>
+ <g id="half" transform="translate(140.437200, 255.011855) scale(-1, 1) translate(-140.437200, -255.011855) ">
+ <use fill="black" fill-opacity="1" filter="url(#filter-4)" xlink:href="#path-3"></use>
+ <use fill="url(#linearGradient-2)" fill-rule="evenodd" xlink:href="#path-3"></use>
+ </g>
+ </g>
+ </g>
+</svg>
\ No newline at end of file
diff --git a/browser/branding/nightly/firefox64.ico b/browser/branding/nightly/firefox64.ico
index 1dfd0c2ab58e..eb28c93ab25f 100644
Binary files a/browser/branding/nightly/firefox64.ico and b/browser/branding/nightly/firefox64.ico differ
diff --git a/browser/branding/nightly/locales/en-US/brand.dtd b/browser/branding/nightly/locales/en-US/brand.dtd
index 30e706782882..aac10c9a47ac 100644
--- a/browser/branding/nightly/locales/en-US/brand.dtd
+++ b/browser/branding/nightly/locales/en-US/brand.dtd
@@ -2,8 +2,8 @@
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
-<!ENTITY brandShorterName "Nightly">
-<!ENTITY brandShortName "Nightly">
-<!ENTITY brandFullName "Firefox Nightly">
-<!ENTITY vendorShortName "Mozilla">
-<!ENTITY trademarkInfo.part1 " ">
+<!ENTITY brandShorterName "Tor Browser">
+<!ENTITY brandShortName "Tor Browser">
+<!ENTITY brandFullName "Tor Browser">
+<!ENTITY vendorShortName "Tor Project">
+<!ENTITY trademarkInfo.part1 "Firefox and the Firefox logos are trademarks of the Mozilla Foundation.">
diff --git a/browser/branding/nightly/locales/en-US/brand.properties b/browser/branding/nightly/locales/en-US/brand.properties
index 3e05923ec937..1ac8467474dc 100644
--- a/browser/branding/nightly/locales/en-US/brand.properties
+++ b/browser/branding/nightly/locales/en-US/brand.properties
@@ -2,9 +2,9 @@
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-brandShorterName=Nightly
-brandShortName=Nightly
-brandFullName=Firefox Nightly
-vendorShortName=Mozilla
+brandShorterName=Tor Browser
+brandShortName=Tor Browser
+brandFullName=Tor Browser
+vendorShortName=Tor Project
syncBrandShortName=Sync
diff --git a/browser/branding/nightly/locales/en-US/tor-browser-brand.ftl b/browser/branding/nightly/locales/en-US/tor-browser-brand.ftl
new file mode 100644
index 000000000000..91af3397a178
--- /dev/null
+++ b/browser/branding/nightly/locales/en-US/tor-browser-brand.ftl
@@ -0,0 +1,5 @@
+# For Tor Browser, we use a new file (different than the brand.ftl file
+# that is used by Firefox) to avoid picking up the -brand-short-name values
+# that Mozilla includes in the Firefox language packs.
+
+-brand-short-name = Tor Browser Nightly
diff --git a/browser/branding/nightly/locales/jar.mn b/browser/branding/nightly/locales/jar.mn
index b58100a6da47..c78c82947acd 100644
--- a/browser/branding/nightly/locales/jar.mn
+++ b/browser/branding/nightly/locales/jar.mn
@@ -4,11 +4,10 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
[localization] @AB_CD@.jar:
- branding (en-US/**/*.ftl)
+ branding (%*.ftl)
@AB_CD@.jar:
% locale branding @AB_CD@ %locale/branding/
-# Nightly branding only exists in en-US
- locale/branding/brand.dtd (en-US/brand.dtd)
- locale/branding/brand.properties (en-US/brand.properties)
+ locale/branding/brand.dtd (%brand.dtd)
+ locale/branding/brand.properties (%brand.properties)
locale/branding/browserconfig.properties
diff --git a/browser/branding/nightly/locales/moz.build b/browser/branding/nightly/locales/moz.build
index 8bad13124d5a..eb4454d28f88 100644
--- a/browser/branding/nightly/locales/moz.build
+++ b/browser/branding/nightly/locales/moz.build
@@ -4,6 +4,4 @@
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-DEFINES['MOZ_DISTRIBUTION_ID_UNQUOTED'] = CONFIG['MOZ_DISTRIBUTION_ID']
-
JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
diff --git a/browser/branding/nightly/pref/firefox-branding.js b/browser/branding/nightly/pref/firefox-branding.js
index 183244f348fd..682da69ffce8 100644
--- a/browser/branding/nightly/pref/firefox-branding.js
+++ b/browser/branding/nightly/pref/firefox-branding.js
@@ -2,30 +2,31 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-pref("startup.homepage_override_url", "https://www.mozilla.org/projects/firefox/%VERSION%/whatsnew/?oldversion=%OL…");
-pref("startup.homepage_welcome_url", "https://www.mozilla.org/projects/firefox/%VERSION%/firstrun/");
+pref("startup.homepage_override_url", "");
+pref("startup.homepage_welcome_url", "https://www.mozilla.org/%LOCALE%/firefox/%VERSION%/firstrun/");
pref("startup.homepage_welcome_url.additional", "");
-// The time interval between checks for a new version (in seconds)
-pref("app.update.interval", 7200); // 2 hours
+// Interval: Time between checks for a new version (in seconds)
+pref("app.update.interval", 43200); // 12 hours
// The time interval between the downloading of mar file chunks in the
// background (in seconds)
// 0 means "download everything at once"
pref("app.update.download.backgroundInterval", 0);
-// Give the user x seconds to react before showing the big UI. default=12 hours
-pref("app.update.promptWaitTime", 43200);
-// URL user can browse to manually if for some reason all update installation
-// attempts fail.
-pref("app.update.url.manual", "https://www.mozilla.org/%LOCALE%/firefox/nightly/");
-// A default value for the "More information about this update" link
-// supplied in the "An update is available" page of the update wizard.
-pref("app.update.url.details", "https://www.mozilla.org/%LOCALE%/firefox/nightly/notes/");
+// Give the user x seconds to react before showing the big UI. default=1 hour
+pref("app.update.promptWaitTime", 3600);
+// app.update.url.manual: URL user can browse to manually if for some reason
+// all update installation attempts fail.
+// app.update.url.details: a default value for the "More information about this
+// update" link supplied in the "An update is available" page of the update
+// wizard.
+pref("app.update.url.manual", "https://www.torproject.org/download/download-easy.html");
+pref("app.update.url.details", "https://www.torproject.org/projects/torbrowser.html");
-pref("app.releaseNotesURL", "https://www.mozilla.org/%LOCALE%/firefox/%VERSION%/releasenotes/?utm_source…");
+//pref("app.releaseNotesURL", "https://www.mozilla.org/%LOCALE%/firefox/%VERSION%/releasenotes/?utm_source…");
// The number of days a binary is permitted to be old
// without checking for an update. This assumes that
// app.update.checkInstallTime is true.
-pref("app.update.checkInstallTime.days", 2);
+pref("app.update.checkInstallTime.days", 63);
// Give the user x seconds to reboot before showing a badge on the hamburger
// button. default=immediately
@@ -33,4 +34,4 @@ pref("app.update.badgeWaitTime", 0);
// Number of usages of the web console or scratchpad.
// If this is less than 5, then pasting code into the web console or scratchpad is disabled
-pref("devtools.selfxss.count", 5);
+pref("devtools.selfxss.count", 0);
diff --git a/browser/branding/nightly/wizHeader.bmp b/browser/branding/nightly/wizHeader.bmp
index a771b4da41dd..a754d2db1e11 100644
Binary files a/browser/branding/nightly/wizHeader.bmp and b/browser/branding/nightly/wizHeader.bmp differ
diff --git a/browser/branding/nightly/wizHeaderRTL.bmp b/browser/branding/nightly/wizHeaderRTL.bmp
index 0b2264100ad1..c944205be23f 100644
Binary files a/browser/branding/nightly/wizHeaderRTL.bmp and b/browser/branding/nightly/wizHeaderRTL.bmp differ
diff --git a/browser/branding/nightly/wizWatermark.bmp b/browser/branding/nightly/wizWatermark.bmp
index 6dd11b809955..9e523b5fa196 100644
Binary files a/browser/branding/nightly/wizWatermark.bmp and b/browser/branding/nightly/wizWatermark.bmp differ
diff --git a/browser/branding/official/VisualElements_150.png b/browser/branding/official/VisualElements_150.png
index 401521d8da55..acc02c97d827 100644
Binary files a/browser/branding/official/VisualElements_150.png and b/browser/branding/official/VisualElements_150.png differ
diff --git a/browser/branding/official/VisualElements_70.png b/browser/branding/official/VisualElements_70.png
index 64170c27ec07..890a227e251a 100644
Binary files a/browser/branding/official/VisualElements_70.png and b/browser/branding/official/VisualElements_70.png differ
diff --git a/browser/branding/official/content/identity-icons-brand.svg b/browser/branding/official/content/identity-icons-brand.svg
index be779300d04b..62472ad1826e 100644
--- a/browser/branding/official/content/identity-icons-brand.svg
+++ b/browser/branding/official/content/identity-icons-brand.svg
@@ -1,17 +1,31 @@
-<svg data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
- <defs>
- <linearGradient id="a" x1="31.36" y1="-.127" x2="4.307" y2="27.635" gradientUnits="userSpaceOnUse">
- <stop offset="0" stop-color="#ffea00"/>
- <stop offset=".108" stop-color="#ffde00"/>
- <stop offset=".3" stop-color="#ffbf00"/>
- <stop offset=".552" stop-color="#ff8e00"/>
- <stop offset=".816" stop-color="#ff272d"/>
- <stop offset=".848" stop-color="#fb2532"/>
- <stop offset=".887" stop-color="#ee1e40"/>
- <stop offset=".928" stop-color="#d81358"/>
- <stop offset=".971" stop-color="#ba0379"/>
- <stop offset=".978" stop-color="#b5007f"/>
- </linearGradient>
- </defs>
- <path d="M31.4 14.627c-.044-.289-.088-.46-.088-.46s-.113.131-.3.379a10.8 10.8 0 0 0-.375-2.04 13.883 13.883 0 0 0-.94-2.418 10.078 10.078 0 0 0-.858-1.473q-.177-.264-.36-.512c-.571-.934-1.227-1.5-1.986-2.583a7.826 7.826 0 0 1-.993-2.692 10.88 10.88 0 0 0-.477 1.761c-.779-.786-1.458-1.345-1.866-1.726C21.133.978 21.367 0 21.367 0s-3.773 4.209-2.137 8.6a8.43 8.43 0 0 0 2.81 3.744c1.581 1.3 3.283 2.33 4.18 4.952a8.4 8.4 0 0 0-3.154-3.327 7.593 7.593 0 0 1 .6 3.006 7.145 7.145 0 0 1-8.736 6.96 6.576 6.576 0 0 1-1.77-.6 7.2 7.2 0 0 1-2.121-1.96l-.01-.017.126.046a6.517 6.517 0 0 0 .9.242 5.644 5.644 0 0 0 3.594-.424c1.129-.626 1.813-1.091 2.367-.908h.01c.542.172.969-.353.581-.9a2.949 2.949 0 0 0-2.846-1.114c-1.131.165-2.167.968-3.648.19a3.13 3.13 0 0 1-.278-.163c-.1-.058.317.088.221.022a7.351 7.351 0 0 1-.931-.555c-.022-.018.224.07.2.052a3.591 3.591 0 0 1-.971-.982 1.746 1.746 0 0 1-.066-1.559 1.376 1.376 0 0 1 .6-.566c.192.095.31.166.31.166s-.087-.16-.135-.244c.017-.006.032 0 .049-.011.
168.073.539.261.734.376a1.018 1.018 0 0 1 .335.3s.067-.033.017-.173a.907.907 0 0 0-.347-.425h.016A2.952 2.952 0 0 1 12.3 15a2.085 2.085 0 0 0 .171-.906 1.181 1.181 0 0 0-.069-.5c-.054-.1.03-.14.123-.035a.977.977 0 0 0-.079-.239v-.008s.053-.069.078-.095a1.434 1.434 0 0 1 .216-.176 10 10 0 0 1 1.469-.749c.416-.181.759-.32.83-.36a2.287 2.287 0 0 0 .294-.226 1.973 1.973 0 0 0 .661-1.143 1.593 1.593 0 0 0 .017-.178v-.105c-.06-.226-.449-.395-2.483-.586a1.778 1.778 0 0 1-1.454-1.364v.009c-.029.075-.055.15-.081.225.026-.075.052-.151.081-.225v-.016a5.153 5.153 0 0 1 1.992-2.474c.052-.043-.208.011-.156-.032a5.18 5.18 0 0 1 .532-.225c.091-.039-.391-.222-.818-.178a2.2 2.2 0 0 0-.758.178c.1-.086.4-.2.33-.2a4.877 4.877 0 0 0-1.547.585.315.315 0 0 1 .03-.14 2.407 2.407 0 0 0-.966.746 1.286 1.286 0 0 0 .01-.174 2.883 2.883 0 0 0-.475.446l-.009.007a6.3 6.3 0 0 0-3.527-.3l-.01-.009h.012a2.953 2.953 0 0 1-.627-.7l-.008-.012-.014-.021a5.48 5.48 0 0 1-.237-.388 5.527 5.527 0 0 1-.176-.339c0-.008-.009-.0
11-.013-.012-.024 0-.041.111-.061.082v-.006a4.322 4.322 0 0 1-.309-1.697l-.016.008a1.89 1.89 0 0 0-.716.937c-.062.137-.1.213-.14.288v-.035c.009-.069.039-.212.032-.2s-.013.019-.02.029a1.741 1.741 0 0 0-.252.373 2.366 2.366 0 0 0-.15.383c-.006.021 0-.018 0-.064s.009-.128 0-.111l-.022.043a9.526 9.526 0 0 0-.806 3.044 3.038 3.038 0 0 0-.023.54v.016a6.641 6.641 0 0 0-.819 1.1 15.65 15.65 0 0 0-1.731 4.246 10.379 10.379 0 0 1 .928-1.626 15.041 15.041 0 0 0-1.049 5.514 14.264 14.264 0 0 1 .451-1.634 13.848 13.848 0 0 0 1.25 6.489 15.08 15.08 0 0 0 5.968 6.768 13.057 13.057 0 0 0 3.478 1.667c.163.059.327.117.5.173-.053-.021-.1-.044-.153-.067a15.752 15.752 0 0 0 4.506.659c5.41 0 7.2-2.06 7.36-2.266a2.739 2.739 0 0 0 .639-.858q.156-.064.316-.137l.067-.03.122-.057a11.349 11.349 0 0 0 2.284-1.43 5.511 5.511 0 0 0 2.129-3.11 1.944 1.944 0 0 0 .029-1.433q.083-.132.171-.28a12.743 12.743 0 0 0 1.913-6.2v-.184a7.76 7.76 0 0 0-.115-1.388z" fill="url(#a)"/>
-</svg>
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="512px" height="512px" viewBox="-17 -17 546 546" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <defs>
+ <linearGradient x1="50%" y1="100%" x2="50%" y2="0%" id="linearGradient-1">
+ <stop stop-color="#420C5D" offset="0%"></stop>
+ <stop stop-color="#951AD1" offset="100%"></stop>
+ </linearGradient>
+ <path d="M25,29 C152.577777,29 256,131.974508 256,259 C256,386.025492 152.577777,489 25,489 L25,29 Z" id="path-2"></path>
+ <filter x="-18.2%" y="-7.4%" width="129.4%" height="114.8%" filterUnits="objectBoundingBox" id="filter-3">
+ <feOffset dx="-8" dy="0" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
+ <feGaussianBlur stdDeviation="10" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
+ <feColorMatrix values="0 0 0 0 0.250980392 0 0 0 0 0.250980392 0 0 0 0 0.250980392 0 0 0 0.2 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
+ </filter>
+ </defs>
+ <g id="Assets" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+ <g id="icon_512x512">
+ <g id="Group">
+ <g id="tb_icon/Stable">
+ <g id="Stable">
+ <circle id="background" fill="#F2E4FF" fill-rule="nonzero" cx="256" cy="256" r="246"></circle>
+ <path d="M256.525143,465.439707 L256.525143,434.406609 C354.826191,434.122748 434.420802,354.364917 434.420802,255.992903 C434.420802,157.627987 354.826191,77.8701558 256.525143,77.5862948 L256.525143,46.5531962 C371.964296,46.8441537 465.446804,140.489882 465.446804,255.992903 C465.446804,371.503022 371.964296,465.155846 256.525143,465.439707 Z M256.525143,356.820314 C311.970283,356.529356 356.8487,311.516106 356.8487,255.992903 C356.8487,200.476798 311.970283,155.463547 256.525143,155.17259 L256.525143,124.146588 C329.115485,124.430449 387.881799,183.338693 387.881799,255.992903 C387.881799,328.654211 329.115485,387.562455 256.525143,387.846316 L256.525143,356.820314 Z M256.525143,201.718689 C286.266674,202.00255 310.3026,226.180407 310.3026,255.992903 C310.3026,285.812497 286.266674,309.990353 256.525143,310.274214 L256.525143,201.718689 Z M0,255.992903 C0,397.384044 114.60886,512 256,512 C397.384044,512 512,397.384044 512,255.992903 C512,114.60886 397.384
044,0 256,0 C114.60886,0 0,114.60886 0,255.992903 Z" id="center" fill="url(#linearGradient-1)"></path>
+ <g id="half" transform="translate(140.500000, 259.000000) scale(-1, 1) translate(-140.500000, -259.000000) ">
+ <use fill="black" fill-opacity="1" filter="url(#filter-3)" xlink:href="#path-2"></use>
+ <use fill="url(#linearGradient-1)" fill-rule="evenodd" xlink:href="#path-2"></use>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+</svg>
\ No newline at end of file
diff --git a/browser/branding/official/content/jar.mn b/browser/branding/official/content/jar.mn
index 40e013ec50b8..512af80a55de 100644
--- a/browser/branding/official/content/jar.mn
+++ b/browser/branding/official/content/jar.mn
@@ -13,5 +13,7 @@ browser.jar:
content/branding/icon48.png (../default48.png)
content/branding/icon64.png (../default64.png)
content/branding/icon128.png (../default128.png)
+ content/branding/icon256.png (../default256.png)
+ content/branding/icon512.png (../default512.png)
content/branding/identity-icons-brand.svg
content/branding/aboutDialog.css
diff --git a/browser/branding/official/default128.png b/browser/branding/official/default128.png
index 7113b0ae15cf..18f3572d0d79 100644
Binary files a/browser/branding/official/default128.png and b/browser/branding/official/default128.png differ
diff --git a/browser/branding/official/default16.png b/browser/branding/official/default16.png
index 9a6f283b8f05..904b84e49871 100644
Binary files a/browser/branding/official/default16.png and b/browser/branding/official/default16.png differ
diff --git a/browser/branding/official/default22.png b/browser/branding/official/default22.png
deleted file mode 100644
index a9ef81c47df0..000000000000
Binary files a/browser/branding/official/default22.png and /dev/null differ
diff --git a/browser/branding/official/default24.png b/browser/branding/official/default24.png
deleted file mode 100644
index fdbbae3fdc0d..000000000000
Binary files a/browser/branding/official/default24.png and /dev/null differ
diff --git a/browser/branding/official/default256.png b/browser/branding/official/default256.png
index 1682f54b98fb..809dbad4ab16 100644
Binary files a/browser/branding/official/default256.png and b/browser/branding/official/default256.png differ
diff --git a/browser/branding/official/default32.png b/browser/branding/official/default32.png
index 494951ce50d6..e8e68eb4492c 100644
Binary files a/browser/branding/official/default32.png and b/browser/branding/official/default32.png differ
diff --git a/browser/branding/official/default48.png b/browser/branding/official/default48.png
index 1b78e3b41967..e839211d260b 100644
Binary files a/browser/branding/official/default48.png and b/browser/branding/official/default48.png differ
diff --git a/browser/branding/official/default512.png b/browser/branding/official/default512.png
new file mode 100644
index 000000000000..23942859673d
Binary files /dev/null and b/browser/branding/official/default512.png differ
diff --git a/browser/branding/official/default64.png b/browser/branding/official/default64.png
index 29cca7e1c881..147a229fab8b 100644
Binary files a/browser/branding/official/default64.png and b/browser/branding/official/default64.png differ
diff --git a/browser/branding/official/document.icns b/browser/branding/official/document.icns
index 476c7d6984b1..27a776a12557 100644
Binary files a/browser/branding/official/document.icns and b/browser/branding/official/document.icns differ
diff --git a/browser/branding/official/document.ico b/browser/branding/official/document.ico
index 311340e14fd1..3e5d99012f89 100644
Binary files a/browser/branding/official/document.ico and b/browser/branding/official/document.ico differ
diff --git a/browser/branding/official/firefox.VisualElementsManifest.xml b/browser/branding/official/firefox.VisualElementsManifest.xml
index 16e932c60e45..fc118941e3f3 100644
--- a/browser/branding/official/firefox.VisualElementsManifest.xml
+++ b/browser/branding/official/firefox.VisualElementsManifest.xml
@@ -4,5 +4,5 @@
Square150x150Logo='browser\VisualElements\VisualElements_150.png'
Square70x70Logo='browser\VisualElements\VisualElements_70.png'
ForegroundText='light'
- BackgroundColor='#000f40'/>
+ BackgroundColor='#420c5e'/>
</Application>
diff --git a/browser/branding/official/firefox.icns b/browser/branding/official/firefox.icns
index 481914fc8019..721e57925b69 100644
Binary files a/browser/branding/official/firefox.icns and b/browser/branding/official/firefox.icns differ
diff --git a/browser/branding/official/firefox.ico b/browser/branding/official/firefox.ico
index 01fb0efda56d..db0a9af865b6 100644
Binary files a/browser/branding/official/firefox.ico and b/browser/branding/official/firefox.ico differ
diff --git a/browser/branding/official/firefox.svg b/browser/branding/official/firefox.svg
new file mode 100644
index 000000000000..9240dc6e84ca
--- /dev/null
+++ b/browser/branding/official/firefox.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="512px" height="512px" viewBox="0 0 512 512" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <defs>
+ <linearGradient x1="50%" y1="100%" x2="50%" y2="0%" id="linearGradient-1">
+ <stop stop-color="#420C5D" offset="0%"></stop>
+ <stop stop-color="#951AD1" offset="100%"></stop>
+ </linearGradient>
+ <path d="M25,29 C152.577777,29 256,131.974508 256,259 C256,386.025492 152.577777,489 25,489 L25,29 Z" id="path-2"></path>
+ <filter x="-18.2%" y="-7.4%" width="129.4%" height="114.8%" filterUnits="objectBoundingBox" id="filter-3">
+ <feOffset dx="-8" dy="0" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
+ <feGaussianBlur stdDeviation="10" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
+ <feColorMatrix values="0 0 0 0 0.250980392 0 0 0 0 0.250980392 0 0 0 0 0.250980392 0 0 0 0.2 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
+ </filter>
+ </defs>
+ <g id="Assets" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+ <g id="icon_512x512">
+ <g id="Group">
+ <g id="tb_icon/Stable">
+ <g id="Stable">
+ <circle id="background" fill="#F2E4FF" fill-rule="nonzero" cx="256" cy="256" r="246"></circle>
+ <path d="M256.525143,465.439707 L256.525143,434.406609 C354.826191,434.122748 434.420802,354.364917 434.420802,255.992903 C434.420802,157.627987 354.826191,77.8701558 256.525143,77.5862948 L256.525143,46.5531962 C371.964296,46.8441537 465.446804,140.489882 465.446804,255.992903 C465.446804,371.503022 371.964296,465.155846 256.525143,465.439707 Z M256.525143,356.820314 C311.970283,356.529356 356.8487,311.516106 356.8487,255.992903 C356.8487,200.476798 311.970283,155.463547 256.525143,155.17259 L256.525143,124.146588 C329.115485,124.430449 387.881799,183.338693 387.881799,255.992903 C387.881799,328.654211 329.115485,387.562455 256.525143,387.846316 L256.525143,356.820314 Z M256.525143,201.718689 C286.266674,202.00255 310.3026,226.180407 310.3026,255.992903 C310.3026,285.812497 286.266674,309.990353 256.525143,310.274214 L256.525143,201.718689 Z M0,255.992903 C0,397.384044 114.60886,512 256,512 C397.384044,512 512,397.384044 512,255.992903 C512,114.60886 397.384
044,0 256,0 C114.60886,0 0,114.60886 0,255.992903 Z" id="center" fill="url(#linearGradient-1)"></path>
+ <g id="half" transform="translate(140.500000, 259.000000) scale(-1, 1) translate(-140.500000, -259.000000) ">
+ <use fill="black" fill-opacity="1" filter="url(#filter-3)" xlink:href="#path-2"></use>
+ <use fill="url(#linearGradient-1)" fill-rule="evenodd" xlink:href="#path-2"></use>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+</svg>
\ No newline at end of file
diff --git a/browser/branding/official/firefox64.ico b/browser/branding/official/firefox64.ico
index 01fb0efda56d..db0a9af865b6 100644
Binary files a/browser/branding/official/firefox64.ico and b/browser/branding/official/firefox64.ico differ
diff --git a/browser/branding/official/mozicon128.png b/browser/branding/official/mozicon128.png
deleted file mode 100644
index 8fc3530cffa7..000000000000
Binary files a/browser/branding/official/mozicon128.png and /dev/null differ
diff --git a/browser/extensions/onboarding/content/img/tor-watermark.png b/browser/extensions/onboarding/content/img/tor-watermark.png
index e366c242b22a..4c7885e0235b 100644
Binary files a/browser/extensions/onboarding/content/img/tor-watermark.png and b/browser/extensions/onboarding/content/img/tor-watermark.png differ
diff --git a/browser/extensions/onboarding/content/img/tor-watermark.svg b/browser/extensions/onboarding/content/img/tor-watermark.svg
new file mode 100644
index 000000000000..9e575b592bb4
--- /dev/null
+++ b/browser/extensions/onboarding/content/img/tor-watermark.svg
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="180px" height="180px" viewBox="0 0 180 180" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <g id="Process" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+ <path d="M90.1846205,163.631147 L90.1846205,152.721073 C124.743583,152.621278 152.726063,124.581416 152.726063,89.9975051 C152.726063,55.4160892 124.743583,27.3762266 90.1846205,27.2764318 L90.1846205,16.366358 C130.768698,16.4686478 163.633642,49.3909741 163.633642,89.9975051 C163.633642,130.606531 130.768698,163.531352 90.1846205,163.631147 Z M90.1846205,125.444642 C109.677053,125.342352 125.454621,109.517381 125.454621,89.9975051 C125.454621,70.4801242 109.677053,54.6551533 90.1846205,54.5528636 L90.1846205,43.6452847 C115.704663,43.7450796 136.364695,64.4550091 136.364695,89.9975051 C136.364695,115.542496 115.704663,136.252426 90.1846205,136.35222 L90.1846205,125.444642 Z M90.1846205,70.9167267 C100.640628,71.0165216 109.090758,79.5165493 109.090758,89.9975051 C109.090758,100.480956 100.640628,108.980984 90.1846205,109.080778 L90.1846205,70.9167267 Z M0,89.9975051 C0,139.705328 40.2921772,180 90,180 C139.705328,180 180,139.705328 180,89.9975051 C180,40.2921772 139.705328
,0 90,0 C40.2921772,0 0,40.2921772 0,89.9975051 Z" id="Fill-1-Copy" fill="#DFDFE2"></path>
+ </g>
+</svg>
\ No newline at end of file
diff --git a/browser/themes/shared/identity-block/identity-block.inc.css b/browser/themes/shared/identity-block/identity-block.inc.css
index 36bab9f13715..858c6d09d62b 100644
--- a/browser/themes/shared/identity-block/identity-block.inc.css
+++ b/browser/themes/shared/identity-block/identity-block.inc.css
@@ -32,12 +32,20 @@
}
#urlbar[pageproxystate="valid"] > #identity-box.chromeUI > #identity-icon-labels {
%ifdef MOZ_OFFICIAL_BRANDING
- color: rgb(229,115,0);
+ color: #420C5D;
%else
color: inherit;
%endif
}
+toolbar[brighttext] #urlbar[pageproxystate="valid"] > #identity-box.chromeUI > #identity-icon-labels {
+%ifdef MOZ_OFFICIAL_BRANDING
+ color: #CC80FF;
+%else
+ color: inherit;
+%endif
+}
+
#identity-icon-labels:-moz-locale-dir(ltr) {
padding-left: 4px;
}
1
0
[tor-browser-build/maint-8.0] Bug 29097: https-everywhere make.sh explicitly depends on missing 3.6
by gk@torproject.org 20 Jan '19
by gk@torproject.org 20 Jan '19
20 Jan '19
commit 57a48c1c712a17bb2d58e3688d183bddd5e82423
Author: Richard Pospesel <richard(a)torproject.org>
Date: Tue Jan 15 15:13:19 2019 -0800
Bug 29097: https-everywhere make.sh explicitly depends on missing 3.6
Updated the https-everywhere deps section to install python3.6 and
python3.6-lxml. Previously python and python-lxml were listed, but these
packages now map to the 3.7 versions.
---
projects/https-everywhere/config | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/projects/https-everywhere/config b/projects/https-everywhere/config
index b0b3ce9..4197d41 100644
--- a/projects/https-everywhere/config
+++ b/projects/https-everywhere/config
@@ -21,8 +21,8 @@ var:
arch: amd64
deps:
- git
- - python3
- - python3-lxml
+ - python3.6
+ - python3.6-lxml
- libxslt1.1
- libxml2-utils
- sqlite3
1
0
commit 885c86d28b3552e5a06bdf2ef4947d2e3d5694be
Author: Georg Koppen <gk(a)torproject.org>
Date: Mon Jan 21 07:02:48 2019 +0000
Fix typo in comment
---
projects/https-everywhere/config | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/projects/https-everywhere/config b/projects/https-everywhere/config
index 4197d41..bcd47f2 100644
--- a/projects/https-everywhere/config
+++ b/projects/https-everywhere/config
@@ -10,7 +10,7 @@ var:
# HTTPS Everywhere is expected to be the same on all platforms. To avoid
# building the same thing 4 times, using 4 different container images
# (each one with a different suite or architecture), we set the container
- # to wheezy/amd64 for all platforms. This allows us to create only one
+ # to buster/amd64 for all platforms. This allows us to create only one
# container image, and also build the extension only one time as the
# filename does not contain the platform, and var/build_id should be
# the same since there is now nothing platform specific in the build
1
0
commit f22e370285ab9842c2955e286a4063700c06285c
Author: Georg Koppen <gk(a)torproject.org>
Date: Mon Jan 21 07:02:48 2019 +0000
Fix typo in comment
---
projects/https-everywhere/config | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/projects/https-everywhere/config b/projects/https-everywhere/config
index 4197d41..bcd47f2 100644
--- a/projects/https-everywhere/config
+++ b/projects/https-everywhere/config
@@ -10,7 +10,7 @@ var:
# HTTPS Everywhere is expected to be the same on all platforms. To avoid
# building the same thing 4 times, using 4 different container images
# (each one with a different suite or architecture), we set the container
- # to wheezy/amd64 for all platforms. This allows us to create only one
+ # to buster/amd64 for all platforms. This allows us to create only one
# container image, and also build the extension only one time as the
# filename does not contain the platform, and var/build_id should be
# the same since there is now nothing platform specific in the build
1
0
[tor-browser-build/master] Bug 29097: https-everywhere make.sh explicitly depends on missing 3.6
by gk@torproject.org 20 Jan '19
by gk@torproject.org 20 Jan '19
20 Jan '19
commit a1ac92687ed03f64c12992d7b83b40892beacb37
Author: Richard Pospesel <richard(a)torproject.org>
Date: Tue Jan 15 15:13:19 2019 -0800
Bug 29097: https-everywhere make.sh explicitly depends on missing 3.6
Updated the https-everywhere deps section to install python3.6 and
python3.6-lxml. Previously python and python-lxml were listed, but these
packages now map to the 3.7 versions.
---
projects/https-everywhere/config | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/projects/https-everywhere/config b/projects/https-everywhere/config
index b0b3ce9..4197d41 100644
--- a/projects/https-everywhere/config
+++ b/projects/https-everywhere/config
@@ -21,8 +21,8 @@ var:
arch: amd64
deps:
- git
- - python3
- - python3-lxml
+ - python3.6
+ - python3.6-lxml
- libxslt1.1
- libxml2-utils
- sqlite3
1
0
18 Jan '19
commit 0a628166a527bb643fa256e20332fbf54357697c
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Wed Jan 16 10:08:38 2019 -0500
Bug 28836: Links on about:tor are not clickable.
When the about:tor window was short, links such as the Tor Browser
manual one were not clickable (the fundraising banner made this
problem more likely). The root cause was that the onions/circles
at the bottom of the page overlapped with the links, and the divs
that were used to generate the circles were in front of the links.
This patch changes the behavior on desktop to not allow the onions
to be placed under any page content; instead, they are displayed
at the bottom of the page after all other content. If they won't
fit on the page, a vertical scrollbar is shown.
On mobile, the existing behavior is preserved (onions can appear
behind content). We added `z-index: -1` to ensure that all tappable
content will be usable (although no links are currently displayed
on mobile, we might add some in the future).
---
src/chrome/content/aboutTor/aboutTor.xhtml | 4 ++--
src/chrome/skin/aboutTor.css | 28 ++++++++++++++++++++--------
2 files changed, 22 insertions(+), 10 deletions(-)
diff --git a/src/chrome/content/aboutTor/aboutTor.xhtml b/src/chrome/content/aboutTor/aboutTor.xhtml
index 5f5fccdc..1a9c701e 100644
--- a/src/chrome/content/aboutTor/aboutTor.xhtml
+++ b/src/chrome/content/aboutTor/aboutTor.xhtml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
- - Copyright (c) 2018, The Tor Project, Inc.
+ - Copyright (c) 2019, The Tor Project, Inc.
- See LICENSE for licensing information.
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
@@ -120,7 +120,7 @@ window.addEventListener("pageshow", function() {
- "onion-pattern-row" elements, each containing 14 circles. The width
- of "onion-pattern-row" is fixed at a value that is wide enough so the
- circles are not distorted by the flex-based layout. The parent
- - "onion-pattern-container" element has overflow: hidden and is designed
+ - "onion-pattern-container" element has overflow-x: hidden and is designed
- to expand to the width of the page, until it reaches a maximum width
- that can accommodate all 14 circles. Since the rows are wider than
- most browser windows, typically the two rows of onions will fill the
diff --git a/src/chrome/skin/aboutTor.css b/src/chrome/skin/aboutTor.css
index 37fa30fe..02d18b78 100644
--- a/src/chrome/skin/aboutTor.css
+++ b/src/chrome/skin/aboutTor.css
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018, The Tor Project, Inc.
+ * Copyright (c) 2019, The Tor Project, Inc.
* See LICENSE for licensing information.
*
* vim: set sw=2 sts=2 ts=8 et syntax=css:
@@ -16,7 +16,13 @@
margin: 0px;
}
+html {
+ height: 100%;
+}
+
body {
+ display: flex;
+ flex-direction: column;
width: 100%;
height: 100%;
margin: 0px auto;
@@ -194,12 +200,15 @@ body:not([showmanual]) .showForManual {
}
.onion-pattern-container {
+ flex: auto; /* grow to consume remaining space on the page */
+ display: flex;
+ flex-direction: column;
+ justify-content: end; /* position circles at the bottom */
margin: 0px auto;
width: 100%;
max-width: 2200px; /* room for our 20 circles */
- overflow: hidden;
- position: absolute;
- bottom: 0px;
+ min-height: 232px; /* room for 2 rows of circles */
+ overflow-x: hidden; /* clip extra circles on the sides */
}
.onion-pattern-row {
@@ -386,10 +395,6 @@ body[show-donation-banner="true"] .onion-pattern-container {
transition: transform 0ms;
}
-body[show-donation-banner="true"] .onion-pattern-container {
- position: fixed;
-}
-
body[show-donation-banner="true"] #torstatus-version,
body[show-donation-banner="true"] #onboarding-overlay-button {
transform: translateY(200px);
@@ -431,6 +436,13 @@ body[mobile] .top .heading1 {
line-height: 1.1
}
+body[mobile] .onion-pattern-container {
+ flex: none;
+ z-index: -1; /* ensure that circles do not block access to clickable links */
+ position: absolute;
+ bottom: 0px;
+}
+
body[mobile] #donation-banner {
position: static;
}
1
0
[tor-browser-build/master] Bug 28874: Bump mingw-w64 commit to fix WebGL crash
by boklm@torproject.org 17 Jan '19
by boklm@torproject.org 17 Jan '19
17 Jan '19
commit 87f892495a13e878922147429e4c2b7a423f0d8e
Author: Georg Koppen <gk(a)torproject.org>
Date: Fri Jan 11 08:19:14 2019 +0000
Bug 28874: Bump mingw-w64 commit to fix WebGL crash
---
projects/mingw-w64/config | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/projects/mingw-w64/config b/projects/mingw-w64/config
index 19a7a82..d0268cb 100644
--- a/projects/mingw-w64/config
+++ b/projects/mingw-w64/config
@@ -1,7 +1,7 @@
# vim: filetype=yaml sw=2
filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
git_url: https://git.code.sf.net/p/mingw-w64/mingw-w64
-git_hash: ee9fc3d0b8c8868280e38384edd968067b8e71fc
+git_hash: 2d4e517ad0c7a9f0bd7001c42e6c131b977c15d9
version: '[% c("abbrev") %]'
var:
container:
1
0
[tor-browser-build/master] Bug 29105: Unbreak obfs4 nightly builds
by boklm@torproject.org 17 Jan '19
by boklm@torproject.org 17 Jan '19
17 Jan '19
commit aabf423be17388db2c980be9f04239479bdb6bb4
Author: Georg Koppen <gk(a)torproject.org>
Date: Thu Jan 17 10:00:07 2019 +0000
Bug 29105: Unbreak obfs4 nightly builds
---
projects/obfs4/build | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/projects/obfs4/build b/projects/obfs4/build
index 2c3f933..4e42b23 100644
--- a/projects/obfs4/build
+++ b/projects/obfs4/build
@@ -21,9 +21,15 @@ cd /var/tmp/build/[% project %]-[% c('version') %]
# versioning (see bug 28325).
rm -f go.mod go.sum
[% END -%]
-
-mkdir -p "$GOPATH/src/git.torproject.org/pluggable-transports"
-ln -sf "$PWD" "$GOPATH/src/git.torproject.org/pluggable-transports/obfs4.git"
+# Commit 70d0e90c861be34ce3c5425ef1366a0b2ceb3026 changed the canonical obfs4
+# upstream repo to gitlab.com/yawning/obfs4.git.
+[% IF c("var/nightly") %]
+ mkdir -p "$GOPATH/src/gitlab.com/yawning"
+ ln -sf "$PWD" "$GOPATH/src/gitlab.com/yawning/obfs4.git"
+[% ELSE %]
+ mkdir -p "$GOPATH/src/git.torproject.org/pluggable-transports"
+ ln -sf "$PWD" "$GOPATH/src/git.torproject.org/pluggable-transports/obfs4.git"
+[% END %]
cd obfs4proxy
go build -ldflags '-s'
cp -a obfs4proxy[% IF c("var/windows") %].exe[% END %] $PTDIR
1
0
16 Jan '19
commit 5631b327ab3654af5f2b329cf46fd67921004f41
Author: Nicolas Vigier <boklm(a)torproject.org>
Date: Thu Jan 10 21:59:07 2019 +0100
Bug 26148: Update binutils to 2.31.1
With older versions of binutils, the order in which .o files were
included in an .a archive did not affect the output when linking a
program or library, which is no longer the case with recent versions of
binutils. To avoid reproducibility issues we patch the libtool version
included in gcc to make the creation `libstdc++.a` reproducible.
---
keyring/binutils.gpg | Bin 1169 -> 3184 bytes
projects/binutils/build | 12 +-
projects/binutils/config | 11 +-
.../binutils/fix-windows-reproducibility.patch | 1034 --------------------
projects/binutils/peXXigen.patch | 29 -
projects/mingw-w64/build | 4 +
projects/mingw-w64/config | 1 +
projects/mingw-w64/libtool-sort.patch | 67 ++
8 files changed, 77 insertions(+), 1081 deletions(-)
diff --git a/keyring/binutils.gpg b/keyring/binutils.gpg
index 2de205d..d13540e 100644
Binary files a/keyring/binutils.gpg and b/keyring/binutils.gpg differ
diff --git a/projects/binutils/build b/projects/binutils/build
index 0d1c062..ee22a1c 100644
--- a/projects/binutils/build
+++ b/projects/binutils/build
@@ -16,18 +16,12 @@ distdir=/var/tmp/dist/binutils
ln -s /usr/lib/gcc/x86_64-linux-gnu/4.7/libstdc++_pic.a libstdc++.a
export LDFLAGS="-L$rootdir -lstdc++"
[% END %]
-tar xf [% project %]-[% c("version") %].tar.bz2
+tar xf [% project %]-[% c("version") %].tar.xz
cd [% project %]-[% c("version") %]
[% IF c('var/windows') -%]
- # XXX: This is needed due to bug 10102.
- sed 's/= extern_rt_rel_d;/= extern_rt_rel_d;\n memset (extern_rt_rel_d, 0, PE_IDATA5_SIZE);/' -i ld/pe-dll.c
- # Zeroing timestamps in PE headers reliably, see bug 12753.
- patch -p1 < ../peXXigen.patch
- # Needed for the hardening...
+ # Needed for the hardening... The upstream ticket is:
+ # https://sourceware.org/bugzilla/show_bug.cgi?id=17321
patch -p1 < ../enable-reloc-section-ld.patch
- # fix build reproducibility of Windows builds by reverting commit 13e570f80c.
- # See bug 16472.
- patch -p1 < ../fix-windows-reproducibility.patch
[% END -%]
[% IF c('var/windows-x86_64') -%]
patch -p1 < ../64bit-fixups.patch
diff --git a/projects/binutils/config b/projects/binutils/config
index 1f992a2..2367280 100644
--- a/projects/binutils/config
+++ b/projects/binutils/config
@@ -1,5 +1,5 @@
# vim: filetype=yaml sw=2
-version: 2.26.1
+version: 2.31.1
filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
var:
configure_opt: '--disable-multilib --enable-gold --enable-deterministic-archives --enable-plugins'
@@ -10,12 +10,9 @@ targets:
windows:
var:
configure_opt: '--target=[% c("arch") %]-w64-mingw32 --disable-multilib --enable-deterministic-archives'
- arch_deps:
- # texinfo required for fix-windows-reproducibility.patch
- - texinfo
input_files:
- - URL: https://ftp.gnu.org/gnu/binutils/binutils-[% c("version") %].tar.bz2
+ - URL: https://ftp.gnu.org/gnu/binutils/binutils-[% c("version") %].tar.xz
sig_ext: sig
file_gpg_id: 1
gpg_keyring: binutils.gpg
@@ -24,7 +21,3 @@ input_files:
enable: '[% c("var/windows") %]'
- filename: 64bit-fixups.patch
enable: '[% c("var/windows-x86_64") %]'
- - filename: peXXigen.patch
- enable: '[% c("var/windows") %]'
- - filename: fix-windows-reproducibility.patch
- enable: '[% c("var/windows") %]'
diff --git a/projects/binutils/fix-windows-reproducibility.patch b/projects/binutils/fix-windows-reproducibility.patch
deleted file mode 100644
index 1fc5987..0000000
--- a/projects/binutils/fix-windows-reproducibility.patch
+++ /dev/null
@@ -1,1034 +0,0 @@
-From c6df45304e92aa2d7e9f2d8311ae5a0b1543daa8 Mon Sep 17 00:00:00 2001
-From: Nicolas Vigier <boklm(a)torproject.org>
-Date: Wed, 16 May 2018 11:07:52 +0200
-Subject: [PATCH] Revert "Fix LTO vs. COFF archives"
-
-This reverts commit 13e570f80cbfb299a8858ce6830e91a6cb40ab7b.
----
- bfd/aoutx.h | 2 -
- bfd/cofflink.c | 116 +++++++++++++++---
- bfd/ecoff.c | 164 +++++++++++++++++++++++--
- bfd/elflink.c | 53 ++++++--
- bfd/libbfd-in.h | 4 +-
- bfd/libbfd.h | 4 +-
- bfd/linker.c | 366 ++++++++++++++++++++++++++++++++++++++++----------------
- bfd/pdp11.c | 4 +-
- bfd/xcofflink.c | 4 +-
- 9 files changed, 560 insertions(+), 157 deletions(-)
-
-diff --git a/bfd/aoutx.h b/bfd/aoutx.h
-index 9385a98..6ca9c58 100644
---- a/bfd/aoutx.h
-+++ b/bfd/aoutx.h
-@@ -3405,8 +3405,6 @@ aout_link_check_ar_symbols (bfd *abfd,
- static bfd_boolean
- aout_link_check_archive_element (bfd *abfd,
- struct bfd_link_info *info,
-- struct bfd_link_hash_entry *h ATTRIBUTE_UNUSED,
-- const char *name ATTRIBUTE_UNUSED,
- bfd_boolean *pneeded)
- {
- bfd *oldbfd;
-diff --git a/bfd/cofflink.c b/bfd/cofflink.c
-index 2782795..3a82640 100644
---- a/bfd/cofflink.c
-+++ b/bfd/cofflink.c
-@@ -29,11 +29,9 @@
- #include "libcoff.h"
- #include "safe-ctype.h"
-
--static bfd_boolean coff_link_add_object_symbols (bfd *, struct bfd_link_info *);
--static bfd_boolean coff_link_check_archive_element
-- (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, const char *,
-- bfd_boolean *);
--static bfd_boolean coff_link_add_symbols (bfd *, struct bfd_link_info *);
-+static bfd_boolean coff_link_add_object_symbols (bfd *abfd, struct bfd_link_info *info);
-+static bfd_boolean coff_link_check_archive_element (bfd *abfd, struct bfd_link_info *info, bfd_boolean *pneeded);
-+static bfd_boolean coff_link_add_symbols (bfd *abfd, struct bfd_link_info *info);
-
- /* Return TRUE if SYM is a weak, external symbol. */
- #define IS_WEAK_EXTERNAL(abfd, sym) \
-@@ -192,6 +190,74 @@ coff_link_add_object_symbols (bfd *abfd, struct bfd_link_info *info)
- return TRUE;
- }
-
-+/* Look through the symbols to see if this object file should be
-+ included in the link. */
-+
-+static bfd_boolean
-+coff_link_check_ar_symbols (bfd *abfd,
-+ struct bfd_link_info *info,
-+ bfd_boolean *pneeded,
-+ bfd **subsbfd)
-+{
-+ bfd_size_type symesz;
-+ bfd_byte *esym;
-+ bfd_byte *esym_end;
-+
-+ *pneeded = FALSE;
-+
-+ symesz = bfd_coff_symesz (abfd);
-+ esym = (bfd_byte *) obj_coff_external_syms (abfd);
-+ esym_end = esym + obj_raw_syment_count (abfd) * symesz;
-+ while (esym < esym_end)
-+ {
-+ struct internal_syment sym;
-+ enum coff_symbol_classification classification;
-+
-+ bfd_coff_swap_sym_in (abfd, esym, &sym);
-+
-+ classification = bfd_coff_classify_symbol (abfd, &sym);
-+ if (classification == COFF_SYMBOL_GLOBAL
-+ || classification == COFF_SYMBOL_COMMON)
-+ {
-+ const char *name;
-+ char buf[SYMNMLEN + 1];
-+ struct bfd_link_hash_entry *h;
-+
-+ /* This symbol is externally visible, and is defined by this
-+ object file. */
-+ name = _bfd_coff_internal_syment_name (abfd, &sym, buf);
-+ if (name == NULL)
-+ return FALSE;
-+ h = bfd_link_hash_lookup (info->hash, name, FALSE, FALSE, TRUE);
-+
-+ /* Auto import. */
-+ if (!h
-+ && info->pei386_auto_import
-+ && CONST_STRNEQ (name, "__imp_"))
-+ h = bfd_link_hash_lookup (info->hash, name + 6, FALSE, FALSE, TRUE);
-+
-+ /* We are only interested in symbols that are currently
-+ undefined. If a symbol is currently known to be common,
-+ COFF linkers do not bring in an object file which defines
-+ it. */
-+ if (h != (struct bfd_link_hash_entry *) NULL
-+ && h->type == bfd_link_hash_undefined)
-+ {
-+ if (!(*info->callbacks
-+ ->add_archive_element) (info, abfd, name, subsbfd))
-+ return FALSE;
-+ *pneeded = TRUE;
-+ return TRUE;
-+ }
-+ }
-+
-+ esym += (sym.n_numaux + 1) * symesz;
-+ }
-+
-+ /* We do not need this object file. */
-+ return TRUE;
-+}
-+
- /* Check a single archive element to see if we need to include it in
- the link. *PNEEDED is set according to whether this element is
- needed in the link or not. This is called via
-@@ -200,23 +266,41 @@ coff_link_add_object_symbols (bfd *abfd, struct bfd_link_info *info)
- static bfd_boolean
- coff_link_check_archive_element (bfd *abfd,
- struct bfd_link_info *info,
-- struct bfd_link_hash_entry *h,
-- const char *name,
- bfd_boolean *pneeded)
- {
-- *pneeded = FALSE;
-+ bfd *oldbfd;
-+ bfd_boolean needed;
-
-- /* We are only interested in symbols that are currently undefined.
-- If a symbol is currently known to be common, COFF linkers do not
-- bring in an object file which defines it. */
-- if (h->type != bfd_link_hash_undefined)
-- return TRUE;
-+ if (!_bfd_coff_get_external_symbols (abfd))
-+ return FALSE;
-
-- if (!(*info->callbacks->add_archive_element) (info, abfd, name, &abfd))
-+ oldbfd = abfd;
-+ if (!coff_link_check_ar_symbols (abfd, info, pneeded, &abfd))
- return FALSE;
-- *pneeded = TRUE;
-
-- return coff_link_add_object_symbols (abfd, info);
-+ needed = *pneeded;
-+ if (needed)
-+ {
-+ /* Potentially, the add_archive_element hook may have set a
-+ substitute BFD for us. */
-+ if (abfd != oldbfd)
-+ {
-+ if (!info->keep_memory
-+ && !_bfd_coff_free_symbols (oldbfd))
-+ return FALSE;
-+ if (!_bfd_coff_get_external_symbols (abfd))
-+ return FALSE;
-+ }
-+ if (!coff_link_add_symbols (abfd, info))
-+ return FALSE;
-+ }
-+
-+ if (!info->keep_memory || !needed)
-+ {
-+ if (!_bfd_coff_free_symbols (abfd))
-+ return FALSE;
-+ }
-+ return TRUE;
- }
-
- /* Add all the symbols from an object file to the hash table. */
-diff --git a/bfd/ecoff.c b/bfd/ecoff.c
-index 01f51e6..2c915f0 100644
---- a/bfd/ecoff.c
-+++ b/bfd/ecoff.c
-@@ -3500,29 +3500,171 @@ ecoff_link_add_object_symbols (bfd *abfd, struct bfd_link_info *info)
- return FALSE;
- }
-
-+/* Factored out from ecoff_link_check_archive_element. */
-+
-+static bfd_boolean
-+read_ext_syms_and_strs (HDRR **symhdr, bfd_size_type *external_ext_size,
-+ bfd_size_type *esize, void **external_ext, char **ssext, bfd *abfd,
-+ const struct ecoff_backend_data * const backend)
-+{
-+ if (! ecoff_slurp_symbolic_header (abfd))
-+ return FALSE;
-+
-+ /* If there are no symbols, we don't want it. */
-+ if (bfd_get_symcount (abfd) == 0)
-+ return TRUE;
-+
-+ *symhdr = &ecoff_data (abfd)->debug_info.symbolic_header;
-+
-+ *external_ext_size = backend->debug_swap.external_ext_size;
-+ *esize = (*symhdr)->iextMax * *external_ext_size;
-+ *external_ext = bfd_malloc (*esize);
-+ if (*external_ext == NULL && *esize != 0)
-+ return FALSE;
-+
-+ if (bfd_seek (abfd, (file_ptr) (*symhdr)->cbExtOffset, SEEK_SET) != 0
-+ || bfd_bread (*external_ext, *esize, abfd) != *esize)
-+ return FALSE;
-+
-+ *ssext = (char *) bfd_malloc ((bfd_size_type) (*symhdr)->issExtMax);
-+ if (*ssext == NULL && (*symhdr)->issExtMax != 0)
-+ return FALSE;
-+
-+ if (bfd_seek (abfd, (file_ptr) (*symhdr)->cbSsExtOffset, SEEK_SET) != 0
-+ || (bfd_bread (*ssext, (bfd_size_type) (*symhdr)->issExtMax, abfd)
-+ != (bfd_size_type) (*symhdr)->issExtMax))
-+ return FALSE;
-+ return TRUE;
-+}
-+
-+static bfd_boolean
-+reread_ext_syms_and_strs (HDRR **symhdr, bfd_size_type *external_ext_size,
-+ bfd_size_type *esize, void **external_ext, char **ssext, bfd *abfd,
-+ const struct ecoff_backend_data * const backend)
-+{
-+ if (*external_ext != NULL)
-+ free (*external_ext);
-+ *external_ext = NULL;
-+ if (*ssext != NULL)
-+ free (*ssext);
-+ *ssext = NULL;
-+ return read_ext_syms_and_strs (symhdr, external_ext_size, esize,
-+ external_ext, ssext, abfd, backend);
-+}
-+
- /* This is called if we used _bfd_generic_link_add_archive_symbols
- because we were not dealing with an ECOFF archive. */
-
- static bfd_boolean
- ecoff_link_check_archive_element (bfd *abfd,
- struct bfd_link_info *info,
-- struct bfd_link_hash_entry *h,
-- const char *name,
- bfd_boolean *pneeded)
- {
-+ const struct ecoff_backend_data * const backend = ecoff_backend (abfd);
-+ void (* const swap_ext_in) (bfd *, void *, EXTR *)
-+ = backend->debug_swap.swap_ext_in;
-+ HDRR *symhdr;
-+ bfd_size_type external_ext_size = 0;
-+ void * external_ext = NULL;
-+ bfd_size_type esize = 0;
-+ char *ssext = NULL;
-+ char *ext_ptr;
-+ char *ext_end;
-+
- *pneeded = FALSE;
-
-- /* Unlike the generic linker, we do not pull in elements because
-- of common symbols. */
-- if (h->type != bfd_link_hash_undefined)
-- return TRUE;
-+ /* Read in the external symbols and external strings. */
-+ if (!read_ext_syms_and_strs (&symhdr, &external_ext_size, &esize,
-+ &external_ext, &ssext, abfd, backend))
-+ goto error_return;
-
-- /* Include this element. */
-- if (!(*info->callbacks->add_archive_element) (info, abfd, name, &abfd))
-- return FALSE;
-- *pneeded = TRUE;
-+ /* If there are no symbols, we don't want it. */
-+ if (bfd_get_symcount (abfd) == 0)
-+ goto successful_return;
-
-- return ecoff_link_add_object_symbols (abfd, info);
-+ /* Look through the external symbols to see if they define some
-+ symbol that is currently undefined. */
-+ ext_ptr = (char *) external_ext;
-+ ext_end = ext_ptr + esize;
-+ for (; ext_ptr < ext_end; ext_ptr += external_ext_size)
-+ {
-+ EXTR esym;
-+ bfd_boolean def;
-+ const char *name;
-+ bfd *oldbfd;
-+ struct bfd_link_hash_entry *h;
-+
-+ (*swap_ext_in) (abfd, (void *) ext_ptr, &esym);
-+
-+ /* See if this symbol defines something. */
-+ if (esym.asym.st != stGlobal
-+ && esym.asym.st != stLabel
-+ && esym.asym.st != stProc)
-+ continue;
-+
-+ switch (esym.asym.sc)
-+ {
-+ case scText:
-+ case scData:
-+ case scBss:
-+ case scAbs:
-+ case scSData:
-+ case scSBss:
-+ case scRData:
-+ case scCommon:
-+ case scSCommon:
-+ case scInit:
-+ case scFini:
-+ case scRConst:
-+ def = TRUE;
-+ break;
-+ default:
-+ def = FALSE;
-+ break;
-+ }
-+
-+ if (! def)
-+ continue;
-+
-+ name = ssext + esym.asym.iss;
-+ h = bfd_link_hash_lookup (info->hash, name, FALSE, FALSE, TRUE);
-+
-+ /* Unlike the generic linker, we do not pull in elements because
-+ of common symbols. */
-+ if (h == NULL
-+ || h->type != bfd_link_hash_undefined)
-+ continue;
-+
-+ /* Include this element. */
-+ oldbfd = abfd;
-+ if (!(*info->callbacks
-+ ->add_archive_element) (info, abfd, name, &abfd))
-+ goto error_return;
-+ /* Potentially, the add_archive_element hook may have set a
-+ substitute BFD for us. */
-+ if (abfd != oldbfd
-+ && !reread_ext_syms_and_strs (&symhdr, &external_ext_size, &esize,
-+ &external_ext, &ssext, abfd, backend))
-+ goto error_return;
-+ if (! ecoff_link_add_externals (abfd, info, external_ext, ssext))
-+ goto error_return;
-+
-+ *pneeded = TRUE;
-+ goto successful_return;
-+ }
-+
-+ successful_return:
-+ if (external_ext != NULL)
-+ free (external_ext);
-+ if (ssext != NULL)
-+ free (ssext);
-+ return TRUE;
-+ error_return:
-+ if (external_ext != NULL)
-+ free (external_ext);
-+ if (ssext != NULL)
-+ free (ssext);
-+ return FALSE;
- }
-
- /* Add the symbols from an archive file to the global hash table.
-diff --git a/bfd/elflink.c b/bfd/elflink.c
-index 94ab762..164df6b 100644
---- a/bfd/elflink.c
-+++ b/bfd/elflink.c
-@@ -2933,6 +2933,13 @@ elf_link_is_defined_archive_symbol (bfd * abfd, carsym * symdef)
- if (! bfd_check_format (abfd, bfd_object))
- return FALSE;
-
-+ /* If we have already included the element containing this symbol in the
-+ link then we do not need to include it again. Just claim that any symbol
-+ it contains is not a definition, so that our caller will not decide to
-+ (re)include this element. */
-+ if (abfd->archive_pass)
-+ return FALSE;
-+
- /* Select the appropriate symbol table. */
- if ((abfd->flags & DYNAMIC) == 0 || elf_dynsymtab (abfd) == 0)
- hdr = &elf_tdata (abfd)->symtab_hdr;
-@@ -4929,8 +4936,20 @@ _bfd_elf_archive_symbol_lookup (bfd *abfd,
- }
-
- /* Add symbols from an ELF archive file to the linker hash table. We
-- don't use _bfd_generic_link_add_archive_symbols because we need to
-- handle versioned symbols.
-+ don't use _bfd_generic_link_add_archive_symbols because of a
-+ problem which arises on UnixWare. The UnixWare libc.so is an
-+ archive which includes an entry libc.so.1 which defines a bunch of
-+ symbols. The libc.so archive also includes a number of other
-+ object files, which also define symbols, some of which are the same
-+ as those defined in libc.so.1. Correct linking requires that we
-+ consider each object file in turn, and include it if it defines any
-+ symbols we need. _bfd_generic_link_add_archive_symbols does not do
-+ this; it looks through the list of undefined symbols, and includes
-+ any object file which defines them. When this algorithm is used on
-+ UnixWare, it winds up pulling in libc.so.1 early and defining a
-+ bunch of symbols. This means that some of the other objects in the
-+ archive are not included in the link, which is incorrect since they
-+ precede libc.so.1 in the archive.
-
- Fortunately, ELF archive handling is simpler than that done by
- _bfd_generic_link_add_archive_symbols, which has to allow for a.out
-@@ -4945,7 +4964,8 @@ static bfd_boolean
- elf_link_add_archive_symbols (bfd *abfd, struct bfd_link_info *info)
- {
- symindex c;
-- unsigned char *included = NULL;
-+ bfd_boolean *defined = NULL;
-+ bfd_boolean *included = NULL;
- carsym *symdefs;
- bfd_boolean loop;
- bfd_size_type amt;
-@@ -4969,10 +4989,11 @@ elf_link_add_archive_symbols (bfd *abfd, struct bfd_link_info *info)
- if (c == 0)
- return TRUE;
- amt = c;
-- amt *= sizeof (*included);
-- included = (unsigned char *) bfd_zmalloc (amt);
-- if (included == NULL)
-- return FALSE;
-+ amt *= sizeof (bfd_boolean);
-+ defined = (bfd_boolean *) bfd_zmalloc (amt);
-+ included = (bfd_boolean *) bfd_zmalloc (amt);
-+ if (defined == NULL || included == NULL)
-+ goto error_return;
-
- symdefs = bfd_ardata (abfd)->symdefs;
- bed = get_elf_backend_data (abfd);
-@@ -4997,7 +5018,7 @@ elf_link_add_archive_symbols (bfd *abfd, struct bfd_link_info *info)
- struct bfd_link_hash_entry *undefs_tail;
- symindex mark;
-
-- if (included[i])
-+ if (defined[i] || included[i])
- continue;
- if (symdef->file_offset == last)
- {
-@@ -5032,8 +5053,7 @@ elf_link_add_archive_symbols (bfd *abfd, struct bfd_link_info *info)
- else if (h->root.type != bfd_link_hash_undefined)
- {
- if (h->root.type != bfd_link_hash_undefweak)
-- /* Symbol must be defined. Don't check it again. */
-- included[i] = TRUE;
-+ defined[i] = TRUE;
- continue;
- }
-
-@@ -5045,6 +5065,16 @@ elf_link_add_archive_symbols (bfd *abfd, struct bfd_link_info *info)
- if (! bfd_check_format (element, bfd_object))
- goto error_return;
-
-+ /* Doublecheck that we have not included this object
-+ already--it should be impossible, but there may be
-+ something wrong with the archive. */
-+ if (element->archive_pass != 0)
-+ {
-+ bfd_set_error (bfd_error_bad_value);
-+ goto error_return;
-+ }
-+ element->archive_pass = 1;
-+
- undefs_tail = info->hash->undefs_tail;
-
- if (!(*info->callbacks
-@@ -5082,11 +5112,14 @@ elf_link_add_archive_symbols (bfd *abfd, struct bfd_link_info *info)
- }
- while (loop);
-
-+ free (defined);
- free (included);
-
- return TRUE;
-
- error_return:
-+ if (defined != NULL)
-+ free (defined);
- if (included != NULL)
- free (included);
- return FALSE;
-diff --git a/bfd/libbfd-in.h b/bfd/libbfd-in.h
-index 50a46ac..90c6018 100644
---- a/bfd/libbfd-in.h
-+++ b/bfd/libbfd-in.h
-@@ -596,9 +596,7 @@ extern bfd_boolean _bfd_generic_link_add_symbols_collect
- /* Generic archive add symbol routine. */
- extern bfd_boolean _bfd_generic_link_add_archive_symbols
- (bfd *, struct bfd_link_info *,
-- bfd_boolean (*) (bfd *, struct bfd_link_info *,
-- struct bfd_link_hash_entry *, const char *,
-- bfd_boolean *));
-+ bfd_boolean (*) (bfd *, struct bfd_link_info *, bfd_boolean *));
-
- /* Forward declaration to avoid prototype errors. */
- typedef struct bfd_link_hash_entry _bfd_link_hash_entry;
-diff --git a/bfd/libbfd.h b/bfd/libbfd.h
-index 6c48f82..ffb6ea4 100644
---- a/bfd/libbfd.h
-+++ b/bfd/libbfd.h
-@@ -601,9 +601,7 @@ extern bfd_boolean _bfd_generic_link_add_symbols_collect
- /* Generic archive add symbol routine. */
- extern bfd_boolean _bfd_generic_link_add_archive_symbols
- (bfd *, struct bfd_link_info *,
-- bfd_boolean (*) (bfd *, struct bfd_link_info *,
-- struct bfd_link_hash_entry *, const char *,
-- bfd_boolean *));
-+ bfd_boolean (*) (bfd *, struct bfd_link_info *, bfd_boolean *));
-
- /* Forward declaration to avoid prototype errors. */
- typedef struct bfd_link_hash_entry _bfd_link_hash_entry;
-diff --git a/bfd/linker.c b/bfd/linker.c
-index abdf5b0..4cff1e7 100644
---- a/bfd/linker.c
-+++ b/bfd/linker.c
-@@ -229,16 +229,28 @@ SUBSUBSECTION
- @findex _bfd_generic_link_add_archive_symbols
- In most cases the work of looking through the symbols in the
- archive should be done by the
-- <<_bfd_generic_link_add_archive_symbols>> function.
-+ <<_bfd_generic_link_add_archive_symbols>> function. This
-+ function builds a hash table from the archive symbol table and
-+ looks through the list of undefined symbols to see which
-+ elements should be included.
- <<_bfd_generic_link_add_archive_symbols>> is passed a function
- to call to make the final decision about adding an archive
- element to the link and to do the actual work of adding the
-- symbols to the linker hash table. If the element is to
-+ symbols to the linker hash table.
-+
-+ The function passed to
-+ <<_bfd_generic_link_add_archive_symbols>> must read the
-+ symbols of the archive element and decide whether the archive
-+ element should be included in the link. If the element is to
- be included, the <<add_archive_element>> linker callback
- routine must be called with the element as an argument, and
- the element's symbols must be added to the linker hash table
- just as though the element had itself been passed to the
-- <<_bfd_link_add_symbols>> function.
-+ <<_bfd_link_add_symbols>> function. The <<add_archive_element>>
-+ callback has the option to indicate that it would like to
-+ replace the element archive with a substitute BFD, in which
-+ case it is the symbols of that substitute BFD that must be
-+ added to the linker hash table instead.
-
- When the a.out <<_bfd_link_add_symbols>> function receives an
- archive, it calls <<_bfd_generic_link_add_archive_symbols>>
-@@ -407,14 +419,11 @@ static bfd_boolean generic_link_add_object_symbols
- static bfd_boolean generic_link_add_symbols
- (bfd *, struct bfd_link_info *, bfd_boolean);
- static bfd_boolean generic_link_check_archive_element_no_collect
-- (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, const char *,
-- bfd_boolean *);
-+ (bfd *, struct bfd_link_info *, bfd_boolean *);
- static bfd_boolean generic_link_check_archive_element_collect
-- (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, const char *,
-- bfd_boolean *);
-+ (bfd *, struct bfd_link_info *, bfd_boolean *);
- static bfd_boolean generic_link_check_archive_element
-- (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, const char *,
-- bfd_boolean *, bfd_boolean);
-+ (bfd *, struct bfd_link_info *, bfd_boolean *, bfd_boolean);
- static bfd_boolean generic_link_add_symbol_list
- (bfd *, struct bfd_link_info *, bfd_size_type count, asymbol **,
- bfd_boolean);
-@@ -908,32 +917,138 @@ generic_link_add_object_symbols (bfd *abfd,
- return generic_link_add_symbol_list (abfd, info, symcount, outsyms, collect);
- }
-
-+/* We build a hash table of all symbols defined in an archive. */
-+
-+/* An archive symbol may be defined by multiple archive elements.
-+ This linked list is used to hold the elements. */
-+
-+struct archive_list
-+{
-+ struct archive_list *next;
-+ unsigned int indx;
-+};
-+
-+/* An entry in an archive hash table. */
-+
-+struct archive_hash_entry
-+{
-+ struct bfd_hash_entry root;
-+ /* Where the symbol is defined. */
-+ struct archive_list *defs;
-+};
-+
-+/* An archive hash table itself. */
-+
-+struct archive_hash_table
-+{
-+ struct bfd_hash_table table;
-+};
-+
-+/* Create a new entry for an archive hash table. */
-+
-+static struct bfd_hash_entry *
-+archive_hash_newfunc (struct bfd_hash_entry *entry,
-+ struct bfd_hash_table *table,
-+ const char *string)
-+{
-+ struct archive_hash_entry *ret = (struct archive_hash_entry *) entry;
-+
-+ /* Allocate the structure if it has not already been allocated by a
-+ subclass. */
-+ if (ret == NULL)
-+ ret = (struct archive_hash_entry *)
-+ bfd_hash_allocate (table, sizeof (struct archive_hash_entry));
-+ if (ret == NULL)
-+ return NULL;
-+
-+ /* Call the allocation method of the superclass. */
-+ ret = ((struct archive_hash_entry *)
-+ bfd_hash_newfunc ((struct bfd_hash_entry *) ret, table, string));
-+
-+ if (ret)
-+ {
-+ /* Initialize the local fields. */
-+ ret->defs = NULL;
-+ }
-+
-+ return &ret->root;
-+}
-+
-+/* Initialize an archive hash table. */
-+
-+static bfd_boolean
-+archive_hash_table_init
-+ (struct archive_hash_table *table,
-+ struct bfd_hash_entry *(*newfunc) (struct bfd_hash_entry *,
-+ struct bfd_hash_table *,
-+ const char *),
-+ unsigned int entsize)
-+{
-+ return bfd_hash_table_init (&table->table, newfunc, entsize);
-+}
-+
-+/* Look up an entry in an archive hash table. */
-+
-+#define archive_hash_lookup(t, string, create, copy) \
-+ ((struct archive_hash_entry *) \
-+ bfd_hash_lookup (&(t)->table, (string), (create), (copy)))
-+
-+/* Allocate space in an archive hash table. */
-+
-+#define archive_hash_allocate(t, size) bfd_hash_allocate (&(t)->table, (size))
-+
-+/* Free an archive hash table. */
-+
-+#define archive_hash_table_free(t) bfd_hash_table_free (&(t)->table)
-+
- /* Generic function to add symbols from an archive file to the global
- hash file. This function presumes that the archive symbol table
- has already been read in (this is normally done by the
-- bfd_check_format entry point). It looks through the archive symbol
-- table for symbols that are undefined or common in the linker global
-- symbol hash table. When one is found, the CHECKFN argument is used
-- to see if an object file should be included. This allows targets
-- to customize common symbol behaviour. CHECKFN should set *PNEEDED
-- to TRUE if the object file should be included, and must also call
-- the bfd_link_info add_archive_element callback function and handle
-- adding the symbols to the global hash table. CHECKFN must notice
-- if the callback indicates a substitute BFD, and arrange to add
-- those symbols instead if it does so. CHECKFN should only return
-- FALSE if some sort of error occurs. */
-+ bfd_check_format entry point). It looks through the undefined and
-+ common symbols and searches the archive symbol table for them. If
-+ it finds an entry, it includes the associated object file in the
-+ link.
-+
-+ The old linker looked through the archive symbol table for
-+ undefined symbols. We do it the other way around, looking through
-+ undefined symbols for symbols defined in the archive. The
-+ advantage of the newer scheme is that we only have to look through
-+ the list of undefined symbols once, whereas the old method had to
-+ re-search the symbol table each time a new object file was added.
-+
-+ The CHECKFN argument is used to see if an object file should be
-+ included. CHECKFN should set *PNEEDED to TRUE if the object file
-+ should be included, and must also call the bfd_link_info
-+ add_archive_element callback function and handle adding the symbols
-+ to the global hash table. CHECKFN must notice if the callback
-+ indicates a substitute BFD, and arrange to add those symbols instead
-+ if it does so. CHECKFN should only return FALSE if some sort of
-+ error occurs.
-+
-+ For some formats, such as a.out, it is possible to look through an
-+ object file but not actually include it in the link. The
-+ archive_pass field in a BFD is used to avoid checking the symbols
-+ of an object files too many times. When an object is included in
-+ the link, archive_pass is set to -1. If an object is scanned but
-+ not included, archive_pass is set to the pass number. The pass
-+ number is incremented each time a new object file is included. The
-+ pass number is used because when a new object file is included it
-+ may create new undefined symbols which cause a previously examined
-+ object file to be included. */
-
- bfd_boolean
- _bfd_generic_link_add_archive_symbols
- (bfd *abfd,
- struct bfd_link_info *info,
-- bfd_boolean (*checkfn) (bfd *, struct bfd_link_info *,
-- struct bfd_link_hash_entry *, const char *,
-- bfd_boolean *))
-+ bfd_boolean (*checkfn) (bfd *, struct bfd_link_info *, bfd_boolean *))
- {
-- bfd_boolean loop;
-- bfd_size_type amt;
-- unsigned char *included;
-+ carsym *arsyms;
-+ carsym *arsym_end;
-+ register carsym *arsym;
-+ int pass;
-+ struct archive_hash_table arsym_hash;
-+ unsigned int indx;
-+ struct bfd_link_hash_entry **pundef;
-
- if (! bfd_has_map (abfd))
- {
-@@ -944,103 +1059,148 @@ _bfd_generic_link_add_archive_symbols
- return FALSE;
- }
-
-- amt = bfd_ardata (abfd)->symdef_count;
-- if (amt == 0)
-- return TRUE;
-- amt *= sizeof (*included);
-- included = (unsigned char *) bfd_zmalloc (amt);
-- if (included == NULL)
-+ arsyms = bfd_ardata (abfd)->symdefs;
-+ arsym_end = arsyms + bfd_ardata (abfd)->symdef_count;
-+
-+ /* In order to quickly determine whether an symbol is defined in
-+ this archive, we build a hash table of the symbols. */
-+ if (! archive_hash_table_init (&arsym_hash, archive_hash_newfunc,
-+ sizeof (struct archive_hash_entry)))
- return FALSE;
-+ for (arsym = arsyms, indx = 0; arsym < arsym_end; arsym++, indx++)
-+ {
-+ struct archive_hash_entry *arh;
-+ struct archive_list *l, **pp;
-
-- do
-+ arh = archive_hash_lookup (&arsym_hash, arsym->name, TRUE, FALSE);
-+ if (arh == NULL)
-+ goto error_return;
-+ l = ((struct archive_list *)
-+ archive_hash_allocate (&arsym_hash, sizeof (struct archive_list)));
-+ if (l == NULL)
-+ goto error_return;
-+ l->indx = indx;
-+ for (pp = &arh->defs; *pp != NULL; pp = &(*pp)->next)
-+ ;
-+ *pp = l;
-+ l->next = NULL;
-+ }
-+
-+ /* The archive_pass field in the archive itself is used to
-+ initialize PASS, sine we may search the same archive multiple
-+ times. */
-+ pass = abfd->archive_pass + 1;
-+
-+ /* New undefined symbols are added to the end of the list, so we
-+ only need to look through it once. */
-+ pundef = &info->hash->undefs;
-+ while (*pundef != NULL)
- {
-- carsym *arsyms;
-- carsym *arsym_end;
-- carsym *arsym;
-- unsigned int indx;
-- file_ptr last_ar_offset = -1;
-- bfd_boolean needed = FALSE;
-- bfd *element = NULL;
--
-- loop = FALSE;
-- arsyms = bfd_ardata (abfd)->symdefs;
-- arsym_end = arsyms + bfd_ardata (abfd)->symdef_count;
-- for (arsym = arsyms, indx = 0; arsym < arsym_end; arsym++, indx++)
-+ struct bfd_link_hash_entry *h;
-+ struct archive_hash_entry *arh;
-+ struct archive_list *l;
-+
-+ h = *pundef;
-+
-+ /* When a symbol is defined, it is not necessarily removed from
-+ the list. */
-+ if (h->type != bfd_link_hash_undefined
-+ && h->type != bfd_link_hash_common)
- {
-- struct bfd_link_hash_entry *h;
-- struct bfd_link_hash_entry *undefs_tail;
-+ /* Remove this entry from the list, for general cleanliness
-+ and because we are going to look through the list again
-+ if we search any more libraries. We can't remove the
-+ entry if it is the tail, because that would lose any
-+ entries we add to the list later on (it would also cause
-+ us to lose track of whether the symbol has been
-+ referenced). */
-+ if (*pundef != info->hash->undefs_tail)
-+ *pundef = (*pundef)->u.undef.next;
-+ else
-+ pundef = &(*pundef)->u.undef.next;
-+ continue;
-+ }
-
-- if (included[indx])
-- continue;
-- if (needed && arsym->file_offset == last_ar_offset)
-+ /* Look for this symbol in the archive symbol map. */
-+ arh = archive_hash_lookup (&arsym_hash, h->root.string, FALSE, FALSE);
-+ if (arh == NULL)
-+ {
-+ /* If we haven't found the exact symbol we're looking for,
-+ let's look for its import thunk */
-+ if (info->pei386_auto_import)
-+ {
-+ bfd_size_type amt = strlen (h->root.string) + 10;
-+ char *buf = (char *) bfd_malloc (amt);
-+ if (buf == NULL)
-+ return FALSE;
-+
-+ sprintf (buf, "__imp_%s", h->root.string);
-+ arh = archive_hash_lookup (&arsym_hash, buf, FALSE, FALSE);
-+ free(buf);
-+ }
-+ if (arh == NULL)
- {
-- included[indx] = 1;
-+ pundef = &(*pundef)->u.undef.next;
- continue;
- }
-+ }
-+ /* Look at all the objects which define this symbol. */
-+ for (l = arh->defs; l != NULL; l = l->next)
-+ {
-+ bfd *element;
-+ bfd_boolean needed;
-+
-+ /* If the symbol has gotten defined along the way, quit. */
-+ if (h->type != bfd_link_hash_undefined
-+ && h->type != bfd_link_hash_common)
-+ break;
-
-- h = bfd_link_hash_lookup (info->hash, arsym->name,
-- FALSE, FALSE, TRUE);
-+ element = bfd_get_elt_at_index (abfd, l->indx);
-+ if (element == NULL)
-+ goto error_return;
-
-- if (h == NULL
-- && info->pei386_auto_import
-- && CONST_STRNEQ (arsym->name, "__imp_"))
-- h = bfd_link_hash_lookup (info->hash, arsym->name + 6,
-- FALSE, FALSE, TRUE);
-- if (h == NULL)
-+ /* If we've already included this element, or if we've
-+ already checked it on this pass, continue. */
-+ if (element->archive_pass == -1
-+ || element->archive_pass == pass)
- continue;
-
-- if (h->type != bfd_link_hash_undefined
-- && h->type != bfd_link_hash_common)
-+ /* If we can't figure this element out, just ignore it. */
-+ if (! bfd_check_format (element, bfd_object))
- {
-- if (h->type != bfd_link_hash_undefweak)
-- /* Symbol must be defined. Don't check it again. */
-- included[indx] = 1;
-+ element->archive_pass = -1;
- continue;
- }
-
-- if (last_ar_offset != arsym->file_offset)
-- {
-- last_ar_offset = arsym->file_offset;
-- element = _bfd_get_elt_at_filepos (abfd, last_ar_offset);
-- if (element == NULL
-- || !bfd_check_format (element, bfd_object))
-- goto error_return;
-- }
--
-- undefs_tail = info->hash->undefs_tail;
--
- /* CHECKFN will see if this element should be included, and
- go ahead and include it if appropriate. */
-- if (! (*checkfn) (element, info, h, arsym->name, &needed))
-+ if (! (*checkfn) (element, info, &needed))
- goto error_return;
-
-- if (needed)
-+ if (! needed)
-+ element->archive_pass = pass;
-+ else
- {
-- unsigned int mark;
-+ element->archive_pass = -1;
-
-- /* Look backward to mark all symbols from this object file
-- which we have already seen in this pass. */
-- mark = indx;
-- do
-- {
-- included[mark] = 1;
-- if (mark == 0)
-- break;
-- --mark;
-- }
-- while (arsyms[mark].file_offset == last_ar_offset);
--
-- if (undefs_tail != info->hash->undefs_tail)
-- loop = TRUE;
-+ /* Increment the pass count to show that we may need to
-+ recheck object files which were already checked. */
-+ ++pass;
- }
- }
-- } while (loop);
-
-- free (included);
-+ pundef = &(*pundef)->u.undef.next;
-+ }
-+
-+ archive_hash_table_free (&arsym_hash);
-+
-+ /* Save PASS in case we are called again. */
-+ abfd->archive_pass = pass;
-+
- return TRUE;
-
- error_return:
-- free (included);
-+ archive_hash_table_free (&arsym_hash);
- return FALSE;
- }
-
-@@ -1050,14 +1210,12 @@ _bfd_generic_link_add_archive_symbols
- for finding them. */
-
- static bfd_boolean
--generic_link_check_archive_element_no_collect (bfd *abfd,
-+generic_link_check_archive_element_no_collect (
-+ bfd *abfd,
- struct bfd_link_info *info,
-- struct bfd_link_hash_entry *h,
-- const char *name,
- bfd_boolean *pneeded)
- {
-- return generic_link_check_archive_element (abfd, info, h, name, pneeded,
-- FALSE);
-+ return generic_link_check_archive_element (abfd, info, pneeded, FALSE);
- }
-
- /* See if we should include an archive element. This version is used
-@@ -1067,12 +1225,9 @@ generic_link_check_archive_element_no_collect (bfd *abfd,
- static bfd_boolean
- generic_link_check_archive_element_collect (bfd *abfd,
- struct bfd_link_info *info,
-- struct bfd_link_hash_entry *h,
-- const char *name,
- bfd_boolean *pneeded)
- {
-- return generic_link_check_archive_element (abfd, info, h, name, pneeded,
-- TRUE);
-+ return generic_link_check_archive_element (abfd, info, pneeded, TRUE);
- }
-
- /* See if we should include an archive element. Optionally collect
-@@ -1081,8 +1236,6 @@ generic_link_check_archive_element_collect (bfd *abfd,
- static bfd_boolean
- generic_link_check_archive_element (bfd *abfd,
- struct bfd_link_info *info,
-- struct bfd_link_hash_entry *h,
-- const char *name ATTRIBUTE_UNUSED,
- bfd_boolean *pneeded,
- bfd_boolean collect)
- {
-@@ -1098,6 +1251,7 @@ generic_link_check_archive_element (bfd *abfd,
- for (; pp < ppend; pp++)
- {
- asymbol *p;
-+ struct bfd_link_hash_entry *h;
-
- p = *pp;
-
-diff --git a/bfd/pdp11.c b/bfd/pdp11.c
-index 593c5ca..5111a51 100644
---- a/bfd/pdp11.c
-+++ b/bfd/pdp11.c
-@@ -251,7 +251,7 @@ HOWTO( 1, 0, 1, 16, TRUE, 0, complain_overflow_signed,0,"DISP16", TRU
- #define TABLE_SIZE(TABLE) (sizeof(TABLE)/sizeof(TABLE[0]))
-
-
--static bfd_boolean aout_link_check_archive_element (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, const char *, bfd_boolean *);
-+static bfd_boolean aout_link_check_archive_element (bfd *, struct bfd_link_info *, bfd_boolean *);
- static bfd_boolean aout_link_add_object_symbols (bfd *, struct bfd_link_info *);
- static bfd_boolean aout_link_add_symbols (bfd *, struct bfd_link_info *);
- static bfd_boolean aout_link_write_symbols (struct aout_final_link_info *, bfd *);
-@@ -2682,8 +2682,6 @@ aout_link_check_ar_symbols (bfd *abfd,
- static bfd_boolean
- aout_link_check_archive_element (bfd *abfd,
- struct bfd_link_info *info,
-- struct bfd_link_hash_entry *h ATTRIBUTE_UNUSED,
-- const char *name ATTRIBUTE_UNUSED,
- bfd_boolean *pneeded)
- {
- bfd *oldbfd;
-diff --git a/bfd/xcofflink.c b/bfd/xcofflink.c
-index 9522974..dcfd58f 100644
---- a/bfd/xcofflink.c
-+++ b/bfd/xcofflink.c
-@@ -2384,8 +2384,6 @@ xcoff_link_check_ar_symbols (bfd *abfd,
- static bfd_boolean
- xcoff_link_check_archive_element (bfd *abfd,
- struct bfd_link_info *info,
-- struct bfd_link_hash_entry *h ATTRIBUTE_UNUSED,
-- const char *name ATTRIBUTE_UNUSED,
- bfd_boolean *pneeded)
- {
- bfd_boolean keep_syms_p;
-@@ -2465,7 +2463,7 @@ _bfd_xcoff_bfd_link_add_symbols (bfd *abfd, struct bfd_link_info *info)
- bfd_boolean needed;
-
- if (! xcoff_link_check_archive_element (member, info,
-- NULL, NULL, &needed))
-+ &needed))
- return FALSE;
- if (needed)
- member->archive_pass = -1;
diff --git a/projects/binutils/peXXigen.patch b/projects/binutils/peXXigen.patch
deleted file mode 100644
index c2a689a..0000000
--- a/projects/binutils/peXXigen.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From f8e8f1daf12e30d3197b25d6bd10c03d1f932e20 Mon Sep 17 00:00:00 2001
-From: Nick Clifton <nickc(a)redhat.com>
-Date: Tue, 27 Sep 2016 12:08:19 +0100
-Subject: [PATCH] Ensure that the timestamp in PE/COFF headers is always
- initialised.
-
- PR ld/20634
- * peXXigen.c (_bfd_XXi_only_swap_filehdr_out): Put 0 in the
- timestamp field if real time values are not being stored.
----
- bfd/peXXigen.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/bfd/peXXigen.c b/bfd/peXXigen.c
-index c92c1ea..d713d96 100644
---- a/bfd/peXXigen.c
-+++ b/bfd/peXXigen.c
-@@ -879,6 +879,8 @@ _bfd_XXi_only_swap_filehdr_out (bfd * abfd, void * in, void * out)
- /* Only use a real timestamp if the option was chosen. */
- if ((pe_data (abfd)->insert_timestamp))
- H_PUT_32 (abfd, time (0), filehdr_out->f_timdat);
-+ else
-+ H_PUT_32 (abfd, 0, filehdr_out->f_timdat);
-
- PUT_FILEHDR_SYMPTR (abfd, filehdr_in->f_symptr,
- filehdr_out->f_symptr);
---
-2.1.4
-
diff --git a/projects/mingw-w64/build b/projects/mingw-w64/build
index b2117c5..4be660d 100644
--- a/projects/mingw-w64/build
+++ b/projects/mingw-w64/build
@@ -22,6 +22,10 @@ cd /var/tmp/build
mkdir gcc
cd gcc
tar xJf $rootdir/gcc-[% c("var/gcc_version") %].tar.xz
+# https://gcc.gnu.org/ml/gcc-patches/2018-06/msg01115.html
+# From gcc commit 494c17dc2bf45b8155fb9a14178ab48f01bc12a8
+# libtool: Sort output of 'find' to enable deterministic builds.
+patch -p1 -d gcc-[% c("var/gcc_version") %] < $rootdir/libtool-sort.patch
# We don't want to link against msvcrt.dll due to bug 9084 and want to use
# pthreads, too, as this is needed for ESR60, at least due to bug 1406542.
[% c("arch") %]-w64-mingw32-g++ -dumpspecs > $distdir/msvcr100.spec
diff --git a/projects/mingw-w64/config b/projects/mingw-w64/config
index b9185f3..19a7a82 100644
--- a/projects/mingw-w64/config
+++ b/projects/mingw-w64/config
@@ -34,3 +34,4 @@ input_files:
sha256sum: 850bf21eafdfe5cd5f6827148184c08c4a0852a37ccf36ce69855334d2c914d4
- name: binutils
project: binutils
+ - filename: libtool-sort.patch
diff --git a/projects/mingw-w64/libtool-sort.patch b/projects/mingw-w64/libtool-sort.patch
new file mode 100644
index 0000000..7c7fa85
--- /dev/null
+++ b/projects/mingw-w64/libtool-sort.patch
@@ -0,0 +1,67 @@
+From 494c17dc2bf45b8155fb9a14178ab48f01bc12a8 Mon Sep 17 00:00:00 2001
+From: law <law@138bc75d-0d04-0410-961f-82ee72b054a4>
+Date: Thu, 5 Jul 2018 19:13:45 +0000
+Subject: [PATCH 1/1] * libtool.m4: Sort output of 'find' to enable
+ deterministic builds. * ltmain.sh: Likewise.
+
+git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@262451 138bc75d-0d04-0410-961f-82ee72b054a4
+---
+ ChangeLog | 5 +++++
+ libtool.m4 | 8 ++++----
+ ltmain.sh | 4 ++--
+ 3 files changed, 11 insertions(+), 6 deletions(-)
+
+diff --git a/libtool.m4 b/libtool.m4
+index 24d13f3..940faaa 100644
+--- a/libtool.m4
++++ b/libtool.m4
+@@ -6005,20 +6005,20 @@ if test "$_lt_caught_CXX_error" != yes; then
+ _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~
+ rm -rf $tpldir~
+ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
+- compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"'
++ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
+ _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~
+ rm -rf $tpldir~
+ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
+- $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~
++ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
+ $RANLIB $oldlib'
+ _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~
+ rm -rf $tpldir~
+ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~
+ rm -rf $tpldir~
+ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+ ;;
+ *) # Version 6 and above use weak symbols
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+diff --git a/ltmain.sh b/ltmain.sh
+index 9503ec8..79f9ba8 100644
+--- a/ltmain.sh
++++ b/ltmain.sh
+@@ -2917,7 +2917,7 @@ func_extract_archives ()
+ darwin_file=
+ darwin_files=
+ for darwin_file in $darwin_filelist; do
+- darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
++ darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP`
+ $LIPO -create -output "$darwin_file" $darwin_files
+ done # $darwin_filelist
+ $RM -rf unfat-$$
+@@ -2932,7 +2932,7 @@ func_extract_archives ()
+ func_extract_an_archive "$my_xdir" "$my_xabs"
+ ;;
+ esac
+- my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
++ my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP`
+ done
+
+ func_extract_archives_result="$my_oldobjs"
+--
+2.9.3
+
1
0
16 Jan '19
commit 358b3b15be6c35810b166625c9331d6ef5071bee
Author: Georg Koppen <gk(a)torproject.org>
Date: Mon Jan 14 08:22:40 2019 +0000
Bug 29081: Harden libwinpthread
---
projects/mingw-w64/build | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/projects/mingw-w64/build b/projects/mingw-w64/build
index 1e25290..b2117c5 100644
--- a/projects/mingw-w64/build
+++ b/projects/mingw-w64/build
@@ -43,8 +43,8 @@ make install
mkdir -p /var/tmp/build/builddir/mingw-w64/mingw-w64-pthread
cd /var/tmp/build/builddir/mingw-w64/mingw-w64-pthread
/var/tmp/build/[% project %]-[% c("version") %]/mingw-w64-libraries/winpthreads/configure \
- LDFLAGS="-Wl,--no-insert-timestamp" \
- --host=[% c("arch") %]-w64-mingw32 --prefix=$distdir/[% c("arch") %]-w64-mingw32
+ LDFLAGS="-Wl,--dynamicbase -Wl,--nxcompat -Wl,--enable-reloc-section -Wl,--no-insert-timestamp" \
+ --host=[% c("arch") %]-w64-mingw32 --prefix=$distdir/[% c("arch") %]-w64-mingw32
make -j[% c("buildconf/num_procs") %]
make install
1
0