Easy (temporary) fix for the recent adblocking issues with Adhell

I hope this helps everyone who is experiencing the recently surfaced issue with Adhell ad blocking in Chrome. Read on if you have recently started seeing ads in Chrome, while Firefox and other apps are unaffected and blocked.



The cause of the issue is Chrome itself (not Adhell). It appears that Chrome has a built-in DNS client. Under certain conditions related to the accessibility of certain Google servers, Chrome bypasses the OS DNS client and starts using its own asynchronous DNS client. Thus, even if we are pushing our own hosts file using one of Knox APIs, Chrome (and only Chrome) will retain the ability to resolve the ad servers IPs.



The current (temporary) fix for that is as follows:



1. Go to chrome://flags

2. Search for "dns"

3. Set the "Async DNS" option to "Disabled". Close tab.

4. Go to chrome://net-internals

5. Select the DNS tab, and tap on "Clear Cache"

6. Restart Chrome



Voila - Chrome will fall back to the OS DNS client, and ad blocking will be back to normal.



This is a temporary fix, as undoubtedly our friends at Google will remove the async DNS flag eventually. After all, why even bother to build in a horrible, insecure feature like this other than to fight hosts-based ad blockers? The long-term fix would be to block any and all DNS queries (UDP or TCP port 53) made by Chrome app directly. It really should not be doing that.



I am contemplating a complete switch to Firefox after this fiasco.