Page MenuHomePhabricator

Action::getPageTitle(), SpecialPage::getDescription(), some other methods should return a Message in all cases
Open, Needs TriagePublic

Description

Right now, the first parameter to OutputPage::setPageTitle() can be either a Message or a string, which confuses phan-taint-check. But in almost all cases, passing a Message is the correct thing to do; passing a string is an indication that the page title has not been properly localized. In the few exceptions (where the title is set to an article display title) you can pass in a RawMessage object to encapsulate the already-localized string.

Details

SubjectRepoBranchLines +/-
mediawiki/extensions/MultiMailmaster+3 -2
mediawiki/extensions/TwnMainPagemaster+1 -1
mediawiki/coremaster+2 -1
mediawiki/extensions/WikibaseLexememaster+10 -1
mediawiki/coremaster+115 -33
mediawiki/coremaster+67 -29
mediawiki/coremaster+32 -13
mediawiki/coremaster+16 -6
mediawiki/coremaster+5 -18
mediawiki/coremaster+21 -9
mediawiki/coremaster+6 -6
mediawiki/coremaster+30 -13
mediawiki/coremaster+13 -5
mediawiki/extensions/WikibaseLexememaster+1 -1
mediawiki/extensions/Wikibasemaster+1 -1
mediawiki/extensions/Echomaster+3 -3
mediawiki/extensions/Wikibasemaster+12 -9
mediawiki/extensions/FileImportermaster+1 -1
mediawiki/extensions/WikibaseLexememaster+1 -1
mediawiki/coremaster+77 -24
mediawiki/extensions/CheckUsermaster+2 -2
mediawiki/extensions/GrowthExperimentsmaster+9 -11
mediawiki/coremaster+8 -2
mediawiki/coremaster+85 -67
mediawiki/coremaster+5 -5
mediawiki/coremaster+49 -2
mediawiki/extensions/ConfirmEditmaster+2 -2
mediawiki/coremaster+1 -1
mediawiki/extensions/GrowthExperimentsmaster+9 -11
mediawiki/extensions/WikibaseLexememaster+2 -2
Show related patches Customize query in gerrit

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes

Change 946986 had a related patch set uploaded (by C. Scott Ananian; author: C. Scott Ananian):

[mediawiki/core@master] Deprecate string parameter to OutputPage::setPageTitle()

https://gerrit.wikimedia.org/r/946986

Change 947004 had a related patch set uploaded (by C. Scott Ananian; author: C. Scott Ananian):

[mediawiki/core@master] Pass first parameter to OutputPage::prepareErrorPage() as a Message

https://gerrit.wikimedia.org/r/947004

Change 947005 had a related patch set uploaded (by C. Scott Ananian; author: C. Scott Ananian):

[mediawiki/core@master] Deprecate returning a string from Action::getPageTitle()

https://gerrit.wikimedia.org/r/947005

Change 947007 had a related patch set uploaded (by C. Scott Ananian; author: C. Scott Ananian):

[mediawiki/core@master] SpecialPage::getDescription() should return a Message

https://gerrit.wikimedia.org/r/947007

Change 947008 had a related patch set uploaded (by C. Scott Ananian; author: C. Scott Ananian):

[mediawiki/core@master] OutputPage::{setPageTitle,prepareErrorPage} always take Message as 1st param

https://gerrit.wikimedia.org/r/947008

Change 947011 had a related patch set uploaded (by C. Scott Ananian; author: C. Scott Ananian):

[mediawiki/extensions/Wikibase@master] Actions::getPageTitle() can return a Message; no need to ::parse() it

https://gerrit.wikimedia.org/r/947011

Change 947012 had a related patch set uploaded (by C. Scott Ananian; author: C. Scott Ananian):

[mediawiki/core@master] Deprecate returning a string from SpecialPage::getDescription()

https://gerrit.wikimedia.org/r/947012

Change 947014 had a related patch set uploaded (by C. Scott Ananian; author: C. Scott Ananian):

[mediawiki/extensions/GrowthExperiments@master] SpecialPage::getDescription() should return a Message

https://gerrit.wikimedia.org/r/947014

Change 947021 had a related patch set uploaded (by C. Scott Ananian; author: C. Scott Ananian):

[mediawiki/extensions/Wikibase@master] SpecialPage::getDescription() should return a Message

https://gerrit.wikimedia.org/r/947021

Change 947023 had a related patch set uploaded (by C. Scott Ananian; author: C. Scott Ananian):

[mediawiki/extensions/WikibaseLexeme@master] SpecialPage::getDescription() can return a Message

