feat: Add shared dictionary management APIs (#44750)

* Add bare-bones GetSharedDictionaryUsageInfo

* Add GetSharedDictionaryInfo()

* Improve API, use isolation keys

* Add documentation

* Update docs/api/session.md

Co-authored-by: John Kleinschmidt <kleinschmidtorama@gmail.com>

* Update shell/browser/api/electron_api_session.cc

Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>

* Add tests

* Implement feedback <3

* Improve tests

* chore: lint

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

---------

Co-authored-by: John Kleinschmidt <kleinschmidtorama@gmail.com>
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
Co-authored-by: alice <alice@makenotion.com>
This commit is contained in:
Felix Rieseberg 2024-12-04 14:25:11 -03:00 committed by GitHub
parent 158a87d494
commit 687a59b43b
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);