mode | screenshot | text |
---|---|---|
mobile | see below (table breaks) | |
desktop | (Username or IP removed) | |
{{#ifeq:{{FULLPAGENAME}}|Special:Contributions| [Username or IP has been suppressed for this edit. As an oversighter you can still see the edit in the user's contributions]|(Username or IP removed)}} when it's supposed to be (Username or IP removed).
Acceptance criteria
- Switch usages of $this->msg( 'rev-deleted-user' )->plain(); to $this->msg( 'rev-deleted-comment' )->escaped();
- Switch usages of $this->msg( 'rev-deleted-comment' )->plain(); to $this->msg( 'rev-deleted-comment' )->escaped();
- Make sure we've done this in all special pages - includes/specials/SpecialMobileContributions.php, includes/specials/SpecialMobileDiff.php and includes/specials/MobileSpecialPageFeed.php
Developer notes
This can be replicated on https://en.m.wikipedia.org/wiki/Special:History/User_talk:Ponyo when anonymous looking at 22 November 2018.
Interestingly, when I view this (as a logged in user) I see:
However when I look in incognito window I see the issue above.
It looks like the message being used has been overridden to use parsed HTML:
https://en.m.wikipedia.org/wiki/MediaWiki:Rev-deleted-user?action=edit
This can be fixed either by community editing that template OR MobileFrontend allowing HTML/wikitext .
To fix in MobileFrontend we'd need to do the following
Edit includes/specials/MobileSpecialPageFeed.php
Replace:
$username = $this->msg( 'rev-deleted-user' )->plain();
with
$username = $this->msg( 'rev-deleted-user' )->escaped();
We should also check the behaviour for $this->msg( 'rev-deleted-comment' )->plain(); and in other pages
Replication steps
- Ensure https://www.mediawiki.org/wiki/Extension:ParserFunctions is installed locally
- Edit rev-deleted-user with content
{{#ifeq:{{FULLPAGENAME}}|Special:Contributions| [Username or IP has been suppressed for this edit. As an oversighter you can still see the edit in the user's contributions]|(Username or IP removed)}}
- Enable delete revision for admins
$wgGroupPermissions['sysop']['deleterevision'] = true;
- See T118864 and give your username surpressor rights
- As an admin
- Visit a history page and "Change visibility of selected revision"
- In incognito visit the history page in mobile to see the problem