https://gerrit.wikimedia.org/r/947023

Change 947023 abandoned by C. Scott Ananian:

[mediawiki/extensions/WikibaseLexeme@master] SpecialPage::getDescription() can return a Message

Reason:

Botched the Change-Id, reuploading with a unique one.

https://gerrit.wikimedia.org/r/947023

Change 947025 had a related patch set uploaded (by C. Scott Ananian; author: C. Scott Ananian):

[mediawiki/extensions/WikibaseLexeme@master] Allow SpecialPage::getDescription() to return a Message

https://gerrit.wikimedia.org/r/947025

Change 947026 had a related patch set uploaded (by C. Scott Ananian; author: C. Scott Ananian):

[mediawiki/extensions/WikibaseLexeme@master] SpecialPage::getDescription() should return a Message

https://gerrit.wikimedia.org/r/947026

Change 947014 abandoned by C. Scott Ananian:

[mediawiki/extensions/GrowthExperiments@master] SpecialPage::getDescription() should return a Message

Reason:

Abandoned in favor of If332f34af09b5af1456521cc537985358d9139f8 (botched the change id).

https://gerrit.wikimedia.org/r/947014

Change 947027 had a related patch set uploaded (by C. Scott Ananian; author: C. Scott Ananian):

[mediawiki/extensions/GrowthExperiments@master] SpecialPage::getDescription() should return a Message

https://gerrit.wikimedia.org/r/947027

Change 947367 had a related patch set uploaded (by C. Scott Ananian; author: C. Scott Ananian):

[mediawiki/extensions/FileImporter@master] SpecialPage::getDescription() should return a Message

https://gerrit.wikimedia.org/r/947367

Change 947371 had a related patch set uploaded (by C. Scott Ananian; author: C. Scott Ananian):

[mediawiki/extensions/WikibaseLexeme@master] Allow Action::getPageTitle() to return a Message

https://gerrit.wikimedia.org/r/947371

Change 947025 merged by jenkins-bot:

[mediawiki/extensions/WikibaseLexeme@master] Allow SpecialPage::getDescription() to return a Message

https://gerrit.wikimedia.org/r/947025

Change 947415 had a related patch set uploaded (by C. Scott Ananian; author: C. Scott Ananian):

[mediawiki/extensions/CheckUser@master] SpecialPage::getDescription() should return a Message

https://gerrit.wikimedia.org/r/947415

Change 947491 had a related patch set uploaded (by C. Scott Ananian; author: C. Scott Ananian):

[mediawiki/extensions/Wikibase@master] OutputPage::setPageTitle() can take a Message, no need to escape it further

https://gerrit.wikimedia.org/r/947491

Change 947849 had a related patch set uploaded (by C. Scott Ananian; author: C. Scott Ananian):

[mediawiki/extensions/Echo@master] OutputPage::setPageTitle() can take Message, no need to call ::text()

https://gerrit.wikimedia.org/r/947849

Change 947872 had a related patch set uploaded (by C. Scott Ananian; author: C. Scott Ananian):

[mediawiki/extensions/ConfirmEdit@master] OutputPage::setPageTitle() can take a Message directly

https://gerrit.wikimedia.org/r/947872

Change 947877 had a related patch set uploaded (by C. Scott Ananian; author: C. Scott Ananian):

[mediawiki/core@master] Action::getPageTitle() can return a Message

https://gerrit.wikimedia.org/r/947877

Change 947882 had a related patch set uploaded (by C. Scott Ananian; author: C. Scott Ananian):

[mediawiki/core@master] OutputPage: use Message::escaped() on Message param to ::setPageTitle()

https://gerrit.wikimedia.org/r/947882

Change 947885 had a related patch set uploaded (by C. Scott Ananian; author: C. Scott Ananian):

[mediawiki/core@master] Pass Message to OutputPage::setPageTitleMsg() directly

https://gerrit.wikimedia.org/r/947885

Change 947894 had a related patch set uploaded (by C. Scott Ananian; author: C. Scott Ananian):

[mediawiki/core@master] Use OutputPage::setPageTitleMsg() instead of ::setPageTitle()

https://gerrit.wikimedia.org/r/947894

Change 947927 had a related patch set uploaded (by C. Scott Ananian; author: C. Scott Ananian):

[mediawiki/core@master] Add OutputPage::prepareErrorPageMsg() to replace ::prepareErrorPage()

https://gerrit.wikimedia.org/r/947927

Change 947895 had a related patch set uploaded (by C. Scott Ananian; author: C. Scott Ananian):

