registration: Avoid double slashes in localBasePath
Noticed it in APC usage for ResourceLoader that various keys from FileContentsHasher contain double slashes. All from extensions that use the `"localBasePath": ""` trick in extension.json (e.g. Citoid). Change-Id: I5bac1e2e05e063aa7ff251ce7ffaa965a3451db9
This commit is contained in:
parent
858183e87a
commit
04362aa613
2 changed files with 14 additions and 4 deletions
|
|
@ -253,14 +253,24 @@ class ExtensionProcessor implements Processor {
|
|||
? $info['ResourceFileModulePaths']
|
||||
: false;
|
||||
if ( isset( $defaultPaths['localBasePath'] ) ) {
|
||||
$defaultPaths['localBasePath'] = "$dir/{$defaultPaths['localBasePath']}";
|
||||
if ( $defaultPaths['localBasePath'] === '' ) {
|
||||
// Avoid double slashes (e.g. /extensions/Example//path)
|
||||
$defaultPaths['localBasePath'] = $dir;
|
||||
} else {
|
||||
$defaultPaths['localBasePath'] = "$dir/{$defaultPaths['localBasePath']}";
|
||||
}
|
||||
}
|
||||
|
||||
foreach ( [ 'ResourceModules', 'ResourceModuleSkinStyles' ] as $setting ) {
|
||||
if ( isset( $info[$setting] ) ) {
|
||||
foreach ( $info[$setting] as $name => $data ) {
|
||||
if ( isset( $data['localBasePath'] ) ) {
|
||||
$data['localBasePath'] = "$dir/{$data['localBasePath']}";
|
||||
if ( $data['localBasePath'] === '' ) {
|
||||
// Avoid double slashes (e.g. /extensions/Example//path)
|
||||
$data['localBasePath'] = $dir;
|
||||
} else {
|
||||
$data['localBasePath'] = "$dir/{$data['localBasePath']}";
|
||||
}
|
||||
}
|
||||
if ( $defaultPaths ) {
|
||||
$data += $defaultPaths;
|
||||
|
|
|
|||
|
|
@ -218,7 +218,7 @@ class ExtensionProcessorTest extends MediaWikiTestCase {
|
|||
}
|
||||
|
||||
public static function provideExtractResourceLoaderModules() {
|
||||
$dir = __DIR__ . '/FooBar/';
|
||||
$dir = __DIR__ . '/FooBar';
|
||||
return [
|
||||
// Generic module with localBasePath/remoteExtPath specified
|
||||
[
|
||||
|
|
@ -285,7 +285,7 @@ class ExtensionProcessorTest extends MediaWikiTestCase {
|
|||
],
|
||||
'test.bar' => [
|
||||
'styles' => 'bar.js',
|
||||
'localBasePath' => $dir . 'subdir',
|
||||
'localBasePath' => "$dir/subdir",
|
||||
'remoteExtPath' => 'FooBar/subdir',
|
||||
],
|
||||
'test.class' => [
|
||||
|
|
|
|||
Loading…
Reference in a new issue