Getting your old Sync Server to work with New Firefox

Much has been written about Mozilla trying to force people to use their new sync service.  If, like me, you run your own sync server for Firefox, you’ve mostly been ignoring this because there’s still no real way of running your own sync server for the new service (and if you simply keep upgrading, Firefox keeps working with your old server).

However, recently I had cause to want to connect my old sync server to a new installation of firefox without just copying over all the config files (one of the config settings broke google docs and I couldn’t figure out which one it was, so I figured I’d just blow the entire config away and restore from sync).  Long ago Mozilla disabled the ability to connect newer Firefoxes to an old sync server, so this is an exposé of how to do it.  I did actually search the internet for this one, but no-one else seems to have figured it out (or if they have, they’re not known to the search engines).

There are two config files you need to update get new Firefox to connect to sync (note, I did this with Firefox 37; I’ve not tested it with a different version, but I’m pretty sure it will work).  The first is that you need to put your sync key and weave user login into logins.json.  Since the password and user are encypted in this file, the easiest way is to use a password manager extension, like Saved Password Editor add on.  Then you need two new password entries of type “Annotated” under the host chrome://weave.  For each, your username is your weave username.  For the first, you’re going to add your weave password under the annotation “Mozilla Services Password”.  For the second, add the Firefox  key with all the dashes removed as the password under the annotation “Mozilla Services Encryption Passphrase”.  If you’ve got all this right, password manager will show this (my username is jejb):

tmpNext you’re going to close firefox and manually edit the prefs.js file.  To sync completely from scratch, this just needs three entries, so firstly strip out every preference that begins ‘services.sync.’ and then add three new lines

user_pref("services.sync.account", "<my account>");
user_pref("services.sync.serverURL", "<my weave URL>");
user_pref("services.sync.username", "<my weave user name>");

For most people, the account and weave user name are the same.  Now start Firefox and it should just sync on its own.  To check that you got this right, go to the Sync tab of preferences and you should see something like this

tmp

And that’s it.  You’re all done.

16 thoughts on “Getting your old Sync Server to work with New Firefox

    1. jejb Post author

      I think so. I set up my sync server long ago before the protocol got deprecated, but I can’t see a reason why the legacy code wouldn’t work … it should be identical to what I’m running

      Reply
  1. GoldSilverWolf

    Thanks a million! I’ve been tearing my hair out for the past year or so after my own search on how to do this, I’ve tried adding the keys in about:config manually, but didn’t know about the chrome://weave password entries.

    And, to add insult to injury about the non-backwards-compatibility in Firefox for Windows/Linux/etc, Android provides for an option to enter a “Firefox (deprecated)” account, so you could sync Firefox for Android with a 1.1 sync server.

    Reply
  2. Megin

    In my first try (on 37.0.2) it failed with ‘not accepted by the server’. Comparing all “services.sync” prefs generated from your 3 lines config (I used user.js), there was a remarkable difference to my migrated profile set on FF24, which still connects to my local server after all updates.
    “services.sync.clusterURL” pointed to mozila service URL. I added a 4th line
    user_pref("services.sync.clusterURL", "");
    Now it works. Many thanks for this.

    Reply
  3. mike

    Ok, I could probably get this to work on the Firefox side, but I have to wonder how one actually creates an account on the sync server side (and create a Firefox key). I’m trying to set up a fresh sync server of the “old” variety. So far I haven’t managed to figure it out.

    Any ideas?

    Reply
  4. stephen

    I gave up on the Firefox sync server after this latest move (aside from anything else, it was generating an awful lot of log noise) and switched to running a webdav server and the Xmarks extension for syncing. Been running it for a few months now without issue.

    Reply
  5. Paulo

    Hi,

    Sadly doesn’t work on a fresh install of the new ff 41.x

    Now we have to run our own 1.5 Sync Server on our server… but too complicated for me to do it on my Qnap.

    cheers
    Paulo

    Reply
    1. jejb Post author

      > Sadly doesn’t work on a fresh install of the new ff 41.x

      It works for me on 41.0 but as an upgrade not as a fresh install. That means it will still work but perhaps something new about the configuration needs to be changed

      Reply
  6. NickH

    It may be easier just to download an old copy of Firefox (<v.29) form their download servers and install that. Then configure the sync server. Once configured and working just update to the latest version of Ff

    Reply
    1. jejb Post author

      If you do this, do a diff of the pristine prefs.js vs the one you get in the upgraded firefox. That will give a clue about what needs editing in the configuration to make it work on 40+

      Reply
      1. jejb Post author

        Actually, replying to my own comment, I just did a pristine install of 41.0.2 under OpenSuse and the procedure in the original blog entry still works for me. You do have to remember to set up the weave passwords *before* adding the weave preferences to prefs.js, if that helps

        Reply
  7. Carlos

    Just done this on a new windows 44.0 image.
    It did not work at once, but after setting the old prefs.js, the link setup “page” changed to offer alternate server parameters. (I did load them but it was as if sync was not enabled somehow)
    After reentering the params, sync is working with my own server. HTH.

    Reply
  8. TKR

    This didn’t work for me with the current FF 47.02 on Windows 10, however the following chain worked:

    FF 40.0.3 -> 43.01 -> 47.02

    I freshly installed 40.0.3, added the sync parameters as described in this article and updated via “About Firefox -> Search for Updates”

    The first update updated FF to 43.01, the second one to 47.02.

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.