Avoid use of deprecated URL related global functions

Change-Id: I752d77c6c23f0cf8598d3759c73df29cd385652d
This commit is contained in:
Ebrahim Byagowi 2024-09-09 09:23:31 +03:30
parent 9bfcb7522b
commit ef6ff77539
3 changed files with 10 additions and 5 deletions

View file

@ -20,7 +20,8 @@
"main": {
"class": "MediaWiki\\SecureLinkFixer\\Hooks",
"services": [
"HSTSPreloadLookup"
"HSTSPreloadLookup",
"UrlUtils"
]
}
},

View file

@ -19,13 +19,16 @@
namespace MediaWiki\SecureLinkFixer;
use MediaWiki\Hook\LinkerMakeExternalLinkHook;
use MediaWiki\Utils\UrlUtils;
class Hooks implements LinkerMakeExternalLinkHook {
private HSTSPreloadLookup $lookup;
private UrlUtils $urlUtils;
public function __construct( HSTSPreloadLookup $lookup ) {
public function __construct( HSTSPreloadLookup $lookup, UrlUtils $urlUtils ) {
$this->lookup = $lookup;
$this->urlUtils = $urlUtils;
}
/**
@ -48,7 +51,7 @@ class Hooks implements LinkerMakeExternalLinkHook {
return;
}
$parsed = wfParseUrl( $url );
$parsed = $this->urlUtils->parse( $url );
if ( !$parsed ) {
return;
}
@ -61,7 +64,7 @@ class Hooks implements LinkerMakeExternalLinkHook {
if ( $this->lookup->isPreloaded( $parsed['host'] ) ) {
$parsed['scheme'] = 'https';
$parsed['delimiter'] = '://';
$url = wfAssembleUrl( $parsed );
$url = UrlUtils::assemble( $parsed );
}
}
}

View file

@ -30,7 +30,8 @@ class HooksTest extends MediaWikiIntegrationTestCase {
* @dataProvider provideOnLinkerMakeExternalLink
*/
public function testOnLinkerMakeExternalLink( $input, $expected ) {
$hooks = new Hooks( $this->getServiceContainer()->getService( 'HSTSPreloadLookup' ) );
$services = $this->getServiceContainer();
$hooks = new Hooks( $services->getService( 'HSTSPreloadLookup' ), $services->getUrlUtils() );
$dummy = '';
$dummy2 = [];
$hooks->onLinkerMakeExternalLink( $input, $dummy, $dummy, $dummy2, $dummy );