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
- 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.
Disable all the three listsUnblockgooglesyndication.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.
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.