Places/AsyncAPIsForSync: Difference between revisions

no edit summary
(Created page with "=Overview= Tracking bug for Sync: {{bug|606353}} =Bookmarks= {{bug|519514}} IMHO the overall theme here would be to provide powerful asynchronous methods to replace Sync's ma...")
 
No edit summary
Line 2: Line 2:


Tracking bug for Sync: {{bug|606353}}
Tracking bug for Sync: {{bug|606353}}
==Current situation==
Right now Sync calls various synchronousm Places API methods to read and write records, with the exception of history reads where it rolls its own asynchronous SQL queries.
==Problem==
Synchronous sqlite I/O is hurting us a lot on mobile.
==Proposed solution==
Provide powerful asynchronous methods to replace Sync's many synchronous calls. So instead of adding a bookmark and then adding a bunch of annotations to it, it would be great if Places had an API that would let us do it one go, do all the writes async and then call us back.


=Bookmarks=
=Bookmarks=
Line 7: Line 19:
{{bug|519514}}
{{bug|519514}}


IMHO the overall theme here would be to provide powerful asynchronous methods to replace Sync's many synchronous calls. So instead of adding a bookmark and then adding a bunch of annotations to it, it would be great if Places had an API that would let us do it one go, do all the writes async and then call us back.
Description of Sync's bookmark record (includes folders, separators, livemarks, etc.): https://wiki.mozilla.org/Labs/Weave/Developer/BrowserObjects#bookmark


tl;dr: Ideally we'd have methods like getBookmarkInfoAsync(), insertBookmarkAsync() and updateBookmarkAsync() that would return/take in as much information as we keep about bookmarks (see https://wiki.mozilla.org/Labs/Weave/Developer/BrowserObjects#bookmark) and do their work async.
=Proposal=
 
Introduce
 
* getBookmarkInfoAsync()
* insertBookmarkAsync()
* updateBookmarkAsync()
 
that return/take in as much information as we keep about bookmarks.
 
TODO flesh these out


=Read=
=Read=
Line 21: Line 43:


I imagine that this information could be retrieved with one query which could be wrapped into getBookmarkInfoAsync() or similar API call.
I imagine that this information could be retrieved with one query which could be wrapped into getBookmarkInfoAsync() or similar API call.


=Write=
=Write=
canmove, Confirmed users
725

edits