tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

browser_protectionsUI_3.js (7644B)


      1 /*
      2 * Test that the Tracking Protection is correctly enabled / disabled
      3 * in both normal and private windows given all possible states of the prefs:
      4 *   privacy.trackingprotection.enabled
      5 *   privacy.trackingprotection.pbmode.enabled
      6 *   privacy.trackingprotection.emailtracking.enabled
      7 *   privacy.trackingprotection.emailtracking.pbmode.enabled
      8 * See also Bug 1178985, Bug 1819662.
      9 */
     10 
     11 const PREF = "privacy.trackingprotection.enabled";
     12 const PB_PREF = "privacy.trackingprotection.pbmode.enabled";
     13 const EMAIL_PREF = "privacy.trackingprotection.emailtracking.enabled";
     14 const EMAIL_PB_PREF = "privacy.trackingprotection.emailtracking.pbmode.enabled";
     15 
     16 registerCleanupFunction(function () {
     17  Services.prefs.clearUserPref(PREF);
     18  Services.prefs.clearUserPref(PB_PREF);
     19  Services.prefs.clearUserPref(EMAIL_PREF);
     20  Services.prefs.clearUserPref(EMAIL_PB_PREF);
     21 });
     22 
     23 add_task(async function testNormalBrowsing() {
     24  let { TrackingProtection } =
     25    gBrowser.ownerGlobal.gProtectionsHandler.blockers;
     26  ok(
     27    TrackingProtection,
     28    "Normal window gProtectionsHandler should have TrackingProtection blocker."
     29  );
     30 
     31  Services.prefs.setBoolPref(PREF, true);
     32  Services.prefs.setBoolPref(PB_PREF, false);
     33  Services.prefs.setBoolPref(EMAIL_PREF, false);
     34  Services.prefs.setBoolPref(EMAIL_PB_PREF, false);
     35  ok(
     36    TrackingProtection.enabled,
     37    "TP is enabled (ENABLED=true,PB=false,EmailEnabled=false,EmailPB=false)"
     38  );
     39  Services.prefs.setBoolPref(PB_PREF, true);
     40  ok(
     41    TrackingProtection.enabled,
     42    "TP is enabled (ENABLED=true,PB=true,EmailEnabled=false,EmailPB=false)"
     43  );
     44  Services.prefs.setBoolPref(EMAIL_PREF, true);
     45  ok(
     46    TrackingProtection.enabled,
     47    "TP is enabled (ENABLED=true,PB=true,EmailEnabled=true,EmailPB=false)"
     48  );
     49  Services.prefs.setBoolPref(EMAIL_PB_PREF, true);
     50  ok(
     51    TrackingProtection.enabled,
     52    "TP is enabled (ENABLED=true,PB=true,EmailEnabled=true,EmailPB=true)"
     53  );
     54  Services.prefs.setBoolPref(EMAIL_PREF, false);
     55  ok(
     56    TrackingProtection.enabled,
     57    "TP is enabled (ENABLED=true,PB=true,EmailEnabled=false,EmailPB=true)"
     58  );
     59  Services.prefs.setBoolPref(PB_PREF, false);
     60  ok(
     61    TrackingProtection.enabled,
     62    "TP is enabled (ENABLED=true,PB=false,EmailEnabled=false,EmailPB=true)"
     63  );
     64  Services.prefs.setBoolPref(EMAIL_PREF, true);
     65  Services.prefs.setBoolPref(EMAIL_PB_PREF, false);
     66  ok(
     67    TrackingProtection.enabled,
     68    "TP is enabled (ENABLED=true,PB=false,EmailEnabled=true,EmailPB=false)"
     69  );
     70  Services.prefs.setBoolPref(EMAIL_PB_PREF, true);
     71  ok(
     72    TrackingProtection.enabled,
     73    "TP is enabled (ENABLED=true,PB=false,EmailEnabled=true,EmailPB=true)"
     74  );
     75 
     76  Services.prefs.setBoolPref(PREF, false);
     77  Services.prefs.setBoolPref(PB_PREF, false);
     78  Services.prefs.setBoolPref(EMAIL_PREF, false);
     79  Services.prefs.setBoolPref(EMAIL_PB_PREF, false);
     80  ok(
     81    !TrackingProtection.enabled,
     82    "TP is disabled (ENABLED=false,PB=false,EmailEnabled=false,EmailPB=false)"
     83  );
     84  Services.prefs.setBoolPref(PB_PREF, true);
     85  ok(
     86    !TrackingProtection.enabled,
     87    "TP is disabled (ENABLED=false,PB=true,EmailEnabled=false,EmailPB=false)"
     88  );
     89  Services.prefs.setBoolPref(EMAIL_PREF, true);
     90  ok(
     91    TrackingProtection.enabled,
     92    "TP is enabled (ENABLED=false,PB=true,EmailEnabled=true,EmailPB=false)"
     93  );
     94  Services.prefs.setBoolPref(EMAIL_PB_PREF, true);
     95  ok(
     96    TrackingProtection.enabled,
     97    "TP is enabled (ENABLED=false,PB=true,EmailEnabled=true,EmailPB=true)"
     98  );
     99  Services.prefs.setBoolPref(EMAIL_PREF, false);
    100  ok(
    101    !TrackingProtection.enabled,
    102    "TP is disabled (ENABLED=false,PB=true,EmailEnabled=false,EmailPB=true)"
    103  );
    104  Services.prefs.setBoolPref(PB_PREF, false);
    105  ok(
    106    !TrackingProtection.enabled,
    107    "TP is disabled (ENABLED=false,PB=false,EmailEnabled=false,EmailPB=true)"
    108  );
    109  Services.prefs.setBoolPref(EMAIL_PREF, true);
    110  Services.prefs.setBoolPref(EMAIL_PB_PREF, false);
    111  ok(
    112    TrackingProtection.enabled,
    113    "TP is enabled (ENABLED=false,PB=false,EmailEnabled=true,EmailPB=false)"
    114  );
    115  Services.prefs.setBoolPref(EMAIL_PB_PREF, true);
    116  ok(
    117    TrackingProtection.enabled,
    118    "TP is enabled (ENABLED=false,PB=false,EmailEnabled=true,EmailPB=true)"
    119  );
    120 });
    121 
    122 add_task(async function testPrivateBrowsing() {
    123  let privateWin = await BrowserTestUtils.openNewBrowserWindow({
    124    private: true,
    125  });
    126  let { TrackingProtection } =
    127    privateWin.gBrowser.ownerGlobal.gProtectionsHandler.blockers;
    128  ok(
    129    TrackingProtection,
    130    "Private window gProtectionsHandler should have TrackingProtection blocker."
    131  );
    132 
    133  Services.prefs.setBoolPref(PREF, true);
    134  Services.prefs.setBoolPref(PB_PREF, false);
    135  Services.prefs.setBoolPref(EMAIL_PREF, false);
    136  Services.prefs.setBoolPref(EMAIL_PB_PREF, false);
    137  ok(
    138    TrackingProtection.enabled,
    139    "TP is enabled (ENABLED=true,PB=false,EmailEnabled=false,EmailPB=false)"
    140  );
    141  Services.prefs.setBoolPref(PB_PREF, true);
    142  ok(
    143    TrackingProtection.enabled,
    144    "TP is enabled (ENABLED=true,PB=true,EmailEnabled=false,EmailPB=false)"
    145  );
    146  Services.prefs.setBoolPref(EMAIL_PREF, true);
    147  ok(
    148    TrackingProtection.enabled,
    149    "TP is enabled (ENABLED=true,PB=true,EmailEnabled=true,EmailPB=false)"
    150  );
    151  Services.prefs.setBoolPref(EMAIL_PB_PREF, true);
    152  ok(
    153    TrackingProtection.enabled,
    154    "TP is enabled (ENABLED=true,PB=true,EmailEnabled=true,EmailPB=true)"
    155  );
    156  Services.prefs.setBoolPref(EMAIL_PREF, false);
    157  ok(
    158    TrackingProtection.enabled,
    159    "TP is enabled (ENABLED=true,PB=true,EmailEnabled=false,EmailPB=true)"
    160  );
    161  Services.prefs.setBoolPref(PB_PREF, false);
    162  ok(
    163    TrackingProtection.enabled,
    164    "TP is enabled (ENABLED=true,PB=false,EmailEnabled=false,EmailPB=true)"
    165  );
    166  Services.prefs.setBoolPref(EMAIL_PREF, true);
    167  Services.prefs.setBoolPref(EMAIL_PB_PREF, false);
    168  ok(
    169    TrackingProtection.enabled,
    170    "TP is enabled (ENABLED=true,PB=false,EmailEnabled=true,EmailPB=false)"
    171  );
    172  Services.prefs.setBoolPref(EMAIL_PB_PREF, true);
    173  ok(
    174    TrackingProtection.enabled,
    175    "TP is enabled (ENABLED=true,PB=false,EmailEnabled=true,EmailPB=true)"
    176  );
    177 
    178  Services.prefs.setBoolPref(PREF, false);
    179  Services.prefs.setBoolPref(PB_PREF, false);
    180  Services.prefs.setBoolPref(EMAIL_PREF, false);
    181  Services.prefs.setBoolPref(EMAIL_PB_PREF, false);
    182  ok(
    183    !TrackingProtection.enabled,
    184    "TP is disabled (ENABLED=false,PB=false,EmailEnabled=false,EmailPB=false)"
    185  );
    186  Services.prefs.setBoolPref(PB_PREF, true);
    187  ok(
    188    TrackingProtection.enabled,
    189    "TP is enabled (ENABLED=false,PB=true,EmailEnabled=false,EmailPB=false)"
    190  );
    191  Services.prefs.setBoolPref(EMAIL_PREF, true);
    192  ok(
    193    TrackingProtection.enabled,
    194    "TP is enabled (ENABLED=false,PB=true,EmailEnabled=true,EmailPB=false)"
    195  );
    196  Services.prefs.setBoolPref(EMAIL_PB_PREF, true);
    197  ok(
    198    TrackingProtection.enabled,
    199    "TP is enabled (ENABLED=false,PB=true,EmailEnabled=true,EmailPB=true)"
    200  );
    201  Services.prefs.setBoolPref(EMAIL_PREF, false);
    202  ok(
    203    TrackingProtection.enabled,
    204    "TP is enabled (ENABLED=false,PB=true,EmailEnabled=false,EmailPB=true)"
    205  );
    206  Services.prefs.setBoolPref(PB_PREF, false);
    207  ok(
    208    TrackingProtection.enabled,
    209    "TP is enabled (ENABLED=false,PB=false,EmailEnabled=false,EmailPB=true)"
    210  );
    211  Services.prefs.setBoolPref(EMAIL_PREF, true);
    212  Services.prefs.setBoolPref(EMAIL_PB_PREF, false);
    213  ok(
    214    TrackingProtection.enabled,
    215    "TP is enabled (ENABLED=false,PB=false,EmailEnabled=true,EmailPB=false)"
    216  );
    217  Services.prefs.setBoolPref(EMAIL_PB_PREF, true);
    218  ok(
    219    TrackingProtection.enabled,
    220    "TP is enabled (ENABLED=false,PB=false,EmailEnabled=true,EmailPB=true)"
    221  );
    222 
    223  privateWin.close();
    224 });