[mediawiki/core@master] WIP: deprecate OutputPage::setPageTitle() with Message argument

https://gerrit.wikimedia.org/r/947895

Change 947896 had a related patch set uploaded (by C. Scott Ananian; author: C. Scott Ananian):

[mediawiki/core@master] WIP: remove Message argument to OutputPage::setPageTitle(), deprecated in 1.41

https://gerrit.wikimedia.org/r/947896

Change 947932 had a related patch set uploaded (by C. Scott Ananian; author: C. Scott Ananian):

[mediawiki/core@master] Hard deprecate returning a string from Action::getPageTitle()

https://gerrit.wikimedia.org/r/947932

Change 947934 had a related patch set uploaded (by C. Scott Ananian; author: C. Scott Ananian):

[mediawiki/core@master] Deprecate returning a string from Action::getPageTitle()

https://gerrit.wikimedia.org/r/947934

Change 947935 had a related patch set uploaded (by C. Scott Ananian; author: C. Scott Ananian):

[mediawiki/core@master] LoginSignupSpecialPage::showSuccessPage(): only allow Message as 1st param

https://gerrit.wikimedia.org/r/947935

Change 947942 had a related patch set uploaded (by C. Scott Ananian; author: C. Scott Ananian):

[mediawiki/core@master] SpecialPage::getDescription() should return a Message

https://gerrit.wikimedia.org/r/947942

Change 947877 merged by jenkins-bot:

[mediawiki/core@master] Action::getPageTitle() can return a Message

https://gerrit.wikimedia.org/r/947877

Change 947872 merged by jenkins-bot:

[mediawiki/extensions/ConfirmEdit@master] OutputPage::setPageTitle() can take a Message directly

https://gerrit.wikimedia.org/r/947872

Change 947882 merged by jenkins-bot:

[mediawiki/core@master] OutputPage: introduce ::setPageTitleMsg() to fix escaping issue

https://gerrit.wikimedia.org/r/947882

Change 947885 merged by jenkins-bot:

[mediawiki/core@master] Pass Message to OutputPage::setPageTitleMsg() directly

https://gerrit.wikimedia.org/r/947885

Change 947894 merged by jenkins-bot:

[mediawiki/core@master] Use OutputPage::setPageTitleMsg() instead of ::setPageTitle()

https://gerrit.wikimedia.org/r/947894

Change 947935 merged by jenkins-bot:

[mediawiki/core@master] LoginSignupSpecialPage::showSuccessPage(): only allow Message as 1st param

https://gerrit.wikimedia.org/r/947935

Change 947027 abandoned by C. Scott Ananian:

[mediawiki/extensions/GrowthExperiments@master] SpecialPage::getDescription() should return a Message

Reason:

Abandoned in favor of I3366b555fa7c1c2d0f5e1b7d6ec0777fba77d274

https://gerrit.wikimedia.org/r/947027

Change 947934 merged by jenkins-bot:

[mediawiki/core@master] Deprecate returning a string from Action::getPageTitle()

https://gerrit.wikimedia.org/r/947934

Change 947942 merged by jenkins-bot:

[mediawiki/core@master] SpecialPage::getDescription() should return a Message

https://gerrit.wikimedia.org/r/947942

Change 947415 abandoned by C. Scott Ananian:

[mediawiki/extensions/CheckUser@master] SpecialPage::getDescription() should return a Message

Reason:

Abandoned in favor of I02e20100611d4b7975488f18eb64ec9f0adde1e5

https://gerrit.wikimedia.org/r/947415

Change 947004 abandoned by C. Scott Ananian:

[mediawiki/core@master] Pass first parameter to OutputPage::prepareErrorPage() as a Message

Reason:

Abandoned in favor of Idde7c13ee7994b48b27b95f94c8d0f94d4caed35

https://gerrit.wikimedia.org/r/947004

Change 947026 abandoned by C. Scott Ananian:

[mediawiki/extensions/WikibaseLexeme@master] SpecialPage::getDescription() should return a Message

Reason:

Abandoned in favor of I2296c1c73749eb9f701f84c1b899669892dc4f53

https://gerrit.wikimedia.org/r/947026

Change 947367 abandoned by C. Scott Ananian:

[mediawiki/extensions/FileImporter@master] SpecialPage::getDescription() should return a Message

Reason:

Abandoned in favor of I1ffbf3e1841961ed1790adbd1b2499c3ffdc34f3

https://gerrit.wikimedia.org/r/947367

Change 947021 abandoned by C. Scott Ananian:

[mediawiki/extensions/Wikibase@master] SpecialPage::getDescription() should return a Message

