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

Change subject: Catch exceptions thrown by localStorage.getItem
......................................................................


Catch exceptions thrown by localStorage.getItem

Bug: T94695
Change-Id: I7fd7c4776a55de24d702babb291faf3208c8d0af
---
M resources/mmv/mmv.Config.js
M resources/mmv/mmv.head.js
M resources/mmv/ui/mmv.ui.metadataPanelScroller.js
3 files changed, 19 insertions(+), 7 deletions(-)

Approvals:
  Gergő Tisza: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/resources/mmv/mmv.Config.js b/resources/mmv/mmv.Config.js
index 3a87b16..de5dbc7 100644
--- a/resources/mmv/mmv.Config.js
+++ b/resources/mmv/mmv.Config.js
@@ -65,7 +65,11 @@
        CP.getFromLocalStorage = function ( key, fallback ) {
                var value = null;
                if ( this.localStorage ) {
-                       value = this.localStorage.getItem( key );
+                       try {
+                               value = this.localStorage.getItem( key );
+                       } catch ( e ) {
+                               mw.log( 'Failed to fetch item ' + key + ' from 
localStorage', e );
+                       }
                }
                if ( value === null && fallback !== undefined ) {
                        value = fallback;
diff --git a/resources/mmv/mmv.head.js b/resources/mmv/mmv.head.js
index 394f647..5a30471 100644
--- a/resources/mmv/mmv.head.js
+++ b/resources/mmv/mmv.head.js
@@ -25,11 +25,15 @@
 
        // If the user disabled MediaViewer in his preferences, we do not set 
up click handling.
        // This is loaded before user JS so we cannot check wgMediaViewer.
-       if (
-               mw.config.get( 'wgMediaViewerOnClick' ) !== true
-               || mw.user.isAnon() && window.localStorage && 
localStorage.getItem( 'wgMediaViewerOnClick' ) === false
-       ) {
-               return;
+       try {
+               if (
+                       mw.config.get( 'wgMediaViewerOnClick' ) !== true
+                       || mw.user.isAnon() && window.localStorage && 
localStorage.getItem( 'wgMediaViewerOnClick' ) === false
+               ) {
+                       return;
+               }
+       } catch ( e ) { // localStorage.getItem can throw exceptions
+               mw.log( 'Could not check value of wgMediaViewerOnClick in 
localStorage' );
        }
 
        $document.on( 'click.mmv-head', 'a.image', function ( e ) {
diff --git a/resources/mmv/ui/mmv.ui.metadataPanelScroller.js 
b/resources/mmv/ui/mmv.ui.metadataPanelScroller.js
index 6a07865..481115c 100644
--- a/resources/mmv/ui/mmv.ui.metadataPanelScroller.js
+++ b/resources/mmv/ui/mmv.ui.metadataPanelScroller.js
@@ -138,7 +138,11 @@
 
 
        MPSP.initialize = function () {
-               this.hasOpenedMetadata = !this.localStorage || 
this.localStorage.getItem( 'mmv.hasOpenedMetadata' );
+               try {
+                       this.hasOpenedMetadata = !this.localStorage || 
this.localStorage.getItem( 'mmv.hasOpenedMetadata' );
+               } catch ( e ) { // localStorage.getItem can throw exceptions
+                       this.hasOpenedMetadata = true;
+               }
        };
 
        /**

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I7fd7c4776a55de24d702babb291faf3208c8d0af
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/MultimediaViewer
Gerrit-Branch: master
Gerrit-Owner: Gilles <[email protected]>
Gerrit-Reviewer: GergÅ‘ Tisza <[email protected]>
Gerrit-Reviewer: MarkTraceur <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to