* @param string $data Text to filter, such as JavaScript or CSS text
* @param array $options For back-compat, can also be the boolean value for "cacheReport". Keys:
* - (bool) cache: Whether to allow caching this data. Default: true.
- * - (bool) cacheReport: Whether to include the "cache key" report comment. Default: true.
+ * - (bool) cacheReport: Whether to include the "cache key" report comment. Default: false.
* @return string Filtered data, or a comment containing an error message
*/
public function filter( $filter, $data, $options = array() ) {
$options = array( 'cacheReport' => $options );
}
// Defaults
- $options += array( 'cache' => true, 'cacheReport' => true );
+ $options += array( 'cache' => true, 'cacheReport' => false );
// Don't filter empty content
if ( trim( $data ) === '' ) {
$result = self::applyFilter( $filter, $data, $this->config );
- $stats->timing( "resourceloader_cache.$filter.miss", microtime( true ) - $statStart );
+ $statTiming = microtime( true ) - $statStart;
+ $stats->timing( "resourceloader_cache.$filter.miss", 1000 * $statTiming );
if ( $options['cacheReport'] ) {
$result .= "\n/* cache key: $key */";
}
header( 'Cache-Control: private, no-cache, must-revalidate' );
header( 'Pragma: no-cache' );
} else {
- header( "Cache-Control: public, must-revalidate, max-age=$maxage, s-maxage=$smaxage" );
+ header( "Cache-Control: public, max-age=$maxage, s-maxage=$smaxage" );
$exp = min( $maxage, $smaxage );
header( 'Expires: ' . wfTimestamp( TS_RFC2822, $exp + time() ) );
}
* @return string
*/
public static function makeLoaderConditionalScript( $script ) {
- return "var RLQ = RLQ || []; RLQ.push( function () {\n" . trim( $script ) . "\n} );";
+ return "window.RLQ = window.RLQ || []; window.RLQ.push( function () {\n" . trim( $script ) . "\n} );";
}
/**
$js = self::makeLoaderConditionalScript( $script );
return new WrappedString(
Html::inlineScript( $js ),
- "<script>var RLQ = RLQ || []; RLQ.push( function () {\n",
+ "<script>window.RLQ = window.RLQ || []; window.RLQ.push( function () {\n",
"\n} );</script>"
);
}
* @return string
*/
public static function makeConfigSetScript( array $configuration ) {
- return Xml::encodeJsCall(
- 'mw.config.set',
- array( $configuration ),
- ResourceLoader::inDebugMode()
- );
+ if ( ResourceLoader::inDebugMode() ) {
+ return Xml::encodeJsCall( 'mw.config.set', array( $configuration ), true );
+ }
+
+ $config = RequestContext::getMain()->getConfig();
+ $js = Xml::encodeJsCall( 'mw.config.set', array( $configuration ), false );
+ return self::applyFilter( 'minify-js', $js, $config );
}
/**