LibWebView: Add methods to remove cookies / WebStorage items

This allows removing cookies and local/session storage items last
accessed since a provided timestamp.
This commit is contained in:
Timothy Flynn 2025-11-02 18:36:39 -05:00 committed by Tim Flynn
parent c2c269814a
commit 48aa16d74b
Notes: github-actions[bot] 2025-11-12 14:08:08 +00:00
4 changed files with 44 additions and 0 deletions

View file

@ -233,6 +233,11 @@ void CookieJar::expire_cookies_with_time_offset(AK::Duration offset)
m_transient_storage.purge_expired_cookies(offset);
}
void CookieJar::expire_cookies_accessed_since(UnixDateTime since)
{
m_transient_storage.expire_and_purge_cookies_accessed_since(since);
}
Requests::CacheSizes CookieJar::estimate_storage_size_accessed_since(UnixDateTime since) const
{
return m_transient_storage.estimate_storage_size_accessed_since(since);
@ -652,6 +657,18 @@ void CookieJar::TransientStorage::expire_and_purge_all_cookies()
purge_expired_cookies();
}
void CookieJar::TransientStorage::expire_and_purge_cookies_accessed_since(UnixDateTime since)
{
for (auto& [key, value] : m_cookies) {
if (value.last_access_time >= since) {
value.expiry_time = UnixDateTime::earliest();
set_cookie(key, value);
}
}
purge_expired_cookies();
}
Requests::CacheSizes CookieJar::TransientStorage::estimate_storage_size_accessed_since(UnixDateTime since) const
{
Requests::CacheSizes sizes;