Saturday, December 03, 2005

Synchronizing bookmarks with Firefox: Hacking the extension

There is an awesome extension at http://addons.mozilla.org called the Bookmarks Synchronizer that allows you to synchronize your bookmarks stored in your Firefox local profile with either an FTP/WebDAV server. While this is common knowledge so is the fact that this extension has not been updated for the 1.5 version of Firefox.

I am sure an update will be posted soon as the extension author's webpage at http://torisugari.spymac.com/ (I am hoping this site is the author's - the name is the same but no other information is provided) features the updated extension for alpha/beta version of Firefox. I do not suggest installing extensions from unknown sources as there is no way to guarantee its security, so am posting this alternate solution to get the old version available at
Bookmarks Synchronizer to work with your Firefox 1.5 profile. To do so follow these steps:

  1. Download the extension from Bookmarks Synchronizer using the right click -> Save As... option.
  2. Rename the .xpi file to .zip (I am assuming that you are using windows. This may work with other OS but I have not tried it). Open the zip file in your favorite zip extractor and extract the contents and please preserve the folder structure.
  3. Open the folder where you have saved the extracted contents and go into the "chrome" folder.
  4. You will find a single file named "bookmarksftp.jar". Rename this file to "bookmarksftp.zip" and unzip it to another convenient location.
  5. Go into the "content" folder.
  6. Open the file "bmsyncOptions.js" in a text editor. Search for all the instances of the term "NC_NS" in this file and replace it with "gNC_NS". Save and close file in original location.
  7. In the same folder locate "selectFolder.xul" and open it in your text editor. Search for all the instances of the term "NC_NS" in this file and replace it with "gNC_NS". Save and close file in original location. (There should be only one instance in each file).
  8. Go to the parent folder and find "install.rdf". Open this file with a text editor and find the line with the text "". Change the number at this node to 1.5 (or even 1.5+). Save and close file in original location.
  9. Rename the zip file to jar and zip the contents back into the zip file and rename that zip file to xpi. At the end of this step you should have the original xpi with two minor modifications to the two files mentioned in step 6 and 7.
  10. Drag this .xpi file to your Firefox 1.5 window and install and restart Firefox.
  11. Test
Alternative method for those who are upgrading browsers and have a version of Bookmarks Synchronizer already installed:
  1. Open your profile folder. To find out where your profile folder is go to this link Mozilla Knowledgebase.
  2. Open the "extensions" folder. Navigate to the folder (it will have an odd name like {e133f188-27e7-401d-be2e-804643793acb}) under "extensions" which has a file named "bookmarksftp.jar" under the "chrome" folder.
  3. Follow steps 5 - 8 above.
  4. Having saved the new files back into the same location, zip the files up and rename the zip file preserving the name (but for extension from jar to zip and back to jar) to "bookmarksftp.jar",
  5. Drag the odd named folder (with the new bookmarksftp.jar) to any new profile to which you want the Bookmarks Synchronizer extension. If you made edits to your current profile then you should restart Firefox for the changes to show up. I would suggest doing this in an alternate location and then dragging the odd named folder, example stated above in point 2, to the extensions folder under your profile folder.
I should thank "Phil Kilinskas" as it was his comment on this extension that prompted me to find a solution to my problem. And fortunately it works well. For those waiting for this update before moving to Firefox 1.5 should be able to do so without waiting for the author as 1.5 really rocks.