-
Notifications
You must be signed in to change notification settings - Fork 32
Description
In prevent-xhr scriptlet statusText always returns OK value:
Scriptlets/src/scriptlets/prevent-xhr.js
Line 148 in 0912476
| statusText: { value: 'OK', writable: false }, |
but it looks like that this value depends on web browser and version of HTTP.
According to - https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/statusText
Note: Responses over an HTTP/2 connection will always have an empty string as status message as HTTP/2 does not support them.
This seems to be true for Chromium based browsers, but in Firefox it returns OK value (if I'm right).
So maybe we could add an additional argument to set statusText to OK value or to empty string.
Or it could be done basing on the web browser, for Firefox OK value and for Chrome/Chromium empty string (probably the same for Safari).
Steps to reproduce
- Add this rule:
fiddle.jshell.net#%#//scriptlet('prevent-xhr', '/')- Go to - https://jsfiddle.net/crwLnjz6/
Code
const xhr = new XMLHttpRequest();
xhr.open('GET', '/', true);
xhr.onload = () => {
alert(`DONE, statusText: ${xhr.statusText}`);
};
xhr.send(null);In Chrome without the rule statusText is empty, but with rule it shows OK.
In Firefox it always shows OK.
Related issue - AdguardTeam/AdguardFilters#148345
To reproduce it's necessary to go to - https://extrogames.com/game/iron-world#download, choose Doodrive link and it should redirects to woowebtools.com.
Their code is obfuscated, but as far as I understand, it looks like that one of the things which are checked is if pagead2.googlesyndication.com/pagead/js/adsbygoogle.js is blocked and value of statusText of this request.
And in this case, in Chrome woowebtools.com#%#//scriptlet('prevent-xhr', 'pagead2.googlesyndication.com') doesn't fix anti-adblock detection, because statusText is checked.

