diff --git a/includes/Linker.php b/includes/Linker.php
index 5ee762894d2..26512a9ad84 100644
--- a/includes/Linker.php
+++ b/includes/Linker.php
@@ -1908,6 +1908,8 @@ class Linker {
* Returns null if $wgShowRollbackEditCount is disabled or false if $verify
* is set and the user is the only contributor of the page.
*
+ * @todo Unused outside of this file - should it be made private?
+ *
* @param RevisionRecord|Revision $rev (RevisionRecord allowed since 1.35, Revision
* deprecated since 1.35)
* @param bool $verify Try to verify that this revision can really be rolled back
@@ -1981,6 +1983,8 @@ class Linker {
* @since 1.16.3. $context added in 1.20. $editCount added in 1.21
* $rev could be a RevisionRecord since 1.35
*
+ * @todo Unused outside of this file - should it be made private?
+ *
* @param RevisionRecord|Revision $rev (RevisionRecord allowed since 1.35, Revision
* deprecated since 1.35)
* @param IContextSource|null $context Context to use or null for the main context.
diff --git a/includes/actions/InfoAction.php b/includes/actions/InfoAction.php
index 18730d63d4f..2af8c63c139 100644
--- a/includes/actions/InfoAction.php
+++ b/includes/actions/InfoAction.php
@@ -565,7 +565,7 @@ class InfoAction extends FormlessAction {
// Page creator
$pageInfo['header-edits'][] = [
$this->msg( 'pageinfo-firstuser' ),
- Linker::revUserTools( new Revision( $firstRev ) )
+ Linker::revUserTools( $firstRev )
];
// Date of page creation
@@ -584,7 +584,7 @@ class InfoAction extends FormlessAction {
// Latest editor
$pageInfo['header-edits'][] = [
$this->msg( 'pageinfo-lastuser' ),
- Linker::revUserTools( $lastRev )
+ Linker::revUserTools( $lastRev->getRevisionRecord() )
];
// Date of latest edit
diff --git a/includes/actions/RollbackAction.php b/includes/actions/RollbackAction.php
index 1f6a21e0719..e6d938dc095 100644
--- a/includes/actions/RollbackAction.php
+++ b/includes/actions/RollbackAction.php
@@ -164,8 +164,8 @@ class RollbackAction extends FormAction {
$this->getOutput()->setPageTitle( $this->msg( 'actioncomplete' ) );
$this->getOutput()->setRobotPolicy( 'noindex,nofollow' );
- $old = Linker::revUserTools( $current );
- $new = Linker::revUserTools( $target );
+ $old = Linker::revUserTools( $current->getRevisionRecord() );
+ $new = Linker::revUserTools( $target->getRevisionRecord() );
$this->getOutput()->addHTML(
$this->msg( 'rollback-success' )
->rawParams( $old, $new )
diff --git a/includes/actions/pagers/HistoryPager.php b/includes/actions/pagers/HistoryPager.php
index 4081f5a31f6..627eaa437b8 100644
--- a/includes/actions/pagers/HistoryPager.php
+++ b/includes/actions/pagers/HistoryPager.php
@@ -401,7 +401,7 @@ class HistoryPager extends ReverseChronologicalPager {
$s .= " $link";
$s .= $dirmark;
$s .= " " .
- Linker::revUserTools( $rev, true, false ) . "";
+ Linker::revUserTools( $rev->getRevisionRecord(), true, false ) . "";
$s .= $dirmark;
if ( $rev->isMinor() ) {
@@ -418,7 +418,7 @@ class HistoryPager extends ReverseChronologicalPager {
}
# Text following the character difference is added just before running hooks
- $s2 = Linker::revComment( $rev, false, true, false );
+ $s2 = Linker::revComment( $rev->getRevisionRecord(), false, true, false );
if ( $notificationtimestamp && ( $row->rev_timestamp >= $notificationtimestamp ) ) {
$s2 .= ' ' . $this->msg( 'updatedmarker' )->escaped() . '';
@@ -435,7 +435,7 @@ class HistoryPager extends ReverseChronologicalPager {
) {
// Get a rollback link without the brackets
$rollbackLink = Linker::generateRollback(
- $rev,
+ $rev->getRevisionRecord(),
$this->getContext(),
[ 'verify', 'noBrackets' ]
);
diff --git a/includes/changes/ChangesList.php b/includes/changes/ChangesList.php
index 8ff249798d8..c068fcbb6ca 100644
--- a/includes/changes/ChangesList.php
+++ b/includes/changes/ChangesList.php
@@ -750,8 +750,12 @@ class ChangesList extends ContextSource {
'actor' => $rc->mAttribs['rc_actor'] ?? null,
'deleted' => $rc->mAttribs['rc_deleted']
] );
- $s .= ' ' . Linker::generateRollback( $rev, $this->getContext(),
- [ 'noBrackets' ] );
+ $s .= ' ';
+ $s .= Linker::generateRollback(
+ $rev->getRevisionRecord(),
+ $this->getContext(),
+ [ 'noBrackets' ]
+ );
}
}
}
diff --git a/includes/changetags/ChangeTagsRevisionItem.php b/includes/changetags/ChangeTagsRevisionItem.php
index 2a98e20f96f..81c3726f211 100644
--- a/includes/changetags/ChangeTagsRevisionItem.php
+++ b/includes/changetags/ChangeTagsRevisionItem.php
@@ -39,8 +39,8 @@ class ChangeTagsRevisionItem extends RevisionItem {
$difflink = $this->list->msg( 'parentheses' )
->rawParams( $this->getDiffLink() )->escaped();
$revlink = $this->getRevisionLink();
- $userlink = Linker::revUserLink( $this->revision );
- $comment = Linker::revComment( $this->revision );
+ $userlink = Linker::revUserLink( $this->revision->getRevisionRecord() );
+ $comment = Linker::revComment( $this->revision->getRevisionRecord() );
if ( $this->isDeleted() ) {
$revlink = "$revlink";
}
diff --git a/includes/diff/DifferenceEngine.php b/includes/diff/DifferenceEngine.php
index c342cd22f04..b9c012ce290 100644
--- a/includes/diff/DifferenceEngine.php
+++ b/includes/diff/DifferenceEngine.php
@@ -663,8 +663,11 @@ class DifferenceEngine extends ContextSource {
if ( $this->mNewRev->isCurrent() && $permissionManager->quickUserCan(
'rollback', $user, $this->mNewPage
) ) {
- $rollbackLink = Linker::generateRollback( $this->mNewRev, $this->getContext(),
- [ 'noBrackets' ] );
+ $rollbackLink = Linker::generateRollback(
+ $this->mNewRev->getRevisionRecord(),
+ $this->getContext(),
+ [ 'noBrackets' ]
+ );
if ( $rollbackLink ) {
$out->preventClickjacking();
$rollback = "\u{00A0}\u{00A0}\u{00A0}" . $rollbackLink;
@@ -710,11 +713,12 @@ class DifferenceEngine extends ContextSource {
$oldRevisionHeader = $this->getRevisionHeader( $this->mOldRev, 'complete' );
$oldChangeTags = ChangeTags::formatSummaryRow( $this->mOldTags, 'diff', $this->getContext() );
+ $oldRevRecord = $this->mOldRev->getRevisionRecord();
$oldHeader = '
' . $oldRevisionHeader . '
' .
'' .
- Linker::revUserTools( $this->mOldRev, !$this->unhide ) . '
' .
+ Linker::revUserTools( $oldRevRecord, !$this->unhide ) . '' .
'' . $oldminor .
- Linker::revComment( $this->mOldRev, !$diffOnly, !$this->unhide ) . $ldel . '
' .
+ Linker::revComment( $oldRevRecord, !$diffOnly, !$this->unhide ) . $ldel . '' .
'' . $oldChangeTags[0] . '
' .
'' . $prevlink . '
';
@@ -768,11 +772,12 @@ class DifferenceEngine extends ContextSource {
' ' . implode( ' ', $formattedRevisionTools );
$newChangeTags = ChangeTags::formatSummaryRow( $this->mNewTags, 'diff', $this->getContext() );
+ $newRevRecord = $this->mNewRev->getRevisionRecord();
$newHeader = '' . $newRevisionHeader . '
' .
- '' . Linker::revUserTools( $this->mNewRev, !$this->unhide ) .
+ '
' . Linker::revUserTools( $newRevRecord, !$this->unhide ) .
" $rollback
" .
'
' . $newminor .
- Linker::revComment( $this->mNewRev, !$diffOnly, !$this->unhide ) . $rdel . '
' .
+ Linker::revComment( $newRevRecord, !$diffOnly, !$this->unhide ) . $rdel . '
' .
'' . $newChangeTags[0] . '
' .
'' . $nextlink . $this->markPatrolledLink() . '
';
@@ -917,10 +922,16 @@ class DifferenceEngine extends ContextSource {
/**
* @param Revision $rev
*
+ * @todo Accept RevisionRecord
+ *
* @return string
*/
protected function revisionDeleteLink( $rev ) {
- $link = Linker::getRevDeleteLink( $this->getUser(), $rev, $rev->getTitle() );
+ $link = Linker::getRevDeleteLink(
+ $this->getUser(),
+ $rev->getRevisionRecord(),
+ $rev->getTitle()
+ );
if ( $link !== '' ) {
$link = "\u{00A0}\u{00A0}\u{00A0}" . $link . ' ';
}
diff --git a/includes/page/Article.php b/includes/page/Article.php
index 7b335adf56a..01133ba9786 100644
--- a/includes/page/Article.php
+++ b/includes/page/Article.php
@@ -1580,7 +1580,7 @@ class Article implements Page {
$tdtime = $language->userTime( $timestamp, $user );
# Show user links if allowed to see them. If hidden, then show them only if requested...
- $userlinks = Linker::revUserTools( $revision, !$unhide );
+ $userlinks = Linker::revUserTools( $revision->getRevisionRecord(), !$unhide );
$infomsg = $current && !$context->msg( 'revision-info-current' )->isDisabled()
? 'revision-info-current'
@@ -1591,7 +1591,11 @@ class Article implements Page {
$context->msg( $infomsg, $td )
->rawParams( $userlinks )
->params( $revision->getId(), $tddate, $tdtime, $revision->getUserText() )
- ->rawParams( Linker::revComment( $revision, true, true ) )
+ ->rawParams( Linker::revComment(
+ $revision->getRevisionRecord(),
+ true,
+ true
+ ) )
->parse() .
"";
@@ -1661,7 +1665,11 @@ class Article implements Page {
] + $extraParams
);
- $cdel = Linker::getRevDeleteLink( $user, $revision, $this->getTitle() );
+ $cdel = Linker::getRevDeleteLink(
+ $user,
+ $revision->getRevisionRecord(),
+ $this->getTitle()
+ );
if ( $cdel !== '' ) {
$cdel .= ' ';
}
diff --git a/includes/revisiondelete/RevDelRevisionItem.php b/includes/revisiondelete/RevDelRevisionItem.php
index ce3f2537821..a934fe4feb3 100644
--- a/includes/revisiondelete/RevDelRevisionItem.php
+++ b/includes/revisiondelete/RevDelRevisionItem.php
@@ -180,8 +180,8 @@ class RevDelRevisionItem extends RevDelItem {
$difflink = $this->list->msg( 'parentheses' )
->rawParams( $this->getDiffLink() )->escaped();
$revlink = $this->getRevisionLink();
- $userlink = Linker::revUserLink( $this->revision );
- $comment = Linker::revComment( $this->revision );
+ $userlink = Linker::revUserLink( $this->revision->getRevisionRecord() );
+ $comment = Linker::revComment( $this->revision->getRevisionRecord() );
if ( $this->isDeleted() ) {
$revlink = "$revlink";
}
diff --git a/includes/revisionlist/RevisionItem.php b/includes/revisionlist/RevisionItem.php
index b16d814fbb2..de00ec84601 100644
--- a/includes/revisionlist/RevisionItem.php
+++ b/includes/revisionlist/RevisionItem.php
@@ -135,8 +135,8 @@ class RevisionItem extends RevisionItemBase {
$difflink = $this->context->msg( 'parentheses' )
->rawParams( $this->getDiffLink() )->escaped();
$revlink = $this->getRevisionLink();
- $userlink = Linker::revUserLink( $this->revision );
- $comment = Linker::revComment( $this->revision );
+ $userlink = Linker::revUserLink( $this->revision->getRevisionRecord() );
+ $comment = Linker::revComment( $this->revision->getRevisionRecord() );
if ( $this->isDeleted() ) {
$revlink = "$revlink";
}
diff --git a/includes/specials/SpecialMergeHistory.php b/includes/specials/SpecialMergeHistory.php
index d1b40373e43..7294d6793aa 100644
--- a/includes/specials/SpecialMergeHistory.php
+++ b/includes/specials/SpecialMergeHistory.php
@@ -318,13 +318,13 @@ class SpecialMergeHistory extends SpecialPage {
);
}
- $userLink = Linker::revUserTools( $rev );
+ $userLink = Linker::revUserTools( $rev->getRevisionRecord() );
$size = $row->rev_len;
if ( $size !== null ) {
$stxt = Linker::formatRevisionSize( $size );
}
- $comment = Linker::revComment( $rev );
+ $comment = Linker::revComment( $rev->getRevisionRecord() );
return Html::rawElement( 'li', [],
$this->msg( 'mergehistory-revisionrow' )
diff --git a/includes/specials/SpecialNewpages.php b/includes/specials/SpecialNewpages.php
index 8dfcc3c113f..08a1ed32e2a 100644
--- a/includes/specials/SpecialNewpages.php
+++ b/includes/specials/SpecialNewpages.php
@@ -397,8 +397,8 @@ class SpecialNewpages extends IncludableSpecialPage {
)->escaped()
);
- $ulink = Linker::revUserTools( $rev );
- $comment = Linker::revComment( $rev );
+ $ulink = Linker::revUserTools( $rev->getRevisionRecord() );
+ $comment = Linker::revComment( $rev->getRevisionRecord() );
if ( $this->patrollable( $result ) ) {
$classes[] = 'not-patrolled';
diff --git a/includes/specials/SpecialUndelete.php b/includes/specials/SpecialUndelete.php
index 4d49719df52..3a5df988ebd 100644
--- a/includes/specials/SpecialUndelete.php
+++ b/includes/specials/SpecialUndelete.php
@@ -484,7 +484,7 @@ class SpecialUndelete extends SpecialPage {
$time = $lang->userTimeAndDate( $timestamp, $user );
$d = $lang->userDate( $timestamp, $user );
$t = $lang->userTime( $timestamp, $user );
- $userLink = Linker::revUserTools( $rev );
+ $userLink = Linker::revUserTools( $rev->getRevisionRecord() );
$content = $rev->getContent( RevisionRecord::FOR_THIS_USER, $user );
@@ -500,7 +500,11 @@ class SpecialUndelete extends SpecialPage {
// Revision delete links
if ( !$this->mDiff ) {
- $revdel = Linker::getRevDeleteLink( $user, $rev, $this->mTargetObj );
+ $revdel = Linker::getRevDeleteLink(
+ $user,
+ $rev->getRevisionRecord(),
+ $this->mTargetObj
+ );
if ( $revdel ) {
$out->addHTML( "$revdel " );
}
@@ -644,7 +648,7 @@ class SpecialUndelete extends SpecialPage {
// Add show/hide deletion links if available
$user = $this->getUser();
$lang = $this->getLanguage();
- $rdel = Linker::getRevDeleteLink( $user, $rev, $this->mTargetObj );
+ $rdel = Linker::getRevDeleteLink( $user, $rev->getRevisionRecord(), $this->mTargetObj );
if ( $rdel ) {
$rdel = " $rdel";
@@ -689,7 +693,7 @@ class SpecialUndelete extends SpecialPage {
Linker::revUserTools( $rev ) . '
' .
'' .
'' .
- $minor . Linker::revComment( $rev ) . $rdel . '
' .
+ $minor . Linker::revComment( $rev->getRevisionRecord() ) . $rdel . '
' .
'
' .
'' .
$tagSummary[0] . '
' .
@@ -1019,7 +1023,7 @@ class SpecialUndelete extends SpecialPage {
}
// User links
- $userLink = Linker::revUserTools( $revObject );
+ $userLink = Linker::revUserTools( $revRecord );
// Minor edit
$minor = $revRecord->isMinor() ? ChangesList::flag( 'minor' ) : '';
@@ -1031,7 +1035,7 @@ class SpecialUndelete extends SpecialPage {
}
// Edit summary
- $comment = Linker::revComment( $revObject );
+ $comment = Linker::revComment( $revRecord );
// Tags
$attribs = [];
diff --git a/includes/specials/pagers/ContribsPager.php b/includes/specials/pagers/ContribsPager.php
index 091a3463736..324738ddbb3 100644
--- a/includes/specials/pagers/ContribsPager.php
+++ b/includes/specials/pagers/ContribsPager.php
@@ -606,8 +606,11 @@ class ContribsPager extends RangeChronologicalPager {
$permissionManager->quickUserCan( 'edit', $user, $page )
) {
$this->preventClickjacking();
- $topmarktext .= ' ' . Linker::generateRollback( $rev, $this->getContext(),
- [ 'noBrackets' ] );
+ $topmarktext .= ' ' . Linker::generateRollback(
+ $rev->getRevisionRecord(),
+ $this->getContext(),
+ [ 'noBrackets' ]
+ );
}
}
# Is there a visible previous revision?
@@ -660,8 +663,9 @@ class ContribsPager extends RangeChronologicalPager {
}
$lang = $this->getLanguage();
- $comment = $lang->getDirMark() . Linker::revComment( $rev, false, true, false );
- $d = ChangesList::revDateLink( $rev->getRevisionRecord(), $user, $lang, $page );
+ $revRecord = $rev->getRevisionRecord();
+ $comment = $lang->getDirMark() . Linker::revComment( $revRecord, false, true, false );
+ $d = ChangesList::revDateLink( $revRecord, $user, $lang, $page );
# When querying for an IP range, we want to always show user and user talk links.
$userlink = '';
@@ -682,7 +686,7 @@ class ContribsPager extends RangeChronologicalPager {
$flags[] = ChangesList::flag( 'minor' );
}
- $del = Linker::getRevDeleteLink( $user, $rev, $page );
+ $del = Linker::getRevDeleteLink( $user, $revRecord, $page );
if ( $del !== '' ) {
$del .= ' ';
}
diff --git a/includes/specials/pagers/DeletedContribsPager.php b/includes/specials/pagers/DeletedContribsPager.php
index f23872c875c..cad7ece6a99 100644
--- a/includes/specials/pagers/DeletedContribsPager.php
+++ b/includes/specials/pagers/DeletedContribsPager.php
@@ -342,7 +342,7 @@ class DeletedContribsPager extends IndexPager {
$last = htmlspecialchars( $this->messages['diff'] );
}
- $comment = Linker::revComment( $rev );
+ $comment = Linker::revComment( $rev->getRevisionRecord() );
$date = $this->getLanguage()->userTimeAndDate( $rev->getTimestamp(), $user );
if ( !$permissionManager->userHasRight( $user, 'undelete' ) ||
@@ -382,7 +382,7 @@ class DeletedContribsPager extends IndexPager {
}
// Revision delete link
- $del = Linker::getRevDeleteLink( $user, $rev, $page );
+ $del = Linker::getRevDeleteLink( $user, $rev->getRevisionRecord(), $page );
if ( $del ) {
$del .= ' ';
}
diff --git a/tests/phpunit/includes/LinkerTest.php b/tests/phpunit/includes/LinkerTest.php
index 62b02f3daca..02278941d1e 100644
--- a/tests/phpunit/includes/LinkerTest.php
+++ b/tests/phpunit/includes/LinkerTest.php
@@ -473,7 +473,7 @@ class LinkerTest extends MediaWikiLangTestCase {
$summary = CommentStoreComment::newUnsavedComment( 'Some comment!' );
$updater->saveRevision( $summary );
- $rollbackOutput = Linker::generateRollback( $page->getRevision(), $context );
+ $rollbackOutput = Linker::generateRollback( $page->getRevisionRecord(), $context );
$modules = $context->getOutput()->getModules();
$currentRev = $page->getRevision();
$revisionLookup = MediaWikiServices::getInstance()->getRevisionLookup();