Add new DifferenceEngineViewHeader hook to replace DiffViewHeader

Bug: T255769
Change-Id: I8adf51fe641c88c9b37080af065a0a9cd920de44
This commit is contained in:
DannyS712 2020-06-18 13:20:49 +00:00
parent c089a7edaa
commit a5dc0331d0
6 changed files with 36 additions and 2 deletions

View file

@ -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.

View file

@ -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' ],

View file

@ -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',

View file

@ -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 ) :

View file

@ -6,7 +6,7 @@ use DifferenceEngine;
use Revision;
/**
* @stable for implementation
* @deprecated since 1.35, use DifferenceEngineViewHeader
* @ingroup Hooks
*/
interface DiffViewHeaderHook {

View file

@ -0,0 +1,21 @@
<?php
namespace MediaWiki\Diff\Hook;
use DifferenceEngine;
/**
* @stable for implementation
* @ingroup Hooks
*/
interface DifferenceEngineViewHeaderHook {
/**
* This hook is called before diff display.
*
* @since 1.35
*
* @param DifferenceEngine $differenceEngine
* @return bool|void True or no return value to continue or false to abort
*/
public function onDifferenceEngineViewHeader( $differenceEngine );
}