Tuesday, May 18, 2010

Tabs sync for Seamonkey with Weave Sync add-on

Oops, I'm late in submitting my weekly report! Things didn't go as planned for this week. I found that the tabs sync engine of weave that previously worked on SM in weave version 1.1 no longer worked for SM in weave 1.2.3. This is due to the changes brought on to weave in version 1.2 along with the new overlay which included the about:weave-tabs page for viewing 'Tabs From Other Computers'. The syncing functionality stopped working because now tabs were being accessed from the browser session instead of using gBrowser global variable. The browser session is accessed using the nsISessionStore interface. The XPCOM url for accessing nsISessionStore in SM is different from that of FX (SM: "@mozilla.org/suite/sessionstore;1" , FX: "@mozilla.org/browser/sessionstore;1"). Therefore the util.js file in weave modules had to be changed to get tabs sync working again in weave for version 1.2.3. Some other javascript files also required changes (FX specific code like gBrowser.loadOneTab and gBrowser.loadTabs had to be replaced.

Once the url was resolved tab sync was again fuctional in SM. The next task was to get the 'Tabs from other computers' menu displayed with a proper overlay and have the about: weave-tabs page correctly display the list of tabs from other computers.

I have written an experimental xpi for testing weave tabs sync on SM. I just tested this on the new Seamonkey 2.1 Alpha 1 which has just been released (http://www.seamonkey-project.org/releases/seamonkey2.1a1/). The xpi can be downloaded from here https://sourceforge.net/projects/tabs-for-sm-wv/files/.

This xpi has tabs sync working for SM. Next step is to report a bug in BMO and submit my patch to it. I still have one issue left to resolve though. It appears the code only syncs tabs between different SM instances. FX tabs for example do not show up on SM. This needs fixing.

It seems the biggest issue in getting weave sync to work on SM is that every time weave code is changed it is written specifically for FX so there is a chance SM fucntionality will be affected.


  1. Harini, in my work on weave for thunderbird, I abstracted the application specific code out to a separate extension, doing the same for seamonkey might be beneficial. some details, with links to my repos, at http://shane.caraveo.com

  2. hi mixedpuppy,

    tnx for the tip. actually i was already referring your weaver addon code to write a new sync engine. Adding semonkey support to weave-sync is the Google Summer of Code project I am working on and the project idea is to have seamonkey support built in to weave-sync addon. Making the new sync engine into a separate extension would also be useful and faster though. I will check on this with my project mentor.

    tnx again:)

  3. Here is my patch to get tabs sync to work in Seamonkey