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):
Next 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
And that’s it. You’re all done.
lateral question: what is this old personal sync server you’re talking about?
Well, if you’re not running one, you don’t need this article. It was a server you could host for the sync-1.1 protocol described here. The source code still exists but its now in the deprecated bucket.
… but I could still start using it now, right?
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
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.
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
Now it works. Many thanks for this.
Has anyone setup a Firefox Sync 1.1 server recently?
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.
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.
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.
> 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
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
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+
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
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.
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.