Opened on 06/24/2014 at 06:22:48 PM
Closed on 06/25/2014 at 09:06:17 AM
#717 closed defect (duplicate)
Anti-Adblock script detects ABP despite "disable on page"
Reported by: | mapx | Assignee: | |
---|---|---|---|
Priority: | P4 | Milestone: | |
Module: | Adblock-Plus-for-Firefox | Keywords: | |
Cc: | trev, arthur | Blocked By: | |
Blocking: | Platform: | ||
Ready: | yes | Confidential: | no |
Tester: | Verified working: | no | |
Review URL(s): |
Description (last modified by mapx)
Environment
ABP 2.6.3.3836
firefox 31
easylist
How to reproduce
go to http://paidverts.com/
create an account (it's free)
click paid ads (8) on the right side
choose one of the ads (50 BAP stuff), click it
there are 3 steps and then "proceed with advertisers website"
if easylist is enabled "proceed with advertisers website" won't be visible and a detecting message will be shown "Please disable AdBlock and refresh to continue..."
I want to whitelist the site, click ABP icon, click "disable on paidverts.com"
Refresh page ==> the detecting message is still shown !
If I choose "disable everywhere" ==> correct behaviour
If I uncheck easylist ==> correct behaviour
Repeat all the steps (sure ...you don't need another account) in chrome (abp for chrome 1.8.3), the whitelisting will work correctly !
reported here:
https://adblockplus.org/forum/viewtopic.php?f=1&t=23720
Attachments (0)
Change History (9)
comment:3 Changed on 06/24/2014 at 08:59:34 PM by mapx
- Cc arthur added
comment:4 Changed on 06/25/2014 at 06:56:57 AM by philll
- Summary changed from ABP for firefox "disable on page" does not work to ABP for firefox "disable on page" does not work for one specific case
comment:5 Changed on 06/25/2014 at 07:56:08 AM by trev
- Summary changed from ABP for firefox "disable on page" does not work for one specific case to Anti-Adblock script detects ABP despite "disable on page"
comment:6 Changed on 06/25/2014 at 08:10:50 AM by trev
- Blocked By 521 added
- Priority changed from P2 to P4
- Ready set
The following code from http://paidverts.com/assets/scripts/paidads_view.js is responsible for this message:
var ads = document.getElementsByClassName('afs_ads'), ad = ads[ads.length-1]; if (!ad || ad.innerHTML.length==0 || ad.clientHeight===0) ...
This code is running via $(document).ready() meaning that it is executed on the DOMContentLoaded event. Unlike the load event, DOMContentLoaded event doesn't guarantee that the document is fully loaded. And in this particular case ad.clientHeight will be zero during DOMContentLoaded event but not the load event, simply a timing issue.
The timing difference is caused by an element hiding filter that applies to that element, an XBL binding has to load before the browser can determine whether the element should be shown. This is something that should be fixed by #521.
Reducing priority given that this is a long-standing issue that we can do fairly little about.
comment:7 Changed on 06/25/2014 at 08:36:14 AM by mapx
probably in chrome (where is working the exception filter and also the whitelisting) it's a different approach
the filter
is working in abp for chrome, but it doesnt work in firefox
(working means getting rid of the detecting message)