Reason:

Abandoned in favor of I6859763ed593637b0eeb52002c3310e281928911

https://gerrit.wikimedia.org/r/947021

Change 947849 abandoned by C. Scott Ananian:

[mediawiki/extensions/Echo@master] OutputPage::setPageTitle() can take Message, no need to call ::text()

Reason:

Abandoned in favor of I1464c9f7db3b30ad9bb12377cc39cfcd5d540f78

https://gerrit.wikimedia.org/r/947849

Change 947491 abandoned by C. Scott Ananian:

[mediawiki/extensions/Wikibase@master] OutputPage::setPageTitle() can take a Message, no need to escape it further

Reason:

Abandoned in favor of Idcdd210a77dd229484e18604d9081b733f950b21

https://gerrit.wikimedia.org/r/947491

Change 947005 abandoned by C. Scott Ananian:

[mediawiki/core@master] Deprecate returning a string from Action::getPageTitle()

Reason:

Abandoned in favor of Ia7da1b7063a77bf94f4c71e9d77c9408c3f4aa46

https://gerrit.wikimedia.org/r/947005

Change 947007 abandoned by C. Scott Ananian:

[mediawiki/core@master] SpecialPage::getDescription() should return a Message

Reason:

Abandoned in favor of Ifc3452548c44a021414cf8433c1ffbb683a9d55b

https://gerrit.wikimedia.org/r/947007

Change 947012 abandoned by C. Scott Ananian:

[mediawiki/core@master] Deprecate returning a string from SpecialPage::getDescription()

Reason:

Abandoned in favor of I1059c1da61e751ff958e73987deda45b0368642b

https://gerrit.wikimedia.org/r/947012

Change 946986 abandoned by C. Scott Ananian:

[mediawiki/core@master] Deprecate string parameter to OutputPage::setPageTitle()

Reason:

Abandoned in favor of Ie125f229cd356c5a056c983389f92b4d5f8da98f

https://gerrit.wikimedia.org/r/946986

Change 947008 abandoned by C. Scott Ananian:

[mediawiki/core@master] OutputPage::{setPageTitle,prepareErrorPage} always take Message as 1st param

Reason:

Abandoned in favor of Ie125f229cd356c5a056c983389f92b4d5f8da98f

https://gerrit.wikimedia.org/r/947008

Change 959862 had a related patch set uploaded (by C. Scott Ananian; author: C. Scott Ananian):

[mediawiki/core@master] Deprecate explicit arguments to OutputPage::prepareErrorPage()

https://gerrit.wikimedia.org/r/959862

Change 959862 merged by jenkins-bot:

[mediawiki/core@master] Deprecate explicit arguments to OutputPage::prepareErrorPage()

https://gerrit.wikimedia.org/r/959862

Change 947927 abandoned by C. Scott Ananian:

[mediawiki/core@master] Add OutputPage::prepareErrorPageMsg() to replace ::prepareErrorPage()

Reason:

Abandoned in favor of I12b19198f09504683ecbeb72c581946c91a744a6

https://gerrit.wikimedia.org/r/947927

Change 947371 merged by jenkins-bot:

[mediawiki/extensions/WikibaseLexeme@master] Allow Action::getPageTitle() to return a Message

https://gerrit.wikimedia.org/r/947371

Change 947932 merged by jenkins-bot:

[mediawiki/core@master] Hard deprecate returning a string from Action::getPageTitle()

https://gerrit.wikimedia.org/r/947932

Its confusing how this task is about deprecating passing a string, but the commit seems to be deprecating passing a message.

Right now, the first parameter to OutputPage::setPageTitle() can be either a Message or a string, which confuses phan-taint-check

Also note - while not perfect, since 2019 (1a8cc488bcc8e4), phan-taint-check is not really confused by this anymore.

Change 963746 had a related patch set uploaded (by Abijeet Patro; author: Abijeet Patro):

[mediawiki/extensions/TwnMainPage@master] SpecialTwnMainPage: Return Message from getDescription

https://gerrit.wikimedia.org/r/963746

Change 963746 merged by jenkins-bot:

[mediawiki/extensions/TwnMainPage@master] SpecialTwnMainPage: Return Message from getDescription

https://gerrit.wikimedia.org/r/963746

Right now, the first parameter to OutputPage::setPageTitle() can be either a Message or a string, which confuses phan-taint-check

Also note - while not perfect, since 2019 (1a8cc488bcc8e4), phan-taint-check is not really confused by this anymore.

That just disables the check, it doesn't make phan "not confused". The point is to allow phan to provide actually useful checking.

