AdguardTeam / AdguardTeam/AdguardBrowserExtension

Add `!#if` conditional for trusted filters

Open
#3,584 0 comments 0 reactions 1 assignee Assigned to @maximtop View on GitHub
Feature Request Priority: P4
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.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.