| Index: lib/whitelisting.js |
| =================================================================== |
| --- a/lib/whitelisting.js |
| +++ b/lib/whitelisting.js |
| @@ -21,6 +21,12 @@ |
| let pagesWithKey = new ext.PageMap(); |
| +/** |
| + * Checks whether a page is whitelisted. |
| + * |
| + * @param {Page} page |
| + * @return {WhitelistFilter} The active filter whitelisting this page or null |
| + */ |
| function isPageWhitelisted(page) |
| { |
| let url = page.url; |
| @@ -33,6 +39,15 @@ |
| } |
| exports.isPageWhitelisted = isPageWhitelisted; |
| +/** |
| + * Checks whether a frame is whitelisted. |
| + * |
| + * @param {Page} page |
| + * @param {Frame} frame |
| + * @param {string} [type=DOCUMENT] The request type to check whether |
| + * the frame is whitelisted for. |
| + * @return {Boolean} |
| + */ |
| function isFrameWhitelisted(page, frame, type) |
| { |
| while (frame) |
| @@ -57,6 +72,14 @@ |
| } |
| exports.isFrameWhitelisted = isFrameWhitelisted; |
| +/** |
| + * Gets the public key, previously recorded for the given page |
| + * and frame, to be considered for the $sitekey filter option. |
| + * |
| + * @param {Page} page |
| + * @param {Frame} frame |
| + * @return {string} |
| + */ |
| function getKey(page, frame) |
| { |
| let urlsWithKey = pagesWithKey.get(page); |
| @@ -98,6 +121,17 @@ |
| urlsWithKey[stringifyURL(url)] = key; |
| } |
| +/** |
| + * Validates signatures given by the "X-Adblock-Key" response |
| + * header or the "data-adblockkey" attribute of the document |
| + * element. If the signature is valid, the public key will be |
| + * recorded and considered for the $sitekey filter option. |
| + * |
| + * @param {string} token The base64-encoded public key and |
| + * signature separated by an underscrore. |
| + * @param {Page} page |
| + * @param {Frame} frame |
| + */ |
| function processKey(token, page, frame) |
| { |
| if (token.indexOf("_") < 0) |