Wikimedia Events tracks changes to user_options via UserSaveOptions hook. When the user changes preferences, it tracks the change using PrefUpdate schema.
The problem is that it tracks updates preformend only on:
- Special:Preferences
- Special:MobileOptions
- via API action=options call and all other user_options changes are ignored.
We cannot track all user_options changes because we want to track only user initiated changes. As an example we don't want to track:
- an ongoing experiment where we enable HelpPanel to 50% of users (https://phabricator.wikimedia.org/diffusion/EGRE/browse/master/includes/HelpPanelHooks.php$60), this shouldn't be tracked
- we override the default Page previews isEnabled state to all new accounts (https://github.com/wikimedia/mediawiki-extensions-Popups/blob/master/includes/PopupsHooks.php#L158)
- We don't want to track any maintenance scripts.
Because of the above, we cannot enable that for all use changes. We need to provide a nice clean way.
There is a TODO in code that might help to implement the feature:
// TODO (mattflaschen, 2013-06-13): Ideally this would be done more cleanly without // looking explicitly at page names and URL parameters. // Maybe a `userInitiated` flag passed to saveSettings would work.