AdguardTeam / AdguardTeam/AdGuardHome
Feature Request: Configurable blocking trigger periods for Blocked Services and Custom Filtering Rules
- Lingua principale
- TypeScript
- Stelle
- 36.9k
- Fork
- 2.5k
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
### Prerequisites
- [X] I have checked the [Wiki](https://github.com/AdguardTeam/AdGuardHome/wiki) and [Discussions](https://github.com/AdguardTeam/AdGuardHome/discussions) and found no answer
- [X] I have searched other issues and found no duplicates
- [X] I want to request a feature or enhancement and not ask a question
### Description
#### What problem are you trying to solve?
My research using Untangle Firewall Blocking Rules shows that if particular domain block rules are allowed for a limited time after initial triggering, the service will authenticate properly but not realize certain downstream aspects have started to be blocked thereby limiting video playback. An effect on a video streaming service with ads like Hulu would be the authentication and video ads manifest loads properly, but when it's time to play the video ads at commercial breaks, the video sources will be available for a few seconds (configurable) but have started to be to be blocked. The net result; the Hulu player application will usually skip to the end of the video ad segment and return to the next portion of the movie or show episode. With both Netflix and Disney+ adding a future ad tier, applying timing sequences to video ad domains may be the best solution to suppressing video ads as they all are using VPN pass-through detection technology.
#### Proposed solution
For each row of a Custom REGEX filter like: /^ad([sxv]?[0-9]*|system)[_.-]([^.[:space:]]+\.){1,}|[_.-]ad([sxv]?[0-9]*|system)[_.-]/
Add an option allowing the user two timing options:
a. Amount of time in seconds/milliseconds after trigger before rule is enforced: 0 = enforce immediately
b. Amount of time in seconds/milliseconds after enforcing rule to stop enforcing rule: 0 = enforce indefinitely
The combined actions of timers (a) and (b) allow for a defined "pulse" period* where a domain could:
1. If a = b = 0: @ every trigger event: Act as currently defined by Custom Filtering Rules behavior (ie. block always)
2. If a (xx) > 0 and b = 0: @ every trigger event: Do not block for xx seconds after trigger, then start blocking indefinitely
3. If a = 0 and b (xx) > 0: @ every trigger event: Block immediately, then allow indefinitely starting xx seconds after trigger
4. If a > 0 (xx) and b (yy) > 0: @ every trigger event: Do not block for xx seconds after trigger, then start blocking for yy seconds. After yy seconds, then allow indefinitely.
#### Alternatives considered
Add blocked Service options that are only video ads :: "Hulu Ads" - hides above algorithm/blocking behavior from user.
For example there would appear two Hulu options:
Hulu [Toggle]
Hulu Video Ads [Toggle]
Netflix [Toggle]
NetflixVideo Ads [Toggle]
#### Additional information
* Note: Each trigger event should restart timer. However, this could lead to a supposition of behavior that approximates a constantly blocked or constantly unblocked rule. Extensive testing should be done to "tune" expected behavior.
Guida per i contributori
Apri la guida per i contributori
Valutazione
Questa issue non è ancora stata valutata.