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/
https://gitlab.com/eyeo/adblockplus/adblockpluscore/merge_requests/9

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)

ad.png (5.8 KB) - added by mjethani on 11/20/2018 at 05:15:36 AM.
Ad
decoy.png (5.8 KB) - added by mjethani on 11/20/2018 at 05:15:50 AM.
Decoy

Download all attachments as: .zip

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

comment:3 Changed on 11/20/2018 at 05:10:42 AM by mjethani

  • Description modified (diff)

comment:4 Changed on 11/20/2018 at 05:11:36 AM by mjethani

  • Description modified (diff)

Changed on 11/20/2018 at 05:15:36 AM by mjethani

Ad

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:7 Changed on 11/20/2018 at 09:55:36 AM by mjethani

  • Review URL(s) modified (diff)

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

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

Add Comment

Modify Ticket

Change Properties
Action
as closed .
The resolution will be deleted. Next status will be 'reopened'.
to The owner will be changed from agiammarchi.
 
Note: See TracTickets for help on using tickets.