From: Timo Tijhof Date: Thu, 22 Mar 2018 03:35:16 +0000 (-0700) Subject: resourceloader: Use getRawVal instead of slower getVal in StartupModule X-Git-Tag: 1.31.0-rc.0~285^2 X-Git-Url: https://git.cyclocoop.org/%7B%24admin_url%7Dmembres/supprimer.php?a=commitdiff_plain;h=558b00758557a638ad8ec96812100a45a27c69df;p=lhc%2Fweb%2Fwiklou.git resourceloader: Use getRawVal instead of slower getVal in StartupModule For the same reasons as in ResourceLoaderContext. The only valid values here are known strings like "desktop" and "mobile". No Language/UTF normalisation required. Ensures that Language instance won't get initialised just for this. Change-Id: If219463d80a66132786710184329388080fbe713 --- diff --git a/includes/resourceloader/ResourceLoaderContext.php b/includes/resourceloader/ResourceLoaderContext.php index 370046aab4..c4e9884a1e 100644 --- a/includes/resourceloader/ResourceLoaderContext.php +++ b/includes/resourceloader/ResourceLoaderContext.php @@ -63,12 +63,8 @@ class ResourceLoaderContext implements MessageLocalizer { $this->request = $request; $this->logger = $resourceLoader->getLogger(); - // Future developers: Avoid use of getVal() in this class, which performs - // expensive UTF normalisation by default. Use getRawVal() instead. - // Values here are either one of a finite number of internal IDs, - // or previously-stored user input (e.g. titles, user names) that were passed - // to this endpoint by ResourceLoader itself from the canonical value. - // Values do not come directly from user input and need not match. + // Future developers: Use WebRequest::getRawVal() instead getVal(). + // The getVal() method performs slow Language+UTF logic. (f303bb9360) // List of modules $modules = $request->getRawVal( 'modules' ); diff --git a/includes/resourceloader/ResourceLoaderStartUpModule.php b/includes/resourceloader/ResourceLoaderStartUpModule.php index ae9520d1a6..681e8dc005 100644 --- a/includes/resourceloader/ResourceLoaderStartUpModule.php +++ b/includes/resourceloader/ResourceLoaderStartUpModule.php @@ -206,7 +206,9 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule { */ public function getModuleRegistrations( ResourceLoaderContext $context ) { $resourceLoader = $context->getResourceLoader(); - $target = $context->getRequest()->getVal( 'target', 'desktop' ); + // Future developers: Use WebRequest::getRawVal() instead getVal(). + // The getVal() method performs slow Language+UTF logic. (f303bb9360) + $target = $context->getRequest()->getRawVal( 'target', 'desktop' ); // Bypass target filter if this request is Special:JavaScriptTest. // To prevent misuse in production, this is only allowed if testing is enabled server-side. $byPassTargetFilter = $this->getConfig()->get( 'EnableJavaScriptTest' ) && $target === 'test';