Closed Bug 782924 Opened 7 years ago Closed 4 years ago

Distribution.ini should separate the concept of locale specific and localizable prefs

Categories

(Firefox :: Distributions, defect)

defect
Not set

Tracking

()

RESOLVED FIXED
Firefox 47
Tracking Status
firefox47 --- fixed

People

(Reporter: mkaply, Assigned: mkaply)

Details

Attachments

(1 file)

Looking in distribution.js, you'll see that for all Localizable Preferences, they are set as complex preferences.

[LocalizablePreferences]
startup.homepage_welcome_url="http://www.yahoo.com"

Is turned into the preferences

data:text/plain,startup.homepage_welcome_url=http://www.yahoo.com

This is incorrect.

startup.homepage_welcome_url is NOT a complex pref in Firefox and should not be turned into a complex pref.

http://mxr.mozilla.org/mozilla-central/source/browser/branding/official/pref/firefox-branding.js#6

The only think that LocalizablePrefs should do is the substitution of %LOCALE.

Then if the pref is a complex pref, it should do the "complex pref conversion"

Unfortunately, I know of no easy way to figure out if something is a complex pref, because the complex pref code uses getCharPref as a backup.

We'll probably have to have a list.
I just discovered this one again.

I think the right solution is to allow locale specific preferences separate from Localizable preferences.

Then things like startup.homepage_welcome_url would go in that section.
Assignee: nobody → mozilla
Summary: distribution.js incorrectly uses complex prefs for all localizable preferences → Distribution.ini should separate the concept of locale specific and localizable prefs
Component: General → Distributions
So this patch extends the concept of locale specific preferences to regular preferences not just localizable preferences.

Localizable preferences are only intended to be used when it is a complex preference. So:

browser.startup.homepage
browser.search.defaultenginename
browser.search.order.1
browser.search.order.2
browser.search.order.3
browser.contentHandlers.types.0.title
browser.contentHandlers.types.0.uri
gecko.handlerService.schemes.mailto.1.name
gecko.handlerService.schemes.mailto.1.uriTemplate

Are the only things that belong in the localizable preferences section.

In addition, I've added %LOCALE/%LANGUAGE% substitution to Preferences as well.

This should clear up the confusion, and I'll update https://wiki.mozilla.org/Distribution_INI_File when we are all done here.
Attachment #8725313 - Flags: review?(mixedpuppy)
Attachment #8725313 - Flags: review?(mixedpuppy) → review+
https://hg.mozilla.org/integration/fx-team/rev/d7ec3f281e341700a8b969518d4f6e72ea3a1621
Bug 782924 - Allow locale specific preferences in distribution.ini; r=mixedpuppy
https://hg.mozilla.org/mozilla-central/rev/d7ec3f281e34
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 47
You need to log in before you can comment on or make changes to this bug.