Add simplified storage API
Provide a standard mechanism for accessing localStorage.
It may seems simplistic right now, but to give an idea of the why:
- We already have jquery.jStorage.js which is a much more heavyweight
approach to storing non-essential values.
- We are repeating ourselves a lot in extensions by having
to do localStorage detection and then deal with full localStorage.
In MobileFrontend we have a settings module. This is one of the reasons Gather
depends on MobileFrontend and I'm keen to remove that dependency.
- We might want to move to indexdb in future. Having a single API makes moving
this easier - we don't have to update everywhere that uses localStorage
- Saving non-string support would be useful. The API could be adjusted to take a
mixed second parameter that stringifys JSON objects.
- Cookie fallbacks are a possible alternative when localStorage is not supported. This allows
us to be agnostic of the storage mechanism going forward.
This doesn't reuse the handling in mediawiki.js as at this point
I am not sure there is value. mw.loader.store.enabled is false when
$wgResourceLoaderStorageEnabled is not true and this should work even
without that case. We can review this at a latter point.