Page MenuHomePhabricator

Ensure JsConfigVars can always be combined asynchronously/out-of-order
Open, MediumPublic

Description

Right now a number of extensions treat JsConfigVars as a read-write store, reading a previous value of JsConfigVars, updating it, and then storing the updated value back. This is incompatible with the separate/asynchronous/incremental parsing model on the Parsoid roadmap, as well as with the "write-only" model of the Parsoid ContentMetadataCollector interface.

Replace the current ParserOutput methods for JsConfigVars with add and set variants, which are guaranteed to be write-only. set will throw an exception if a different value is stored for a key (although use as a flag where multiple places set the same value is permitted), and append will create an accumulator set.

Event Timeline

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

[mediawiki/core@master] Hard-deprecate ParserOutput::addJsConfigVars()

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

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

[mediawiki/extensions/Graph@master] Replace use of deprecated ParserOutput::addJsConfigVars()

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

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

[mediawiki/core@master] Add ParserOutput::{set,append}JsConfigVar()

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

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

[mediawiki/extensions/Kartographer@master] Replace use of deprecated ParserOutput::addJsConfigVars()

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

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

[mediawiki/extensions/WikiLambda@master] Replace use of deprecated ParserOutput::addJsConfigVars()

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

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

[mediawiki/extensions/ProofreadPage@master] Replace use of deprecated ParserOutput::addJsConfigVars()

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

Arlolra triaged this task as Medium priority.Feb 2 2022, 6:27 PM
Arlolra moved this task from Needs Triage to Missing Functionality on the Parsoid board.

Change 757732 merged by jenkins-bot:

[mediawiki/core@master] Add ParserOutput::{set,append}JsConfigVar()

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

Change 757915 merged by jenkins-bot:

[mediawiki/extensions/WikiLambda@master] Replace use of deprecated ParserOutput::addJsConfigVars()

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

Change 757908 merged by jenkins-bot:

[mediawiki/extensions/Graph@master] Replace use of deprecated ParserOutput::addJsConfigVars()

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

Change 757916 merged by jenkins-bot:

[mediawiki/extensions/ProofreadPage@master] Replace use of deprecated ParserOutput::addJsConfigVars()

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

Change 757913 merged by jenkins-bot:

[mediawiki/extensions/Kartographer@master] Replace use of deprecated ParserOutput::addJsConfigVars()

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

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

[mediawiki/extensions/Wikibase@master] Replace use of ParserOutput::addJsConfigVars(), deprecated since 1.38

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

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

[mediawiki/core@master] Hard-deprecate ParserOutput::addJsConfigVars(), deprecated in 1.38

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

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

[mediawiki/extensions/Scribunto@master] Replace use of ParserOutput::addJsConfigVars(), deprecated since 1.38

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

Change 944922 merged by jenkins-bot:

[mediawiki/extensions/Wikibase@master] Replace use of ParserOutput::addJsConfigVars(), deprecated since 1.38

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

Change 946633 merged by jenkins-bot:

[mediawiki/extensions/Scribunto@master] Replace use of ParserOutput::addJsConfigVars(), deprecated since 1.38

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

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

[mediawiki/extensions/Scribunto@master] Assign UUIDs to Scribunto errors independent of page parse order

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

Change 757766 abandoned by Jforrester:

[mediawiki/core@master] Hard-deprecate ParserOutput::addJsConfigVars()

Reason:

Replaced by I53c28ee7c80b889c893c1d00f37678e716e55783.

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

Change 956511 merged by jenkins-bot:

[mediawiki/extensions/Scribunto@master] Assign UUIDs to Scribunto errors independent of page parse order

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