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ő <[email protected]>
+ */
+( 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 <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits