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

Side by Side Diff: lib/contentPolicy.js

Issue 29329884: Issue 3224 - Unbreak filter assistant (Closed)
Patch Set: Rebased Created Nov. 12, 2015, 3:10 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 Adblock Plus <https://adblockplus.org/>, 2 * This file is part of Adblock Plus <https://adblockplus.org/>,
3 * Copyright (C) 2006-2015 Eyeo GmbH 3 * Copyright (C) 2006-2015 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 244 matching lines...) Expand 10 before | Expand all | Expand 10 after
255 * Checks whether the page loaded in a window is whitelisted for indication in the UI. 255 * Checks whether the page loaded in a window is whitelisted for indication in the UI.
256 * @param wnd {nsIDOMWindow} 256 * @param wnd {nsIDOMWindow}
257 * @return {Filter} matching exception rule or null if not whitelisted 257 * @return {Filter} matching exception rule or null if not whitelisted
258 */ 258 */
259 isWindowWhitelisted: function(wnd) 259 isWindowWhitelisted: function(wnd)
260 { 260 {
261 return this.isWhitelisted(getWindowLocation(wnd)); 261 return this.isWhitelisted(getWindowLocation(wnd));
262 }, 262 },
263 263
264 /** 264 /**
265 * Asynchronously re-checks filters for given nodes. 265 * Deletes nodes that were previously stored with a
266 * @param {Node[]} nodes 266 * RequestNotifier.storeNodesForEntries() call or similar.
267 * @param {string} id unique ID of the nodes
268 */
269 deleteNodes: function(id)
270 {
271 let messageManager = Cc["@mozilla.org/parentprocessmessagemanager;1"]
272 .getService(Ci.nsIMessageBroadcaster);
273 messageManager.broadcastAsyncMessage("AdblockPlus:DeleteNodes", id);
274 },
275
276 /**
277 * Asynchronously re-checks filters for nodes given by an ID previously
278 * returned by a RequestNotifier.storeNodesForEntries() call or similar.
279 * @param {string} id unique ID of the nodes
267 * @param {RequestEntry} entry 280 * @param {RequestEntry} entry
268 */ 281 */
269 refilterNodes: function(nodes, entry) 282 refilterNodes: function(id, entry)
270 { 283 {
271 // Ignore nodes that have been blocked already 284 let messageManager = Cc["@mozilla.org/parentprocessmessagemanager;1"]
272 if (entry.filter && !(entry.filter instanceof WhitelistFilter)) 285 .getService(Ci.nsIMessageBroadcaster);
273 return; 286 messageManager.broadcastAsyncMessage("AdblockPlus:RefilterNodes", {
274 287 nodesID: id,
275 for (let node of nodes) 288 entry: entry
276 Utils.runAsync(() => refilterNode(node, entry)); 289 });
277 } 290 }
278 }; 291 };
279 Policy.init(); 292 Policy.init();
280 293
281 /** 294 /**
282 * Extracts the hostname from a URL (might return null). 295 * Extracts the hostname from a URL (might return null).
283 */ 296 */
284 function getHostname(/**String*/ url) /**String*/ 297 function getHostname(/**String*/ url) /**String*/
285 { 298 {
286 try 299 try
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
382 { 395 {
383 // EffectiveTLDService throws on IP addresses, just compare the host name 396 // EffectiveTLDService throws on IP addresses, just compare the host name
384 let host = ""; 397 let host = "";
385 try 398 try
386 { 399 {
387 host = uri.host; 400 host = uri.host;
388 } catch (e) {} 401 } catch (e) {}
389 return host != docDomain; 402 return host != docDomain;
390 } 403 }
391 } 404 }
392
393 /**
394 * Re-checks filters on an element.
395 */
396 function refilterNode(/**Node*/ node, /**RequestEntry*/ entry)
397 {
398 let wnd = Utils.getWindow(node);
399 if (!wnd || wnd.closed)
400 return;
401
402 if (entry.type == "OBJECT")
403 {
404 node.removeEventListener("mouseover", objectMouseEventHander, true);
405 node.removeEventListener("mouseout", objectMouseEventHander, true);
406 }
407 Policy.processNode(wnd, node, entry.type, entry.location, true);
408 }
OLDNEW

Powered by Google App Engine
This is Rietveld