- Mentioned In
- T186163: BadMethodCallException on diff pages of deleted revisions
T182767: Can't see references on historic revisions of items on Wikidata
- Mentioned Here
- rSVN2777: Printable mode cleanup. Now done through stylesheets, <link>ed so that the
T4614: Section edit links don't appear on some "difference between revisions" pages
T168543: ParserOutput::recordOption( 'editsection' ) should no longer be used
rEWBA0331ae041dce: Use ParserOutputPostCacheTransform hook to avoid splitting cache on…
In MediaWiki core, the rendered page view shown when viewing a diff has edit links if it is for the latest version, and does not have those links otherwise. rEWBA0331ae041dce: Use ParserOutputPostCacheTransform hook to avoid splitting cache on… removed where Wikibase was overriding this for its overridden view action, which brings it in line with the core behavior.
But the tests (and wbIsEditView) weren't updated to match. I'll have a look at that.
What is presented in https://gerrit.wikimedia.org/r/394642 is definitely not the way to go, as it simply removes an entire feature instead of fixing the issue. The removed feature is also pretty much unrelated to what's going on. I'm currently hunting down the issue, and found that RepoHooks::onParserOutputPostCacheTransform is called with enableSectionEditLinks enabled on diffs that contain the latest revision. I expect diffs to never have section edit links.
The issue appears to be that the ParserOutput created via EntityContentDiffView::getParserOutput (called in line #629 of DifferenceEngine) is either never passed to the ParserOutputPostCacheTransform hook (which my patch fixes by doing again what the hook was supposed to do), or the hook is called with a bad enableSectionEditLinks option (as described above).
Your expectation does not match reality in MediaWiki core. See, for example, https://en.wikipedia.org/w/index.php?title=Barack_Obama&diff=cur&oldid=813429763. This has been the intended behavior since 2004 (rSVN2777). See also T4614.
Wikibase used to override this for its own diffs using a long-since-deprecated parser option (see T168543) which is now fully deprecated.
Sorry for the misunderstanding. When I wrote "I expect diffs to never have edit buttons" I means diffs in a Wikibase entity namespace (items, properties, lexemes, …). The way we achieved this in the past was clearly not optimal.
I was looking for a much cleaner way to achieve this but could not find any. The easiest way would be to forcefully set the parser option "enableSectionEditLinks" to false. But it looks like all methods that previously allowed this are either removed or deprecated. I also wrote a longer comment about this in https://gerrit.wikimedia.org/r/394973.