AdguardTeam / AdguardTeam/Scriptlets

Support text replacement via cosmetic/scriptlet rules (similar to uBlock Origin rpnt)

Abierto
#547 4 comentarios 0 reacciones 1 asignado Asignado a @maximtop Ver en GitHub
Feature request Priority: P4
Lenguaje dominante
JavaScript
Estrellas
195
Forks
33
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

### 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

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.