As evidenced in SidebarHookHandlerTest, wikibase uses ::setExtensionData for the wikibase-otherprojects-sidebar data. This should probably use ::appendExtensionData instead, to avoid destructive updates (see parent task for rationale).
Description
Event Timeline
As far as I see, it’s executed at most once per parse (assuming that ContentAlterParserOutput is called at most once), so it should be safe to continue using ParserOutput::setExtensionData. (It sets an array, but in one pass. And the order matters, which is not guaranteed if the set behavior of ParserOutput::appendExtensionData is taken seriously.)
@cscott: Removing task assignee as this open task has been assigned for more than two years - see the email sent to all task assignees on 2024-04-15.
Please assign this task to yourself again if you still realistically [plan to] work on this task - it would be welcome! :)
If this task has been resolved in the meantime, or should not be worked on by anybody ("declined"), please update its task status via "Add Action… 🡒 Change Status".
Also see https://www.mediawiki.org/wiki/Bug_management/Assignee_cleanup for tips how to best manage your individual work in Phabricator. Thanks!