Opened on 10/31/2018 at 08:45:20 PM
Closed on 11/22/2018 at 06:37:27 AM
Last modified on 12/04/2018 at 10:00:40 AM
#7088 closed change (fixed)
Implement hide-if-contains-image snippet
Reported by: | mjethani | Assignee: | agiammarchi |
---|---|---|---|
Priority: | P2 | Milestone: | |
Module: | Core | Keywords: | circumvention |
Cc: | agiammarchi, hfiguiere, Ross, BrentM, weissmar | Blocked By: | |
Blocking: | Platform: | Unknown / Cross platform | |
Ready: | yes | Confidential: | no |
Tester: | Ross | Verified working: | yes |
Review URL(s): |
https://codereview.adblockplus.org/29914555/ |
Description (last modified by mjethani)
Background
Sometimes ads are clearly labeled, but the label is an image loaded over the network. In such cases, it would help to be able to examine the image data to determine whether it is an ad label.
What to change
Implement a snippet called hide-if-contains-image with the following signature:
function hideIfContainsImage(search, selector, searchSelector)
Similar to hide-if-contains (#6809, #6847, and #6848), it should take a search "string" (in this case hexadecimal or Base64), a CSS selector to hide, and a CSS selector to search. It should examine the background-image computed style of the element matching searchSelector. If the background-image data (downloaded using fetch) matches the search string, it should hide the ancestor matching selector.
Hints for testers
Try this:
<!-- test.html --> <div id="lbiddvhck3"> Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. <div style="margin: 10px auto; display: inline-block; width: 728px; height: 90px; background-image: url(data:image/png;base64,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)"></div> </div> <script src="script.js"></script>
/* script.js */ setTimeout(() => { let ad = document.createElement("div"); ad.id = Math.random().toString(36).substring(2); ad.innerHTML = "<div style='margin: 10px auto; display: inline-block; width: 728px; height: 90px; background-image: url(data:image/png;base64,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)'></div>"; if (Math.random() < .5) document.body.insertBefore(ad, document.body.firstElementChild); else document.body.appendChild(ad); }, 500);
The filter example.com#$#hide-if-contains-image /^89504e470d0a1a0a0000000d49484452000002d80000005a08/ div[id] div should hide the ad but not the content.
Attachments (2)
Change History (16)
comment:1 Changed on 11/20/2018 at 03:37:49 AM by mjethani
- Ready set
- Status changed from new to reviewing
comment:2 Changed on 11/20/2018 at 03:38:38 AM by mjethani
- Cc agiammarchi hfiguiere Ross added
Changed on 11/20/2018 at 05:15:36 AM by mjethani
Changed on 11/20/2018 at 05:15:50 AM by mjethani
Decoy
comment:5 Changed on 11/20/2018 at 05:16:57 AM by mjethani
I have also attached the ad and decoy images so you can load them remotely over HTTP.
comment:6 Changed on 11/20/2018 at 09:54:18 AM by abpbot
A commit referencing this issue has landed:
Issue 7088 - Implement hide-if-contains-image snippet
comment:8 Changed on 11/20/2018 at 09:55:53 AM by mjethani
- Owner changed from mjethani to agiammarchi
comment:9 Changed on 11/22/2018 at 06:32:34 AM by abpbot
A commit referencing this issue has landed:
Issue 7088 - Implement a fetchContent smart cache/utility
comment:10 Changed on 11/22/2018 at 06:37:27 AM by mjethani
- Resolution set to fixed
- Status changed from reviewing to closed
comment:11 Changed on 11/27/2018 at 10:30:48 AM by abpbot
Some commits referencing this issue have landed:
comment:12 Changed on 11/27/2018 at 11:25:54 AM by kzar
- Cc BrentM weissmar added
comment:13 Changed on 11/30/2018 at 12:58:53 PM by Ross
- Tester changed from Unknown to Ross
- Verified working set
Done. This snippet seems to be working as described.
ABP 3.4.1.2204
Chrome 70 / 49 / Windows 10
Firefox 63 / 51 / Windows 10
comment:14 Changed on 12/04/2018 at 10:00:40 AM by mjethani
- Sensitive unset
Ad