Closed Bug 1800186 Opened 2 years ago Closed 1 year ago

Stop the tab engine resetting itself every sync

Categories

(Firefox :: Sync, defect, P2)

defect

Tracking

()

RESOLVED FIXED
111 Branch
Tracking Status
firefox111 --- fixed

People

(Reporter: markh, Assigned: skhamis)

References

Details

(Whiteboard: [fxsync-])

Attachments

(2 files, 1 obsolete file)

The rust tabs engine insists we reset it before every sync - there's really no good reason to do that and it caused bug 1800185.

We should stop doing that :) This might not be trivial as the rust component has always worked this way, but it is certainly doable - and would benefit mobile too.

Whiteboard: [fxsync-]

The steps here are something like:

  • Arrange to store the syncid and the last-modified timestamp in a "meta" table like most other rust engines. This will require a "migration" to add the new table.
  • On every sync, store every record from the server (but in a way that takes https://github.com/mozilla/application-services/issues/5199 into account - ie, we don't want to assume the fxa-device-id of records we don't know about)
  • When returning tabs to the remote client, do the filtering based on devices we know about. The intent here is that even if we sync a record from a device when we don't know about it, if we later learn about it, we should ensure we start returning the old record even if it hasn't yet synced again. This might change how we store the records (ie, it might turn the db into more of a "mirror" of the server rather than changing what ID we use)
  • Have each sync stop deleting all records - it should just updating and/or adding but (never?) deleting.
  • Reset should continue to delete all local records. We should treat the lack of a timestamp (and maybe a zero too?) in the meta table as a reset too (ie, delete all rows)
  • Do our update with an X-I-U-S header.

End result is that each sync, including first sync for a run, only grabs records which have changed on the server, and we typically never re-read the one we wrote. Also, first run of a browser will return the last tabs we knew about when we shut down last time.

Assignee: nobody → skhamis

Comment on attachment 9313167 [details]
WIP: Bug 1800186: When sync removes a bookmark with a keyword, should also remove the keyword if necessary

Revision D167333 was moved to bug 1706933. Setting attachment 9313167 [details] to obsolete.

Attachment #9313167 - Attachment is obsolete: true
Pushed by skhamis@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/3ffcc94cbc54
Part 1: Vendor new version of application-services r=markh,bdk
https://hg.mozilla.org/integration/autoland/rev/73a09cea7e4b
Part 2: Stop the tab engine resetting itself every sync r=markh
Status: NEW → RESOLVED
Closed: 1 year ago
Resolution: --- → FIXED
Target Milestone: --- → 111 Branch
Regressions: 1818349
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: