| Index: lib/requestBlocker.js |
| =================================================================== |
| --- a/lib/requestBlocker.js |
| +++ b/lib/requestBlocker.js |
| @@ -147,17 +147,24 @@ |
| FilterNotifier.on("subscription.removed", onFilterChange); |
| FilterNotifier.on("subscription.updated", onFilterChange); |
| FilterNotifier.on("subscription.disabled", arg => onFilterChange(arg, true)); |
| FilterNotifier.on("filter.added", onFilterChange); |
| FilterNotifier.on("filter.removed", onFilterChange); |
| FilterNotifier.on("filter.disabled", arg => onFilterChange(arg, true)); |
| FilterNotifier.on("load", onFilterChange); |
| -port.on("request.websocket", (msg, sender) => |
| +// Before Chrome 58, the webRequest API didn't intercept WebSocket connections, |
| +// (see https://crbug.com/129353). Hence we patched the WebSocket object as a |
| +// workaround. WebSocket connections detected by this workaround are handled |
| +// below. |
| +if (!("WEBSOCKET" in chrome.webRequest.ResourceType)) |
| { |
| - return ext.webRequest.onBeforeRequest._dispatch( |
| - new URL(msg.url), |
| - "WEBSOCKET", |
| - sender.page, |
| - sender.frame |
| - ).indexOf(false) != -1; |
| -}); |
| + port.on("request.websocket", (msg, sender) => |
| + { |
| + return ext.webRequest.onBeforeRequest._dispatch( |
| + new URL(msg.url), |
| + "WEBSOCKET", |
| + sender.page, |
| + sender.frame |
| + ).indexOf(false) != -1; |
| + }); |
| +} |