OLD | NEW |
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 12 matching lines...) Expand all Loading... |
23 this.WhitelistFilter = WhitelistFilter; | 23 this.WhitelistFilter = WhitelistFilter; |
24 } | 24 } |
25 with(require("subscriptionClasses")) | 25 with(require("subscriptionClasses")) |
26 { | 26 { |
27 this.Subscription = Subscription; | 27 this.Subscription = Subscription; |
28 this.DownloadableSubscription = DownloadableSubscription; | 28 this.DownloadableSubscription = DownloadableSubscription; |
29 this.SpecialSubscription = SpecialSubscription; | 29 this.SpecialSubscription = SpecialSubscription; |
30 } | 30 } |
31 with(require("whitelisting")) | 31 with(require("whitelisting")) |
32 { | 32 { |
33 this.isWhitelisted = isWhitelisted; | 33 this.isPageWhitelisted = isPageWhitelisted; |
34 this.isFrameWhitelisted = isFrameWhitelisted; | 34 this.isFrameWhitelisted = isFrameWhitelisted; |
35 this.processKey = processKey; | 35 this.processKey = processKey; |
36 this.getKey = getKey; | 36 this.getKey = getKey; |
37 } | 37 } |
| 38 with(require("url")) |
| 39 { |
| 40 this.stringifyURL = stringifyURL; |
| 41 this.isThirdParty = isThirdParty; |
| 42 this.extractHostFromFrame = extractHostFromFrame; |
| 43 } |
38 var FilterStorage = require("filterStorage").FilterStorage; | 44 var FilterStorage = require("filterStorage").FilterStorage; |
39 var ElemHide = require("elemHide").ElemHide; | 45 var ElemHide = require("elemHide").ElemHide; |
40 var defaultMatcher = require("matcher").defaultMatcher; | 46 var defaultMatcher = require("matcher").defaultMatcher; |
41 var Prefs = require("prefs").Prefs; | 47 var Prefs = require("prefs").Prefs; |
42 var Synchronizer = require("synchronizer").Synchronizer; | 48 var Synchronizer = require("synchronizer").Synchronizer; |
43 var Utils = require("utils").Utils; | 49 var Utils = require("utils").Utils; |
44 var NotificationStorage = require("notification").Notification; | 50 var NotificationStorage = require("notification").Notification; |
45 var initAntiAdblockNotification = require("antiadblockInit").initAntiAdblockNoti
fication; | 51 var initAntiAdblockNotification = require("antiadblockInit").initAntiAdblockNoti
fication; |
46 var parseFilters = require("filterValidation").parseFilters; | 52 var parseFilters = require("filterValidation").parseFilters; |
47 | 53 |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
120 contexts: ["image", "video", "audio"], | 126 contexts: ["image", "video", "audio"], |
121 onclick: function(page) | 127 onclick: function(page) |
122 { | 128 { |
123 page.sendMessage({type: "clickhide-new-filter"}); | 129 page.sendMessage({type: "clickhide-new-filter"}); |
124 } | 130 } |
125 }; | 131 }; |
126 | 132 |
127 // Adds or removes browser action icon according to options. | 133 // Adds or removes browser action icon according to options. |
128 function refreshIconAndContextMenu(page) | 134 function refreshIconAndContextMenu(page) |
129 { | 135 { |
130 var whitelisted = isWhitelisted(page.url); | 136 var whitelisted = isPageWhitelisted(page); |
131 | 137 |
132 var iconFilename; | 138 var iconFilename; |
133 if (whitelisted && require("info").platform != "safari") | 139 if (whitelisted && require("info").platform != "safari") |
134 // There is no grayscale version of the icon for whitelisted pages | 140 // There is no grayscale version of the icon for whitelisted pages |
135 // when using Safari, because icons are grayscale already and icons | 141 // when using Safari, because icons are grayscale already and icons |
136 // aren't per page in Safari. | 142 // aren't per page in Safari. |
137 iconFilename = "icons/abp-$size-whitelisted.png"; | 143 iconFilename = "icons/abp-$size-whitelisted.png"; |
138 else | 144 else |
139 iconFilename = "icons/abp-$size.png"; | 145 iconFilename = "icons/abp-$size.png"; |
140 | 146 |
(...skipping 352 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
493 | 499 |
494 sendResponse(selectors); | 500 sendResponse(selectors); |
495 break; | 501 break; |
496 case "should-collapse": | 502 case "should-collapse": |
497 if (isFrameWhitelisted(sender.page, sender.frame, "DOCUMENT")) | 503 if (isFrameWhitelisted(sender.page, sender.frame, "DOCUMENT")) |
498 { | 504 { |
499 sendResponse(false); | 505 sendResponse(false); |
500 break; | 506 break; |
501 } | 507 } |
502 | 508 |
503 var requestHost = extractHostFromURL(msg.url); | 509 var url = new URL(msg.url); |
504 var documentHost = extractHostFromFrame(sender.frame); | 510 var documentHost = extractHostFromFrame(sender.frame); |
505 var thirdParty = isThirdParty(requestHost, documentHost); | 511 var filter = defaultMatcher.matchesAny( |
506 var filter = defaultMatcher.matchesAny(msg.url, msg.mediatype, documentHos
t, thirdParty); | 512 stringifyURL(url), msg.mediatype, |
| 513 documentHost, isThirdParty(url, documentHost) |
| 514 ); |
| 515 |
507 if (filter instanceof BlockingFilter) | 516 if (filter instanceof BlockingFilter) |
508 { | 517 { |
509 var collapse = filter.collapse; | 518 var collapse = filter.collapse; |
510 if (collapse == null) | 519 if (collapse == null) |
511 collapse = Prefs.hidePlaceholders; | 520 collapse = Prefs.hidePlaceholders; |
512 sendResponse(collapse); | 521 sendResponse(collapse); |
513 } | 522 } |
514 else | 523 else |
515 sendResponse(false); | 524 sendResponse(false); |
516 break; | 525 break; |
517 case "get-domain-enabled-state": | 526 case "get-domain-enabled-state": |
518 // Returns whether this domain is in the exclusion list. | 527 // Returns whether this domain is in the exclusion list. |
519 // The browser action popup asks us this. | 528 // The browser action popup asks us this. |
520 if(sender.page) | 529 if(sender.page) |
521 { | 530 { |
522 sendResponse({enabled: !isWhitelisted(sender.page.url)}); | 531 sendResponse({enabled: !isPageWhitelisted(sender.page)}); |
523 return; | 532 return; |
524 } | 533 } |
525 break; | 534 break; |
526 case "add-filters": | 535 case "add-filters": |
527 var filters; | 536 var filters; |
528 try | 537 try |
529 { | 538 { |
530 filters = parseFilters(msg.text); | 539 filters = parseFilters(msg.text); |
531 } | 540 } |
532 catch (error) | 541 catch (error) |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
574 page.sendMessage({type: "clickhide-deactivate"}); | 583 page.sendMessage({type: "clickhide-deactivate"}); |
575 refreshIconAndContextMenu(page); | 584 refreshIconAndContextMenu(page); |
576 }); | 585 }); |
577 | 586 |
578 setTimeout(function() | 587 setTimeout(function() |
579 { | 588 { |
580 var notificationToShow = NotificationStorage.getNextToShow(); | 589 var notificationToShow = NotificationStorage.getNextToShow(); |
581 if (notificationToShow) | 590 if (notificationToShow) |
582 showNotification(notificationToShow); | 591 showNotification(notificationToShow); |
583 }, 3 * 60 * 1000); | 592 }, 3 * 60 * 1000); |
OLD | NEW |