| Index: lib/whitelisting.js |
| =================================================================== |
| --- a/lib/whitelisting.js |
| +++ b/lib/whitelisting.js |
| @@ -22,6 +22,7 @@ |
| let {defaultMatcher} = require("matcher"); |
| let {RegExpFilter} = require("filterClasses"); |
| let {stringifyURL, getDecodedHostname, extractHostFromFrame, isThirdParty} = require("url"); |
| +let {port} = require("messaging"); |
| let devtools = require("devtools"); |
| let pagesWithKey = new ext.PageMap(); |
| @@ -46,6 +47,7 @@ |
| return filter; |
| } |
| +let checkWhitelisted = |
| /** |
| * Gets the active whitelisting filter for the document associated |
| * with the given page/frame, or null if it's not whitelisted. |
| @@ -129,6 +131,7 @@ |
| urlsWithKey[stringifyURL(url)] = key; |
| } |
| +let processKey = |
| /** |
| * Validates signatures given by the "X-Adblock-Key" response |
| * header or the "data-adblockkey" attribute of the document |
| @@ -151,3 +154,13 @@ |
| if (verifyKey(key, signature, frame.url)) |
| recordKey(page, frame.url, key); |
| }; |
| + |
| +port.on("filters.addKey", (message, sender) => |
| +{ |
| + processKey(message.token, sender.page, sender.frame); |
| +}); |
| + |
| +port.on("filters.isPageWhitelisted", (message, sender) => |
| +{ |
| + return !!checkWhitelisted(sender.page); |
| +}); |