Page MenuHomePhabricator

Migrate boolean flags in ParserOutput to ::setFlag() or ::setOutputFlag() or ::setExtensionData()
Closed, ResolvedPublic

Description

There are a large number of ad-hoc booleans in ParserOutput:

  • ::setNoGallery()
  • ::setEnableOOUI()
  • ::setIndexPolicy() (maybe?)
  • ::setNewSection()
  • ::setHideNewSection()
  • ::setPreventClickjacking()

These generally have nothing to do with the parser, they are just pass-throughs from certain extensions or parser functions. We should try to unify them to a standard interface so that the API of ParserOutput doesn't grow w/o limit. Perhaps

function setOutputFlag(string $flag, bool $val = true);

can be used, with a class

class ParserOutputFlags {
   public const PREVENT_CLICKJACKING = 'mw-preventClickjacking';
   public const ENABLE_OOUI = 'mw-enableOOUI';
   // etc
}

In fact, we already have ParserOutput::setExtensionData() *and* ::setFlag(); perhaps this should be used for the backend storage instead of inventing a new method.

Related Objects

StatusSubtypeAssignedTask
OpenReleaseNone
OpenNone
OpenNone
OpenNone
OpenNone
OpenNone
OpenFeatureNone
OpenNone
OpenNone
Resolvedssastry
Resolvedssastry
Resolvedcscott
Resolvedcscott
Resolvedcscott
ResolvedNone
Resolvedssastry
Resolvedcscott
Resolvedcscott
Resolvedcscott
Resolvedcscott
ResolvedPRODUCTION ERRORLucas_Werkmeister_WMDE
ResolvedPRODUCTION ERRORabi_
ResolvedPRODUCTION ERRORcscott
ResolvedPRODUCTION ERRORroman-stolar
ResolvedNone
ResolvedNone
Resolvedmatmarex
Resolvedmatmarex
Resolvedcscott
Resolvedcscott
Resolvedcscott
Resolvedihurbain
ResolvedNone
Resolvedcscott
ResolvedNone
Resolvedssastry
Declinedssastry
ResolvedPRODUCTION ERRORssastry
Resolvedcscott
Resolvedssastry
ResolvedMSantos
Resolvedihurbain
OpenNone
Resolvedcscott
DeclinedNone
DeclinedNone
DeclinedNone
DeclinedNone
Resolvedppelberg
ResolvedBUG REPORTNone
ResolvedPRODUCTION ERRORJdlrobson-WMF
ResolvedEsanders
OpenNone
StalledNone
OpenNone
OpenNone
OpenBUG REPORTNone
OpenNone
OpenNone
OpenNone
OpenNone
Resolvedcscott
Resolvedcscott
Resolvedcscott
OpenNone
Resolvedmatmarex
OpenNone
Resolvedcscott
ResolvedABreault-WMF
Resolvedcscott
Opencscott
Resolvedssastry
ResolvedJgiannelos
OpenJgiannelos
OpenJgiannelos
OpenJgiannelos
OpenJgiannelos
ResolvedJgiannelos
OpenNone

Event Timeline

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

[mediawiki/core@master] Add new ParserOutput::{get,set}OutputFlag() interface

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

cscott renamed this task from Migrate boolean flags in ParserOutput to ::setOutputFlag() or ::setExtensionData() to Migrate boolean flags in ParserOutput to ::setFlag() or ::setOutputFlag() or ::setExtensionData().Oct 8 2021, 8:15 PM
cscott updated the task description. (Show Details)

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

[mediawiki/core@master] Mark ParserOutput::getAllFlags() @internal

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

Change 730636 merged by jenkins-bot:

[mediawiki/core@master] Mark ParserOutput::getAllFlags() @internal

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

Change 728644 merged by jenkins-bot:

[mediawiki/core@master] Add new ParserOutput::{get,set}OutputFlag() interface

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

Patches are merged, can we close this ticket?

daniel triaged this task as Medium priority.May 24 2022, 8:22 AM
daniel lowered the priority of this task from Medium to Low.May 30 2022, 3:09 PM

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

[mediawiki/core@master] Hard-deprecate ParserOutput::{get,set}Flag()

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

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

[mediawiki/extensions/CIForms@master] Use ParserOutput::{get,set}ExtensionData instead of deprecated methods

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

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

[mediawiki/extensions/PageProperties@master] Use ParserOutput::{get,set}ExtensionData instead of deprecated methods

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

Change 942535 merged by jenkins-bot:

[mediawiki/extensions/PageProperties@master] Use ParserOutput::{get,set}ExtensionData instead of deprecated methods

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

Change 942525 merged by jenkins-bot:

[mediawiki/core@master] Hard-deprecate ParserOutput::{get,set}Flag()

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

MSantos subscribed.

I am removing RESTBase Sunsetting as this is not needed for its completion. Please, re-add in case I'm missing something.

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

[mediawiki/core@master] ParserOutput: move flags into $mFlags array

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

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

[mediawiki/core@master] Forward-compatibility: allow output flags to be serialized in `OutputFlags`

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

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

[mediawiki/core@master] ParserOutput: Serialize output flags in `OutputFlags`

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

Change #1193579 merged by jenkins-bot:

[mediawiki/core@master] Forward-compatibility: allow output flags to be serialized in `OutputFlags`

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

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

[mediawiki/core@REL1_44] Forward-compatibility: allow output flags to be serialized in `OutputFlags`

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

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

[mediawiki/core@REL1_43] Forward-compatibility: allow output flags to be serialized in `OutputFlags`

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

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

[mediawiki/core@wmf/1.45.0-wmf.25] Forward-compatibility: allow output flags to be serialized in `OutputFlags`

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

Change #1199114 merged by jenkins-bot:

[mediawiki/core@wmf/1.45.0-wmf.25] Forward-compatibility: allow output flags to be serialized in `OutputFlags`

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

Change #1199108 merged by jenkins-bot:

[mediawiki/core@REL1_43] Forward-compatibility: allow output flags to be serialized in `OutputFlags`

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

Change #1199106 merged by jenkins-bot:

[mediawiki/core@REL1_44] Forward-compatibility: allow output flags to be serialized in `OutputFlags`

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

Change #1193580 merged by jenkins-bot:

[mediawiki/core@master] ParserOutput: Serialize output flags in `OutputFlags`

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

Change #1193553 merged by jenkins-bot:

[mediawiki/core@master] ParserOutput: move flags into $mFlags array

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

Change #942534 abandoned by Thomas-topway-it:

[mediawiki/extensions/CIForms@master] Use ParserOutput::{get,set}ExtensionData instead of deprecated methods

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

cscott claimed this task.