Sync push subscriptions on every page load #370
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Close #354 (hopefully)
I tested this code using this patch:
You can then test the combination of page reloads, manually calling
navigator.serviceWorker.controller.postMessage({ action: 'SYNC_SUBSCRIPTION' })
and manually deleting the entry in IndexedDB to trigger synchronization.However, this solution is not perfect as mentioned in this article which was used for reference:
The article also mentions usage of background sync to also trigger (delayed) synchronization if the user loads a page which is available offline:
However, we don't have pages which users would regularly visit and are available offline at the moment. I also don't think adding background sync is worth it at the moment. I think the current changes should already fix 99% of cases why push subscriptions are lost.