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...
It is causing pain. We can work to get add-ons using the new binding, but we can't go cold turkey now.
This affects Fx8, which becomes "Beta" tomorrow/today.
Blair do you have time to put together a patch for this? We need to get it in nightlies a.s.a.p. so we can get the confidence to push it to the betas.
I am trying a patch too
Created attachment 562650 [details] [diff] [review]
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.
Created attachment 562655 [details] [diff] [review]
My patch is better! :-P
And also already on try. https://tbpl.mozilla.org/?tree=Try&rev=5c3a17a73d94
Thanks for the quick turn around guys!
Mark, do you have an example extension which was broken?
(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.
Comment on attachment 562655 [details] [diff] [review]
This patch was landed on Fx9 before Aurora, so it's already on Aurora now. We do need it on Beta though.
Safe, easy patch - with tests!
QA should track this fix across branches. Ioana, can one of you please verify this fix on the target branches, once it has been landed? Thanks.
Add-ons are working fine, including Bigger Text add-on.
Verified fixed on Aurora 9 and Firefox 8 Beta 3:
Mozilla /5.0 (Android;Linux armv7l;rv:9.0a2) Gecko/20111012 Firefox/9.0a2 Fennec/9.0a2 and
Mozilla /5.0 (Android;Linux armv7l;rv:8.0) Gecko/20111011 Firefox/8.0 Fennec/8.0
Geoff, I assume there is no manual test necessary? Please update the flag accordingly.