| Left: | ||
| Right: |
| LEFT | RIGHT |
|---|---|
| 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-present eyeo GmbH | 3 * Copyright (C) 2006-present 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 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 188 // can just use the request's frame ID, but for subdocument requests | 188 // can just use the request's frame ID, but for subdocument requests |
| 189 // (e.g. iframes) we must instead use the request's parent frame ID. | 189 // (e.g. iframes) we must instead use the request's parent frame ID. |
| 190 details.type == "sub_frame" ? details.parentFrameId : details.frameId | 190 details.type == "sub_frame" ? details.parentFrameId : details.frameId |
| 191 ); | 191 ); |
| 192 } | 192 } |
| 193 | 193 |
| 194 if (checkWhitelisted(page, frame, originUrl)) | 194 if (checkWhitelisted(page, frame, originUrl)) |
| 195 return; | 195 return; |
| 196 | 196 |
| 197 let type = resourceTypes.get(details.type) || "OTHER"; | 197 let type = resourceTypes.get(details.type) || "OTHER"; |
| 198 let [docDomain, sitekey, specificOnly] = getDocumentInfo(page, frame, | 198 let [docDomain, sitekey, specificOnly] = getDocumentInfo(page, frame, |
|
kzar
2018/04/17 12:46:39
Perhaps it would be a nicer abstraction to have a
Sebastian Noack
2018/04/17 12:56:47
FWIW, I'm not too happy with this abstraction (jus
kzar
2018/04/17 13:54:06
Yea, fair enough.
| |
| 199 originUrl); | 199 originUrl); |
| 200 let [filter, urlString, thirdParty] = matchRequest(url, type, docDomain, | 200 let [filter, urlString, thirdParty] = matchRequest(url, type, docDomain, |
| 201 sitekey, specificOnly); | 201 sitekey, specificOnly); |
| 202 | 202 |
| 203 getRelatedTabIds(details).then(tabIds => | 203 getRelatedTabIds(details).then(tabIds => |
| 204 { | 204 { |
| 205 logRequest(tabIds, urlString, type, docDomain, | 205 logRequest(tabIds, urlString, type, docDomain, |
| 206 thirdParty, sitekey, specificOnly, filter); | 206 thirdParty, sitekey, specificOnly, filter); |
| 207 }); | 207 }); |
| 208 | 208 |
| (...skipping 21 matching lines...) Expand all Loading... | |
| 230 { | 230 { |
| 231 if (filter.collapse != null) | 231 if (filter.collapse != null) |
| 232 return filter.collapse; | 232 return filter.collapse; |
| 233 blocked = true; | 233 blocked = true; |
| 234 } | 234 } |
| 235 } | 235 } |
| 236 | 236 |
| 237 return blocked && Prefs.hidePlaceholders; | 237 return blocked && Prefs.hidePlaceholders; |
| 238 }); | 238 }); |
| 239 | 239 |
| 240 port.on("request.blockedByRTCWrapper", (msg, sender) => | |
| 241 { | |
| 242 let {page, frame} = sender; | |
| 243 | |
| 244 if (checkWhitelisted(page, frame)) | |
| 245 return false; | |
| 246 | |
| 247 let [docDomain, sitekey, specificOnly] = getDocumentInfo(page, frame); | |
| 248 let [filter, url, thirdParty] = matchRequest(new URL(msg.url), | |
| 249 "WEBRTC", docDomain, | |
| 250 sitekey, specificOnly); | |
| 251 | |
| 252 logRequest([sender.page.id], url, "WEBRTC", docDomain, | |
| 253 thirdParty, sitekey, specificOnly, filter); | |
| 254 | |
| 255 return filter instanceof BlockingFilter; | |
| 256 }); | |
| 257 | |
| 240 let ignoreFilterNotifications = false; | 258 let ignoreFilterNotifications = false; |
| 241 | 259 |
| 242 function onFilterChange(arg, isDisabledAction) | 260 function onFilterChange(arg, isDisabledAction) |
| 243 { | 261 { |
| 244 // Avoid triggering filters.behaviorChanged multiple times | 262 // Avoid triggering filters.behaviorChanged multiple times |
| 245 // when multiple filter hanges happen at the same time. | 263 // when multiple filter hanges happen at the same time. |
| 246 if (ignoreFilterNotifications) | 264 if (ignoreFilterNotifications) |
| 247 return; | 265 return; |
| 248 | 266 |
| 249 // Ignore disabled subscriptions and filters, unless they just got | 267 // Ignore disabled subscriptions and filters, unless they just got |
| (...skipping 21 matching lines...) Expand all Loading... | |
| 271 } | 289 } |
| 272 | 290 |
| 273 FilterNotifier.on("subscription.added", onFilterChange); | 291 FilterNotifier.on("subscription.added", onFilterChange); |
| 274 FilterNotifier.on("subscription.removed", onFilterChange); | 292 FilterNotifier.on("subscription.removed", onFilterChange); |
| 275 FilterNotifier.on("subscription.updated", onFilterChange); | 293 FilterNotifier.on("subscription.updated", onFilterChange); |
| 276 FilterNotifier.on("subscription.disabled", arg => onFilterChange(arg, true)); | 294 FilterNotifier.on("subscription.disabled", arg => onFilterChange(arg, true)); |
| 277 FilterNotifier.on("filter.added", onFilterChange); | 295 FilterNotifier.on("filter.added", onFilterChange); |
| 278 FilterNotifier.on("filter.removed", onFilterChange); | 296 FilterNotifier.on("filter.removed", onFilterChange); |
| 279 FilterNotifier.on("filter.disabled", arg => onFilterChange(arg, true)); | 297 FilterNotifier.on("filter.disabled", arg => onFilterChange(arg, true)); |
| 280 FilterNotifier.on("load", onFilterChange); | 298 FilterNotifier.on("load", onFilterChange); |
| 281 | |
| 282 port.on("request.blockedByRTCWrapper", (msg, sender) => | |
| 283 { | |
| 284 let {page, frame} = sender; | |
| 285 | |
| 286 if (checkWhitelisted(page, frame)) | |
| 287 return false; | |
| 288 | |
| 289 let [docDomain, sitekey, specificOnly] = getDocumentInfo(page, frame); | |
| 290 let [filter, url, thirdParty] = matchRequest(new URL(msg.url), | |
| 291 "WEBRTC", docDomain, | |
| 292 sitekey, specificOnly); | |
| 293 | |
| 294 logRequest([sender.page.id], url, "WEBRTC", docDomain, | |
| 295 thirdParty, sitekey, specificOnly, filter); | |
| 296 | |
| 297 return filter instanceof BlockingFilter; | |
| 298 }); | |
| LEFT | RIGHT |