AdguardTeam / AdguardTeam/AdguardBrowserExtension
Add `!#if` conditional for trusted filters
- Dominant language
- TypeScript
- Stars
- 4.4k
- Forks
- 449
- PR merge metrics
- No merged PRs in 30d
Description
### Issue Details
I maintain [a custom filter list](https://github.com/Stevoisiak/Stevos-AI-Blocklist) which has includes rules for Amazon's AI assistant Rufus. These rules use a combination of cosmetic rules (which don't require trust) and scriptlets (which do require trust). This can [cause issues](https://github.com/Stevoisiak/Stevos-AI-Blocklist/issues/78) if the user does not have trusted filters enabled.
### Proposed solution
Add an [`!#if` condition](https://adguard.com/kb/general/ad-filtering/create-own-filters/#conditions-directive) to specify a set of rules should only run if trusted filters are enabled.
```
!#if trusted_filters
www.amazon.com#%#//scriptlet('set-session-storage-item', 'rufus:panel:dockedState', 'null')
www.amazon.com#%#//scriptlet('set-session-storage-item', 'rufus:panel', 'null')
www.amazon.com#%#//scriptlet('remove-class', 'rufus-docked-left|rufus-docked-right')
www.amazon.com###nav-flyout-rufus
www.amazon.com##body:style(padding-left: 0px !important)
!#endif
```
Ideally this addition would be coordinated with uBlock Origin's directives for [cross-compatibility](https://github.com/gorhill/ublock/wiki/static-filter-syntax#if-condition). Scriptlets which require trust in AdGuard but not in uBO could be handed by combining directives
```
!#if (trusted_filters || ext_ublock)
! for AdGuard with trusted filters or uBlock Origin
!#endif
```
### Alternative solution
Allow the use of [`remove-class`](https://github.com/AdguardTeam/Scriptlets/blob/master/wiki/about-scriptlets.md#remove-class) (or [some equivalent](https://github.com/AdguardTeam/AdguardBrowserExtension/issues/3538)) without requiring trusted filters.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.