lp:~urbanape/bindwood/complete-sync

Created by Zachery Bir and last modified
Get this branch:
bzr branch lp:~urbanape/bindwood/complete-sync
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

26. By Zachery Bir

renamed this shell script

25. By Zachery Bir

Belt and suspenders when dealing with onItemAdded.

24. By Zachery Bir

Small changes to clarify, and add back in some debugging

Mostly, I've made all references to bookmarks "list" -> "folder", for
consistency's sake.

I had a few places where I was still referring to a (now, absent)
Bindwood.pushSettings object. Now, I just use the strings "ENABLED"
and "DISABLED".

Only perform the onItemChanged for regular attributes, not for
annotations.

Make all makeLocalChangeOnly calls explicitly return, in case we need
to assign the results.

23. By Zachery Bir

SUMMARY: reorganization and reimplementation to support complete
syncing of bookmarks, and prevent unnecessary network traffic.

This branch fixes bugs #404193, #408282, #406839, and #396186.

Bindwood was not initially implemented to be re-entrant. When we were
first annotating newly created bookmarks in preparation for storage in
CouchDB, the act of annotation caused a change notification, which
then went through and performed additional network checks. Similarly,
when pulling records from CoucDB, if any local modifications were
necessary, those changes would prompt notifications which would turn
around and propagate those changes back over the network, where they
originated.

Now Bindwood operates in one of two modes when it comes to propagating
changes over the network. Only when absolutely necessary, do we save
documents back to Couch. In cases where only a local change is
warranted, we set a flag to avoid network traffic.

Previously, Bindwood operated on the assumption that all methods for
adding a bookmark were like "New Bookmark", i.e., prompting an
onItemAdded event for the initial bookmark, and onItemChanged events
for each subsequent property that is changed. When adding a bookmark
via "Bookmark this Page", however, at least the title and URI are
provided in the onItemAdded event. This information was lost, as we
expected to send it via the subsequent change event. Now, when
onItemAdded is called, we try to glean as much information about the
bookmark as possible (at least title and URI).

Bindwood never made any attempts to keep syncing behavior constrained
to the current profile. This could lead to all profiles' bookmarks
being effectively replicated across all profiles. Now, Bindwood
restricts itself to operating only on the "default" profile. When
launched under a different profile with Bindwood installed, we log an
error message and do nothing. There is room in the future to support
syncing profiles, so long as the profiles are named the same across
machines.

22. By Zachery Bir

Removed Bindwood debugging

21. By Zachery Bir

Woops, renamed this variable

20. By Zachery Bir

Finally finished wrestling this to the ground. I was accidentally throwing away anything but the headers from requestOptions in this.request.

Now, Bindwood actually speaks OAuth.

19. By Zachery Bir

- We don't need to do the three-legged oauth dance, so rip out the authentication/authorization code.

- OAuth.completeRequest also signs the message, so no need to do it again

- Pad the message with more empty keys, and don't append a trailing slash. This enables the oauth code to generate the same signature as our python code does.

18. By Zachery Bir

Send all OAuth information in headers, regardless of request method. More instrumentation.

17. By Zachery Bir

Slightly more instrumentation and separated the try/catch block for authentication

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