test_bug1883496.js (5112B)
1 "use strict"; 2 Services.env.set("MOZ_DISABLE_NONLOCAL_CONNECTIONS", "0"); 3 Services.prefs.setBoolPref("network.dns.native-is-localhost", true); 4 5 async function testHeader(domain, expectHeader, isHttps) { 6 Services.prefs.setCharPref("network.dns.localDomains", "www" + domain); 7 var URL = isHttps ? "https://www" + domain : "http://www" + domain; 8 9 let { req } = await new Promise(resolve => { 10 let chan = NetUtil.newChannel({ 11 uri: URL, 12 loadUsingSystemPrincipal: true, 13 }); 14 chan.asyncOpen( 15 new ChannelListener( 16 req1 => resolve({ req: req1 }), 17 null, 18 CL_EXPECT_FAILURE 19 ) 20 ); 21 }); 22 23 if (expectHeader) { 24 Assert.equal( 25 req 26 .QueryInterface(Ci.nsIHttpChannel) 27 .getRequestHeader("X-Search-Subdivision"), 28 "1" 29 ); 30 } else { 31 Assert.throws( 32 () => { 33 req 34 .QueryInterface(Ci.nsIHttpChannel) 35 .getRequestHeader("X-Search-Subdivision"); 36 }, 37 /NS_ERROR_NOT_AVAILABLE/, 38 "search header missing" 39 ); 40 } 41 } 42 43 add_task(async function googleDomainSearchHeaderChecker() { 44 const googleStandardDomains = [ 45 ".google.com", 46 ".google.ad", 47 ".google.ae", 48 ".google.com.af", 49 ".google.com.ag", 50 ".google.al", 51 ".google.am", 52 ".google.co.ao", 53 ".google.com.ar", 54 ".google.as", 55 ".google.at", 56 ".google.com.au", 57 ".google.az", 58 ".google.ba", 59 ".google.com.bd", 60 ".google.be", 61 ".google.bf", 62 ".google.bg", 63 ".google.com.bh", 64 ".google.bi", 65 ".google.bj", 66 ".google.com.bn", 67 ".google.com.bo", 68 ".google.com.br", 69 ".google.bs", 70 ".google.bt", 71 ".google.co.bw", 72 ".google.by", 73 ".google.com.bz", 74 ".google.ca", 75 ".google.cd", 76 ".google.cf", 77 ".google.cg", 78 ".google.ch", 79 ".google.ci", 80 ".google.co.ck", 81 ".google.cl", 82 ".google.cm", 83 ".google.cn", 84 ".google.com.co", 85 ".google.co.cr", 86 ".google.com.cu", 87 ".google.cv", 88 ".google.com.cy", 89 ".google.cz", 90 ".google.de", 91 ".google.dj", 92 ".google.dk", 93 ".google.dm", 94 ".google.com.do", 95 ".google.dz", 96 ".google.com.ec", 97 ".google.ee", 98 ".google.com.eg", 99 ".google.es", 100 ".google.com.et", 101 ".google.fi", 102 ".google.com.fj", 103 ".google.fm", 104 ".google.fr", 105 ".google.ga", 106 ".google.ge", 107 ".google.gg", 108 ".google.com.gh", 109 ".google.com.gi", 110 ".google.gl", 111 ".google.gm", 112 ".google.gr", 113 ".google.com.gt", 114 ".google.gy", 115 ".google.com.hk", 116 ".google.hn", 117 ".google.hr", 118 ".google.ht", 119 ".google.hu", 120 ".google.co.id", 121 ".google.ie", 122 ".google.co.il", 123 ".google.im", 124 ".google.co.in", 125 ".google.iq", 126 ".google.is", 127 ".google.it", 128 ".google.je", 129 ".google.com.jm", 130 ".google.jo", 131 ".google.co.jp", 132 ".google.co.ke", 133 ".google.com.kh", 134 ".google.ki", 135 ".google.kg", 136 ".google.co.kr", 137 ".google.com.kw", 138 ".google.kz", 139 ".google.la", 140 ".google.com.lb", 141 ".google.li", 142 ".google.lk", 143 ".google.co.ls", 144 ".google.lt", 145 ".google.lu", 146 ".google.lv", 147 ".google.com.ly", 148 ".google.co.ma", 149 ".google.md", 150 ".google.me", 151 ".google.mg", 152 ".google.mk", 153 ".google.ml", 154 ".google.com.mm", 155 ".google.mn", 156 ".google.com.mt", 157 ".google.mu", 158 ".google.mv", 159 ".google.mw", 160 ".google.com.mx", 161 ".google.com.my", 162 ".google.co.mz", 163 ".google.com.na", 164 ".google.com.ng", 165 ".google.com.ni", 166 ".google.ne", 167 ".google.nl", 168 ".google.no", 169 ".google.com.np", 170 ".google.nr", 171 ".google.nu", 172 ".google.co.nz", 173 ".google.com.om", 174 ".google.com.pa", 175 ".google.com.pe", 176 ".google.com.pg", 177 ".google.com.ph", 178 ".google.com.pk", 179 ".google.pl", 180 ".google.pn", 181 ".google.com.pr", 182 ".google.ps", 183 ".google.pt", 184 ".google.com.py", 185 ".google.com.qa", 186 ".google.ro", 187 ".google.ru", 188 ".google.rw", 189 ".google.com.sa", 190 ".google.com.sb", 191 ".google.sc", 192 ".google.se", 193 ".google.com.sg", 194 ".google.sh", 195 ".google.si", 196 ".google.sk", 197 ".google.com.sl", 198 ".google.sn", 199 ".google.so", 200 ".google.sm", 201 ".google.sr", 202 ".google.st", 203 ".google.com.sv", 204 ".google.td", 205 ".google.tg", 206 ".google.co.th", 207 ".google.com.tj", 208 ".google.tl", 209 ".google.tm", 210 ".google.tn", 211 ".google.to", 212 ".google.com.tr", 213 ".google.tt", 214 ".google.com.tw", 215 ".google.co.tz", 216 ".google.com.ua", 217 ".google.co.ug", 218 ".google.co.uk", 219 ".google.com.uy", 220 ".google.co.uz", 221 ".google.com.vc", 222 ".google.co.ve", 223 ".google.co.vi", 224 ".google.com.vn", 225 ".google.vu", 226 ".google.ws", 227 ".google.rs", 228 ".google.co.za", 229 ".google.co.zm", 230 ".google.co.zw", 231 ".google.cat", 232 ]; 233 234 googleStandardDomains.forEach(domain => { 235 testHeader(domain, true, true); 236 //tests if we don't send any header for google-domain http requests 237 testHeader(domain, false, false); 238 }); 239 240 //tests if we don't send any header for non-google domains 241 testHeader("googlelike.com", false, true); 242 });