Open Bug 1637465 Opened 4 years ago Updated 1 year ago

Remove the kinto-based storage.sync implementation

Categories

(WebExtensions :: Storage, task, P3)

task

Tracking

(Not tracked)

People

(Reporter: markh, Unassigned)

References

(Depends on 1 open bug, Blocks 1 open bug)

Details

In bug 1623245 we added a new implementation of the storage.sync API, and in bug 1634615 we will enable it by default - at which point it will be considered deprecated. At some point after that we should remove it entirely.

in bug 1634615 we will enable it by default - at which point it will be considered deprecated.

Looks like there may be one wrinkle here: GeckoView.

This line causes GeckoView to build with the old Kinto sync backend rather than the new Rust backend, and references Bug 1625257 to track the work of replacing it.

From Bug 1316442 I infer that the storage.sync API does in fact store data correctly on Android using the Kinto backend, it's just that the data doesn't sync to the user's other devices. Since we don't even build the new Rust backend on Android, changing the above GeckoView config to flip webextensions.storage.sync.kinto to false would entirely break even local use of the storage.sync API. I assume would be an unacceptable regression.

So we may need to keep this code in the tree until Bug 1625257 gets resolved. :agi could you please gut-check whether my understanding above seems accurate?

Alternately, it may be possible to build the new Rust backend on Android and use it for local storage only, without building out all the infrastructure to plumb it in to the android-components AccountManager sync infrastructure. I'd be worried about that biting us down the road though, when we do come to make it sync.

Depends on: 1625257
Flags: needinfo?(agi)

Your understanding is correct. On Android/GeckoView storage.sync is mostly equivalent to storage.local and there are extensions published on Fenix that do rely on storage.sync to work so regressing that is definitely something we want to avoid.

Flags: needinfo?(agi)

Cross-linking Bug 1661407, in which I would have liked to remove the encryption keys used by the Kinto storage.sync backend, but wasn't able to because of the above considerations. When someone does come to remove the Kinto storage.sync backend, they should also remove the additional uses of the sync:addon_storage scope added in that bug.

When removing the kinto based implementation, kinto-offline-client.js and kinto-storage-adapter.js can be removed from m-c since they are not used by Remote Settings since Bug 1620185

Depends on: 1620185
Type: enhancement → task
Blocks: 1803748
You need to log in before you can comment on or make changes to this bug.