Page MenuHomePhabricator

Wikimedia deployed extensions need uses of global $wgOut removed
Open, MediumPublic

Description

Code search:

  • 3D
  • CirrusSearch
  • Collection
  • ConfirmEdit
  • FlaggedRevs
  • Flow
  • GuidedTour
  • LiquidThreads
  • Newsletter
  • ProofreadPage
  • TimedMediaHandler
  • VipsScaler
  • Wikibase
  • WikimediaEvents
  • WikimediaIncubator

Event Timeline

Change 596902 had a related patch set uploaded (by DannyS712; owner: DannyS712):
[mediawiki/extensions/VipsScaler@master] SpecialVipsTest: Remove use of global $wgOut

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

DannyS712 triaged this task as Medium priority.May 18 2020, 5:31 AM

Change 562006 had a related patch set uploaded (by DannyS712; owner: DannyS712):
[mediawiki/extensions/TimedMediaHandler@master] Remove some uses of global $wgUser and global $wgOut

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

Change 596902 merged by jenkins-bot:
[mediawiki/extensions/VipsScaler@master] SpecialVipsTest: Remove use of global $wgOut

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

Change 562006 merged by jenkins-bot:
[mediawiki/extensions/TimedMediaHandler@master] Remove some uses of global $wgUser and global $wgOut

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

Change 623905 had a related patch set uploaded (by DannyS712; owner: DannyS712):
[mediawiki/extensions/WikimediaIncubator@master] Remove uses of global $wgOut

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

Change 623905 merged by jenkins-bot:
[mediawiki/extensions/WikimediaIncubator@master] Remove uses of global $wgOut

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

Change 626435 had a related patch set uploaded (by DannyS712; owner: DannyS712):
[mediawiki/extensions/CodeReview@master] Reduce direct references to $wgOut

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

Change 626435 merged by jenkins-bot:
[mediawiki/extensions/CodeReview@master] Reduce direct references to $wgOut

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

DannyS712 updated the task description. (Show Details)
DannyS712 updated the task description. (Show Details)

Change 919884 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[mediawiki/extensions/3D@master] Replace $wgOut with RequestContext::getMain()

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

Change 919889 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[mediawiki/extensions/GuidedTour@master] Replace $wgOut with RequestContext::getMain()

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

Change 919890 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[mediawiki/extensions/CirrusSearch@master] Replace $wgOut with RequestContext::getMain()

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

Change 919891 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[mediawiki/extensions/WikimediaEvents@master] Replace $wgOut with RequestContext::getMain()

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

Change 919892 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[mediawiki/extensions/Newsletter@master] Replace $wgOut with RequestContext::getMain()

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

Change 919893 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[mediawiki/extensions/ProofreadPage@master] Replace $wgOut with RequestContext::getMain()

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

Change 919899 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[mediawiki/extensions/FlaggedRevs@master] Replace $wgOut with Article::getContext()

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

Change 919900 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[mediawiki/extensions/Collection@master] Replace $wgOut with RequestContext::getMain()

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

Change 919901 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[mediawiki/extensions/ConfirmEdit@master] Replace $wgOut with RequestContext::getMain()

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

Change 919902 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[mediawiki/extensions/LiquidThreads@master] Replace $wgOut with RequestContext::getMain()

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

Change 919890 merged by jenkins-bot:

[mediawiki/extensions/CirrusSearch@master] Replace $wgOut with RequestContext::getMain()

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

Change 919891 merged by jenkins-bot:

[mediawiki/extensions/WikimediaEvents@master] Replace $wgOut with RequestContext::getMain()

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

Change 919899 merged by jenkins-bot:

[mediawiki/extensions/FlaggedRevs@master] Replace $wgOut with Article::getContext()

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

Change 919889 merged by jenkins-bot:

[mediawiki/extensions/GuidedTour@master] Replace $wgOut with RequestContext::getMain()

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

Change 919893 merged by jenkins-bot:

[mediawiki/extensions/ProofreadPage@master] Replace $wgOut with RequestContext::getMain()

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

Change 919901 merged by jenkins-bot:

[mediawiki/extensions/ConfirmEdit@master] Replace $wgOut with RequestContext::getMain()

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

Change 919892 merged by jenkins-bot:

[mediawiki/extensions/Newsletter@master] Replace $wgOut with RequestContext::getMain()

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

Change 919900 merged by jenkins-bot:

[mediawiki/extensions/Collection@master] Replace $wgOut with RequestContext::getMain()

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

Change 919902 merged by jenkins-bot:

[mediawiki/extensions/LiquidThreads@master] Replace $wgOut with RequestContext::getMain()

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

Change 919884 merged by jenkins-bot:

[mediawiki/extensions/3D@master] Replace $wgOut with RequestContext::getMain()

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

The $wgOut usage in Wikibase is closely tied to a similar pattern in MediaWiki core:

Wikibase FederatedPropertiesError::report()
global $wgOut;
$wgOut->addModuleStyles( [ 'wikibase.alltargets' ] );
// T324991
if ( !WikibaseRepo::getMobileSite() ) {
	$wgOut->addModuleStyles( [ 'wikibase.desktop' ] );
}
parent::report( $action );
core ErrorPageError::report()
global $wgOut;
$wgOut->showErrorPage( $this->title, $this->msg, $this->params );
// (snip)
if ( $action === self::SEND_OUTPUT ) {
	$wgOut->output();
}

So IMHO it would be helpful to know how this is going to be fixed in MediaWiki core before fixing the Wikibase case. There’s even a relevant TODO comment in one of the two places calling that method:

ActionEntryPoint::execute()
// TODO: Should ErrorPageError::report accept a OutputPage parameter?
$e->report( ErrorPageError::STAGE_OUTPUT );

(I suspect the answer to that question is “yes.”)