| Left: | ||
| Right: |
| 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-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 328 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 339 } | 339 } |
| 340 }; | 340 }; |
| 341 | 341 |
| 342 function ElemHide() | 342 function ElemHide() |
| 343 { | 343 { |
| 344 this.shadow = this.createShadowTree(); | 344 this.shadow = this.createShadowTree(); |
| 345 this.style = null; | 345 this.style = null; |
| 346 this.tracer = null; | 346 this.tracer = null; |
| 347 this.inject = true; | 347 this.inject = true; |
| 348 | 348 |
| 349 this.elemHideEmulationPatterns = null; | |
| 349 this.elemHideEmulation = new ElemHideEmulation( | 350 this.elemHideEmulation = new ElemHideEmulation( |
| 350 window, | 351 window, |
| 351 callback => | 352 callback => { callback(this.elemHideEmulationPatterns); }, |
|
Sebastian Noack
2017/09/25 23:13:19
In the next step we should pass patterns just as a
Manish Jethani
2017/09/26 11:50:18
This might read better as another method of ElemHi
Sebastian Noack
2017/09/26 21:50:40
Since you don't have a strong opinion, I think I p
| |
| 352 { | |
| 353 ext.backgroundPage.sendMessage({ | |
| 354 type: "filters.get", | |
| 355 what: "elemhideemulation" | |
| 356 }, callback); | |
| 357 }, | |
| 358 this.addSelectors.bind(this), | 353 this.addSelectors.bind(this), |
| 359 this.hideElements.bind(this) | 354 this.hideElements.bind(this) |
| 360 ); | 355 ); |
| 361 } | 356 } |
| 362 ElemHide.prototype = { | 357 ElemHide.prototype = { |
| 363 selectorGroupSize: 200, | 358 selectorGroupSize: 200, |
| 364 | 359 |
| 365 createShadowTree() | 360 createShadowTree() |
| 366 { | 361 { |
| 367 // Use Shadow DOM if available as to not mess with with web pages that | 362 // Use Shadow DOM if available as to not mess with with web pages that |
| (...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 499 if (response.trace) | 494 if (response.trace) |
| 500 this.tracer = new ElementHidingTracer(); | 495 this.tracer = new ElementHidingTracer(); |
| 501 | 496 |
| 502 this.inject = response.inject; | 497 this.inject = response.inject; |
| 503 | 498 |
| 504 if (this.inject) | 499 if (this.inject) |
| 505 this.addSelectors(response.selectors); | 500 this.addSelectors(response.selectors); |
| 506 else if (this.tracer) | 501 else if (this.tracer) |
| 507 this.tracer.addSelectors(response.selectors); | 502 this.tracer.addSelectors(response.selectors); |
| 508 | 503 |
| 504 this.elemHideEmulationPatterns = response.emulated; | |
| 509 this.elemHideEmulation.apply(); | 505 this.elemHideEmulation.apply(); |
| 510 }); | 506 }); |
| 511 } | 507 } |
| 512 }; | 508 }; |
| 513 | 509 |
| 514 if (document instanceof HTMLDocument) | 510 if (document instanceof HTMLDocument) |
| 515 { | 511 { |
| 516 checkSitekey(); | 512 checkSitekey(); |
| 517 | 513 |
| 518 elemhide = new ElemHide(); | 514 elemhide = new ElemHide(); |
| 519 elemhide.apply(); | 515 elemhide.apply(); |
| 520 | 516 |
| 521 document.addEventListener("error", event => | 517 document.addEventListener("error", event => |
| 522 { | 518 { |
| 523 checkCollapse(event.target); | 519 checkCollapse(event.target); |
| 524 }, true); | 520 }, true); |
| 525 | 521 |
| 526 document.addEventListener("load", event => | 522 document.addEventListener("load", event => |
| 527 { | 523 { |
| 528 let element = event.target; | 524 let element = event.target; |
| 529 if (/^i?frame$/.test(element.localName)) | 525 if (/^i?frame$/.test(element.localName)) |
| 530 checkCollapse(element); | 526 checkCollapse(element); |
| 531 }, true); | 527 }, true); |
| 532 } | 528 } |
| OLD | NEW |