AdguardTeam / AdguardTeam/Scriptlets

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

Offen
#502 0 Kommentare 1 Reaktion 1 zugewiesene Person Zugewiesen an @slavaleleka Auf GitHub ansehen
enhancement Priority: P4
Vorherrschende Sprache
JavaScript
Sterne
195
Forks
33
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

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.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.