feat: Add shared dictionary management APIs (#44950)

* Add bare-bones GetSharedDictionaryUsageInfo

* Add GetSharedDictionaryInfo()

* Improve API, use isolation keys

* Add documentation

* Update docs/api/session.md



* Update shell/browser/api/electron_api_session.cc



* Add tests

* Implement feedback <3

* Improve tests

* chore: lint

* docs: add note about clearing cache in ses.clearData

---------

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Felix Rieseberg <fr@makenotion.com>
This commit is contained in:
trop[bot] 2024-12-04 13:35:08 -08:00 committed by GitHub
parent c54f1f98fe
commit 9a7848ced1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 384 additions and 0 deletions

View file

@ -140,6 +140,12 @@ class Session final : public gin::Wrappable<Session>,
void CreateInterruptedDownload(const gin_helper::Dictionary& options);
void SetPreloads(const std::vector<base::FilePath>& preloads);
std::vector<base::FilePath> GetPreloads() const;
v8::Local<v8::Promise> GetSharedDictionaryInfo(
const gin_helper::Dictionary& options);
v8::Local<v8::Promise> GetSharedDictionaryUsageInfo();
v8::Local<v8::Promise> ClearSharedDictionaryCache();
v8::Local<v8::Promise> ClearSharedDictionaryCacheForIsolationKey(
const gin_helper::Dictionary& options);
v8::Local<v8::Value> Cookies(v8::Isolate* isolate);
v8::Local<v8::Value> Protocol(v8::Isolate* isolate);
v8::Local<v8::Value> ServiceWorkerContext(v8::Isolate* isolate);