OLD | NEW |
1 /* | 1 /* |
2 * This file is part of the Adblock Plus, | 2 * This file is part of the Adblock Plus, |
3 * Copyright (C) 2006-2012 Eyeo GmbH | 3 * Copyright (C) 2006-2012 Eyeo GmbH |
4 * | 4 * |
5 * Adblock Plus is free software: you can redistribute it and/or modify | 5 * Adblock Plus is free software: you can redistribute it and/or modify |
6 * it under the terms of the GNU General Public License version 3 as | 6 * it under the terms of the GNU General Public License version 3 as |
7 * published by the Free Software Foundation. | 7 * published by the Free Software Foundation. |
8 * | 8 * |
9 * Adblock Plus is distributed in the hope that it will be useful, | 9 * Adblock Plus is distributed in the hope that it will be useful, |
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
189 Utils.httpProtocol.userAgent // HTTP_USER_AGENT | 189 Utils.httpProtocol.userAgent // HTTP_USER_AGENT |
190 ]; | 190 ]; |
191 if (Utils.verifySignature(key, signature, params.join("\0"))) | 191 if (Utils.verifySignature(key, signature, params.join("\0"))) |
192 match = keyMatch; | 192 match = keyMatch; |
193 } | 193 } |
194 } | 194 } |
195 } | 195 } |
196 | 196 |
197 if (match instanceof WhitelistFilter) | 197 if (match instanceof WhitelistFilter) |
198 { | 198 { |
199 FilterStorage.increaseHitCount(match); | 199 FilterStorage.increaseHitCount(match, wnd); |
200 RequestNotifier.addNodeData(testWnd.document, topWnd, Policy.type.DOCU
MENT, getHostname(parentWndLocation), false, testWndLocation, match); | 200 RequestNotifier.addNodeData(testWnd.document, topWnd, Policy.type.DOCU
MENT, getHostname(parentWndLocation), false, testWndLocation, match); |
201 return true; | 201 return true; |
202 } | 202 } |
203 | 203 |
204 if (testWnd.parent == testWnd) | 204 if (testWnd.parent == testWnd) |
205 break; | 205 break; |
206 else | 206 else |
207 testWnd = testWnd.parent; | 207 testWnd = testWnd.parent; |
208 } | 208 } |
209 } | 209 } |
(...skipping 12 matching lines...) Expand all Loading... |
222 let testWnd = wnd; | 222 let testWnd = wnd; |
223 let parentWndLocation = getWindowLocation(testWnd); | 223 let parentWndLocation = getWindowLocation(testWnd); |
224 while (true) | 224 while (true) |
225 { | 225 { |
226 let testWndLocation = parentWndLocation; | 226 let testWndLocation = parentWndLocation; |
227 parentWndLocation = (testWnd == testWnd.parent ? testWndLocation : getWi
ndowLocation(testWnd.parent)); | 227 parentWndLocation = (testWnd == testWnd.parent ? testWndLocation : getWi
ndowLocation(testWnd.parent)); |
228 let parentDocDomain = getHostname(parentWndLocation); | 228 let parentDocDomain = getHostname(parentWndLocation); |
229 match = defaultMatcher.matchesAny(testWndLocation, "ELEMHIDE", parentDoc
Domain, false); | 229 match = defaultMatcher.matchesAny(testWndLocation, "ELEMHIDE", parentDoc
Domain, false); |
230 if (match instanceof WhitelistFilter) | 230 if (match instanceof WhitelistFilter) |
231 { | 231 { |
232 FilterStorage.increaseHitCount(match); | 232 FilterStorage.increaseHitCount(match, wnd); |
233 RequestNotifier.addNodeData(testWnd.document, topWnd, contentType, par
entDocDomain, false, testWndLocation, match); | 233 RequestNotifier.addNodeData(testWnd.document, topWnd, contentType, par
entDocDomain, false, testWndLocation, match); |
234 return true; | 234 return true; |
235 } | 235 } |
236 | 236 |
237 if (testWnd.parent == testWnd) | 237 if (testWnd.parent == testWnd) |
238 break; | 238 break; |
239 else | 239 else |
240 testWnd = testWnd.parent; | 240 testWnd = testWnd.parent; |
241 } | 241 } |
242 | 242 |
243 match = location; | 243 match = location; |
244 locationText = match.text.replace(/^.*?#/, '#'); | 244 locationText = match.text.replace(/^.*?#/, '#'); |
245 location = locationText; | 245 location = locationText; |
246 | 246 |
247 if (!match.isActiveOnDomain(docDomain)) | 247 if (!match.isActiveOnDomain(docDomain)) |
248 return true; | 248 return true; |
249 | 249 |
250 let exception = ElemHide.getException(match, docDomain); | 250 let exception = ElemHide.getException(match, docDomain); |
251 if (exception) | 251 if (exception) |
252 { | 252 { |
253 FilterStorage.increaseHitCount(exception); | 253 FilterStorage.increaseHitCount(exception, wnd); |
254 RequestNotifier.addNodeData(node, topWnd, contentType, docDomain, thirdP
arty, locationText, exception); | 254 RequestNotifier.addNodeData(node, topWnd, contentType, docDomain, thirdP
arty, locationText, exception); |
255 return true; | 255 return true; |
256 } | 256 } |
257 } | 257 } |
258 | 258 |
259 let thirdParty = (contentType == Policy.type.ELEMHIDE ? false : isThirdParty
(location, docDomain)); | 259 let thirdParty = (contentType == Policy.type.ELEMHIDE ? false : isThirdParty
(location, docDomain)); |
260 | 260 |
261 if (!match && Prefs.enabled) | 261 if (!match && Prefs.enabled) |
262 { | 262 { |
263 match = defaultMatcher.matchesAny(locationText, Policy.typeDescr[contentTy
pe] || "", docDomain, thirdParty); | 263 match = defaultMatcher.matchesAny(locationText, Policy.typeDescr[contentTy
pe] || "", docDomain, thirdParty); |
264 if (match instanceof BlockingFilter && node.ownerDocument && !(contentType
in Policy.nonVisual)) | 264 if (match instanceof BlockingFilter && node.ownerDocument && !(contentType
in Policy.nonVisual)) |
265 { | 265 { |
266 let prefCollapse = (match.collapse != null ? match.collapse : !Prefs.fas
tcollapse); | 266 let prefCollapse = (match.collapse != null ? match.collapse : !Prefs.fas
tcollapse); |
267 if (collapse || prefCollapse) | 267 if (collapse || prefCollapse) |
268 schedulePostProcess(node); | 268 schedulePostProcess(node); |
269 } | 269 } |
270 | 270 |
271 // Track mouse events for objects | 271 // Track mouse events for objects |
272 if (!match && contentType == Policy.type.OBJECT && node.nodeType == Ci.nsI
DOMNode.ELEMENT_NODE) | 272 if (!match && contentType == Policy.type.OBJECT && node.nodeType == Ci.nsI
DOMNode.ELEMENT_NODE) |
273 { | 273 { |
274 node.addEventListener("mouseover", objectMouseEventHander, true); | 274 node.addEventListener("mouseover", objectMouseEventHander, true); |
275 node.addEventListener("mouseout", objectMouseEventHander, true); | 275 node.addEventListener("mouseout", objectMouseEventHander, true); |
276 } | 276 } |
277 } | 277 } |
278 | 278 |
279 // Store node data | 279 // Store node data |
280 RequestNotifier.addNodeData(node, topWnd, contentType, docDomain, thirdParty
, locationText, match); | 280 RequestNotifier.addNodeData(node, topWnd, contentType, docDomain, thirdParty
, locationText, match); |
281 if (match) | 281 if (match) |
282 FilterStorage.increaseHitCount(match); | 282 FilterStorage.increaseHitCount(match, wnd); |
283 | 283 |
284 return !match || match instanceof WhitelistFilter; | 284 return !match || match instanceof WhitelistFilter; |
285 }, | 285 }, |
286 | 286 |
287 /** | 287 /** |
288 * Checks whether the location's scheme is blockable. | 288 * Checks whether the location's scheme is blockable. |
289 * @param location {nsIURI} | 289 * @param location {nsIURI} |
290 * @return {Boolean} | 290 * @return {Boolean} |
291 */ | 291 */ |
292 isBlockableScheme: function(location) | 292 isBlockableScheme: function(location) |
(...skipping 420 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
713 if (!wnd || wnd.closed) | 713 if (!wnd || wnd.closed) |
714 return; | 714 return; |
715 | 715 |
716 if (entry.type == Policy.type.OBJECT) | 716 if (entry.type == Policy.type.OBJECT) |
717 { | 717 { |
718 node.removeEventListener("mouseover", objectMouseEventHander, true); | 718 node.removeEventListener("mouseover", objectMouseEventHander, true); |
719 node.removeEventListener("mouseout", objectMouseEventHander, true); | 719 node.removeEventListener("mouseout", objectMouseEventHander, true); |
720 } | 720 } |
721 Policy.processNode(wnd, node, entry.type, Utils.makeURI(entry.location), true)
; | 721 Policy.processNode(wnd, node, entry.type, Utils.makeURI(entry.location), true)
; |
722 } | 722 } |
OLD | NEW |