toolz icon indicating copy to clipboard operation
toolz copied to clipboard

Issue using ad block test with Android 1DM+ browser?

Open rsngfrce opened this issue 3 years ago • 8 comments

Your ad block test is awesome and very useful, but I have come across a possible issue that is beyond my personal level of understanding.

When testing the Android 1DM+ browser, I got the following results:

11% just 1DM+ with ad blocking disabled. 3% just 1DM+ with ad blocking enabled. 100% 1DM+ with ad blocking disabled plus Blokada 4 (OISD/Goodbye Ads/Samsung Blocker/a few manually allowed and blocked hosts). 23% 1DM+ with ad blocking enabled plus Blokada 4 (OISD/Goodbye Ads/Samsung Blocker/a few manually allowed and blocked hosts.

I contacted the dev of 1DM+ to question why 1DM+ returns worse results with default ad blocking enabled.

Please see screenshots for 1DM+ dev response. Does his response make sense, indicating a problem with how the page detects ad blocking when using 1DM+?

Screenshot_20210410-094809_Telegraph

Screenshot_20210410-094646_Telegraph

Screenshot_20210410-094652_Telegraph

rsngfrce avatar Apr 10 '21 17:04 rsngfrce

Hi , thanks for the issue. Yes what 1DM+ dev said make sense, a lot . My tool detect the blocked host thanks to a connection error so if an adblock make different way of blocking , then my tool will give false positive results .

At the moment i didn't found a way to make the tool perfect as cors request can't be done . For now the tool works well only on Chromium browsers and with any type of ad blocking ( blokada , extension , dns etc.) It works on Firefox and Safari with some bugs sometimes . I didn't tested for other browsers engine like Android webview

So based on your infos as you can see with Blokada enabled the test works well as Blokada return a connection fail error . Enabling adblock in 1DM+ then it override the error with empty request , even if there is Blokada enabled

d3ward avatar Apr 10 '21 17:04 d3ward

Thanks for the detailed response, good to know! Can I suggest that you put some details about which browsers it works properly with on the test page so users will be aware? Still a GREAT tool, I used it to modify my Blockada hosts.

rsngfrce avatar Apr 10 '21 19:04 rsngfrce

Hi , thanks for the issue. Yes what 1DM+ dev said make sense, a lot . My tool detect the blocked host thanks to a connection error so if an adblock make different way of blocking , then my tool will give false positive results .

At the moment i didn't found a way to make the tool perfect as cors request can't be done . For now the tool works well only on Chromium browsers and with any type of ad blocking ( blokada , extension , dns etc.) It works on Firefox and Safari with some bugs sometimes . I didn't tested for other browsers engine like Android webview

So based on your infos as you can see with Blokada enabled the test works well as Blokada return a connection fail error . Enabling adblock in 1DM+ then it override the error with empty request , even if there is Blokada enabled

Hi 1DM dev here. I think you can read few bytes from the response stream and if it's empty consider the request blocked? (I assume all the urls in your tests return data)

vickyoo7 avatar Apr 10 '21 19:04 vickyoo7

23% 1DM+ with ad blocking enabled plus Blokada 4 (OISD/Goodbye Ads/Samsung Blocker/a few manually allowed and blocked hosts.

as you can see 77% ads were not blocked by Blokada when 1DM+ adblocking was enabled because the requests were not made/forwarded by 1DM+ (1DM+ adblocker returned 200 response with empty stream/data). So 1DM+ score should be 77+ with default filters which can be further improved by adding filter sources of your choice

vickyoo7 avatar Apr 10 '21 19:04 vickyoo7

Hi , thanks for the issue. Yes what 1DM+ dev said make sense, a lot . My tool detect the blocked host thanks to a connection error so if an adblock make different way of blocking , then my tool will give false positive results . At the moment i didn't found a way to make the tool perfect as cors request can't be done . For now the tool works well only on Chromium browsers and with any type of ad blocking ( blokada , extension , dns etc.) It works on Firefox and Safari with some bugs sometimes . I didn't tested for other browsers engine like Android webview So based on your infos as you can see with Blokada enabled the test works well as Blokada return a connection fail error . Enabling adblock in 1DM+ then it override the error with empty request , even if there is Blokada enabled

Hi 1DM dev here. I think you can read few bytes from the response stream and if it's empty consider the request blocked? (I assume all the urls in your tests return data)

This could be a solution but , can't work with that because of CORS

d3ward avatar Apr 27 '21 12:04 d3ward

23% 1DM+ with ad blocking enabled plus Blokada 4 (OISD/Goodbye Ads/Samsung Blocker/a few manually allowed and blocked hosts.

as you can see 77% ads were not blocked by Blokada when 1DM+ adblocking was enabled because the requests were not made/forwarded by 1DM+ (1DM+ adblocker returned 200 response with empty stream/data). So 1DM+ score should be 77+ with default filters which can be further improved by adding filter sources of your choice

What you said is correct . As i personally don't use 1DM and not sure how to detect it , if you know what error throws when a host get blocked i will be able to add a check specifically for 1DM

d3ward avatar Apr 27 '21 12:04 d3ward

23% 1DM+ with ad blocking enabled plus Blokada 4 (OISD/Goodbye Ads/Samsung Blocker/a few manually allowed and blocked hosts.

as you can see 77% ads were not blocked by Blokada when 1DM+ adblocking was enabled because the requests were not made/forwarded by 1DM+ (1DM+ adblocker returned 200 response with empty stream/data). So 1DM+ score should be 77+ with default filters which can be further improved by adding filter sources of your choice

What you said is correct . As i personally don't use 1DM and not sure how to detect it , if you know what error throws when a host get blocked i will be able to add a check specifically for 1DM

Not sure, but you should be able to get it by logging the error object

vickyoo7 avatar Apr 27 '21 13:04 vickyoo7

Hi , thanks for the issue. Yes what 1DM+ dev said make sense, a lot . My tool detect the blocked host thanks to a connection error so if an adblock make different way of blocking , then my tool will give false positive results . At the moment i didn't found a way to make the tool perfect as cors request can't be done . For now the tool works well only on Chromium browsers and with any type of ad blocking ( blokada , extension , dns etc.) It works on Firefox and Safari with some bugs sometimes . I didn't tested for other browsers engine like Android webview So based on your infos as you can see with Blokada enabled the test works well as Blokada return a connection fail error . Enabling adblock in 1DM+ then it override the error with empty request , even if there is Blokada enabled

Hi 1DM dev here. I think you can read few bytes from the response stream and if it's empty consider the request blocked? (I assume all the urls in your tests return data)

This could be a solution but , can't work with that because of CORS

Generally, ad servers allow requests from other domains otherwise they won't be able to scale. To confirm you can test your test urls

vickyoo7 avatar Apr 27 '21 13:04 vickyoo7