Unfortunately, the current deprecation warnings are unhelpful as they do not give any info about the source:

2024-04-01 10:52:51: [616ab33efeb9a0d17348d1ee] /wiki/Toiminnot:Toimintosivut   PHP Deprecated: Use of string return from SpecialPage::getDescription() was deprecated in MediaWiki 1.41. [Called from MediaWiki\Specials\SpecialSpecialPages::execute]
#0 [internal function]: MWExceptionHandler::handleError(integer, string, string, string)
#1 /data/mediawiki/tags/2024-04-01_07:39:38/includes/debug/MWDebug.php(386): trigger_error(string, integer)
#2 /data/mediawiki/tags/2024-04-01_07:39:38/includes/debug/MWDebug.php(357): MWDebug::sendRawDeprecated(string, boolean, string)
#3 /data/mediawiki/tags/2024-04-01_07:39:38/includes/debug/MWDebug.php(238): MWDebug::deprecatedMsg(string, string, string, integer)
#4 /data/mediawiki/tags/2024-04-01_07:39:38/includes/GlobalFunctions.php(775): MWDebug::deprecated(string, string, string, integer)
#5 /data/mediawiki/tags/2024-04-01_07:39:38/includes/specials/SpecialSpecialPages.php(78): wfDeprecated(string, string)
#6 /data/mediawiki/tags/2024-04-01_07:39:38/includes/specials/SpecialSpecialPages.php(53): MediaWiki\Specials\SpecialSpecialPages->getPageGroups()
#7 /data/mediawiki/tags/2024-04-01_07:39:38/includes/specialpage/SpecialPage.php(727): MediaWiki\Specials\SpecialSpecialPages->execute(NULL)
#8 /data/mediawiki/tags/2024-04-01_07:39:38/includes/specialpage/SpecialPageFactory.php(1621): MediaWiki\SpecialPage\SpecialPage->run(NULL)
#9 /data/mediawiki/tags/2024-04-01_07:39:38/includes/MediaWiki.php(357): MediaWiki\SpecialPage\SpecialPageFactory->executePath(string, RequestContext)
#10 /data/mediawiki/tags/2024-04-01_07:39:38/includes/MediaWiki.php(960): MediaWiki->performRequest()
#11 /data/mediawiki/tags/2024-04-01_07:39:38/includes/MediaWiki.php(613): MediaWiki->main()
#12 /data/mediawiki/tags/2024-04-01_07:39:38/index.php(50): MediaWiki->run()
#13 /data/mediawiki/tags/2024-04-01_07:39:38/index.php(46): wfIndexMain()
#14 {main}

Change #1015989 had a related patch set uploaded (by Nikerabbit; author: Nikerabbit):

[mediawiki/extensions/WikibaseStatementUpdater@master] Fix deprecation warning on getDescription in 1.41

https://gerrit.wikimedia.org/r/1015989

Unfortunately, the current deprecation warnings are unhelpful as they do not give any info about the source

Fixed in 4164177f0d16729bf1aea11e84a8a5d4632035ca (https://gerrit.wikimedia.org/r/c/mediawiki/core/+/1024892)

Change #1015989 had a related patch set uploaded (by Nikerabbit; author: Nikerabbit):

[mediawiki/extensions/WikibaseStatementUpdater@master] Fix deprecation warning on getDescription in 1.41

https://gerrit.wikimedia.org/r/1015989

Merged

matmarex renamed this task from OutputPage::setPageTitle() should take a Message in all cases to Action::getPageTitle(), SpecialPage::getDescription(), some other methods should return a Message in all cases.Fri, May 31, 7:13 PM

Its confusing how this task is about deprecating passing a string, but the commit seems to be deprecating passing a message.

This task became only about updating these two methods and their overrides in extensions, and task T343994 was filed for what it was initially supposed to be about. We seem to have also messed up tagging some patches between these two tasks. Oh well.

I think the work here is basically done – all that remains is to wait for a couple of releases, then replace these deprecation warnings: https://codesearch.wmcloud.org/search/?q=T343849 with exceptions.

Change #1043021 had a related patch set uploaded (by Fomafix; author: Fomafix):

[mediawiki/extensions/MultiMail@master] Return a Message object on SpecialEmailAddresses::getDescription()

https://gerrit.wikimedia.org/r/1043021

Change #1043021 merged by jenkins-bot:

[mediawiki/extensions/MultiMail@master] Return a Message object on SpecialEmailAddresses::getDescription()

https://gerrit.wikimedia.org/r/1043021