[tor-commits] [torbutton/master] Bugs 22538 and 22513: Fix new circuit button for neterror and certerror
gk at torproject.org
gk at torproject.org
Thu Apr 4 12:09:29 UTC 2019
commit 7287a25268adb13789de3c5649780f9f4813d0d1
Author: Alex Catarineu <acat at torproject.org>
Date: Wed Apr 3 18:09:30 2019 +0200
Bugs 22538 and 22513: Fix new circuit button for neterror and certerror
---
src/chrome/content/torbutton.js | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/src/chrome/content/torbutton.js b/src/chrome/content/torbutton.js
index f1b1dc0c..2421548d 100644
--- a/src/chrome/content/torbutton.js
+++ b/src/chrome/content/torbutton.js
@@ -18,6 +18,7 @@ const k_tb_last_browser_version_pref = "extensions.torbutton.lastBrowserVersion"
const k_tb_browser_update_needed_pref = "extensions.torbutton.updateNeeded";
const k_tb_last_update_check_pref = "extensions.torbutton.lastUpdateCheck";
const k_tb_tor_check_failed_topic = "Torbutton:TorCheckFailed";
+const k_tb_about_uri_first_party_domain = "about.ef2a7dd5-93bc-417f-a698-142c3116864f.mozilla";
var m_tb_prefs = Services.prefs;
@@ -861,6 +862,22 @@ function torbutton_send_ctrl_cmd(command) {
function torbutton_new_circuit() {
let firstPartyDomain = gBrowser.contentPrincipal.originAttributes
.firstPartyDomain;
+ // Bug 22538: For neterror or certerror, get firstPartyDomain causing it from the u param
+ if (firstPartyDomain === k_tb_about_uri_first_party_domain) {
+ let knownErrors = ["about:neterror", "about:certerror"];
+ let origin = gBrowser.contentPrincipal.origin || '';
+ if (knownErrors.some(x => origin.startsWith(x))) {
+ try {
+ let urlOrigin = new URL(origin);
+ let { hostname } = new URL(urlOrigin.searchParams.get('u'));
+ if (hostname) {
+ firstPartyDomain = Services.eTLD.getBaseDomainFromHost(hostname) || firstPartyDomain;
+ }
+ } catch (e) {
+ torbutton_log(4, "Exception on new circuit" +e);
+ }
+ }
+ }
let domainIsolator = Cc["@torproject.org/domain-isolator;1"]
.getService(Ci.nsISupports).wrappedJSObject;
More information about the tor-commits
mailing list