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

[tor-browser/tor-browser-38.4.0esr-5.5-1] Bug 15564: Isolate SharedWorker by first party domain
by gk@torproject.org 12 Dec '15
by gk@torproject.org 12 Dec '15
12 Dec '15
commit 67173fc914d1fb17b942e8f7b1c9de770a21a347
Author: Arthur Edelstein <arthuredelstein(a)gmail.com>
Date: Thu Oct 8 12:45:37 2015 -0700
Bug 15564: Isolate SharedWorker by first party domain
---
dom/workers/RuntimeService.cpp | 27 ++++++++++++++++++++-------
dom/workers/RuntimeService.h | 5 ++++-
dom/workers/WorkerPrivate.cpp | 5 +++++
dom/workers/WorkerPrivate.h | 8 ++++++++
4 files changed, 37 insertions(+), 8 deletions(-)
diff --git a/dom/workers/RuntimeService.cpp b/dom/workers/RuntimeService.cpp
index 271c74f..4f5f363 100644
--- a/dom/workers/RuntimeService.cpp
+++ b/dom/workers/RuntimeService.cpp
@@ -64,6 +64,7 @@
#include "WorkerPrivate.h"
#include "WorkerRunnable.h"
#include "WorkerThread.h"
+#include "ThirdPartyUtil.h"
#ifdef ENABLE_TESTS
#include "BackgroundChildImpl.h"
@@ -269,11 +270,13 @@ GetWorkerPref(const nsACString& aPref,
// This function creates a key for a SharedWorker composed by "name|scriptSpec".
// If the name contains a '|', this will be replaced by '||'.
void
-GenerateSharedWorkerKey(const nsACString& aScriptSpec, const nsACString& aName,
+GenerateSharedWorkerKey(const nsACString& aScriptSpec,
+ const nsACString& aIsolationKey,
+ const nsACString& aName,
nsCString& aKey)
{
aKey.Truncate();
- aKey.SetCapacity(aScriptSpec.Length() + aName.Length() + 1);
+ aKey.SetCapacity(aScriptSpec.Length() + aName.Length() + aIsolationKey.Length() + 2);
nsACString::const_iterator start, end;
aName.BeginReading(start);
@@ -288,6 +291,9 @@ GenerateSharedWorkerKey(const nsACString& aScriptSpec, const nsACString& aName,
aKey.Append('|');
aKey.Append(aScriptSpec);
+
+ aKey.Append('|');
+ aKey.Append(aIsolationKey);
}
void
@@ -1402,13 +1408,16 @@ RuntimeService::RegisterWorker(JSContext* aCx, WorkerPrivate* aWorkerPrivate)
if (isSharedOrServiceWorker) {
const nsCString& sharedWorkerName = aWorkerPrivate->SharedWorkerName();
+ const nsCString& isolationKey = aWorkerPrivate->IsolationKey();
nsAutoCString key;
- GenerateSharedWorkerKey(sharedWorkerScriptSpec, sharedWorkerName, key);
+ GenerateSharedWorkerKey(sharedWorkerScriptSpec, isolationKey, sharedWorkerName, key);
MOZ_ASSERT(!domainInfo->mSharedWorkerInfos.Get(key));
SharedWorkerInfo* sharedWorkerInfo =
- new SharedWorkerInfo(aWorkerPrivate, sharedWorkerScriptSpec,
+ new SharedWorkerInfo(aWorkerPrivate,
+ sharedWorkerScriptSpec,
+ isolationKey,
sharedWorkerName);
domainInfo->mSharedWorkerInfos.Put(key, sharedWorkerInfo);
}
@@ -1509,7 +1518,9 @@ RuntimeService::UnregisterWorker(JSContext* aCx, WorkerPrivate* aWorkerPrivate)
if (match.mSharedWorkerInfo) {
nsAutoCString key;
GenerateSharedWorkerKey(match.mSharedWorkerInfo->mScriptSpec,
- match.mSharedWorkerInfo->mName, key);
+ match.mSharedWorkerInfo->mIsolationKey,
+ match.mSharedWorkerInfo->mName,
+ key);
domainInfo->mSharedWorkerInfos.Remove(key);
}
}
@@ -2293,7 +2304,7 @@ RuntimeService::CreateSharedWorkerFromLoadInfo(JSContext* aCx,
NS_ENSURE_SUCCESS(rv, rv);
nsAutoCString key;
- GenerateSharedWorkerKey(scriptSpec, aName, key);
+ GenerateSharedWorkerKey(scriptSpec, aLoadInfo->mIsolationKey, aName, key);
if (mDomainMap.Get(aLoadInfo->mDomain, &domainInfo) &&
domainInfo->mSharedWorkerInfos.Get(key, &sharedWorkerInfo)) {
@@ -2368,7 +2379,9 @@ RuntimeService::ForgetSharedWorker(WorkerPrivate* aWorkerPrivate)
if (match.mSharedWorkerInfo) {
nsAutoCString key;
GenerateSharedWorkerKey(match.mSharedWorkerInfo->mScriptSpec,
- match.mSharedWorkerInfo->mName, key);
+ match.mSharedWorkerInfo->mIsolationKey,
+ match.mSharedWorkerInfo->mName,
+ key);
domainInfo->mSharedWorkerInfos.Remove(key);
}
}
diff --git a/dom/workers/RuntimeService.h b/dom/workers/RuntimeService.h
index 94bff10..8036b60 100644
--- a/dom/workers/RuntimeService.h
+++ b/dom/workers/RuntimeService.h
@@ -34,12 +34,15 @@ class RuntimeService final : public nsIObserver
{
WorkerPrivate* mWorkerPrivate;
nsCString mScriptSpec;
+ nsCString mIsolationKey;
nsCString mName;
SharedWorkerInfo(WorkerPrivate* aWorkerPrivate,
const nsACString& aScriptSpec,
+ const nsACString& aIsolationKey,
const nsACString& aName)
- : mWorkerPrivate(aWorkerPrivate), mScriptSpec(aScriptSpec), mName(aName)
+ : mWorkerPrivate(aWorkerPrivate), mScriptSpec(aScriptSpec),
+ mIsolationKey(aIsolationKey), mName(aName)
{ }
};
diff --git a/dom/workers/WorkerPrivate.cpp b/dom/workers/WorkerPrivate.cpp
index 7057b3a..5d0064b 100644
--- a/dom/workers/WorkerPrivate.cpp
+++ b/dom/workers/WorkerPrivate.cpp
@@ -4355,6 +4355,7 @@ WorkerPrivate::GetLoadInfo(JSContext* aCx, nsPIDOMWindow* aWindow,
}
loadInfo.mDomain = aParent->Domain();
+ loadInfo.mIsolationKey = aParent->IsolationKey();
loadInfo.mFromWindow = aParent->IsFromWindow();
loadInfo.mWindowID = aParent->WindowID();
loadInfo.mIndexedDBAllowed = aParent->IsIndexedDBAllowed();
@@ -4421,6 +4422,10 @@ WorkerPrivate::GetLoadInfo(JSContext* aCx, nsPIDOMWindow* aWindow,
loadInfo.mBaseURI = document->GetDocBaseURI();
loadInfo.mLoadGroup = document->GetDocumentLoadGroup();
+ nsCString isolationKey;
+ ThirdPartyUtil::GetFirstPartyHost(document, isolationKey);
+ loadInfo.mIsolationKey = isolationKey;
+
// Use the document's NodePrincipal as our principal if we're not being
// called from chrome.
if (!loadInfo.mPrincipal) {
diff --git a/dom/workers/WorkerPrivate.h b/dom/workers/WorkerPrivate.h
index a684e6d..a84407c 100644
--- a/dom/workers/WorkerPrivate.h
+++ b/dom/workers/WorkerPrivate.h
@@ -169,6 +169,7 @@ public:
nsAutoPtr<PrincipalInfo> mPrincipalInfo;
nsCString mDomain;
+ nsCString mIsolationKey;
uint64_t mWindowID;
@@ -218,6 +219,7 @@ public:
mPrincipalInfo = aOther.mPrincipalInfo.forget();
mDomain = aOther.mDomain;
+ mIsolationKey = aOther.mIsolationKey;
mWindowID = aOther.mWindowID;
mFromWindow = aOther.mFromWindow;
mEvalAllowed = aOther.mEvalAllowed;
@@ -532,6 +534,12 @@ public:
return mLoadInfo.mDomain;
}
+ const nsCString&
+ IsolationKey() const
+ {
+ return mLoadInfo.mIsolationKey;
+ }
+
bool
IsFromWindow() const
{
1
0

[tor-browser/tor-browser-38.4.0esr-5.5-1] fixup! TB4: Tor Browser's Firefox preference overrides.
by gk@torproject.org 12 Dec '15
by gk@torproject.org 12 Dec '15
12 Dec '15
commit 2c2d625aef55b9bd1ed1b1ec459e4f1a8b11eadb
Author: Arthur Edelstein <arthuredelstein(a)gmail.com>
Date: Fri Dec 11 13:35:27 2015 -0800
fixup! TB4: Tor Browser's Firefox preference overrides.
---
browser/app/profile/000-tor-browser.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/browser/app/profile/000-tor-browser.js b/browser/app/profile/000-tor-browser.js
index ed0d3ce..ffb0a63 100644
--- a/browser/app/profile/000-tor-browser.js
+++ b/browser/app/profile/000-tor-browser.js
@@ -284,7 +284,7 @@ pref("font.name.sans-serif.ar", "Arial");
#endif
#ifdef XP_WIN
-pref("font.system.whitelist", "Arial, Batang, 바탕, Cambria Math, Courier New, Euphemia, Gautami, Georgia, Gulim, 굴림, GulimChe, 굴림체, Iskoola Pota, Kalinga, Kartika, Latha, Lucida Console, MS Gothic, MS ゴシック, MS Mincho, MS 明朝, MS PGothic, MS Pゴシック, MS PMincho, MS P明朝, MV Boli, Mangal, Microsoft Himalaya, Microsoft YaHei, 微软雅黑, MingLiU, 細明體, Noto Sans Buginese, Noto Sans Khmer, Noto Sans Lao, Noto Sans Myanmar, Noto Sans Yi, Nyala, PMingLiU, 新細明體, Plantagenet Cherokee, Raavi, Segoe UI, Shruti, SimSun, 宋体, Sylfaen, Tahoma, Times New Roman, Tunga, Verdana, Vrinda");
+pref("font.system.whitelist", "Arial, Batang, 바탕, Cambria Math, Courier New, Euphemia, Gautami, Georgia, Gulim, 굴림, GulimChe, 굴림체, Iskoola Pota, Kalinga, Kartika, Latha, Lucida Console, MS Gothic, MS ゴシック, MS Mincho, MS 明朝, MS PGothic, MS Pゴシック, MS PMincho, MS P明朝, MV Boli, Malgun Gothic, Mangal, Meiryo, Meiryo UI, Microsoft Himalaya, Microsoft JhengHei, Microsoft YaHei, 微软雅黑, MingLiU, 細明體, Noto Sans Buginese, Noto Sans Khmer, Noto Sans Lao, Noto Sans Myanmar, Noto Sans Yi, Nyala, PMingLiU, 新細明體, Plantagenet Cherokee, Raavi, Segoe UI, Shruti, SimSun, 宋体, Sylfaen, Tahoma, Times New Roman, Tunga, Verdana, Vrinda, Yu Gothic UI");
#endif
#ifdef XP_LINUX
1
0

[tor-browser/tor-browser-38.4.0esr-5.5-1] fixup! TB4: Tor Browser's Firefox preference overrides.
by gk@torproject.org 12 Dec '15
by gk@torproject.org 12 Dec '15
12 Dec '15
commit 7cda561f125169f05a539be1b5afd88522d4fc46
Author: Arthur Edelstein <arthuredelstein(a)gmail.com>
Date: Fri Dec 11 13:36:48 2015 -0800
fixup! TB4: Tor Browser's Firefox preference overrides.
---
browser/app/profile/000-tor-browser.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/browser/app/profile/000-tor-browser.js b/browser/app/profile/000-tor-browser.js
index ffb0a63..c7039a0 100644
--- a/browser/app/profile/000-tor-browser.js
+++ b/browser/app/profile/000-tor-browser.js
@@ -271,7 +271,7 @@ pref("browser.download.panel.shown", true);
#ifdef MOZ_BUNDLED_FONTS
#ifdef XP_MACOSX
-pref("font.system.whitelist", "AppleGothic, Arial, Courier, Geneva, Georgia, Heiti TC, Helvetica, Helvetica Neue, Hiragino Kaku Gothic ProN, Lucida Grande, Monaco, Noto Sans Armenian, Noto Sans Bengali, Noto Sans Canadian Aboriginal, Noto Sans Cherokee, Noto Sans Devanagari, Noto Sans Ethiopic, Noto Sans Gujarati, Noto Sans Gurmukhi, Noto Sans Kannada, Noto Sans Khmer, Noto Sans Lao, Noto Sans Malayalam, Noto Sans Mongolian, Noto Sans Myanmar, Noto Sans Oriya, Noto Sans Sinhala, Noto Sans Tamil, Noto Sans Telugu, Noto Sans Thaana, Noto Sans Tibetan, Noto Sans Yi, STHeiti, STIX Math, Tahoma, Thonburi, Times, Times New Roman, Verdana");
+pref("font.system.whitelist", "AppleGothic, Arial, Courier, Geneva, Georgia, Heiti TC, Helvetica, Helvetica Neue, .Helvetica Neue DeskInterface, Hiragino Kaku Gothic ProN, Lucida Grande, Monaco, Noto Sans Armenian, Noto Sans Bengali, Noto Sans Canadian Aboriginal, Noto Sans Cherokee, Noto Sans Devanagari, Noto Sans Ethiopic, Noto Sans Gujarati, Noto Sans Gurmukhi, Noto Sans Kannada, Noto Sans Khmer, Noto Sans Lao, Noto Sans Malayalam, Noto Sans Mongolian, Noto Sans Myanmar, Noto Sans Oriya, Noto Sans Sinhala, Noto Sans Tamil, Noto Sans Telugu, Noto Sans Thaana, Noto Sans Tibetan, Noto Sans Yi, STHeiti, STIX Math, Tahoma, Thonburi, Times, Times New Roman, Verdana");
pref("font.name-list.cursive.x-unicode", "Apple Chancery, Noto Sans Armenian, Noto Sans Bengali, Noto Sans Canadian Aboriginal, Noto Sans Cherokee, Noto Sans Devanagari, Noto Sans Ethiopic, Noto Sans Gujarati, Noto Sans Gurmukhi, Noto Sans Kannada, Noto Sans Khmer, Noto Sans Lao, Noto Sans Malayalam, Noto Sans Mongolian, Noto Sans Myanmar, Noto Sans Oriya, Noto Sans Sinhala, Noto Sans Tamil, Noto Sans Telugu, Noto Sans Thaana, Noto Sans Tibetan, Noto Sans Yi");
pref("font.name-list.fantasy.x-unicode", "Papyrus, Noto Sans Armenian, Noto Sans Bengali, Noto Sans Canadian Aboriginal, Noto Sans Cherokee, Noto Sans Devanagari, Noto Sans Ethiopic, Noto Sans Gujarati, Noto Sans Gurmukhi, Noto Sans Kannada, Noto Sans Khmer, Noto Sans Lao, Noto Sans Malayalam, Noto Sans Mongolian, Noto Sans Myanmar, Noto Sans Oriya, Noto Sans Sinhala, Noto Sans Tamil, Noto Sans Telugu, Noto Sans Thaana, Noto Sans Tibetan, Noto Sans Yi");
pref("font.name-list.monospace.x-unicode", "Courier, Arial, Noto Sans Armenian, Noto Sans Bengali, Noto Sans Canadian Aboriginal, Noto Sans Cherokee, Noto Sans Devanagari, Noto Sans Ethiopic, Noto Sans Gujarati, Noto Sans Gurmukhi, Noto Sans Kannada, Noto Sans Khmer, Noto Sans Lao, Noto Sans Malayalam, Noto Sans Mongolian, Noto Sans Myanmar, Noto Sans Oriya, Noto Sans Sinhala, Noto Sans Tamil, Noto Sans Telugu, Noto Sans Thaana, Noto Sans Tibetan, Noto Sans Yi");
1
0
commit c59561543e708a44f514b624d9578338da5e317d
Author: Georg Koppen <gk(a)torproject.org>
Date: Fri Dec 11 20:19:31 2015 +0000
Release preparations
---
src/CHANGELOG | 10 ++++++++++
src/chrome/locale/ru/aboutTor.dtd | 2 +-
src/chrome/locale/ru/torbutton.properties | 2 +-
src/install.rdf | 2 +-
4 files changed, 13 insertions(+), 3 deletions(-)
diff --git a/src/CHANGELOG b/src/CHANGELOG
index 91ece83..2d8647f 100644
--- a/src/CHANGELOG
+++ b/src/CHANGELOG
@@ -1,3 +1,13 @@
+1.9.4.2
+ * Bug 16940: After update, load local change notes
+ * Bug 16990: Avoid matching '250 ' to the end of node name
+ * Bug 17108: Polish about:tor appearance
+ * Bug 17565: Tor fundraising campaign donation banner
+ * Bug 17568: Clean up tor-control-port.js
+ * Bug 17770: Fix alignments on donation banner
+ * Bug 17792: Include donation banner in some non en-US Tor Browsers
+ * Translation updates
+
1.9.4.1
* Bug 9623: Spoof Referer when leaving a .onion domain
* Bug 16620: Move window.name handling into a Firefox patch
diff --git a/src/chrome/locale/ru/aboutTor.dtd b/src/chrome/locale/ru/aboutTor.dtd
index bb5a49b..ac71c5b 100644
--- a/src/chrome/locale/ru/aboutTor.dtd
+++ b/src/chrome/locale/ru/aboutTor.dtd
@@ -6,7 +6,7 @@
<!ENTITY aboutTor.title "О проекте Tor">
-<!ENTITY aboutTor.outOfDateTorOn.label "ВНИМАНИЕ: этот обозреватель устарел.">
+<!ENTITY aboutTor.outOfDateTorOn.label "ВНИМАНИЕ: этот браузер устарел.">
<!ENTITY aboutTor.outOfDateTorOff.label "КРОМЕ ТОГО, данный браузер устарел.">
<!ENTITY aboutTor.outOfDate2.label "Нажмите на "луковицу"и затем выберите "Проверить обновления браузера Tor"">
diff --git a/src/chrome/locale/ru/torbutton.properties b/src/chrome/locale/ru/torbutton.properties
index 62af84b..00c3dd0 100644
--- a/src/chrome/locale/ru/torbutton.properties
+++ b/src/chrome/locale/ru/torbutton.properties
@@ -7,7 +7,7 @@ torbutton.circuit_display.this_browser = Этот браузер
torbutton.circuit_display.relay = узел
torbutton.circuit_display.tor_bridge = Ретранслятор
torbutton.circuit_display.unknown_country = Неизвестная страна
-torbutton.content_sizer.margin_tooltip = Tor Browser добавляет этот отступ, чтобы ширина и высота окна были менее узнаваемыми, и это усложняет возможность отследить Вас в сети.
+torbutton.content_sizer.margin_tooltip = Tor Browser добавляет этот отступ, чтобы ширина и высота окна были менее узнаваемыми, это усложняет возможность отследить Вас в сети.
torbutton.panel.tooltip.disabled = Нажмите, чтобы включить Tor
torbutton.panel.tooltip.enabled = Нажмите, чтобы отключить Tor
torbutton.panel.plugins.disabled = Нажмите, чтобы включить плагины
diff --git a/src/install.rdf b/src/install.rdf
index 267870c..cbf74d0 100644
--- a/src/install.rdf
+++ b/src/install.rdf
@@ -6,7 +6,7 @@
<em:name>Torbutton</em:name>
<em:creator>Mike Perry</em:creator>
<em:id>torbutton(a)torproject.org</em:id>
- <em:version>1.9.4.1</em:version>
+ <em:version>1.9.4.2</em:version>
<em:homepageURL>https://www.torproject.org/projects/torbrowser.html.en</em:homepageURL>
<em:optionsURL>chrome://torbutton/content/preferences.xul</em:optionsURL>
<em:iconURL>chrome://torbutton/skin/tor.png</em:iconURL>
1
0

[torbutton/master] Bug 17792: Auto-adjust font size for donation banner l10n
by gk@torproject.org 11 Dec '15
by gk@torproject.org 11 Dec '15
11 Dec '15
commit 2faa79edfc674786a062a22a93f95734cdcacf15
Author: Arthur Edelstein <arthuredelstein(a)gmail.com>
Date: Thu Dec 10 15:59:38 2015 -0800
Bug 17792: Auto-adjust font size for donation banner l10n
---
src/chrome/content/aboutTor/aboutTor.xhtml | 66 +++++++++++++++++++++++++---
src/chrome/skin/aboutTor.css | 15 +++++--
2 files changed, 71 insertions(+), 10 deletions(-)
diff --git a/src/chrome/content/aboutTor/aboutTor.xhtml b/src/chrome/content/aboutTor/aboutTor.xhtml
index a95ae6f..d591adc 100644
--- a/src/chrome/content/aboutTor/aboutTor.xhtml
+++ b/src/chrome/content/aboutTor/aboutTor.xhtml
@@ -169,18 +169,63 @@ window.addEventListener("pageshow", function() {
// Donation banner constants
let gBannerAlternates = ["lp", "cd", "rd"],
- gBannerSuffixes = ["quote", "who", "speciality"],
- populateBannerText = (suffix, alternate) =>
- document.getElementById("donation-banner-" + suffix).innerHTML
- = gStringBundle.GetStringFromName("aboutTor.donationBanner." +
- alternate + "." + suffix);
+ gBannerSuffixes = ["quote", "who", "speciality"];
+
+// Change the font size of text in element by ratio.
+let scaleFontBy = function (element, ratio) {
+ let style = window.getComputedStyle(element),
+ originalFontSize = parseFloat(style.fontSize),
+ targetFontSize = originalFontSize * ratio;
+ element.style.fontSize = targetFontSize + "px";
+};
+
+// Shrink the font size if the text in the given element is overflowing.
+let fitTextInElement = function(element) {
+ let style = window.getComputedStyle(element);
+ if (style.whiteSpace === "nowrap") {
+ // Look for horizontal overflow.
+ let elementWidth = element.getBoundingClientRect().width,
+ paddingWidth = parseFloat(style.paddingLeft) +
+ parseFloat(style.paddingRight),
+ targetWidth = elementWidth - paddingWidth,
+ textWidth = element.scrollWidth;
+ // Compute the appropriate font size to make the text fit.
+ let ratio = targetWidth / textWidth;
+ scaleFontBy(element, ratio);
+ } else {
+ // Look for vertical overflow.
+ let elementHeight = element.getBoundingClientRect().height,
+ paddingHeight = parseFloat(style.paddingTop) +
+ parseFloat(style.paddingBottom),
+ targetHeight = elementHeight - paddingHeight;
+ // Wrapping causes somewhat difficult-to-predict overflow.
+ // So shrink slightly and repeat.
+ let ratio = 0;
+ for (let i = 0; i < 100 && ratio < 1; ++i) {
+ let textHeight = element.scrollHeight;
+ ratio = targetHeight < textHeight ? 0.99 : 1;
+ if (ratio < 1) {
+ scaleFontBy(element, ratio);
+ }
+ }
+ }
+};
+
+// Put text of the appropriate locale into donation banner elements.
+let populateBannerText = function (suffix, alternate) {
+ let text = gStringBundle.GetStringFromName("aboutTor.donationBanner." +
+ alternate + "." + suffix),
+ div = document.getElementById("donation-banner-" + suffix);
+ div.innerHTML = text;
+};
// This function takes care of the donation banner.
function setupDonationBanner() {
try {
- // Only show banner for US English
+ // Only show banner for locales for which we have translations.
let browserLocale = Services.prefs.getCharPref("general.useragent.locale");
- if (browserLocale !== "en-US") {
+ if (!["en", "de", "fa", "fr", "nl", "ru", "sv", "tr", "zh"]
+ .some(code => browserLocale.startsWith(code))) {
return;
}
// Only show banner until 2016 Jan 25.
@@ -218,6 +263,13 @@ function setupDonationBanner() {
}
// Now we can show the banner.
document.getElementById("donation-banner").style.display = "block";
+ for (let id of ["donation-banner-quote",
+ "donate-button",
+ "donation-banner-who",
+ "donation-banner-speciality",
+ "donation-banner-plea"]) {
+ fitTextInElement(document.getElementById(id));
+ }
}
]]>
</script>
diff --git a/src/chrome/skin/aboutTor.css b/src/chrome/skin/aboutTor.css
index 806fec5..549256f 100644
--- a/src/chrome/skin/aboutTor.css
+++ b/src/chrome/skin/aboutTor.css
@@ -331,6 +331,7 @@ body .top div.hideIfTorIsUpToDate h1.hideIfTorOff {
left: 245px;
position: absolute;
top: 23px;
+ text-align: start;
width: 420px;
}
@@ -338,7 +339,7 @@ body .top div.hideIfTorIsUpToDate h1.hideIfTorOff {
color: darkgreen;
font-family: serif;
font-size: 18px;
- text-align: start;
+ max-height: 64px;
white-space: normal;
}
@@ -351,11 +352,13 @@ body .top div.hideIfTorIsUpToDate h1.hideIfTorOff {
#donation-banner-who {
font-size: 19px;
font-style: bold;
+ width: 420px;
}
#donation-banner-speciality {
font-size: 13px;
text-transform: uppercase;
+ width: 420px;
}
#donation-banner-plea {
@@ -364,9 +367,13 @@ body .top div.hideIfTorIsUpToDate h1.hideIfTorOff {
font-size: 20px;
color: darkgreen;
left: 250px;
- padding: 10px;
+ line-height: 42px;
+ height: 42px;
+ padding: 0px 5px 0px 5px;
position: absolute;
+ text-align: center;
top: 144px;
+ width: 200px;
}
#donate-button {
@@ -375,8 +382,10 @@ body .top div.hideIfTorIsUpToDate h1.hideIfTorOff {
color: white;
font-family: sans-serif;
font-size: 20px;
+ height: 42px;
left: 490px;
- padding: 10px;
+ line-height: 42px;
+ padding: 0px 5px 0px 5px;
position: absolute;
text-align: center;
top: 144px;
1
0

11 Dec '15
commit 0fc577ffdb3df55742a7aaae8840720b856e21e5
Author: Georg Koppen <gk(a)torproject.org>
Date: Fri Dec 11 14:26:07 2015 +0000
Changelog update, versions bumps
---
Bundle-Data/Docs/ChangeLog.txt | 43 ++++++++++++++++++++++++++++++++-----
gitian/versions.alpha | 18 ++++++++--------
tools/update-responses/config.yml | 12 +++++------
3 files changed, 53 insertions(+), 20 deletions(-)
diff --git a/Bundle-Data/Docs/ChangeLog.txt b/Bundle-Data/Docs/ChangeLog.txt
index ef1a6be..335417f 100644
--- a/Bundle-Data/Docs/ChangeLog.txt
+++ b/Bundle-Data/Docs/ChangeLog.txt
@@ -1,3 +1,36 @@
+Tor Browser 5.5a5 -- December 15 2015
+ * All Platforms
+ * Update Firefox to 38.5.0esr
+ * Update Tor to 0.2.7.6
+ * Update OpenSSL to 1.0.1q
+ * Update NoScript to 2.7
+ * Update Torbutton to 1.9.4.2
+ * Bug 16940: After update, load local change notes
+ * Bug 16990: Avoid matching '250 ' to the end of node name
+ * Bug 17565: Tor fundraising campaign donation banner
+ * Bug 17770: Fix alignments on donation banner
+ * Bug 17792: Include donation banner in some non en-US Tor Browsers
+ * Bug 17108: Polish about:tor appearance
+ * Bug 17568: Clean up tor-control-port.js
+ * Translation updates
+ * Update Tor Launcher to 0.2.8.1
+ * Bug 17344: enumerate available language packs for language prompt
+ * Code clean-up
+ * Translation updates
+ * Bug 9659: Avoid loop due to optimistic data socks code (fix of #3875)
+ * Bug 16940: After update, load local change notes
+ * Bug 17759: Apply whitelist to local fonts in @font-face (fix of #13313)
+ * Bug 17747: Add ndnop3 as new default obfs4 bridge
+ * Bug 17009: Shift and Alt keys leak physical keyboard layout (fix of #15646)
+ * Bug 17369: Disable RC4 fallback
+ * Bug 17442: Remove custom updater certificate pinning
+ * Bug 16863: Avoid confusing error when loop.enabled is false
+ * Bug 17502: Add a preference for hiding "Open with" on download dialog
+ * Bug 17446: Prevent canvas extraction by third parties (fixup of #6253)
+ * Bug 16441: Suppress "Reset Tor Browser" prompt
+ * Windows
+ * Bug 13819: Ship expert bundles with console
+
Tor Browser 5.5a4 -- November 3 2015
* All Platforms
* Update Firefox to 38.4.0esr
@@ -889,7 +922,7 @@ Tor Browser Bundle 3.6-beta-2 -- Apr 8 2014
* All Platforms
* Update OpenSSL to 1.0.1g
* Bug 9010: Add Turkish language support.
- * Bug 9387 testing: Disable JS JIT, type inference, asmjs, and ion.
+ * Bug 9387 testing: Disable JS JIT, type inference, asmjs, and ion.
* Update fte transport to 0.2.12
* Update NoScript to 2.6.8.19
* Update Torbutton to 1.6.8.1
@@ -948,7 +981,7 @@ Tor Browser Bundle 3.6-beta-1 -- Mar 17 2014
* Bug 5018: Don't launch Pluggable Transport helpers if not in use
* Bug 9229: Eliminate 60 second stall during bootstrap with some PTs
* Bug 11069: Detect and report Pluggable Transport bootstrap failures
- * Bug 11156: Prevent spurious warning about missing pluggable transports
+ * Bug 11156: Prevent spurious warning about missing pluggable transports
* Bug 10237: Disable the media cache to prevent disk leaks for videos
* Bug 10703: Force the default charset to avoid locale fingerprinting
* Bug 10104: Update gitian to fix LXC build issues (for non-KVM/VT builders)
@@ -1039,7 +1072,7 @@ Tor Browser Bundle 3.0rc1 -- Nov 21 2013
* All Platforms:
* Update Firefox to 17.0.11esr
* Update Tor to 0.2.4.18-rc
- * Remove unsupported PDF.JS addon from the bundle
+ * Remove unsupported PDF.JS addon from the bundle
* Bug #7277: TBB's Tor client will now omit its timestamp in the TLS handshake.
* Update Torbutton to 1.6.4.1
* Bug #10002: Make the TBB3.0 blog tag our update download URL for now
@@ -1060,7 +1093,7 @@ Tor Browser Bundle 3.0beta1 -- Oct 31 2013
* Bug #9173: Patch Tor Browser to auto-detect profile directory if
launched without the wrapper script.
* Bug #9012: Hide Tor Browser infobar for missing plugins.
- * Bug #8364: Change the default entry page for the addons tab to the
+ * Bug #8364: Change the default entry page for the addons tab to the
installed addons page.
* Bug #9867: Make flash objects really be click-to-play if flash is enabled.
* Bug #8292: Make getFirstPartyURI log+handle errors internally to simplify
@@ -1090,7 +1123,7 @@ Tor Browser Bundle 3.0alpha4 -- Sep 24 2013
* Update Tor to 0.2.4.17-rc
* Update NoScript to 2.6.7.1
* Update Tor-Launcher to 0.2.2-alpha
- * Bug #9675: Provide feedback mechanism for clock-skew and other early
+ * Bug #9675: Provide feedback mechanism for clock-skew and other early
startup issues
* Bug #9445: Allow user to enter bridges with or without 'bridge' keyword
* Bug #9593: Use UTF16 for Tor process launch to handle unicode paths.
diff --git a/gitian/versions.alpha b/gitian/versions.alpha
index 81818e8..ae70b91 100755
--- a/gitian/versions.alpha
+++ b/gitian/versions.alpha
@@ -7,14 +7,14 @@ BUILD_PT_BUNDLES=1
VERIFY_TAGS=1
-FIREFOX_VERSION=38.4.0esr
+FIREFOX_VERSION=38.5.0esr
TORBROWSER_UPDATE_CHANNEL=alpha
TORBROWSER_TAG=tor-browser-${FIREFOX_VERSION}-5.5-1-build1
-TOR_TAG=tor-0.2.7.4-rc
-TORLAUNCHER_TAG=0.2.7.7
-TORBUTTON_TAG=1.9.4.1
+TOR_TAG=tor-0.2.7.6
+TORLAUNCHER_TAG=0.2.8.1
+TORBUTTON_TAG=1.9.4.2
HTTPSE_TAG=5.1.1
NSIS_TAG=v0.3
ZLIB_TAG=v1.2.8
@@ -39,10 +39,10 @@ NOTOFONTS_TAG=720e34851382ee3c1ef024d8dffb68ffbfb234c2
GITIAN_TAG=tor-browser-builder-3.x-8-gpgsux
-OPENSSL_VER=1.0.1p
+OPENSSL_VER=1.0.1q
GMP_VER=5.1.3
FIREFOX_LANG_VER=$FIREFOX_VERSION
-FIREFOX_LANG_BUILD=build2
+FIREFOX_LANG_BUILD=build1
BINUTILS_VER=2.24
GCC_VER=5.1.0
PYTHON_VER=2.7.5
@@ -62,7 +62,7 @@ NOTOCJKFONT_VER=1.004
## File names for the source packages
OPENSSL_PACKAGE=openssl-${OPENSSL_VER}.tar.gz
GMP_PACKAGE=gmp-${GMP_VER}.tar.bz2
-NOSCRIPT_PACKAGE=noscript_security_suite-2.6.9.39-sm+fx+fn.xpi
+NOSCRIPT_PACKAGE=noscript_security_suite-2.7-sm+fx+fn.xpi
TOOLCHAIN4_PACKAGE=x86_64-apple-darwin10.tar.xz
TOOLCHAIN4_OLD_PACKAGE=multiarch-darwin11-cctools127.2-gcc42-5666.3-llvmgcc42-2336.1-Linux-120724.tar.xz
OSXSDK_PACKAGE=MacOSX10.7.sdk.tar.gz
@@ -87,13 +87,13 @@ NOTOCJKFONT_PACKAGE=NotoSansCJKsc-Regular.otf
STIXMATHFONT_PACKAGE=STIXv1.1.1-latex.zip
# Hashes for packages with weak sigs or no sigs
-OPENSSL_HASH=bd5ee6803165c0fb60bbecbacacf244f1f90d2aa0d71353af610c29121e9b2f1
+OPENSSL_HASH=b3658b84e9ea606a5ded3c972a5517cd785282e7ea86b20c78aa4b773a047fb7
GMP_HASH=752079520b4690531171d0f4532e40f08600215feefede70b24fabdc6f1ab160
OSXSDK_HASH=da77bb0003fcca5ea8c4e8cb2da8828ded750c54afdcac29ec6f3b46ad5e3adf
OSXSDK_OLD_HASH=6602d8d5ddb371fbc02e2a5967d9bd0cd7358d46f9417753c8234b923f2ea6fc
TOOLCHAIN4_HASH=7b71bfe02820409b994c5c33a7eab81a81c72550f5da85ff7af70da3da244645
TOOLCHAIN4_OLD_HASH=65c1b2d302358a6b95a26c6828a66908a199276193bb0b268f2dcc1a997731e9
-NOSCRIPT_HASH=dd904c6a12a8b1f6b1da48d51e4df903d7f9211ba5b3f32d7272f413a3bf548a
+NOSCRIPT_HASH=ab84fd85addd6c15f2ce1e81c58ac9f09b228f9e56703f4d938447b8a2b752ea
MSVCR100_HASH=1221a09484964a6f38af5e34ee292b9afefccb3dc6e55435fd3aaf7c235d9067
PYCRYPTO_HASH=f2ce1e989b272cfcb677616763e0a2e7ec659effa67a88aa92b3a65528f60a3c
ARGPARSE_HASH=ddaf4b0a618335a32b6664d4ae038a1de8fbada3b25033f9021510ed2b3941a4
diff --git a/tools/update-responses/config.yml b/tools/update-responses/config.yml
index acfa5db..ddd5b1e 100644
--- a/tools/update-responses/config.yml
+++ b/tools/update-responses/config.yml
@@ -9,7 +9,7 @@ build_targets:
osx32: Darwin_x86-gcc3
osx64: Darwin_x86_64-gcc3
channels:
- alpha: 5.5a4
+ alpha: 5.5a5
release: 5.0
versions:
5.0:
@@ -23,12 +23,12 @@ versions:
osx32:
minSupportedOSVersion: 10.8
detailsURL: https://blog.torproject.org/blog/end-life-plan-tor-browser-32-bit-macs#upda…
- 5.5a4:
- platformVersion: 38.4.0
- detailsURL: https://blog.torproject.org/blog/tor-browser-55a4-released
- download_url: https://www.torproject.org/dist/torbrowser/5.5a4
+ 5.5a5:
+ platformVersion: 38.5.0
+ detailsURL: https://blog.torproject.org/blog/tor-browser-55a5-released
+ download_url: https://www.torproject.org/dist/torbrowser/5.5a5
incremental_from:
- - 5.5a3
+ - 5.5a4
migrate_archs:
osx32: osx64
osx32:
1
0
commit 45e9e5e26b172c3bfebdf541505b5d1bc6bf9ebb
Author: Georg Koppen <gk(a)torproject.org>
Date: Fri Dec 11 13:48:20 2015 +0000
Changelog update
---
Bundle-Data/Docs/ChangeLog.txt | 1 +
1 file changed, 1 insertion(+)
diff --git a/Bundle-Data/Docs/ChangeLog.txt b/Bundle-Data/Docs/ChangeLog.txt
index 89e56e7..222f31c 100644
--- a/Bundle-Data/Docs/ChangeLog.txt
+++ b/Bundle-Data/Docs/ChangeLog.txt
@@ -17,6 +17,7 @@ Tor Browser 5.0.5 -- December 15 2015
* Bug 17502: Add a preference for hiding "Open with" on download dialog
* Bug 17446: Prevent canvas extraction by third parties (fixup of #6253)
* Bug 16441: Suppress "Reset Tor Browser" prompt
+ * Bug 17747: Add ndnop3 as new default obfs4 bridge
Tor Browser 5.0.4 -- November 3 2015
* All Platforms
1
0
commit 099454f2b3ccb7172b0f76874ceafe1ddbaab9f5
Author: Georg Koppen <gk(a)torproject.org>
Date: Fri Dec 11 13:24:58 2015 +0000
Version bump
---
src/install.rdf | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/install.rdf b/src/install.rdf
index 48a9471..4a9944b 100644
--- a/src/install.rdf
+++ b/src/install.rdf
@@ -7,7 +7,7 @@
<em:creator>The Tor Project, Inc.</em:creator>
<em:contributor>Pearl Crescent, LLC</em:contributor>
<em:id>tor-launcher(a)torproject.org</em:id>
- <em:version>0.2.8</em:version>
+ <em:version>0.2.8.1</em:version>
<em:homepageURL>https://www.torproject.org/projects/torbrowser.html</em:homepageURL>
<em:updateURL>data:text/plain,</em:updateURL>
<em:updateKey>-</em:updateKey>
1
0
commit 2ac614433ce355bdbebf2b93696c830719fd6e7a
Author: Georg Koppen <gk(a)torproject.org>
Date: Fri Dec 11 13:23:33 2015 +0000
Translation updates
---
src/chrome/locale/af-ZA/torlauncher.properties | 3 +-
src/chrome/locale/af/network-settings.dtd | 22 +++----
src/chrome/locale/am-ET/network-settings.dtd | 68 ++++++++++++++++++++
src/chrome/locale/am-ET/progress.dtd | 2 +-
src/chrome/locale/bg-BG/torlauncher.properties | 3 +-
src/chrome/locale/bg/network-settings.dtd | 4 +-
src/chrome/locale/bn-BD/network-settings.dtd | 68 ++++++++++++++++++++
src/chrome/locale/bn-BD/torlauncher.properties | 9 ++-
src/chrome/locale/ca-ES/torlauncher.properties | 3 +-
src/chrome/locale/cs-CZ/network-settings.dtd | 68 ++++++++++++++++++++
src/chrome/locale/cs-CZ/torlauncher.properties | 9 ++-
src/chrome/locale/el-GR/torlauncher.properties | 3 +-
src/chrome/locale/el/network-settings.dtd | 4 +-
src/chrome/locale/es-NI/torlauncher.properties | 3 +-
src/chrome/locale/fr/network-settings.dtd | 2 +-
src/chrome/locale/hi/network-settings.dtd | 6 +-
src/chrome/locale/is/torlauncher.properties | 8 +--
src/chrome/locale/it/network-settings.dtd | 4 +-
src/chrome/locale/lt/network-settings.dtd | 2 +-
src/chrome/locale/lt/progress.dtd | 4 +-
src/chrome/locale/lv/network-settings.dtd | 4 +-
src/chrome/locale/ms/torlauncher.properties | 3 +-
src/chrome/locale/pl-PL/torlauncher.properties | 3 +-
src/chrome/locale/pt-BR/network-settings.dtd | 6 +-
src/chrome/locale/pt/network-settings.dtd | 36 +++++------
src/chrome/locale/sk/network-settings.dtd | 2 +-
src/chrome/locale/sq-AL/network-settings.dtd | 68 ++++++++++++++++++++
src/chrome/locale/sv-SE/torlauncher.properties | 3 +-
.../locale/zh-CN.GB2312/torlauncher.properties | 3 +-
src/chrome/locale/zh/torlauncher.properties | 3 +-
30 files changed, 359 insertions(+), 67 deletions(-)
diff --git a/src/chrome/locale/af-ZA/torlauncher.properties b/src/chrome/locale/af-ZA/torlauncher.properties
index 12a2dc9..a2550db 100644
--- a/src/chrome/locale/af-ZA/torlauncher.properties
+++ b/src/chrome/locale/af-ZA/torlauncher.properties
@@ -1,9 +1,10 @@
-### Copyright (c) 2015, The Tor Project, Inc.
+### Copyright (c) 2014, The Tor Project, Inc.
### See LICENSE for licensing information.
torlauncher.error_title=Tor Launcher
torlauncher.tor_exited=Tor unexpectedly exited.
+torlauncher.please_restart_app=Please restart this application.
torlauncher.tor_controlconn_failed=Could not connect to Tor control port.
torlauncher.tor_failed_to_start=Tor failed to start.
torlauncher.tor_control_failed=Failed to take control of Tor.
diff --git a/src/chrome/locale/af/network-settings.dtd b/src/chrome/locale/af/network-settings.dtd
index b193750..4248631 100644
--- a/src/chrome/locale/af/network-settings.dtd
+++ b/src/chrome/locale/af/network-settings.dtd
@@ -26,7 +26,7 @@
<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
<!ENTITY torSettings.bridgePageTitle "Tor Bridges Configuration">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "As jy nie seker is hoe om hierdie vraag te beantwoord nie, kies Nee.  As jy Ja kies, sal jy gevra word om Tor Bridges, wat ongenoteerde relays is wat die moeiliker maak om verbindings na die Tor Netwerk blok, in te stel.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -40,15 +40,15 @@
<!ENTITY torsettings.useProxy.type "Proxy Type:">
<!ENTITY torsettings.useProxy.address "Address:">
<!ENTITY torsettings.useProxy.address.placeholder "IP address or hostname">
-<!ENTITY torsettings.useProxy.port "Port:">
-<!ENTITY torsettings.useProxy.username "Username:">
-<!ENTITY torsettings.useProxy.password "Password:">
+<!ENTITY torsettings.useProxy.port "Poort:">
+<!ENTITY torsettings.useProxy.username "Gebruikersnaam:">
+<!ENTITY torsettings.useProxy.password "Wagwoord">
<!ENTITY torsettings.useProxy.type.socks4 "SOCKS 4">
<!ENTITY torsettings.useProxy.type.socks5 "SOCKS 5">
<!ENTITY torsettings.useProxy.type.http "HTTP / HTTPS">
-<!ENTITY torsettings.firewall.checkbox "This computer goes through a firewall that only allows connections to certain ports">
-<!ENTITY torsettings.firewall.allowedPorts "Allowed Ports:">
-<!ENTITY torsettings.useBridges.checkbox "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.firewall.checkbox "Hierdie rekenaar gaan deur 'n firewall wat slegs konneksies na sekere poorte toelaat">
+<!ENTITY torsettings.firewall.allowedPorts "Toegelate Poorte:">
+<!ENTITY torsettings.useBridges.checkbox "My Internet Diensverskaffer (IDV) blok konneksies na die Tor netwerk">
<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
<!ENTITY torsettings.useBridges.type "Transport type:">
<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
@@ -59,10 +59,10 @@
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
-<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
-<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp2Heading "Deur die Web">
+<!ENTITY torsettings.bridgeHelp2 "Gebruik 'n webblaaier om https://bridges.torproject.org te besoek">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3.emailDesc "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from one of the following email providers (listed in order of preference):">
-<!ENTITY torsettings.bridgeHelp3.emailList "https://www.riseup.net, https://mail.google.com, or https://mail.yahoo.com">
+<!ENTITY torsettings.bridgeHelp3.emailDesc "Stuur 'n epos aan bridges(a)torproject.org met die lyn 'get bridges' by homself in die liggaam van die boodskap.  Maar, om dit moeiliker vir 'n aanvaller te maak om baie 'bridge' adresse te leer, moet jy hierdie versoek vanaf een van die volgende epos verskaffers stuur (gelys in volgorde van voorkeur): ">
+<!ENTITY torsettings.bridgeHelp3.emailList "https://www.riseup.net, https://mail.google.com, of https://mail.yahoo.com">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/am-ET/network-settings.dtd b/src/chrome/locale/am-ET/network-settings.dtd
new file mode 100644
index 0000000..fb9eb3c
--- /dev/null
+++ b/src/chrome/locale/am-ET/network-settings.dtd
@@ -0,0 +1,68 @@
+<!ENTITY torsettings.dialog.title "የቶር ኔትዎርክ አደረጃጀት">
+
+<!-- For locale picker: -->
+<!ENTITY torlauncher.localePicker.title "Tor Browser Language">
+<!ENTITY torlauncher.localePicker.prompt "Please select a language.">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge or local proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyPageTitle "Local Proxy Configuration">
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a local proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a local proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.bridgePageTitle "Tor Bridges Configuration">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restartTor "Restart Tor">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a local proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "Proxy Type:">
+<!ENTITY torsettings.useProxy.address "Address:">
+<!ENTITY torsettings.useProxy.address.placeholder "IP address or hostname">
+<!ENTITY torsettings.useProxy.port "Port:">
+<!ENTITY torsettings.useProxy.username "Username:">
+<!ENTITY torsettings.useProxy.password "Password:">
+<!ENTITY torsettings.useProxy.type.socks4 "SOCKS 4">
+<!ENTITY torsettings.useProxy.type.socks5 "SOCKS 5">
+<!ENTITY torsettings.useProxy.type.http "HTTP / HTTPS">
+<!ENTITY torsettings.firewall.checkbox "This computer goes through a firewall that only allows connections to certain ports">
+<!ENTITY torsettings.firewall.allowedPorts "Allowed Ports:">
+<!ENTITY torsettings.useBridges.checkbox "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3.emailDesc "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from one of the following email providers (listed in order of preference):">
+<!ENTITY torsettings.bridgeHelp3.emailList "https://www.riseup.net, https://mail.google.com, or https://mail.yahoo.com">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/am-ET/progress.dtd b/src/chrome/locale/am-ET/progress.dtd
index ebd9cef..a38a578 100644
--- a/src/chrome/locale/am-ET/progress.dtd
+++ b/src/chrome/locale/am-ET/progress.dtd
@@ -1,4 +1,4 @@
-<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.dialog.title "የቶር ይዞታ">
<!ENTITY torprogress.openSettings "Open Settings">
<!ENTITY torprogress.heading "Connecting to the Tor network">
<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/bg-BG/torlauncher.properties b/src/chrome/locale/bg-BG/torlauncher.properties
index 12a2dc9..a2550db 100644
--- a/src/chrome/locale/bg-BG/torlauncher.properties
+++ b/src/chrome/locale/bg-BG/torlauncher.properties
@@ -1,9 +1,10 @@
-### Copyright (c) 2015, The Tor Project, Inc.
+### Copyright (c) 2014, The Tor Project, Inc.
### See LICENSE for licensing information.
torlauncher.error_title=Tor Launcher
torlauncher.tor_exited=Tor unexpectedly exited.
+torlauncher.please_restart_app=Please restart this application.
torlauncher.tor_controlconn_failed=Could not connect to Tor control port.
torlauncher.tor_failed_to_start=Tor failed to start.
torlauncher.tor_control_failed=Failed to take control of Tor.
diff --git a/src/chrome/locale/bg/network-settings.dtd b/src/chrome/locale/bg/network-settings.dtd
index 5802488..46165b8 100644
--- a/src/chrome/locale/bg/network-settings.dtd
+++ b/src/chrome/locale/bg/network-settings.dtd
@@ -1,8 +1,8 @@
<!ENTITY torsettings.dialog.title "Настройки на Tor мрежата">
<!-- For locale picker: -->
-<!ENTITY torlauncher.localePicker.title "Tor Browser Language">
-<!ENTITY torlauncher.localePicker.prompt "Please select a language.">
+<!ENTITY torlauncher.localePicker.title "Език на Tor браузъра">
+<!ENTITY torlauncher.localePicker.prompt "Моля, изберете език.">
<!-- For "first run" wizard: -->
diff --git a/src/chrome/locale/bn-BD/network-settings.dtd b/src/chrome/locale/bn-BD/network-settings.dtd
new file mode 100644
index 0000000..b193750
--- /dev/null
+++ b/src/chrome/locale/bn-BD/network-settings.dtd
@@ -0,0 +1,68 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For locale picker: -->
+<!ENTITY torlauncher.localePicker.title "Tor Browser Language">
+<!ENTITY torlauncher.localePicker.prompt "Please select a language.">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge or local proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyPageTitle "Local Proxy Configuration">
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a local proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a local proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.bridgePageTitle "Tor Bridges Configuration">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restartTor "Restart Tor">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a local proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "Proxy Type:">
+<!ENTITY torsettings.useProxy.address "Address:">
+<!ENTITY torsettings.useProxy.address.placeholder "IP address or hostname">
+<!ENTITY torsettings.useProxy.port "Port:">
+<!ENTITY torsettings.useProxy.username "Username:">
+<!ENTITY torsettings.useProxy.password "Password:">
+<!ENTITY torsettings.useProxy.type.socks4 "SOCKS 4">
+<!ENTITY torsettings.useProxy.type.socks5 "SOCKS 5">
+<!ENTITY torsettings.useProxy.type.http "HTTP / HTTPS">
+<!ENTITY torsettings.firewall.checkbox "This computer goes through a firewall that only allows connections to certain ports">
+<!ENTITY torsettings.firewall.allowedPorts "Allowed Ports:">
+<!ENTITY torsettings.useBridges.checkbox "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3.emailDesc "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from one of the following email providers (listed in order of preference):">
+<!ENTITY torsettings.bridgeHelp3.emailList "https://www.riseup.net, https://mail.google.com, or https://mail.yahoo.com">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/bn-BD/torlauncher.properties b/src/chrome/locale/bn-BD/torlauncher.properties
index 12a2dc9..02be756 100644
--- a/src/chrome/locale/bn-BD/torlauncher.properties
+++ b/src/chrome/locale/bn-BD/torlauncher.properties
@@ -1,9 +1,10 @@
-### Copyright (c) 2015, The Tor Project, Inc.
+### Copyright (c) 2014, The Tor Project, Inc.
### See LICENSE for licensing information.
torlauncher.error_title=Tor Launcher
-torlauncher.tor_exited=Tor unexpectedly exited.
+torlauncher.tor_exited=Tor unexpectedly exited. This might be due to a bug in Tor itself, another program on your system, or faulty hardware. Until you restart Tor, the Tor Browser will not able to reach any websites. If the problem persists, please send a copy of your Tor Log to the support team.
+torlauncher.tor_exited2=Restarting Tor will not close your browser tabs.
torlauncher.tor_controlconn_failed=Could not connect to Tor control port.
torlauncher.tor_failed_to_start=Tor failed to start.
torlauncher.tor_control_failed=Failed to take control of Tor.
@@ -29,12 +30,15 @@ torlauncher.error_bridge_bad_default_type=No provided bridges that have the tran
torlauncher.recommended_bridge=(recommended)
torlauncher.connect=Connect
+torlauncher.restart_tor=Restart Tor
torlauncher.quit=Quit
torlauncher.quit_win=Exit
torlauncher.done=Done
torlauncher.forAssistance=For assistance, contact %S
+torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
+
torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
torlauncher.bootstrapStatus.requesting_status=Retrieving network status
@@ -54,3 +58,4 @@ torlauncher.bootstrapWarning.identity=identity mismatch
torlauncher.bootstrapWarning.timeout=connection timeout
torlauncher.bootstrapWarning.noroute=no route to host
torlauncher.bootstrapWarning.ioerror=read/write error
+torlauncher.bootstrapWarning.pt_missing=missing pluggable transport
diff --git a/src/chrome/locale/ca-ES/torlauncher.properties b/src/chrome/locale/ca-ES/torlauncher.properties
index 38a81f0..d82d688 100644
--- a/src/chrome/locale/ca-ES/torlauncher.properties
+++ b/src/chrome/locale/ca-ES/torlauncher.properties
@@ -1,9 +1,10 @@
-### Copyright (c) 2015, The Tor Project, Inc.
+### Copyright (c) 2014, The Tor Project, Inc.
### See LICENSE for licensing information.
# torlauncher.error_title=Tor Launcher
# torlauncher.tor_exited=Tor unexpectedly exited.
+# torlauncher.please_restart_app=Please restart this application.
# torlauncher.tor_controlconn_failed=Could not connect to Tor control port.
# torlauncher.tor_failed_to_start=Tor failed to start.
# torlauncher.tor_bootstrap_failed=Tor failed to establish a Tor network connection.
diff --git a/src/chrome/locale/cs-CZ/network-settings.dtd b/src/chrome/locale/cs-CZ/network-settings.dtd
new file mode 100644
index 0000000..b193750
--- /dev/null
+++ b/src/chrome/locale/cs-CZ/network-settings.dtd
@@ -0,0 +1,68 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For locale picker: -->
+<!ENTITY torlauncher.localePicker.title "Tor Browser Language">
+<!ENTITY torlauncher.localePicker.prompt "Please select a language.">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge or local proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyPageTitle "Local Proxy Configuration">
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a local proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a local proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.bridgePageTitle "Tor Bridges Configuration">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restartTor "Restart Tor">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a local proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "Proxy Type:">
+<!ENTITY torsettings.useProxy.address "Address:">
+<!ENTITY torsettings.useProxy.address.placeholder "IP address or hostname">
+<!ENTITY torsettings.useProxy.port "Port:">
+<!ENTITY torsettings.useProxy.username "Username:">
+<!ENTITY torsettings.useProxy.password "Password:">
+<!ENTITY torsettings.useProxy.type.socks4 "SOCKS 4">
+<!ENTITY torsettings.useProxy.type.socks5 "SOCKS 5">
+<!ENTITY torsettings.useProxy.type.http "HTTP / HTTPS">
+<!ENTITY torsettings.firewall.checkbox "This computer goes through a firewall that only allows connections to certain ports">
+<!ENTITY torsettings.firewall.allowedPorts "Allowed Ports:">
+<!ENTITY torsettings.useBridges.checkbox "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3.emailDesc "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from one of the following email providers (listed in order of preference):">
+<!ENTITY torsettings.bridgeHelp3.emailList "https://www.riseup.net, https://mail.google.com, or https://mail.yahoo.com">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/cs-CZ/torlauncher.properties b/src/chrome/locale/cs-CZ/torlauncher.properties
index 12a2dc9..02be756 100644
--- a/src/chrome/locale/cs-CZ/torlauncher.properties
+++ b/src/chrome/locale/cs-CZ/torlauncher.properties
@@ -1,9 +1,10 @@
-### Copyright (c) 2015, The Tor Project, Inc.
+### Copyright (c) 2014, The Tor Project, Inc.
### See LICENSE for licensing information.
torlauncher.error_title=Tor Launcher
-torlauncher.tor_exited=Tor unexpectedly exited.
+torlauncher.tor_exited=Tor unexpectedly exited. This might be due to a bug in Tor itself, another program on your system, or faulty hardware. Until you restart Tor, the Tor Browser will not able to reach any websites. If the problem persists, please send a copy of your Tor Log to the support team.
+torlauncher.tor_exited2=Restarting Tor will not close your browser tabs.
torlauncher.tor_controlconn_failed=Could not connect to Tor control port.
torlauncher.tor_failed_to_start=Tor failed to start.
torlauncher.tor_control_failed=Failed to take control of Tor.
@@ -29,12 +30,15 @@ torlauncher.error_bridge_bad_default_type=No provided bridges that have the tran
torlauncher.recommended_bridge=(recommended)
torlauncher.connect=Connect
+torlauncher.restart_tor=Restart Tor
torlauncher.quit=Quit
torlauncher.quit_win=Exit
torlauncher.done=Done
torlauncher.forAssistance=For assistance, contact %S
+torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
+
torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
torlauncher.bootstrapStatus.requesting_status=Retrieving network status
@@ -54,3 +58,4 @@ torlauncher.bootstrapWarning.identity=identity mismatch
torlauncher.bootstrapWarning.timeout=connection timeout
torlauncher.bootstrapWarning.noroute=no route to host
torlauncher.bootstrapWarning.ioerror=read/write error
+torlauncher.bootstrapWarning.pt_missing=missing pluggable transport
diff --git a/src/chrome/locale/el-GR/torlauncher.properties b/src/chrome/locale/el-GR/torlauncher.properties
index 12a2dc9..a2550db 100644
--- a/src/chrome/locale/el-GR/torlauncher.properties
+++ b/src/chrome/locale/el-GR/torlauncher.properties
@@ -1,9 +1,10 @@
-### Copyright (c) 2015, The Tor Project, Inc.
+### Copyright (c) 2014, The Tor Project, Inc.
### See LICENSE for licensing information.
torlauncher.error_title=Tor Launcher
torlauncher.tor_exited=Tor unexpectedly exited.
+torlauncher.please_restart_app=Please restart this application.
torlauncher.tor_controlconn_failed=Could not connect to Tor control port.
torlauncher.tor_failed_to_start=Tor failed to start.
torlauncher.tor_control_failed=Failed to take control of Tor.
diff --git a/src/chrome/locale/el/network-settings.dtd b/src/chrome/locale/el/network-settings.dtd
index 64c7ccf..371b8c5 100644
--- a/src/chrome/locale/el/network-settings.dtd
+++ b/src/chrome/locale/el/network-settings.dtd
@@ -1,8 +1,8 @@
<!ENTITY torsettings.dialog.title "Tor Ρυθμίσεις Δικτύου ">
<!-- For locale picker: -->
-<!ENTITY torlauncher.localePicker.title "Tor Browser Language">
-<!ENTITY torlauncher.localePicker.prompt "Please select a language.">
+<!ENTITY torlauncher.localePicker.title "Γλώσσα του Tor Browser">
+<!ENTITY torlauncher.localePicker.prompt "Παρακαλώ επέλεξε μια γλώσσα.">
<!-- For "first run" wizard: -->
diff --git a/src/chrome/locale/es-NI/torlauncher.properties b/src/chrome/locale/es-NI/torlauncher.properties
index d1baf09..d04cac5 100644
--- a/src/chrome/locale/es-NI/torlauncher.properties
+++ b/src/chrome/locale/es-NI/torlauncher.properties
@@ -1,9 +1,10 @@
-### Copyright (c) 2015, The Tor Project, Inc.
+### Copyright (c) 2014, The Tor Project, Inc.
### See LICENSE for licensing information.
torlauncher.error_title=Tor Launcher
torlauncher.tor_exited=Tor unexpectedly exited.
+torlauncher.please_restart_app=Please restart this application.
torlauncher.tor_controlconn_failed=Could not connect to Tor control port.
torlauncher.tor_failed_to_start=Tor failed to start.
torlauncher.tor_control_failed=Failed to take control of Tor.
diff --git a/src/chrome/locale/fr/network-settings.dtd b/src/chrome/locale/fr/network-settings.dtd
index c6eb480..cfc1c0f 100644
--- a/src/chrome/locale/fr/network-settings.dtd
+++ b/src/chrome/locale/fr/network-settings.dtd
@@ -1,4 +1,4 @@
-<!ENTITY torsettings.dialog.title "Paramètres du Réseau Tor">
+<!ENTITY torsettings.dialog.title "Paramètres du réseau Tor">
<!-- For locale picker: -->
<!ENTITY torlauncher.localePicker.title "Language du navigateur Tor">
diff --git a/src/chrome/locale/hi/network-settings.dtd b/src/chrome/locale/hi/network-settings.dtd
index 95ec84d..f852698 100644
--- a/src/chrome/locale/hi/network-settings.dtd
+++ b/src/chrome/locale/hi/network-settings.dtd
@@ -1,8 +1,8 @@
-<!ENTITY torsettings.dialog.title "Tor Network Settings">
+<!ENTITY torsettings.dialog.title "टोर संजाल व्यवस्था">
<!-- For locale picker: -->
-<!ENTITY torlauncher.localePicker.title "Tor Browser Language">
-<!ENTITY torlauncher.localePicker.prompt "Please select a language.">
+<!ENTITY torlauncher.localePicker.title "टोर विचरक भाषा ">
+<!ENTITY torlauncher.localePicker.prompt "कृपा भाषा चुनें">
<!-- For "first run" wizard: -->
diff --git a/src/chrome/locale/is/torlauncher.properties b/src/chrome/locale/is/torlauncher.properties
index d6769bc..9a238cc 100644
--- a/src/chrome/locale/is/torlauncher.properties
+++ b/src/chrome/locale/is/torlauncher.properties
@@ -1,7 +1,7 @@
### Copyright (c) 2014, The Tor Project, Inc.
### See LICENSE for licensing information.
-torlauncher.error_title=Tor Launcher
+torlauncher.error_title=Tor-ræsir
torlauncher.tor_exited=Tor unexpectedly exited. This might be due to a bug in Tor itself, another program on your system, or faulty hardware. Until you restart Tor, the Tor Browser will not able to reach any websites. If the problem persists, please send a copy of your Tor Log to the support team.
torlauncher.tor_exited2=Restarting Tor will not close your browser tabs.
@@ -35,7 +35,7 @@ torlauncher.quit=Hætta
torlauncher.quit_win=Fara út
torlauncher.done=Búið
-torlauncher.forAssistance=For assistance, contact %S
+torlauncher.forAssistance=Til að fá hjálp, hafðu samband við %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
@@ -48,13 +48,13 @@ torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
torlauncher.bootstrapStatus.conn_or=Tengist Tor-netinu
torlauncher.bootstrapStatus.handshake_or=Establishing a Tor circuit
-torlauncher.bootstrapStatus.done=Connected to the Tor network!
+torlauncher.bootstrapStatus.done=Tengdur við Tor-netið!
torlauncher.bootstrapWarning.done=búið
torlauncher.bootstrapWarning.connectrefused=tengingu hafnað
torlauncher.bootstrapWarning.misc=ýmislegt
torlauncher.bootstrapWarning.resourcelimit=insufficient resources
-torlauncher.bootstrapWarning.identity=identity mismatch
+torlauncher.bootstrapWarning.identity=auðkenni samsvara ekki
torlauncher.bootstrapWarning.timeout=tenging féll á tíma
torlauncher.bootstrapWarning.noroute=no route to host
torlauncher.bootstrapWarning.ioerror=les/skrifvilla
diff --git a/src/chrome/locale/it/network-settings.dtd b/src/chrome/locale/it/network-settings.dtd
index 2f9859e..6888c98 100644
--- a/src/chrome/locale/it/network-settings.dtd
+++ b/src/chrome/locale/it/network-settings.dtd
@@ -1,8 +1,8 @@
<!ENTITY torsettings.dialog.title "Impostazioni rete Tor">
<!-- For locale picker: -->
-<!ENTITY torlauncher.localePicker.title "Tor Browser Language">
-<!ENTITY torlauncher.localePicker.prompt "Please select a language.">
+<!ENTITY torlauncher.localePicker.title "Lingua per il Tor Browser">
+<!ENTITY torlauncher.localePicker.prompt "Selezionare una lingua.">
<!-- For "first run" wizard: -->
diff --git a/src/chrome/locale/lt/network-settings.dtd b/src/chrome/locale/lt/network-settings.dtd
index 4966246..c66d60d 100644
--- a/src/chrome/locale/lt/network-settings.dtd
+++ b/src/chrome/locale/lt/network-settings.dtd
@@ -1,4 +1,4 @@
-<!ENTITY torsettings.dialog.title "Tor tinklo parametrai">
+<!ENTITY torsettings.dialog.title "Tor tinklo nustatymai">
<!-- For locale picker: -->
<!ENTITY torlauncher.localePicker.title "Tor Browser Language">
diff --git a/src/chrome/locale/lt/progress.dtd b/src/chrome/locale/lt/progress.dtd
index 24b4319..326cfcf 100644
--- a/src/chrome/locale/lt/progress.dtd
+++ b/src/chrome/locale/lt/progress.dtd
@@ -1,4 +1,4 @@
-<!ENTITY torprogress.dialog.title "Tor statusas">
-<!ENTITY torprogress.openSettings "Atidaryti nustatymus">
+<!ENTITY torprogress.dialog.title "Tor būsena">
+<!ENTITY torprogress.openSettings "Atverti nustatymus">
<!ENTITY torprogress.heading "Jungiamasi prie Tor tinklo">
<!ENTITY torprogress.pleaseWait "Prašome palaukti kol sujungsime su Tor tinklu.">
diff --git a/src/chrome/locale/lv/network-settings.dtd b/src/chrome/locale/lv/network-settings.dtd
index 1f2c90d..074d77f 100644
--- a/src/chrome/locale/lv/network-settings.dtd
+++ b/src/chrome/locale/lv/network-settings.dtd
@@ -1,8 +1,8 @@
<!ENTITY torsettings.dialog.title "Tor tīkla iestatījumi">
<!-- For locale picker: -->
-<!ENTITY torlauncher.localePicker.title "Tor Browser Language">
-<!ENTITY torlauncher.localePicker.prompt "Please select a language.">
+<!ENTITY torlauncher.localePicker.title "Pārlūka Tor valoda">
+<!ENTITY torlauncher.localePicker.prompt "Lūdzu izvēlieties valodu.">
<!-- For "first run" wizard: -->
diff --git a/src/chrome/locale/ms/torlauncher.properties b/src/chrome/locale/ms/torlauncher.properties
index b12a0e3..fcd4d83 100644
--- a/src/chrome/locale/ms/torlauncher.properties
+++ b/src/chrome/locale/ms/torlauncher.properties
@@ -1,9 +1,10 @@
-### Copyright (c) 2015, The Tor Project, Inc.
+### Copyright (c) 2013, The Tor Project, Inc.
### See LICENSE for licensing information.
# torlauncher.error_title=Tor Launcher
# torlauncher.tor_exited=Tor unexpectedly exited.
+# torlauncher.please_restart_app=Please restart this application.
# torlauncher.tor_controlconn_failed=Could not connect to Tor control port.
# torlauncher.tor_failed_to_start=Tor failed to start.
# torlauncher.tor_bootstrap_failed=Tor failed to establish a Tor network connection.\n\n%S
diff --git a/src/chrome/locale/pl-PL/torlauncher.properties b/src/chrome/locale/pl-PL/torlauncher.properties
index 032bb5f..54c1f90 100644
--- a/src/chrome/locale/pl-PL/torlauncher.properties
+++ b/src/chrome/locale/pl-PL/torlauncher.properties
@@ -1,9 +1,10 @@
-### Copyright (c) 2015, The Tor Project, Inc.
+### Copyright (c) 2013, The Tor Project, Inc.
### See LICENSE for licensing information.
# torlauncher.error_title=Tor Launcher
# torlauncher.tor_exited=Tor unexpectedly exited.
+# torlauncher.please_restart_app=Please restart this application.
# torlauncher.tor_controlconn_failed=Could not connect to Tor control port.
# torlauncher.tor_failed_to_start=Tor failed to start.
# torlauncher.tor_bootstrap_failed=Tor failed to establish a Tor network connection.\n\n%S
diff --git a/src/chrome/locale/pt-BR/network-settings.dtd b/src/chrome/locale/pt-BR/network-settings.dtd
index 544bc0b..4bb00f0 100644
--- a/src/chrome/locale/pt-BR/network-settings.dtd
+++ b/src/chrome/locale/pt-BR/network-settings.dtd
@@ -2,7 +2,7 @@
<!-- For locale picker: -->
<!ENTITY torlauncher.localePicker.title "Idioma do navegador Tor">
-<!ENTITY torlauncher.localePicker.prompt "Por favor selecione um idioma.">
+<!ENTITY torlauncher.localePicker.prompt "Por favor, selecione um idioma.">
<!-- For "first run" wizard: -->
@@ -62,7 +62,7 @@
<!ENTITY torsettings.bridgeHelp2Heading "Através da Web">
<!ENTITY torsettings.bridgeHelp2 "Use um navegador internet para visitar https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Através do Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3.emailDesc "Envie um e-mail para bridges(a)torproject.org com a mensagem 'get bridges'.  Contudo, para tornar mais difícil para um invasor descobrir uma grande quantidade de endereços, você deve enviar esse pedido a partir de um dos seguintes provedores de e-mail (listados em ordem de preferência).">
+<!ENTITY torsettings.bridgeHelp3.emailDesc "Enviar um e-mail para bridges(a)torproject.org com a mensagem 'get bridges'.  Contudo, para tornar mais difícil a um invasor descobrir uma grande quantidade de endereços, você deve enviar esse pedido a partir de um dos seguintes provedores de e-mail (listados em ordem de preferência).">
<!ENTITY torsettings.bridgeHelp3.emailList "https://www.riseup.net, https://mail.google.com, ou https://mail.yahoo.com">
<!ENTITY torsettings.bridgeHelp4Heading "Pelo Serviço de Assistência">
-<!ENTITY torsettings.bridgeHelp4 "Como última opção, você pode solicitar endereços de pontes enviando uma mensagem de e-mail educada para help(a)rt.torproject.org. . Note que uma pessoa terá que responder a cada solicitação">
+<!ENTITY torsettings.bridgeHelp4 "Como última opção, você pode solicitar endereços de pontes enviando uma mensagem de e-mail educada para help(a)rt.torproject.org.  Por favor, entenda que uma pessoa terá que responder a cada solicitação">
diff --git a/src/chrome/locale/pt/network-settings.dtd b/src/chrome/locale/pt/network-settings.dtd
index 251a592..7790807 100644
--- a/src/chrome/locale/pt/network-settings.dtd
+++ b/src/chrome/locale/pt/network-settings.dtd
@@ -16,18 +16,18 @@
<!ENTITY torSettings.configurePrompt2 "Eu preciso de configurar a ponte ou as definições de proxy local.">
<!ENTITY torSettings.configure "Configurar">
<!ENTITY torSettings.connectPrompt2 "Eu gostaria de me ligar diretamente à rede Tor.">
-<!ENTITY torSettings.connectPrompt3 "Isto funciona na maior parte das situações.">
+<!ENTITY torSettings.connectPrompt3 "Isto irá funcionar na maior parte das situações.">
<!ENTITY torSettings.connect "Ligar">
<!ENTITY torSettings.proxyPageTitle "Configuração do Proxy Local">
-<!ENTITY torSettings.proxyQuestion "Este computador precisa de usar um acesso proxy à Intrnet?">
+<!ENTITY torSettings.proxyQuestion "Este computador precisa de utilizar um proxy para aceder à Internet.">
<!-- see https://www.torproject.org/docs/proxychain.html.en -->
-<!ENTITY torSettings.proxyHelp "Se não tem a certeza da resposta, veja as definições de Internet noutro navegador para confirmar se está configurado para usar um proxy local.">
+<!ENTITY torSettings.proxyHelp "Se não tem a certeza de como responder a esta questão, procure nas definições da Internet de outro navegador para ver se este está configurado para utilizar um proxy local.">
<!ENTITY torSettings.enterProxy "Insira as definições do proxy.">
-<!ENTITY torSettings.bridgePageTitle "Configutação das Ligações Tor">
-<!ENTITY torSettings.bridgeQuestion "O seu fornecedor de serviços de internet bloqueia ou censura ligações à rede Tor ?">
-<!ENTITY torSettings.bridgeHelp "Se não tem a certeza de como responder a esta questão, escolha o Nº.  Se escolher Sim, vai-lhe ser pedido para configurar as Tor Bridges, que são pontos de passagem não listados mais difíceis de bloquear ligações à rede Tor.">
-<!ENTITY torSettings.bridgeSettingsPrompt "Pode usar o conjunto de bridges pré-configurado fornecido, ou pode obter um conjunto de bridges personalizadas.">
+<!ENTITY torSettings.bridgePageTitle "Configuração das Pontes Tor">
+<!ENTITY torSettings.bridgeQuestion "O seu Provedor de Serviços da Internet (ISP) bloqueia ou então censura as ligações à Rede Tor?">
+<!ENTITY torSettings.bridgeHelp "Se não tem a certeza de como responder a esta questão, escolha No.  Se escolher 'Sim', ser-lhe-á pedido para configurar as Pontes do Tor, que são retransmissões não listadas e que torna mais difícil o bloqueio das ligações à Rede Tor.">
+<!ENTITY torSettings.bridgeSettingsPrompt "Poderá utilizar o conjunto de pontes fornecido ou poderá obter um conjunto de pontes personalizadas.">
<!-- Other: -->
@@ -36,33 +36,33 @@
<!ENTITY torsettings.optional "Opcional">
-<!ENTITY torsettings.useProxy.checkbox "Este computador precisa de usar um proxy local para aceder à Internet.">
-<!ENTITY torsettings.useProxy.type "Tipo de Proxy:">
+<!ENTITY torsettings.useProxy.checkbox "Este computador precisa de utilizar um proxy local para aceder à Internet.">
+<!ENTITY torsettings.useProxy.type "Tipo de proxy:">
<!ENTITY torsettings.useProxy.address "Endereço:">
-<!ENTITY torsettings.useProxy.address.placeholder "Endereço de IP ou nome do anfitrião">
+<!ENTITY torsettings.useProxy.address.placeholder "Endereço de IP ou nome do hospedeiro">
<!ENTITY torsettings.useProxy.port "Porta:">
<!ENTITY torsettings.useProxy.username "Nome do utilizador:">
-<!ENTITY torsettings.useProxy.password "Palavra-chave:">
+<!ENTITY torsettings.useProxy.password "Senha:">
<!ENTITY torsettings.useProxy.type.socks4 "SOCKS 4">
<!ENTITY torsettings.useProxy.type.socks5 "SOCKS 5">
<!ENTITY torsettings.useProxy.type.http "HTTP / HTTPS">
-<!ENTITY torsettings.firewall.checkbox "Este computador está protegido por um firewall que permite apenas algumas ligações a alguns portos.">
+<!ENTITY torsettings.firewall.checkbox "Este computador atravessa uma firewall que só permite ligações a algumas portas.">
<!ENTITY torsettings.firewall.allowedPorts "Portas permitidas:">
-<!ENTITY torsettings.useBridges.checkbox "O meu Internet Service Provider (ISP) bloqueia ligações à rede Tor">
-<!ENTITY torsettings.useBridges.default "Ligar com as bridges fornecidas">
+<!ENTITY torsettings.useBridges.checkbox "O meu Provedor de Serviço da Internet (ISP) bloqueia as ligações à rede Tor">
+<!ENTITY torsettings.useBridges.default "Ligar com as pontes fornecidas">
<!ENTITY torsettings.useBridges.type "Tipo de transporte:">
<!ENTITY torsettings.useBridges.custom "Insira as pontes personalizadas">
-<!ENTITY torsettings.useBridges.label "Insira um ou mais relays de ponte (um por linha).">
+<!ENTITY torsettings.useBridges.label "Insira uma ou mais retransmissões de ponte (uma por linha).">
<!ENTITY torsettings.useBridges.placeholder "digite endereço:porta">
<!ENTITY torsettings.copyLog "Copiar o Registo do Tor para a Área de Transferência">
-<!ENTITY torsettings.bridgeHelpTitle "Ajuda da Relay da Ponte">
+<!ENTITY torsettings.bridgeHelpTitle "Ajuda da Retransmissão de Ponte">
<!ENTITY torsettings.bridgeHelp1 "Se não consegue ligar-se à rede Tor, pode ser devido a algum bloqueio do seu provedor de internet (ISP) ou outro intermediário está a bloquear o Tor.  Normalmente, pode contornar este problema usando Tor Bridges, que são pontos de passagem não listados mais difíceis de bloquear.">
<!ENTITY torsettings.bridgeHelp1B "Pode usar o conjunto de bridges pré-configurado fornecido, ou pode obter um conjunto de endereços personalizados usando um dos três métodos:">
<!ENTITY torsettings.bridgeHelp2Heading "Através da Web">
<!ENTITY torsettings.bridgeHelp2 "Utilize um navegador da Web para visitar https://bridges.torproject.org">
-<!ENTITY torsettings.bridgeHelp3Heading "Através do Respondedor de Correio Eletrónico Automático">
+<!ENTITY torsettings.bridgeHelp3Heading "Através do Respondedor Automático do Correio Eletrónico">
<!ENTITY torsettings.bridgeHelp3.emailDesc "Enviar mensagem para bridges(a)torproject.org com a linha 'get bridges' sozinha no corpo da mensagem.  Contudo, para tornar mais difícil para os atacantes aprenderem sobre os endereços de pontes, tem de enviar a mensagem de um dos seguintes fornecedores de serviços de correio eletrónico (por esta ordem de preferência):">
<!ENTITY torsettings.bridgeHelp3.emailList "https://www.riseup.net, https://mail.google.com, ou https://mail.yahoo.com">
<!ENTITY torsettings.bridgeHelp4Heading "Através do Suporte">
-<!ENTITY torsettings.bridgeHelp4 "Em último caso, pode pedir endereços bridge enviando um email cordial para help(a)rt.torproject.org.  Por favor tenha em conta que cada pedido será respondido por uma pessoa.">
+<!ENTITY torsettings.bridgeHelp4 "Em último caso, pode solicitar os endereços de ponte, enviando uma mensagem elegante para help(a)rt.torproject.org.  Por favor, note que uma pessoa irá precisar de responder a cada pedido.">
diff --git a/src/chrome/locale/sk/network-settings.dtd b/src/chrome/locale/sk/network-settings.dtd
index 096cb08..4360063 100644
--- a/src/chrome/locale/sk/network-settings.dtd
+++ b/src/chrome/locale/sk/network-settings.dtd
@@ -2,7 +2,7 @@
<!-- For locale picker: -->
<!ENTITY torlauncher.localePicker.title "Tor Browser Language">
-<!ENTITY torlauncher.localePicker.prompt "Please select a language.">
+<!ENTITY torlauncher.localePicker.prompt "Prosím vyberte si jazyk">
<!-- For "first run" wizard: -->
diff --git a/src/chrome/locale/sq-AL/network-settings.dtd b/src/chrome/locale/sq-AL/network-settings.dtd
new file mode 100644
index 0000000..b193750
--- /dev/null
+++ b/src/chrome/locale/sq-AL/network-settings.dtd
@@ -0,0 +1,68 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For locale picker: -->
+<!ENTITY torlauncher.localePicker.title "Tor Browser Language">
+<!ENTITY torlauncher.localePicker.prompt "Please select a language.">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge or local proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyPageTitle "Local Proxy Configuration">
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a local proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a local proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.bridgePageTitle "Tor Bridges Configuration">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restartTor "Restart Tor">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a local proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "Proxy Type:">
+<!ENTITY torsettings.useProxy.address "Address:">
+<!ENTITY torsettings.useProxy.address.placeholder "IP address or hostname">
+<!ENTITY torsettings.useProxy.port "Port:">
+<!ENTITY torsettings.useProxy.username "Username:">
+<!ENTITY torsettings.useProxy.password "Password:">
+<!ENTITY torsettings.useProxy.type.socks4 "SOCKS 4">
+<!ENTITY torsettings.useProxy.type.socks5 "SOCKS 5">
+<!ENTITY torsettings.useProxy.type.http "HTTP / HTTPS">
+<!ENTITY torsettings.firewall.checkbox "This computer goes through a firewall that only allows connections to certain ports">
+<!ENTITY torsettings.firewall.allowedPorts "Allowed Ports:">
+<!ENTITY torsettings.useBridges.checkbox "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3.emailDesc "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from one of the following email providers (listed in order of preference):">
+<!ENTITY torsettings.bridgeHelp3.emailList "https://www.riseup.net, https://mail.google.com, or https://mail.yahoo.com">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/sv-SE/torlauncher.properties b/src/chrome/locale/sv-SE/torlauncher.properties
index b12a0e3..fcd4d83 100644
--- a/src/chrome/locale/sv-SE/torlauncher.properties
+++ b/src/chrome/locale/sv-SE/torlauncher.properties
@@ -1,9 +1,10 @@
-### Copyright (c) 2015, The Tor Project, Inc.
+### Copyright (c) 2013, The Tor Project, Inc.
### See LICENSE for licensing information.
# torlauncher.error_title=Tor Launcher
# torlauncher.tor_exited=Tor unexpectedly exited.
+# torlauncher.please_restart_app=Please restart this application.
# torlauncher.tor_controlconn_failed=Could not connect to Tor control port.
# torlauncher.tor_failed_to_start=Tor failed to start.
# torlauncher.tor_bootstrap_failed=Tor failed to establish a Tor network connection.\n\n%S
diff --git a/src/chrome/locale/zh-CN.GB2312/torlauncher.properties b/src/chrome/locale/zh-CN.GB2312/torlauncher.properties
index 38a81f0..d82d688 100644
--- a/src/chrome/locale/zh-CN.GB2312/torlauncher.properties
+++ b/src/chrome/locale/zh-CN.GB2312/torlauncher.properties
@@ -1,9 +1,10 @@
-### Copyright (c) 2015, The Tor Project, Inc.
+### Copyright (c) 2014, The Tor Project, Inc.
### See LICENSE for licensing information.
# torlauncher.error_title=Tor Launcher
# torlauncher.tor_exited=Tor unexpectedly exited.
+# torlauncher.please_restart_app=Please restart this application.
# torlauncher.tor_controlconn_failed=Could not connect to Tor control port.
# torlauncher.tor_failed_to_start=Tor failed to start.
# torlauncher.tor_bootstrap_failed=Tor failed to establish a Tor network connection.
diff --git a/src/chrome/locale/zh/torlauncher.properties b/src/chrome/locale/zh/torlauncher.properties
index 38a81f0..d82d688 100644
--- a/src/chrome/locale/zh/torlauncher.properties
+++ b/src/chrome/locale/zh/torlauncher.properties
@@ -1,9 +1,10 @@
-### Copyright (c) 2015, The Tor Project, Inc.
+### Copyright (c) 2014, The Tor Project, Inc.
### See LICENSE for licensing information.
# torlauncher.error_title=Tor Launcher
# torlauncher.tor_exited=Tor unexpectedly exited.
+# torlauncher.please_restart_app=Please restart this application.
# torlauncher.tor_controlconn_failed=Could not connect to Tor control port.
# torlauncher.tor_failed_to_start=Tor failed to start.
# torlauncher.tor_bootstrap_failed=Tor failed to establish a Tor network connection.
1
0

[tor-browser/tor-browser-38.4.0esr-5.5-1] fixup! Bug 3875: Use Optimistic Data SOCKS variant.
by gk@torproject.org 11 Dec '15
by gk@torproject.org 11 Dec '15
11 Dec '15
commit bbd7c24a1019ecfac43aeaac959143b575cca07f
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Tue Nov 10 12:00:44 2015 -0500
fixup! Bug 3875: Use Optimistic Data SOCKS variant.
Avoid a CPU loop when processing HTTP requests, do not alter the
behavior of the socket transport state machine when SOCKS is not
being used, and improve comments. Fixes bug 9659.
---
netwerk/base/nsSocketTransport2.cpp | 38 ++++++++++++++++++++++-------------
1 file changed, 24 insertions(+), 14 deletions(-)
diff --git a/netwerk/base/nsSocketTransport2.cpp b/netwerk/base/nsSocketTransport2.cpp
index 07a92c4..c98365e 100644
--- a/netwerk/base/nsSocketTransport2.cpp
+++ b/netwerk/base/nsSocketTransport2.cpp
@@ -1836,22 +1836,32 @@ nsSocketTransport::OnSocketReady(PRFileDesc *fd, int16_t outFlags)
mPollTimeout = mTimeouts[TIMEOUT_READ_WRITE];
}
-//STATE_SENDINGGET: handshake proceeded to state "sent connect"
-//one more poll to OnSocketReady will trigger the get request, and state STATE_SENTGET
-//STATE_SENTGET: continue and finish handshake
+ // Tor 3875: Use optimistic data with SOCKS.
+ // To accomplish this, two new states were added that are only used with
+ // SOCKS connections:
+ // STATE_SENDINGGET - The SOCKS handshake has proceeded to the
+ // "sent connect" state; now it is okay to
+ // optimistically send some application data (e.g.,
+ // an HTTP GET request).
+ // STATE_SENTGET - Optimistic data has been sent; make a second call
+ // to PR_ConnectContinue() to allow the SOCKS
+ // handshake to finish.
else if (mState == STATE_SENDINGGET) {
if ((mPollFlags & PR_POLL_WRITE) && (outFlags & ~PR_POLL_READ)) {
- mOutput.OnSocketReady(NS_OK);
+ mOutput.OnSocketReady(NS_OK); // Allow application data to be sent.
}
mPollTimeout = mTimeouts[TIMEOUT_READ_WRITE];
- mState = STATE_SENTGET;
+ mPollFlags = (PR_POLL_EXCEPT | PR_POLL_READ);
+ mState = STATE_SENTGET; // Wait for SOCKS handshake response.
}
-
else if (mState == STATE_CONNECTING || mState == STATE_SENTGET) {
PRStatus status = PR_ConnectContinue(fd, outFlags);
+ bool isUsingSocks = mProxyTransparent && !mProxyHost.IsEmpty();
if (status == PR_SUCCESS && mState == STATE_CONNECTING) {
OnSocketConnected();
- mState = STATE_SENDINGGET;
+ if (isUsingSocks) {
+ mState = STATE_SENDINGGET;
+ }
}
else if (status == PR_SUCCESS && mState == STATE_SENTGET) {
//
@@ -1868,17 +1878,17 @@ nsSocketTransport::OnSocketReady(PRFileDesc *fd, int16_t outFlags)
// If the connect is still not ready, then continue polling...
//
if ((PR_WOULD_BLOCK_ERROR == code) || (PR_IN_PROGRESS_ERROR == code)) {
- // Set up the select flags for connect...
- mPollFlags = (PR_POLL_EXCEPT | PR_POLL_WRITE);
- // Update poll timeout in case it was changed
- mPollTimeout = mTimeouts[TIMEOUT_CONNECT];
+ if (mState != STATE_SENTGET) {
+ // Set up the select flags for connect...
+ mPollFlags = (PR_POLL_EXCEPT | PR_POLL_WRITE);
+ // Update poll timeout in case it was changed
+ mPollTimeout = mTimeouts[TIMEOUT_CONNECT];
+ }
}
//
// The SOCKS proxy rejected our request. Find out why.
//
- else if (PR_UNKNOWN_ERROR == code &&
- mProxyTransparent &&
- !mProxyHost.IsEmpty()) {
+ else if (PR_UNKNOWN_ERROR == code && isUsingSocks) {
code = PR_GetOSError();
mCondition = ErrorAccordingToNSPR(code);
}
1
0