Comment 13 for bug 548866

Revision history for this message
Chris Coulson (chrisccoulson) wrote : Re: forgets middlemouse.contentLoadURL on upgrade

Note, that the fix for this bug is causing bug 643899 now that we have Sync in Natty, as it changes the way that the public preferences API works.

Note that the intl.accept_languages pref is set to "chrome://global/locale/intl.properties", which means that if you do nsIPrefBranch.getComplexValue() on that pref (which is how the network code sets the accept-language header), it will return a string containing a list of languages from the specified chrome file (and this chrome file is shipped in our language packs).

Firefox sync in Natty is synchronizing preferences, with intl.accept_languages being on the whitelist. (Note, that it syncs the value "chrome://global/locale/intl.properties" between nodes). When a node receives this preference, it does nsIPrefBranch.setComplexValue(). On a default mozilla.org build of Firefox where the user hasn't changed this preference, this action is benign (because it discards user prefs when they equal the default system-pref setting). However, on Ubuntu, this actually saves "chrome://global/locale/intl.properties" as a user pref. Unfortunately, user-prefs don't support localization (they don't need to), so a subsequent call to nsIPrefBranch.getComplexValue from the network code returns "chrome://global/locale/intl.properties" rather than a nice list of languages (eg, "en-us, en").

This is a pretty serious bug for Natty users - it's breaking essential websites such as most Google sites (and is also visible to Mozilla). I think we're going to have to regress this to fix bug 643899 unfortunately....