| Index: lib/contentPolicy.js |
| =================================================================== |
| --- a/lib/contentPolicy.js |
| +++ b/lib/contentPolicy.js |
| @@ -257,28 +257,41 @@ var Policy = exports.Policy = |
| * @return {Filter} matching exception rule or null if not whitelisted |
| */ |
| isWindowWhitelisted: function(wnd) |
| { |
| return this.isWhitelisted(getWindowLocation(wnd)); |
| }, |
| /** |
| - * Asynchronously re-checks filters for given nodes. |
| - * @param {Node[]} nodes |
| + * Deletes nodes that were previously stored with a |
| + * RequestNotifier.storeNodesForEntries() call or similar. |
| + * @param {string} id unique ID of the nodes |
| + */ |
| + deleteNodes: function(id) |
| + { |
| + let messageManager = Cc["@mozilla.org/parentprocessmessagemanager;1"] |
| + .getService(Ci.nsIMessageBroadcaster); |
| + messageManager.broadcastAsyncMessage("AdblockPlus:DeleteNodes", id); |
| + }, |
| + |
| + /** |
| + * Asynchronously re-checks filters for nodes given by an ID previously |
| + * returned by a RequestNotifier.storeNodesForEntries() call or similar. |
| + * @param {string} id unique ID of the nodes |
| * @param {RequestEntry} entry |
| */ |
| - refilterNodes: function(nodes, entry) |
| + refilterNodes: function(id, entry) |
| { |
| - // Ignore nodes that have been blocked already |
| - if (entry.filter && !(entry.filter instanceof WhitelistFilter)) |
| - return; |
| - |
| - for (let node of nodes) |
| - Utils.runAsync(() => refilterNode(node, entry)); |
| + let messageManager = Cc["@mozilla.org/parentprocessmessagemanager;1"] |
| + .getService(Ci.nsIMessageBroadcaster); |
| + messageManager.broadcastAsyncMessage("AdblockPlus:RefilterNodes", { |
| + nodesID: id, |
| + entry: entry |
| + }); |
| } |
| }; |
| Policy.init(); |
| /** |
| * Extracts the hostname from a URL (might return null). |
| */ |
| function getHostname(/**String*/ url) /**String*/ |
| @@ -384,25 +397,8 @@ function isThirdParty(/**String*/locatio |
| let host = ""; |
| try |
| { |
| host = uri.host; |
| } catch (e) {} |
| return host != docDomain; |
| } |
| } |
| - |
| -/** |
| - * Re-checks filters on an element. |
| - */ |
| -function refilterNode(/**Node*/ node, /**RequestEntry*/ entry) |
| -{ |
| - let wnd = Utils.getWindow(node); |
| - if (!wnd || wnd.closed) |
| - return; |
| - |
| - if (entry.type == "OBJECT") |
| - { |
| - node.removeEventListener("mouseover", objectMouseEventHander, true); |
| - node.removeEventListener("mouseout", objectMouseEventHander, true); |
| - } |
| - Policy.processNode(wnd, node, entry.type, entry.location, true); |
| -} |