This hook is very generic and very dangerous adding a lot of risk to support for legacy and modern Vector - it allows any extension to redefine template variables in a skin and as a result change the behaviour of a skin. In the past we've run into various problems in the skin in MobileFrontend where language_urls in the context of our skin means a list of languages but that seems to differ from core.
I believe we should understand the existing uses of it and provide more generic hooks to guide usage.
e.g. in the case of languages a SkinAddLanguageUrl hook would be better as this would also change the return result of getLanguages.
# Acceptance criteria
[] WikimediaMessages has been modified to use SkinAddFooterLinks https://gerrit.wikimedia.org/r/596247
[] MobileFrontend has been modified to use SkinAddFooterLinks [[ https://gerrit.wikimedia.org/r/#/c/mediawiki/extensions/MobileFrontend/+/594311/14 | 1 ]] [[ https://gerrit.wikimedia.org/r/596491 | 2 ]] [[ https://gerrit.wikimedia.org/r/596492 | 3 ]]
[] After the change has gone live (scheduled 21st May) update the config hook https://gerrit.wikimedia.org/r/596277
[] T252725 is resolved
[] Hook is marked as deprecated in core https://gerrit.wikimedia.org/r/596482
[x] A patch for WhoIsWatching exists (https://gerrit.wikimedia.org/r/596329)
-------
<https://www.mediawiki.org/wiki/Category:SkinTemplateOutputPageBeforeExec_extensions>
Current users of `SkinTemplateOutputPageBeforeExec` hook per https://codesearch.wmflabs.org/ (as of 2018-01-30)
* BreadCrumbs2
* `$tpl->set( 'subtitle', .. )`
* `$template->data['sidebar'][ .. ] = .. `
* `$wgLogo = ..`
* CookieWarning
* ` $tpl->data['headelement'] .= ..`
* ExtraLanguageLink
* `$sk->getOutput()->getProperty( 'extralanguagelinks' )`
* `$tpl->get( 'language_urls' )`
* `$tpl->set( 'language_urls', .. )`
* StickToThatLanguage
* `$tpl->set( 'language_urls',.. )`
* Wikibase
* `$template->set( 'language_urls', [] )`
* `$template->set( 'wbeditlanglinks`, .. )
* InterlanguageExtension
* `$template->data['language_urls'][] = ..`
* BlueSpiceFoundation, BlueSpiceReaders, BlueSpiceAuthors
* `$template->data['bs_..'][] = ..`
* HitCounters
* `$tpl->get( 'footerlinks' )`
* `$tpl->set( 'footerlinks', .. )`, `$tpl->set( 'viewcount', .. )`
* MobileFrontend
* `$tpl->data['footerlinks']`
* `$tpl->set( 'mobileview', .. )`
* `$tpl->set( 'footerlinks', .. )`
* `$tpl->set( 'desktop-toggle', .. )`, `$tpl->set( 'mobile-license', .. )`, `$tpl->set( 'privacy', .. )`,`$tpl->set( 'terms-use', .. )`
* SharedHelpPages
* `$tpl->set( 'copyright', .. )`
* UniversalLanguageSelector
* `$template->get( 'language_urls' )`, `$template->set( 'language_urls', .. )`
* WhoIsWatching
* `$tpl->set( 'numberofwatchingusers', .. )`
* Wikidata.org
* `$template->data['footerlinks'][] = ..`,`$template->set( .. )`
* WikidataPageBanner
* ` $tpl->set( 'prebodyhtml', .. )`, `$tpl->get( 'prebodyhtml' )`
* WikimediaMessages
* `$template->data['footerlinks'][] = ..`,`$template->set( .. )`