From 2ab168f1135ac37c9dba543d2cf6d439e79cff3c Mon Sep 17 00:00:00 2001 From: Timo Tijhof Date: Mon, 22 Aug 2016 22:32:08 -0700 Subject: [PATCH] Use getDefinitionSummary() in ResourceLoaderULSJsonMessageModule * Fix inaccurate class comment that was copied from an unrelated module in MediaWiki core. * Remove use of deprecated getModifiedTime(). While this implementation was straight forward, it is more reliable and deterministic to use a content hash because timestamps are not tracked by Git. This currently causes needless cache invalidation for all users at Wikimedia every week because git-clone starts with fresh timestamps on disk. I'm not using enableModuleContentVersion() right now because calling getScript() reads all files into memory which is more expensive than simply hashing the files. Especially because safeFileHash() is backed by an APC cache via FileContentsHasher. This matches the implementation in core ResourceLoaderFileModule. Change-Id: If9aaefa6a3cf047c6c36e1cdd0f350412d59c849 --- .../ResourceLoaderULSJsonMessageModule.php | 25 ++++++++----------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/includes/ResourceLoaderULSJsonMessageModule.php b/includes/ResourceLoaderULSJsonMessageModule.php index fef8d600..c9e78a6b 100644 --- a/includes/ResourceLoaderULSJsonMessageModule.php +++ b/includes/ResourceLoaderULSJsonMessageModule.php @@ -1,7 +1,6 @@ getLanguage(); if ( !Language::isValidCode( $code ) ) { $code = 'en'; } - - $mtimes = array_map( - 'filemtime', + $fileHashes = array_map( + [ __CLASS__, 'safeFileHash' ], ULSJsonMessageLoader::getFilenames( $code ) ); - // Make sure we have at least one entry - $mtimes[] = 1; - return max( $mtimes ); + $summary = parent::getDefinitionSummary( $context ); + $summary[] = [ + 'fileHashes' => $fileHashes + ]; + return $summary; } /**