AdguardTeam / AdguardTeam/Scriptlets

Improve 'set-local-storage-item' — allow modifying nested properties

Abierto
#502 0 comentarios 1 reacción 1 asignado Asignado a @slavaleleka Ver en GitHub
enhancement Priority: P4
Lenguaje dominante
JavaScript
Estrellas
195
Forks
33
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

Currently, only top-level keys can be modified in local storage using the `set-local-storage-item` scriptlet. However, some applications store data in local storage by saving an object and using nested properties within it.

A good example is help.semmelweis.hu, where the result of the cookie notice is stored under the `app` key in local storage, specifically within a nested object such as `app.consentOptions.analytics`.

At the moment, there’s no way to do something like this:

```adblock
help.semmelweis.hu#%#//scriptlet('set-local-storage-item', 'app.consentOptions.functional', 'true')
help.semmelweis.hu#%#//scriptlet('set-local-storage-item', 'app.consentOptions.analytics', 'false')
help.semmelweis.hu#%#//scriptlet('set-local-storage-item', 'app.consentOptions.marketing', 'false')
```

For backward compatibility, perhaps the best option would be to add a new parameter that determines whether dots should be interpreted as nesting. The default value of this parameter would be `false`. There are two main reasons for this:
- currently, both ADG and uBO include an example in their documentation using `player.live.current.mute`, and
- there are also existing matches for the regex `'?set-local-storage-item'?, '?.*\.` in both the AdGuard Filters and uAssets.

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.