Oh, err. This commit also makes Action and SpecialPage context sources.
The reason why SpecialPage was not extending ContextSource is that SpecialPage::getTitle() differs from ContextSource::getTitle() since the former returns a Title object without subpage (when the argument is not passed) and the latter returns the full Title with subpage.
SpecialPage::getTitle()
ContextSource::getTitle()
Okay so why can't we just override it?
Because there's all sorts of code out there that relies on the current semantics of SpecialPage::getTitle(), as well as code that relies on the semantics of RequestContext::getTitle(). Those semantics conflict with each other, so they cannot be provided by the same function.
Marking fixme for the transformation of things into context sources that have conflicts. Any objection to a revert?
Frankly I'd revert on the fact alone that we have an interface declaration that includes a required method that says `@deprecated 1.19 Use getLanguage instead` in it, and the only reason for making the name change causing duplicate methods in the interface was stylistic changes to the name, absolutely no functional changes to the code.
We finally shipped 1.18 without this, so revert it and stick to the old name.
Note that RevisionListBase was also made into a ContextSource.
The method change is OK since there is a b/c alias. The changes to SpecialPage and Action were reverted in r104011. The RevisionListBase change is OK. Marking resolved.