mw.loader: Guard localStorage access with try/catch in mw.store.clear()
authorBryan Davis <bd808@wikimedia.org>
Thu, 4 Feb 2016 16:19:25 +0000 (09:19 -0700)
committerBryan Davis <bd808@wikimedia.org>
Thu, 4 Feb 2016 23:41:49 +0000 (16:41 -0700)
We use try/catch appropriately in other places but it was missing
in mw.store.clear().

If the user agent has localStorage disabled an exception will be thrown
for any operation that touches the object.

Change-Id: Idcd0e4c8ba9b0843b2ddcad0ae1781e4915e04fe

resources/src/mediawiki/mediawiki.js

index b8349d0..90b93dc 100644 (file)
                                         */
                                        clear: function () {
                                                mw.loader.store.items = {};
-                                               localStorage.removeItem( mw.loader.store.getStoreKey() );
+                                               try {
+                                                       localStorage.removeItem( mw.loader.store.getStoreKey() );
+                                               } catch ( ignored ) {}
                                        },
 
                                        /**