| Index: lib/requestBlocker.js | 
| =================================================================== | 
| --- a/lib/requestBlocker.js | 
| +++ b/lib/requestBlocker.js | 
| @@ -25,18 +25,18 @@ | 
| const {FilterNotifier} = require("filterNotifier"); | 
| const {Prefs} = require("prefs"); | 
| const {checkWhitelisted, getKey} = require("whitelisting"); | 
| const {stringifyURL, extractHostFromFrame, isThirdParty} = require("url"); | 
| const {port} = require("messaging"); | 
| const devtools = require("devtools"); | 
|  | 
| // Chrome can't distinguish between OBJECT_SUBREQUEST and OBJECT requests. | 
| -if (!chrome.webRequest.ResourceType || | 
| -    !("OBJECT_SUBREQUEST" in chrome.webRequest.ResourceType)) | 
| +if (!browser.webRequest.ResourceType || | 
| +    !("OBJECT_SUBREQUEST" in browser.webRequest.ResourceType)) | 
| { | 
| RegExpFilter.typeMap.OBJECT_SUBREQUEST = RegExpFilter.typeMap.OBJECT; | 
| } | 
|  | 
| // Map of content types reported by the browser to the respecitve content types | 
| // used by Adblock Plus. Other content types are simply mapped to OTHER. | 
| let resourceTypes = new Map(function*() | 
| { | 
| @@ -52,21 +52,21 @@ | 
| // Treat <img srcset> and <picture> the same as other images. | 
| yield ["imageset", "IMAGE"]; | 
| }()); | 
|  | 
| exports.filterTypes = new Set(function*() | 
| { | 
| // Microsoft Edge does not have webRequest.ResourceType or the devtools panel. | 
| // Since filterTypes is only used by devtools, we can just bail out here. | 
| -  if (!(chrome.webRequest.ResourceType)) | 
| +  if (!(browser.webRequest.ResourceType)) | 
| return; | 
|  | 
| -  for (let type in chrome.webRequest.ResourceType) | 
| -    yield resourceTypes.get(chrome.webRequest.ResourceType[type]) || "OTHER"; | 
| +  for (let type in browser.webRequest.ResourceType) | 
| +    yield resourceTypes.get(browser.webRequest.ResourceType[type]) || "OTHER"; | 
|  | 
| // WEBSOCKET and WEBRTC get addressed through workarounds, even if the | 
| // webRequest API is lacking support to block these kind of requests. | 
| yield "WEBSOCKET"; | 
| yield "WEBRTC"; | 
|  | 
| // POPUP and ELEMHIDE filters aren't blocked on the request level but by other | 
| // means. They don't have a corresponding value in webRequest.ResourceType. | 
| @@ -207,18 +207,18 @@ | 
|  | 
| port.on("request.blockedByWrapper", (msg, sender) => | 
| { | 
| // Chrome 58 onwards directly supports WebSocket blocking, so we can ignore | 
| // messages from the wrapper here (see https://crbug.com/129353). Hopefully | 
| // WebRTC will be supported soon too (see https://crbug.com/707683). | 
| // Edge supports neither webRequest.ResourceType nor WebSocket blocking yet: | 
| // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/10297376/ | 
| -  if (chrome.webRequest.ResourceType && | 
| -      (msg.requestType.toUpperCase() in chrome.webRequest.ResourceType)) | 
| +  if (browser.webRequest.ResourceType && | 
| +      (msg.requestType.toUpperCase() in browser.webRequest.ResourceType)) | 
| { | 
| return false; | 
| } | 
|  | 
| return ext.webRequest.onBeforeRequest._dispatch( | 
| new URL(msg.url), | 
| msg.requestType, | 
| sender.page, | 
|  |