Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: lib/contentPolicy.js

Issue 9043026: Adapted private browsing handling to per-window private browsing in Firefox 20 (Closed)
Patch Set: Created Dec. 18, 2012, 2:57 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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 }
OLDNEW
« no previous file with comments | « chrome/content/ui/sendReport.js ('k') | lib/filterStorage.js » ('j') | lib/filterStorage.js » ('J')

Powered by Google App Engine
This is Rietveld