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 });