w3c / w3c/ServiceWorker

The Cache objects do not expire unless authors *or users* delete the entries.

Open
#1,276 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Bikeshed
Stars
3.6k
Forks
324
Avg merge
14d 22h
Merged PRs (30d)
1

Description

https://w3c.github.io/ServiceWorker/#cache-lifetimes says:

The Cache objects do not expire unless authors delete the entries.

I propose to extend this to allow the possibility of the user deleting caches and individual cache entries. While I don't think this is likely to be common, it does mean the cache storage mechanism has weaker overall consistency guarantees than are otherwise implied:

The Cache objects do not expire unless authors or users delete the entries.

This might be understood to mean that developers can rely on end-users not being able to modify cache contents — at least, not without running code using the developer tools or an equivalent mechanism. However, at least in Chrome, caches can also be manually removed by the user (for instance, to reduce exposure to privacy risks or to reclaim storage space) without necessarily stopping the origin's Service Workers or removing the origin's Service Workers or other storage.

For instance, using:

Settings > Advanced > Privacy & Security > Content settings > Cookies > See all cookies and site data > [hostname] > Cache Storage > X

... the user can remove all caches for an origin. Those caches are also removable using the developer tools, but given the intended audience I think it's less clear that that disagrees with the wording of the spec. That part is in:

Developer Tools > Application > Clear storage > [uncheck all but "Cache storage"], Clear site data

The developer tools also allow an individual cache or cache entry to be selected and deleted using the "Cache" tree in the side-navigation area.

+@inexorabletash

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the Cache lifetimes section at https://w3c.github.io/ServiceWorker/#cache-lifetimes and review the linked issue discussion for the intended wording. Update the statement to account for users deleting caches or individual entries, then verify that the resulting specification text matches the proposal.

Written by the indexing model from the issue text.

Assessment

Domain
documentation, web-dev
Issue type
Documentation
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.