[tor-commits] [tor-browser/tor-browser-45.4.0esr-6.5-1] Bug 20244.2: Add "privacy.thirdparty.isolate" checkbox

gk at torproject.org gk at torproject.org
Mon Oct 17 06:58:11 UTC 2016


commit e5c3cd25ed459765a91d1b364151c46afaca36c0
Author: Arthur Edelstein <arthuredelstein at gmail.com>
Date:   Thu Oct 6 21:09:43 2016 +0000

    Bug 20244.2: Add "privacy.thirdparty.isolate" checkbox
---
 .../components/preferences/in-content/privacy.js   | 33 ++++++++++++++++++++++
 .../components/preferences/in-content/privacy.xul  | 13 +++++++++
 .../en-US/chrome/browser/preferences/privacy.dtd   |  2 ++
 3 files changed, 48 insertions(+)

diff --git a/browser/components/preferences/in-content/privacy.js b/browser/components/preferences/in-content/privacy.js
index 3ec0afe..69f9156 100644
--- a/browser/components/preferences/in-content/privacy.js
+++ b/browser/components/preferences/in-content/privacy.js
@@ -299,6 +299,39 @@ var gPrivacyPane = {
     }
   },
 
+  // THIRD PARTY ISOLATION
+
+  /**
+   * Converts from privacy.thirdparty.isolate pref to boolean checkbox.
+   * Note that during uplift, Mozilla changed the name to
+   * privacy.firstparty.isolate, and also changed it to a boolean,
+   * so this function is likely not needed after uplifting.
+   */
+  readThirdPartyIsolate: function ()
+  {
+    var pref = document.getElementById("privacy.thirdparty.isolate");
+    switch (pref.value)
+    {
+      case 0: // Off
+        return false;
+      case 1: // PBM only
+        return true;
+      case 2: // Always
+        return true;
+      default:
+        return undefined;
+    }
+  },
+
+  /**
+   * Convert from checkbox to private.thirdparty.isolate pref.
+   */
+  writeThirdPartyIsolate: function ()
+  {
+    var checkbox = document.getElementById("thirdpartyIsolateCB");
+    return checkbox.checked ? 2 : 0;
+  },
+
   // PRIVATE BROWSING
 
   /**
diff --git a/browser/components/preferences/in-content/privacy.xul b/browser/components/preferences/in-content/privacy.xul
index bdadcc5..d180ee2 100644
--- a/browser/components/preferences/in-content/privacy.xul
+++ b/browser/components/preferences/in-content/privacy.xul
@@ -19,6 +19,9 @@
   <preference id="privacy.trackingprotection.pbmode.enabled"
               name="privacy.trackingprotection.pbmode.enabled"
               type="bool"/>
+  <preference id="privacy.thirdparty.isolate"
+              name="privacy.thirdparty.isolate"
+              type="int"/>
   <preference id="privacy.resistFingerprinting"
               name="privacy.resistFingerprinting"
               type="bool"/>
@@ -130,6 +133,16 @@
               preference="pref.privacy.disable_button.change_blocklist"/>
     </hbox>
   </vbox>
+  <vbox id="thirdpartyIsolate">
+    <hbox align="center">
+      <checkbox id="thirdpartyIsolateCB"
+                preference="privacy.thirdparty.isolate"
+                accesskey="&thirdpartyIsolate.accesskey;"
+                label="&thirdpartyIsolate.label;"
+                onsyncfrompreference="return gPrivacyPane.readThirdPartyIsolate();"
+                onsynctopreference="return gPrivacyPane.writeThirdPartyIsolate();"/>
+    </hbox>
+  </vbox>
   <vbox id="resistFingerprinting">
     <hbox align="center">
       <checkbox id="resistFingerprintingCB"
diff --git a/browser/locales/en-US/chrome/browser/preferences/privacy.dtd b/browser/locales/en-US/chrome/browser/preferences/privacy.dtd
index ce3330e..614200e 100644
--- a/browser/locales/en-US/chrome/browser/preferences/privacy.dtd
+++ b/browser/locales/en-US/chrome/browser/preferences/privacy.dtd
@@ -13,6 +13,8 @@
 <!ENTITY trackingProtectionPBM5.label         "Use Tracking Protection in Private Windows">
 <!ENTITY trackingProtectionPBM5.accesskey     "v">
 <!ENTITY trackingProtectionPBMLearnMore.label "Learn more">
+<!ENTITY thirdpartyIsolate.label "Restrict third party cookies and other tracking data">
+<!ENTITY thirdpartyIsolate.accesskey "R">
 <!ENTITY resistFingerprinting.label "Change details that distinguish you from other Tor Browser users">
 <!ENTITY resistFingerprinting.accesskey "F">
 <!ENTITY changeBlockList.label          "Change Block List">



More information about the tor-commits mailing list