AdguardTeam / Scriptlets

AdGuard scriptlets library
GNU General Public License v3.0
138 stars 27 forks source link

Improve prevent-fetch — add ability to set random response content #416

Open AdamWr opened 3 months ago

AdamWr commented 3 months ago

Similar to - https://github.com/AdguardTeam/Scriptlets/issues/199#issuecomment-1063271758 but for prevent-fetch.

Also adding Content-Length header to response would be a good idea, related to - https://github.com/AdguardTeam/AdguardFilters/issues/175797 and https://github.com/AdguardTeam/AdguardFilters/issues/176137

Steps to reproduce:

  1. Add this rule:
    example.org#%#//scriptlet('prevent-fetch', 'pagead2.googlesyndication.com')
  2. Go to - https://example.org/
  3. In browser console run:
    (async () => {
    const ads = await fetch('https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js');
    const contentLength = (await ads.text()).length;
    const contentLengthHeader = Number(ads.headers.get('Content-Length'));
    if (!ads.ok || contentLength < 100 || contentLengthHeader < 100) {
        alert('Ads are blocked!');
    }
    })();

    Alert will be displayed.