lp:~urbanape/bindwood/dbus-and-local-uuids

Created by Zachery Bir and last modified
Get this branch:
bzr branch lp:~urbanape/bindwood/dbus-and-local-uuids
Only Zachery Bir can upload to this branch. If you are Zachery Bir please log in for upload directions.

Branch merges

Related bugs

Related blueprints

Branch information

Owner:
Zachery Bir
Project:
Bindwood
Status:
Merged

Recent revisions

13. By Zachery Bir <email address hidden>

Fix merge cruft

12. By Zachery Bir <email address hidden>

Merged lp:~sil/bindwood/find-desktop-couch-with-dbus

11. By Zachery Bir <email address hidden>

Merging in lp:~sil/bindwood/design-view

10. By Zachery Bir <email address hidden>

Summary: Use our own UUIDs, rather than Firefox's munged
session+something GUIDs.

I've promoted all the services to be attributes of the Bindwood object.

We create and store UUIDs as places annotations, though we maintain a
local cache to speed lookup, since there's no way to query the
Annotation Service for a bookmark with a particular annotatation
value.

In order to use the new onBeforeItemRemoved event, we must declare an
additional interface for our observer.

Something still seems to be prompting our code to no longer find the
annotation on delete, either, so we end up creating a new one. Since
this only affects the onItemChanged handler, it may be okay.

TODO: When we clobber local boomarks' URIs with values from Couch, we
were stomping directly on bookmark.metadata.spec. This is the wrong
way. We should use the IOService.newURI() function. However, non-web
site URIs don't seem to be handled by newURI() properly and throw
errors. We'll have to be more discriminating for things like recent
places and the like.

9. By Zachery Bir <email address hidden>

Aggregated the no-op functions, and reset the project name and URL.

8. By Zachery Bir <email address hidden>

Properly wire up onItemAdded and onItemChanged
handlers. on(Before)ItemRemoved not quite working.

7. By Zachery Bir <email address hidden>

Make the actual push sync work. It's becoming clear to me that we'll
need to make use of the Firefox bookmarks' GUIDs as the unifying key
in Couch and in Firefox, but I'm not positive yet on how to query our
local Firefox bookmarks by GUID. At the moment, I'm stuffing the GUID
onto the Couch record, but I don't think that will suffice long-term.

On pull, we'll need to do this query in order to properly handle new
upstream bookmarks. Until then, since itemIds are being used as the
unifying key, skew will occur.

6. By Zachery Bir <email address hidden>

Summary: Improve code layout, close some corner cases.

  - Finalize rename internal code references to 'Bindwood'

  - Move menuitem to the Bookmarks menu where it, uh, belongs.

  - Get rid of horrible awful trailing whitespace in our version of
    couch.js (per peeve)

  - Move everything in sync.js into a single Bindwood namespace

  - Ensure that the push operation only happens at startup on the
    first window open, and not on any subsequent new windows.

  - Change description to lose UbuntuOne reference.

5. By Zachery Bir <email address hidden>

Sync[1] the bookmarks when the extension loads each time. The policy will be (at least for now):

  * iterate over local bookmarks, updating them from CouchDB if present

  * iterate over CouchDB bookmarks, creating them locally if not present

Since we already respond to adding/deleting/updating bookmarks
locally, I think this will be a win, if only in the short term.

[1] Well, spit some stuff out to the console. We're not actually doing
this yet, but I have it all spelled out in comments.

4. By Zachery Bir <email address hidden>

Use couch.js exclusively, and use proper request payloads to make Couch happy.

Also, write to the log, rather than all the boring alert()s.

Branch metadata

Branch format:
Branch format 6
Repository format:
Bazaar pack repository format 1 (needs bzr 0.92)
This branch contains Public information 
Everyone can see this information.

Subscribers