diff --git a/RELEASE-NOTES-1.35 b/RELEASE-NOTES-1.35 index fd90567d8e8..ad2e6c96c6f 100644 --- a/RELEASE-NOTES-1.35 +++ b/RELEASE-NOTES-1.35 @@ -1219,6 +1219,8 @@ because of Phabricator reports. Use the new UserGroupManager service instead. * wfWaitForSlaves() has been hard deprecated. Use LBFactory::waitForReplication instead. It was soft deprecated in 1.27. +* The DiffViewHeader hook has been deprecated. Instead, use the new + DifferenceEngineViewHeader hook. * BaseTemplate::getAfterPortlet and ::renderAfterPortlet have been deprecated in favor of the Skin::getAfterPortlet method. Skin::getAfterPortlet does not wrap the result in a div, callers are responsible for that. diff --git a/includes/HookContainer/DeprecatedHooks.php b/includes/HookContainer/DeprecatedHooks.php index a43e5ff5da6..e3e4e33263e 100644 --- a/includes/HookContainer/DeprecatedHooks.php +++ b/includes/HookContainer/DeprecatedHooks.php @@ -47,6 +47,7 @@ class DeprecatedHooks { 'BaseTemplateAfterPortlet' => [ 'deprecatedVersion' => '1.35', 'silent' => true ], 'BaseTemplateToolbox' => [ 'deprecatedVersion' => '1.35' ], 'BeforeParserrenderImageGallery' => [ 'deprecatedVersion' => '1.35' ], + 'DiffViewHeader' => [ 'deprecatedVersion' => '1.35', 'silent' => true ], 'InternalParseBeforeSanitize' => [ 'deprecatedVersion' => '1.35' ], 'LinkBegin' => [ 'deprecatedVersion' => '1.28' ], 'LinkEnd' => [ 'deprecatedVersion' => '1.28' ], diff --git a/includes/HookContainer/HookRunner.php b/includes/HookContainer/HookRunner.php index 005efbf0f9a..3bd70568835 100644 --- a/includes/HookContainer/HookRunner.php +++ b/includes/HookContainer/HookRunner.php @@ -73,6 +73,7 @@ class HookRunner implements \MediaWiki\Diff\Hook\DifferenceEngineShowDiffPageHook, \MediaWiki\Diff\Hook\DifferenceEngineShowDiffPageMaybeShowMissingRevisionHook, \MediaWiki\Diff\Hook\DifferenceEngineShowEmptyOldContentHook, + \MediaWiki\Diff\Hook\DifferenceEngineViewHeaderHook, \MediaWiki\Diff\Hook\DiffRevisionToolsHook, \MediaWiki\Diff\Hook\DiffViewHeaderHook, \MediaWiki\Diff\Hook\NewDifferenceEngineHook, @@ -1480,6 +1481,13 @@ class HookRunner implements ); } + public function onDifferenceEngineViewHeader( $differenceEngine ) { + return $this->container->run( + 'DifferenceEngineViewHeader', + [ $differenceEngine ] + ); + } + public function onDiffRevisionTools( $newRev, &$links, $oldRev, $user ) { return $this->container->run( 'DiffRevisionTools', diff --git a/includes/diff/DifferenceEngine.php b/includes/diff/DifferenceEngine.php index 126942a4e7c..3af33180802 100644 --- a/includes/diff/DifferenceEngine.php +++ b/includes/diff/DifferenceEngine.php @@ -648,7 +648,9 @@ class DifferenceEngine extends ContextSource { // Allow extensions to change the $oldHeader variable $this->hookRunner->onDifferenceEngineOldHeaderNoOldRev( $oldHeader ); } else { - // TODO replace hook with one that uses RevisionRecords + $this->hookRunner->onDifferenceEngineViewHeader( $this ); + + // DiffViewHeader hook is soft deprecated since 1.35 // If old or new are falsey, keeps those values $legacyOldRev = $this->mOldRevisionRecord ? new Revision( $this->mOldRevisionRecord ) : diff --git a/includes/diff/Hook/DiffViewHeaderHook.php b/includes/diff/Hook/DiffViewHeaderHook.php index 66e87b84cbb..69a63dd03af 100644 --- a/includes/diff/Hook/DiffViewHeaderHook.php +++ b/includes/diff/Hook/DiffViewHeaderHook.php @@ -6,7 +6,7 @@ use DifferenceEngine; use Revision; /** - * @stable for implementation + * @deprecated since 1.35, use DifferenceEngineViewHeader * @ingroup Hooks */ interface DiffViewHeaderHook { diff --git a/includes/diff/Hook/DifferenceEngineViewHeaderHook.php b/includes/diff/Hook/DifferenceEngineViewHeaderHook.php new file mode 100644 index 00000000000..b45f5504584 --- /dev/null +++ b/includes/diff/Hook/DifferenceEngineViewHeaderHook.php @@ -0,0 +1,21 @@ +