| Index: lib/requestBlocker.js |
| =================================================================== |
| --- a/lib/requestBlocker.js |
| +++ b/lib/requestBlocker.js |
| @@ -19,17 +19,16 @@ |
| "use strict"; |
| const {Filter, RegExpFilter, BlockingFilter} = |
| require("../adblockpluscore/lib/filterClasses"); |
| const {Subscription} = require("../adblockpluscore/lib/subscriptionClasses"); |
| const {defaultMatcher} = require("../adblockpluscore/lib/matcher"); |
| const {filterNotifier} = require("../adblockpluscore/lib/filterNotifier"); |
| -const {isThirdParty} = require("../adblockpluscore/lib/domain"); |
| const {Prefs} = require("./prefs"); |
| const {checkWhitelisted, getKey} = require("./whitelisting"); |
| const {extractHostFromFrame} = require("./url"); |
| const {port} = require("./messaging"); |
| const {logRequest: hitLoggerLogRequest} = require("./hitLogger"); |
| const extensionProtocol = new URL(browser.extension.getURL("")).protocol; |
| @@ -83,25 +82,16 @@ |
| return [ |
| extractHostFromFrame(frame, originUrl), |
| getKey(page, frame, originUrl), |
| !!checkWhitelisted(page, frame, originUrl, |
| RegExpFilter.typeMap.GENERICBLOCK) |
| ]; |
| } |
| -function matchRequest(url, type, docDomain, sitekey, specificOnly) |
| -{ |
| - let thirdParty = isThirdParty(url, docDomain); |
| - let filter = defaultMatcher.matchesAny(url.href, RegExpFilter.typeMap[type], |
| - docDomain, thirdParty, |
| - sitekey, specificOnly); |
| - return [filter, thirdParty]; |
| -} |
| - |
| function getRelatedTabIds(details) |
| { |
| // This is the common case, the request is associated with a single tab. |
| // If tabId is -1, its not (e.g. the request was sent by |
| // a Service/Shared Worker) and we have to identify the related tabs. |
| if (details.tabId != -1) |
| return Promise.resolve([details.tabId]); |
| @@ -183,18 +173,18 @@ |
| return; |
| if (checkWhitelisted(page, frame, originUrl)) |
| return; |
| let type = resourceTypes.get(details.type) || "OTHER"; |
| let [docDomain, sitekey, specificOnly] = getDocumentInfo(page, frame, |
| originUrl); |
| - let [filter, thirdParty] = matchRequest(url, type, docDomain, |
| - sitekey, specificOnly); |
| + let filter = defaultMatcher.matchesAny(url, RegExpFilter.typeMap[type], |
| + docDomain, sitekey, specificOnly); |
| let result; |
| let rewrittenUrl; |
| if (filter instanceof BlockingFilter) |
| { |
| if (typeof filter.rewrite == "string") |
| { |
| @@ -208,17 +198,17 @@ |
| result = {cancel: true}; |
| } |
| getRelatedTabIds(details).then(tabIds => |
| { |
| logRequest( |
| tabIds, |
| { |
| - url: details.url, type, docDomain, thirdParty, |
| + url: details.url, type, docDomain, |
| sitekey, specificOnly, rewrittenUrl |
| }, |
| filter |
| ); |
| }); |
| return result; |
| }, {urls: ["<all_urls>"]}, ["blocking"]); |
| @@ -230,19 +220,19 @@ |
| if (checkWhitelisted(page, frame)) |
| return false; |
| let blocked = false; |
| let [docDomain, sitekey, specificOnly] = getDocumentInfo(page, frame); |
| for (let url of message.urls) |
| { |
| - let [filter] = matchRequest(new URL(url, message.baseURL), |
| - message.mediatype, docDomain, |
| - sitekey, specificOnly); |
| + let filter = defaultMatcher.matchesAny(new URL(url, message.baseURL), |
| + RegExpFilter.typeMap[message.mediatype], |
| + docDomain, sitekey, specificOnly); |
| if (filter instanceof BlockingFilter) |
| { |
| if (filter.collapse != null) |
| return filter.collapse; |
| blocked = true; |
| } |
| } |
| @@ -254,21 +244,22 @@ |
| { |
| let {page, frame} = sender; |
| if (checkWhitelisted(page, frame)) |
| return false; |
| let {url} = msg; |
| let [docDomain, sitekey, specificOnly] = getDocumentInfo(page, frame); |
| - let [filter, thirdParty] = matchRequest(new URL(url), "WEBRTC", docDomain, |
| - sitekey, specificOnly); |
| + let filter = defaultMatcher.matchesAny(new URL(url), |
| + RegExpFilter.typeMap.WEBRTC, |
| + docDomain, sitekey, specificOnly); |
| logRequest( |
| [sender.page.id], |
| - {url, type: "WEBRTC", docDomain, thirdParty, sitekey, specificOnly}, |
| + {url, type: "WEBRTC", docDomain, sitekey, specificOnly}, |
| filter |
| ); |
| return filter instanceof BlockingFilter; |
| }); |
| let ignoreFilterNotifications = false; |
| let handlerBehaviorChangedQuota = |