Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prevent Adguard from hiding html or body when matched by a generic cosmetic filter #32

Open
3 tasks done
peace2000 opened this issue Aug 22, 2021 · 3 comments
Open
3 tasks done
Labels
enhancement New feature or request

Comments

@peace2000
Copy link

  • I am running the latest version
  • I checked the documentation and found no answer
  • I checked to make sure that this issue has not already been filed

Problem Description / ### Proposed Solution

There have been numerous occasions where Annoyance lists have blanked out websites because either html or body have contained values that have been matched by a generic cosmetic filter. This is a pretty common issue for Annoyance lists, though there have been a few occasions in normal adblocking as well.

Usually these issues have been fixed by adding :not(html) or :not(body) exception to the problematic generic cosmetic filter.

I was wondering if it would be reasonable to add a safeguard measure to Adguard: to prevent it from applying cosmetic filters, that have a match in html or body in websites where an user is visiting. I think that neither html or body should ever be blocked as that will result in a blank website.

One recent sample issue from Fanboy's Annoyance: easylist/easylist#8431 - https://webshop.elektroskandia.no/ was blanked out because body in that website had a value of .consent-summary-shown. It was matched by this generic GDPR filter: ##.consent-summary-shown. (It was later fixed by adding an exception: ##.consent-summary-shown:not(body)).

But that wasn't the only case. In Fanboy's Annoyance list, there are currently:

260 :not(html) exceptions
298 :not(body) exceptions

Adguard Annoyance:

127 :not(html) exceptions
160 :not(body) exceptions

Easylist:

4 :not(html) exceptions
7 :not(body) exceptions

I know these website blanking issues are mainly related to Annoyance lists that are not turned on by default in Adguard, but they are still available and people use them. Not all issues get reported to filter list maintainers and there could be many unreported issues relating to these lists. Each :not(html) or :not(body) exception that currently exists, are related to fixing blank websites.

A sample page to test this issue with:

https://webshop.elektroskandia.no/ (fixed now in Fanboy's Annoyance but this one is a recent case so I'll use it as a sample)

  1. Disable any possible Annoyance lists (to get rid of later added whitelistings)
  2. Add filter ##.consent-summary-shown
  3. Go to https://webshop.elektroskandia.no/
  4. Website will be blanked because there's a match in body element:

kuva

Alternatives Considered

Such don't really exist, unless each generic filter would be pre-supplied with :not(html):not(body) exception pre-emptively.

Additional Information

@peace2000
Copy link
Author

peace2000 commented Aug 23, 2021

Fyi, I have also opened this same issue report on uBO's and on ABP's issue trackers:
uBlockOrigin/uBlock-issues#1692
https://gitlab.com/eyeo/adblockplus/abc/adblockpluscore/-/issues/361

@yourduskquibbles
Copy link

@ameshkov FYI now that @gorhill added this functionality to uBO 1.37.3b15+ it would be helpful for testing/filter maintenance purposes to also see this implemented in AdGuard to help eliminate issues such as AdguardTeam/AdguardFilters#91708 (comment) and other issues that would end up only applying for AdGuard users.

Most filters I am coming up with are based on test environment in uBO so would like to have consistency in rules engine so know that I am not creating a possible issue for AdGuard users if I add a generic filter to Web Annoyances Ultralist. For the last couple years I try to stay away from adding generic filters anyway, but would be a nice feature to help other maintainers as well.

@ameshkov ameshkov transferred this issue from AdguardTeam/AdguardBrowserExtension Aug 25, 2021
@ameshkov ameshkov added the enhancement New feature or request label Aug 25, 2021
@krystian3w
Copy link

Also add this into ag apps for Windows/macOS/Android.

Maybe in iOS if Apple no block by limiting in content block API l.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

6 participants