As a CheckUser, It is quite common for me to find socks based on their contribution to the same deleted page. By contribution I mean both edits (which I can find in the deleted page's history with one cilck) and attempted edits (which I would find in AbuseLogs). The latter is not easy to get to: I have to copy the pages name, go to Special:AbuseLog, paste the page name, and submit the form. It would have been that much easier if in the subheader links for a delete page we had a link directly to that page's AbuseLog entries.
We do a similar thing on a user-level basis right now. If you go to Special:Contributions/SomeUser, you can see a direct link to that user's AbuseLog entries. This is because `SpecialContributions::getUserLinks()` has a hook called `ContributionsToolLinks` which it runs at the end of its process, allowing extensions like AbuseFilter to inject additional links to the subheader.
We also do this on a page-level basis for existing pages. If I go to the History view of an existing page, there is a direct link to the AbuseFilter log entries for that page (using the `HistoryPageToolLinks` hook).
However, for deleted pages, this is not the case. The landing page when click on a red link is the Edit action and the code that populates the subheader links for that page is in `Skin::getUndelteLink()` which does not have a hook to call.
This is particularly important for deleted pages because many socks are first identified by an admin who blocks them and deletes the inappropriate content they created, and the CU is run later to find additional socks based on those who recreated the same pages.
Action items for this task are:
[ ] Modify `Skin::getUndelteLink()` such that it would run a hook at the end of its process; this will include creating and documenting a new hook in MediaWiki core.
[ ] Add a callback for that hook in `AbuseFilterHooks.php`