w3c / webextensions

Charter and administrivia for the WebExtensions Community Group (WECG)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Proposal: Increase maximum item size in Storage sync quotas

erosman opened this issue · comments

Proposal: Increase maximum item size in Storage sync quotas

There is already a discussions on increasing the "Maximum total size" from 100KB to 1MB in Discuss limits applied to storage.local and storage.sync API.

This proposal concentrates on the "Maximum item size", as also mentioned in #351 (comment).

Storage quotas for sync data

  • Maximum total size 102,400 bytes (100KB)
  • Maximum item size 8,192 bytes (8KB)
  • Maximum number of items 512

Test Case

Syncing the following example would be within the "Maximum total size" allowed, however it fails due to the "Maximum item size".

The options are:

  • Giving up on storage sync
  • Breaking the large value into smaller values and recompile the data at the sync target
    (which adds undesired complexity to the operation and onChanged event)
{
  "a": "... 1kb data ...",
  "b": "... 1kb data ...",
  "c": "... 50kb data ..."
}

Proposal

Increase the "Maximum item size" to the maximum possible under the "Maximum total size"

See also

I'm using storage.sync in several of my extensions and I highly support this upgrade.
Although, to be realistic, 1MB may be too big upgrade for browser vendors. I would be happy even with 512KB or 256KB.
The biggest issue for my cases are:

  • the 8KB limit per item, this should be increased to as much as possible (at least 128KB would be great)
  • the 512 items limit, here I would go to 4096 or more, since users sometimes have thousands of notes/bookmarks/favorites, etc...

All vendors are against raising the maximum total size, but not immediately opposed to considering to raise the item sizes. Need to discuss internally.

To add a bit of context, vendors are against raising total storage limits because of the impact this would have on their synchronization services. The sync storage area is primarily meant as a way for extensions to share configuration or settings data across logged in browsers. It is not meant as a general purpose storage solution. Developers that need a way to store and sync larger amounts of data should consider standing up their own backends or look into cloud storage solutions.

The original proposal explicitly said: This proposal concentrates on the "Maximum item size", not "Maximum total size". So I will open a new issue for "Maximum total size", and copy related comments to there.