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

Reply via email to