Places/AsyncAPIsForSync: Difference between revisions

no edit summary
No edit summary
No edit summary
Line 21: Line 21:
Description of Sync's bookmark record (includes folders, separators, livemarks, etc.): https://wiki.mozilla.org/Labs/Weave/Developer/BrowserObjects#bookmark
Description of Sync's bookmark record (includes folders, separators, livemarks, etc.): https://wiki.mozilla.org/Labs/Weave/Developer/BrowserObjects#bookmark


=Proposal=
==Proposal==


Introduce
Introduce
Line 33: Line 33:
TODO flesh these out
TODO flesh these out


=Read=
==Read==


For syncing out as well as conflict resolution, right now we call
For syncing out as well as conflict resolution, right now we call
Line 44: Line 44:
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==


We currently use the following nsINavBookmarksService methods to create items:
We currently use the following nsINavBookmarksService methods to create items:


insertBookmark()
* insertBookmark()
createFolder()
* createFolder()
insertSeparator()
* insertSeparator()
as well as nsILivemarkService::createLivemark()
* as well as nsILivemarkService::createLivemark()


When we make these or a subset of these async, how will be notified of the ID (and later, when we add GUIDs, their GUID)? Through an nsINavBookmarkObserver? Or will there be a callback we can pass into? We need the ID / GUID so that we can set various "bookmarkProperties/" annotations (description, loadInSidebar, staticTitle, etc.) as well as keywords via setKeywordForBookmark(). Ideally, of course, we could follow aforementioned theme and have the insert*Async() methods allow us to pass those in as well. Then we'd only need a callback for special cases such as microsummaries and tags.
When we make these or a subset of these async, how will be notified of the ID (and later, when we add GUIDs, their GUID)? Through an nsINavBookmarkObserver? Or will there be a callback we can pass into? We need the ID / GUID so that we can set various "bookmarkProperties/" annotations (description, loadInSidebar, staticTitle, etc.) as well as keywords via setKeywordForBookmark(). Ideally, of course, we could follow aforementioned theme and have the insert*Async() methods allow us to pass those in as well. Then we'd only need a callback for special cases such as microsummaries and tags.
Line 63: Line 63:


Same as with bookmarks, really, but much less complicated.
Same as with bookmarks, really, but much less complicated.
==Proposal==
Introduce
* addVisitsAsync(uri, title, [array of visits], callback)


==Read==
==Read==
canmove, Confirmed users
725

edits