Gergő Tisza has uploaded a new change for review. https://gerrit.wikimedia.org/r/157815
Change subject: Make the main script load on-demand ...................................................................... Make the main script load on-demand Change-Id: I93bb46e6589f0496b5b7cdecddd45fec62201d87 --- M ImageMetrics.php M resources/ext.imageMetrics.js A resources/ext.imageMetrics.loader.js 3 files changed, 37 insertions(+), 19 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/ImageMetrics refs/changes/15/157815/1 diff --git a/ImageMetrics.php b/ImageMetrics.php index 0eab471..e93ea2c 100644 --- a/ImageMetrics.php +++ b/ImageMetrics.php @@ -41,7 +41,13 @@ 'remoteExtPath' => 'ImageMetrics/resources', 'dependencies' => 'schema.ImageMetricsLoadingTime', 'targets' => array( 'desktop', 'mobile' ), - ) + ), + 'ext.imageMetrics.loader' => array( + 'scripts' => 'ext.imageMetrics.loader.js', + 'localBasePath' => __DIR__ . '/resources', + 'remoteExtPath' => 'ImageMetrics/resources', + 'targets' => array( 'desktop', 'mobile' ), + ), ); /** @@ -51,7 +57,7 @@ */ $wgHooks['BeforePageDisplay'][] = function ( &$out, &$skin ) { if ( $out->getTitle()->inNamespace( NS_FILE ) && Action::getActionName( $out->getContext() ) === 'view' ) { - $out->addModules( 'ext.imageMetrics' ); + $out->addModules( 'ext.imageMetrics.loader' ); } return true; }; diff --git a/resources/ext.imageMetrics.js b/resources/ext.imageMetrics.js index 927a2be..e8bdac8 100644 --- a/resources/ext.imageMetrics.js +++ b/resources/ext.imageMetrics.js @@ -75,19 +75,6 @@ }; /** - * Makes a random decision (based on the sampling factor configuration setting) whether the current - * request should be logged. - * @return {boolean} - */ - ImageMetrics.prototype.isInSample = function () { - var factor = this.mwConfig.get( 'wgImageMetricsSamplingFactor', false ); - if ( !$.isNumeric( factor ) || factor < 1 ) { - return false; - } - return Math.floor( Math.random() * factor ) === 0; - }; - - /** * Adds information provided by MediaWiki. * @param {Object} data * @param {jQuery} $file jQuery object containing the img element @@ -158,9 +145,6 @@ var $file, data = {}; - if ( !this.isInSample() || !this.eventLog ) { - return; - } data.samplingFactor = this.mwConfig.get( 'wgImageMetricsSamplingFactor' ); data.isHttps = this.location.protocol === 'https:'; @@ -176,5 +160,4 @@ }; mw.ImageMetrics = ImageMetrics; - ImageMetrics.install(); } ( mediaWiki, jQuery ) ); diff --git a/resources/ext.imageMetrics.loader.js b/resources/ext.imageMetrics.loader.js new file mode 100644 index 0000000..942433e --- /dev/null +++ b/resources/ext.imageMetrics.loader.js @@ -0,0 +1,29 @@ +/** + * JavaScript module for image-related metrics. + * @see https://mediawiki.org/wiki/Extension:ImageMetrics + * + * @licence GNU GPL v2 or later + * @author Tisza Gergő <gti...@wikimedia.org> + */ +( function ( mw, $ ) { + 'use strict'; + + /** + * Makes a random decision (based on the sampling factor configuration setting) whether the current + * request should be logged. + * @return {boolean} + */ + function isInSample() { + var factor = mw.config.get( 'wgImageMetricsSamplingFactor', false ); + if ( !$.isNumeric( factor ) || factor < 1 ) { + return false; + } + return Math.floor( Math.random() * factor ) === 0; + } + + if ( isInSample() ) { + mw.loader.using( 'ext.imageMetrics', function () { + mw.ImageMetrics.install(); + } ); + } +} ( mediaWiki, jQuery ) ); -- To view, visit https://gerrit.wikimedia.org/r/157815 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I93bb46e6589f0496b5b7cdecddd45fec62201d87 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/ImageMetrics Gerrit-Branch: master Gerrit-Owner: Gergő Tisza <gti...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits