There are many services within the MobileContext god object that will be extracted on a case-by-case basis. As there are many clients of the MobileContext class, it will have to act as a proxy for these new services until those clients are migrated. Since these new dependencies will have to be injected into MobileContext, we'll need to create the MobileFrontend.MobileContext service.
Note well that while MobileContext is a singleton, [its singleton instance can be overridden via MobileContext::setInstance](https://github.com/wikimedia/mediawiki-extensions-MobileFrontend/blob/master/includes/MobileContext.php#L121-L128).
TOREVIEW
- rEMFRcafd7fa3b620: Remove MFPageActions/MFEnableSiteNotice vars
- rEMFRf0ac32699cff: Name singleton overriding methods more clearly
- rEMFR8504f7238597: Hygiene: Remove BogusMobileContext
TODO
- Audit MobileContext::setInstance class, documenting:
- where and why the call is made
- how the call might be removed
- Create the MobileFrontend.Context service
- For backwards compatibility, make MobileContext::singleton defer to MediaWikiServices
- Remove calls to MobileContext::setInstance that can be safely removed
TODONE
- Introduce MediaWikiServices into the MobileFrontend codebase (rEMFR819064d68aba)