Closed
Bug 1219621
Opened 8 years ago
Closed 8 years ago
Decide how readonly DataAdapters should deal with local deletions on the phone
Categories
(Firefox OS Graveyard :: Sync, defect, P1)
Tracking
(relnote-firefox fixed)
RESOLVED
FIXED
FxOS-S11 (13Nov)
Tracking | Status | |
---|---|---|
relnote-firefox | --- | fixed |
People
(Reporter: mbdejong, Assigned: mbdejong)
References
Details
Attachments
(1 file)
In the readonly DataAdapters for the TV, whenever the DataStore is cleared (this happens on logout), remote data is reimported on next sync. On the phone, it's also possible that data that was previously imported in readonly mode is later cleared locally. For instance, when the user clears the browser history. I think it's not entirely "clear" ;) what should happen in this case. Should sync then only ever import records that were newly changed, for the rest of the lifetime of the device? Or reimport everything?
Assignee | ||
Updated•8 years ago
|
Assignee: nobody → mbdejong
Blocks: fxos-sync
Priority: -- → P2
Target Milestone: --- → FxOS-S10 (30Oct)
Assignee | ||
Comment 1•8 years ago
|
||
As data is imported, lastRevisionId should be updated, so that the sync cursor moves along with the changes caused by the import. Maybe already do a DataStore#sync after each add/update/delete, confirm that the action was successful (no conflict), and update lastRevisionId. Then, on next sync, the DataAdapter should check for new tasks from DataStore#sync, and: * update the matching table for record additions (hope we can query the kintoCollection by URL) * make sure that data that was imported earlier but then destroyed in a local action, is re-imported For the 2.5 TV the only tasks that come in will be DataStore#clear, and we're already dealing with that, so marking this bug as P3 (from the TV's point of view) / Sprint 11.
Priority: P2 → P3
Target Milestone: FxOS-S10 (30Oct) → FxOS-S11 (13Nov)
Assignee | ||
Comment 2•8 years ago
|
||
Just like we're already doing for 'clear', for every 'remove' and every 'update' task that removes the previously synced data, the DataAdapter should look up the record(s) affected and re-establish them in the DataStore. If the user doesn't want this to happen, then they can disable sync for that collection. The loop that does this (currently called checkIfClearedSince) can be the same loop as the one that syncs up for two-way sync.
Updated•8 years ago
|
Priority: P3 → P1
Assignee | ||
Comment 3•8 years ago
|
||
We would need a two-way matching table to do this properly. For now, I'll just re-run the whole Kinto collection if any records were removed (just like when the collection was cleared), and ignore the situation where DataStore records were updated (I don't think there would ever be an update that removes visits from a history entry, or that removes an entry from fxSyncRecords in a bookmark).
Comment 4•8 years ago
|
||
Assignee | ||
Updated•8 years ago
|
Attachment #8683077 -
Flags: review?(ferjmoreno)
Comment 5•8 years ago
|
||
I'm sorry, I don't follow your reasoning here. IIUC what this patch does is doing a full re-import every time a single item is removed from the bookmarks or history datastores. Is that the case? Again, in code comments would be really helpful ;)
Flags: needinfo?(mbdejong)
Updated•8 years ago
|
Attachment #8683077 -
Flags: review?(ferjmoreno)
Assignee | ||
Comment 6•8 years ago
|
||
Yes. It assumes that removing history entries one-by-one will not happen often. But I agree it's not ideal once we launch bookmarks UI on the phone. I'll add some code comments, and create a follow-up ticket to remind us that we need something better than this before launching bookmarks sync on the phone.
Flags: needinfo?(mbdejong)
Assignee | ||
Comment 7•8 years ago
|
||
Follow-up for improving efficiency in case of local deletions is bug 1223418.
Flags: needinfo?(ferjmoreno)
Assignee | ||
Comment 8•8 years ago
|
||
And code comment added.
Updated•8 years ago
|
Flags: needinfo?(ferjmoreno)
Attachment #8683077 -
Flags: review+
Comment 9•8 years ago
|
||
https://github.com/mozilla-b2g/gaia/commit/f8ad4581c5804053afc79ea0ad0a7c692f55ce94
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•