r/uBlockOrigin • u/GrumpyGhost55 • 3d ago
Solved Discovery+ (play.discoveryplus.com) — ad-tech scripts spam requests with zero backoff, working filters inside
Found this while investigating why a Discovery+ tab was pulling 10%+ CPU on a 10-core desktop just sitting open, paused, not even playing.
The problem: two ad-tech vendors' scripts — brightline.tv and litix.io — retry their requests continuously with no backoff, for as long as the tab stays open. Tens of thousands of requests over a session, tens of MB transferred. This was drawing over twice the pc's idle power.
What didn't fully work: basic network blocking (uBlock dropping the request) — the CPU stayed high because the script keeps re-attempting regardless of whether the request succeeds or fails.
What worked: killing the attempt itself with scriptlets, across all three request types per vendor (fetch/XHR/sendBeacon, since I wasn't sure which each one used):
play.discoveryplus.com##+js(no-fetch-if, /brightline\.tv\/config/)
play.discoveryplus.com##+js(no-xhr-if, /brightline\.tv\/config/)
play.discoveryplus.com##+js(no-sendBeacon-if, /brightline\.tv\/config/)
play.discoveryplus.com##+js(no-fetch-if, /litix\.io/)
play.discoveryplus.com##+js(no-xhr-if, /litix\.io/)
play.discoveryplus.com##+js(no-sendBeacon-if, /litix\.io/)
Results:
- CPU: 10%+ sustained → under 1%
- Requests: tens of thousands over minutes → ~6 over 20 minutes
Also tested three configurations for comparison:
- No blocker at all: moderate, rising CPU (2-4%)
- Blocker on, without these filters: worst result — high CPU (8-10%)
- Blocker on, with these filters: best result — under 1%
The middle case being worst suggests the instant-fail-and-retry cycle runs faster against a blocked request than a real network round-trip — so generic ad-blocking alone isn't enough here; you need to stop the script's own attempt
1
u/ale3smm 1d ago
I may be wrong but no-sendBeacon-if it's not a valid ublock filter to block filter you can either check link auditing in ublock settings or use some filters like this:
badsite.com##+js(set,navigator.sendBeacon,trueFunc)
badsite.com##+js(set,Navigator.prototype.sendBeacon,trueFunc)
trueFunc is smart because trick site thinking beacon is sent but actually is not !