Split from parent for sanity
Description
Status | Subtype | Assigned | Task | |
---|---|---|---|---|
· · · | ||||
Open | None | T189220 Ensure that relevant extensions are MCR-aware | ||
Resolved | • Ramsey-WMF | T204582 Verify that abuse-/spam-related extensions work with Wikibase MediaInfo | ||
Resolved | daniel | T208767 Ensure that SpamBlacklist applies to the content of all MCR slots | ||
· · · |
Event Timeline
Analysis: SpamBlacklists uses the EditFilterMergedContent hook, to which it binds the handle function SpamBlacklistHooks::filterMergedContent.
In that method, it calls WikiPage::prepareContentForEdit which returns an EditInfo instances with a ParserOutput object in the $output field. This object comes from DerivedPageDataUpdater::getPreparedEdit, which sets the $output field to the combined ParserOutput for all slots as returned by getCanonicalParserOutput(). SpamBlacklistHooks::filterMergedContent() then calls getExternalLinks() on that ParserOutput, and applies the blacklist filter to it.
Since the filter is applied to the combined ParserOutput for all slots, the blacklist will "just work" with MCR.
Caveat: For file uploeads, the UploadVerifyUpload filter is used instead, handled by SpamBlacklistHooks::onUploadVerifyUpload. The page text associated with the upload is passed in as a string and interpreted as Wikitext. This will have to be changed one uploads can have multi-slot content associated with them immediately.
Closing as resolved.