AdguardTeam / AdguardTeam/Scriptlets

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

Đang mở
#502 0 bình luận 1 reaction 1 người được giao Được giao cho @slavaleleka Xem trên GitHub
enhancement Priority: P4
Ngôn ngữ chính
JavaScript
Star
195
Fork
33
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

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.

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.