bug 669390 changed <setting type="control"> to only allow <button> children and added <setting type="multi"> to handle <menulist> and <radiogroup> children.
This breaks many Firefox Mobile add-ons which use <setting type="control"> for <menulist> children.
We need a way to keep <setting type="control"> to keep working for add-on compatibility. Ideas?

One simple idea is to allow <setting type="control"> to have <menulist> children. Keep <setting type="multi"> as is, allowing <menulist> too.
This would allow old code still use the old binding, but new code will use the new binding.

Yea, that's the easiest way (er, and the only way?). In one of the reviews, I think I explicitly asked for <setting type="control"> to stop including <menulist>, since it was something we didn't want to support forever. But if that's causing pain...

Created attachment 562650[details][diff][review]
patch
This patch merely adds "menulist" back to the allowed children of <setting type="control">. This means the developer is responsible for handling the saving and loading of the preference to the control.
If the developer wants to let the binding handle the preference syncing, they should use <setting type="multi">
This patch does correct the problem in Firefox Mobile. We should consider this a compatibility fix only. Let's not try to make type="control" into something bigger than it already is.

(In reply to Henrik Skupin (:whimboo) from comment #11)
> Mark, do you have an example extension which was broken?
Bigger Text, by Matt Brubeck is one I tested. There are a few others too. Basically any add-on for Fennec that supplied it's own options is likely to fail.