To address this one point more thoroughly:

> For example, we might also consider adding channels to allow us to
> remotely tickle desktop into fixing state — e.g., a command "upload this
> record if you've got it", or a "missing persons" collection. This allows us
> to potentially implement smart recovery before desktop can build and ship
> it themselves. This would require some desktop changes, but they'd be more
> tractable.
>

Sync has always had a "resetEngine" command:

https://dxr.mozilla.org/mozilla-central/source/services/sync/modules/engines/clients.js#216

This triggers a full resync of that engine:

https://dxr.mozilla.org/mozilla-central/source/services/sync/modules/engines.js#1590

That'll download and apply all records from the server (so the desktop
device will be forced to face its own corruption!), and in theory reupload
a consistent set.

In practice, I suspect that the initial redownload will make this worse
than introducing a selective reupload: it'll do painful things like undo
moves and recreate deleted bookmarks, then push all of those changes back
out to other clients.

*However*, it's possible that the iOS client is smart enough to *delete the
conflicting records from the server first*, allowing us to get what we want
without protocol changes, at the cost of a little increase in risk. I'd be
relatively comfortable implementing this as a 'Quick Fix' dialog: "pick
your main device from this list".
_______________________________________________
mobile-firefox-dev mailing list
mobile-firefox-dev@mozilla.org
https://mail.mozilla.org/listinfo/mobile-firefox-dev

Reply via email to