I've been continuing work on the sync changes for formautofill. I chatted with Thom last week and agreed we should clean up the branch, so please be aware:

* The old branch named "formautofill" is now called "formautofill-old"
* There is a new branch called "formautofill" which has been rebased and collapsed - https://github.com/mhammond/gecko/tree/formautofill

In particular, this branch has only 5 patches, split somewhat logically into what might be able to land as they become ready. These patches are:

* Bug 1361965 - already has r+, and is just waiting for one of Luke's patches to move from autoland to central.

* A trivial patch which changes profileStorage.get() to return null instead of throwing an exception. I'll put this up for review tomorrow.

* A patch to support "tombstones" in ProfileStorage (while this is required for sync, the general functionality is independent of sync, so should be able to land soon). I'll put this up for review tomorrow, but if the autofill team would like to have a quick look at https://github.com/mhammond/gecko/commit/d4776be1767080b3fbc23cfc3f3045c8b51fd96b I'd appreciate it.

* Changes needed to profileStorage for sync (but *not* including tombstones - see above).

* The sync engine, and some other misc changes to sync itself to support the engine.

So the outstanding work I see for the sync team is:

1) Land the patch to bug 1361965, and get bugs open and review requested for both the "tombstone" and "get" patches mentioned above.

2) Self-review the current work on the new sync engine, possibly splitting into a number of different patches (eg, we've made some changes to sync itself, which should land separately).

3) Self-review the "sync profileStorage changes" patch and develop some stand-alone (ie, unrelated to sync) tests, and get that up for review, and as part of that, ensure that we haven't made changes that aren't actually used by the Sync engine.

4) Get some basic reconciliation logic in place for Sync - while we expect the formautofill team to own some of the reconciliation logic (eg, handling schema updgrades and/or profile merging), we should be able to get the sync parts of this in-place using simple reconciliation logic in anticipation of more complex logic being added later. The basis for this is in the sync patch, but it needs more work (in particular, see the end of FormAutofillSync.js, and the 1/2-baked tests at the end of test_sync.js)

5) profit?

I intend doing (1). Thom, I'm hoping that you and I can collaborate on (2) and (3). Kit expressed some interest in helping out with the reconciliation logic, so hopefully he can take (4). I'll chat with both of you tomorrow with more details.

Cheers,

Mark
_______________________________________________
Sync-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/sync-dev

Reply via email to