jenkins-bot has submitted this change and it was merged.

Change subject: mw.inspect: add report for mw.loader.store
......................................................................


mw.inspect: add report for mw.loader.store

Adds a 'store' report to mw.inspect, which outputs:
* Whether localStorage module caching is enabled.
* Cache hit / miss counts.
* Number of items purged from the cache.
* Total size of the cache blob in localStorage.

Rather than duplicate the logic that converted a numeric byte count to a
human-readable format, I moved it to new helper function: humanSize.

Change-Id: I5b98322ba843f32e6a99829b4cf3d8fb0bc61514
---
M resources/mediawiki/mediawiki.inspect.js
1 file changed, 25 insertions(+), 3 deletions(-)

Approvals:
  Bartosz Dziewoński: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/resources/mediawiki/mediawiki.inspect.js 
b/resources/mediawiki/mediawiki.inspect.js
index 668aa2a..d93254b 100644
--- a/resources/mediawiki/mediawiki.inspect.js
+++ b/resources/mediawiki/mediawiki.inspect.js
@@ -14,6 +14,13 @@
                } );
        }
 
+       function humanSize( bytes ) {
+               if ( !$.isNumeric( bytes ) || bytes === 0 ) { return bytes; }
+               var i = 0, units = [ '', ' kB', ' MB', ' GB', ' TB', ' PB' ];
+               for ( ; bytes >= 1024; bytes /= 1024 ) { i++; }
+               return bytes.toFixed( 1 ) + units[i];
+       }
+
        /**
         * @class mw.inspect
         * @singleton
@@ -181,9 +188,7 @@
 
                                // Convert size to human-readable string.
                                $.each( modules, function ( i, module ) {
-                                       module.size = module.size > 1024 ?
-                                               ( module.size / 1024 ).toFixed( 
2 ) + ' KB' :
-                                               ( module.size !== null ? 
module.size + ' B' : null );
+                                       module.size = humanSize( module.size );
                                } );
 
                                return modules;
@@ -214,6 +219,23 @@
                                } );
                                sortByProperty( modules, 'allSelectors', true );
                                return modules;
+                       },
+
+                       /**
+                        * Report stats on mw.loader.store: the number of 
localStorage
+                        * cache hits and misses, the number of items purged 
from the
+                        * cache, and the total size of the module blob in 
localStorage.
+                        */
+                       store: function () {
+                               var raw, stats = { enabled: 
mw.loader.store.enabled };
+                               if ( stats.enabled ) {
+                                       $.extend( stats, mw.loader.store.stats 
);
+                                       try {
+                                               raw = localStorage.getItem( 
mw.loader.store.getStoreKey() );
+                                               stats.totalSize = humanSize( 
$.byteLength( raw ) );
+                                       } catch (e) {}
+                               }
+                               return [stats];
                        }
                }
        };

-- 
To view, visit https://gerrit.wikimedia.org/r/92895
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I5b98322ba843f32e6a99829b4cf3d8fb0bc61514
Gerrit-PatchSet: 7
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Ori.livneh <o...@wikimedia.org>
Gerrit-Reviewer: Bartosz Dziewoński <matma....@gmail.com>
Gerrit-Reviewer: Mattflaschen <mflasc...@wikimedia.org>
Gerrit-Reviewer: Ori.livneh <o...@wikimedia.org>
Gerrit-Reviewer: jenkins-bot

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to