uBlockOrigin/uBlock-issues

Blocking googlesyndication.com causes ##ins.adsbygoogle[data-ad-slot] not being applied

Yuki2718 opened this issue ยท 6 comments

Prerequisites

  • I verified that this is not a filter list issue. Report any issues with filter lists or broken website functionality in the uAssets issue tracker.
  • This is NOT a YouTube, Facebook or Twitch report. These sites MUST be reported by clicking their respective links.
  • This is not a support issue or a question. For support, questions, or help, visit /r/uBlockOrigin.
  • I performed a cursory search of the issue tracker to avoid opening a duplicate issue.
  • The issue is not present after disabling uBO in the browser.
  • I checked the documentation to understand that the issue I am reporting is not normal behavior.

I tried to reproduce the issue when...

  • uBO is the only extension.
  • uBO uses default lists and settings.
  • using a new, unmodified browser profile.

Description

As the title says.

A specific URL where the issue occurs.

https://webtan.impress.co.jp/n/2017/05/12/25720

Steps to Reproduce

  1. Visit the site and see this leftover which should be partly hidden. Will be the same even if you add ##ins.adsbygoogle[data-ad-slot] to My filters.

leftover

  1. Disable all the three lists Unblock googlesyndication.com by dynamic rule and add ##ins.adsbygoogle[data-ad-slot] if not yet done, refresh the page and see now the placeholder is partly hidden.

hidden

Expected behavior

##ins.adsbygoogle[data-ad-slot] should be applied as no $generichide or whatsoever

Actual behavior

Described

uBO version

1.57.0

Browser name and version

Chrome 123.0.6312.106 and Firefox 124.0.2

Operating System and version

Windows 10

Requires :watch-attr().


It's initially ins.adsbygoogle_ph.

Also does not work. No idea.

When element is visible, so it's not _ph, after reload the filter from EasyList is applied.


Yyyyy, because procedurals require to be specific??


Works when specific :?

Yes, works if specific. So maybe the problem is in DOM surveyor?

The surveyor does not trigger on attribute changes, only on layout changes. View-source shows that the class name is adsbygoogle_ph:

<div id="bancho_adsense_nodefooter" style="margin:0; display:flex; flex-wrap:wrap; justify-content:space-around; gap:1em 0; padding:.5em 0; overflow:hidden">
    <div style="display:inline-block; width:300px; max-width:300px; margin:0; overflow:hidden">
        <ins class="adsbygoogle_ph" style="display:inline-block;width:300px;height:250px" data-ad-client="ca-pub-4894439427301282" data-ad-slot="1000693078" data-ad-format="auto"></ins>
    </div>
    <div style="display:inline-block; width:300px; max-width:300px; margin:0; overflow:hidden">
        <ins class="adsbygoogle_ph" style="display:inline-block;width:300px;height:250px" data-ad-client="ca-pub-4894439427301282" data-ad-slot="2477426276" data-ad-format="auto"></ins>
    </div>
</div>

It works if relying on the attribute which does not change:

##ins[data-ad-slot]

Or when using specific filter:

impress.co.jp##ins.adsbygoogle[data-ad-slot]

I consider this is a duplicate of gorhill/uBlock#1885, see my comment closing the issue.

All right, I'll ask filter authors if we can change the rule to ##ins[data-ad-slot].

All right, I'll ask filter authors if we can change the rule to ##ins[data-ad-slot]

Not worth risking breaking what works well now for the sake of one case found which requires an easy workaround. ins[data-ad-slot] would be unconditionally injected on all sites as it can't be handled by the surveyor.