A design and spec for ServiceWorker-based background synchronization