-
Notifications
You must be signed in to change notification settings - Fork 32
Description
Issue Details
Currently, AdGuard Browser Extension supports cosmetic CSS rules for hiding or removing elements, but it does not support text replacement in page content.
In uBlock Origin, this is possible using trusted scriptlets such as +js(rpnt, ...), which allow replacing text nodes in the DOM (for example, replacing all occurrences of "microsoft" with "microslop").
Example (works in uBlock Origin):
*##+js(rpnt, #text, /microsoft/gi, microslop, stay, 1)
This functionality is not available in AdGuard. The same rule is silently ignored, and there is currently no alternative mechanism to perform text replacement using filters.
CSS-only cosmetic rules cannot solve this, since CSS cannot modify text content—only hide or style elements.
Additional Notes
This feature would be useful for:
- Content modification
- Satirical or personal text replacements
- Accessibility or readability adjustments
- Consistency with advanced cosmetic filtering supported by other blockers
Proposed solution
Add support for a safe text-replacement mechanism in cosmetic filtering, for example:
- A limited scriptlet-like rule for replacing text nodes
- Or a dedicated filter syntax for search/replace in visible text
- Executed after DOM load, without requiring full custom JavaScript
The goal is not arbitrary JS execution, but a controlled feature to replace text content in the DOM, similar in scope to uBlock Origin’s rpnt.
Alternative solution
- Using CSS (
:has-text,:contains) → only hides elements, does not replace text - Using userscripts (Tampermonkey / Violentmonkey) → works, but requires an extra extension and is outside AdGuard’s filtering system
- Using uBlock Origin instead → not an option for users committed to AdGuard