After the change of cache architecture, we meet T294675 and Change the way of fetching global preferences.
But there is another problem: if the default preference was set in the form descriptor and a local exception was set, the Special:GlobalPreferences page can't reflect the global one.
This affected one field provided by core: timecorrection. Provide default value by form descriptor is valid and extensions may also have some use cases.
I think we can Convert the GlobalPreferences\Storage class to GlobalUserOptionsManager or something compatible with UserOptionsManager, then inject it to GlobalPreferencesFactory lively (before the call to parent::getFormDescriptor() and restore the default one later).
Description
Description
Related Objects
Related Objects
Event Timeline
Comment Actions
Detail about how to reproduce the bug is described in T298003, and a simple fix is proposed.