Merge "Make LBFactorySingle call initLoadBalancer() as the others do"
[lhc/web/wiklou.git] / resources / src / mediawiki / mediawiki.storage.js
index e10b561..cb62fbf 100644 (file)
@@ -1,69 +1,58 @@
 ( function ( mw ) {
        'use strict';
-       var storage;
 
        /**
         * Library for storing device specific information. It should be used for storing simple
         * strings and is not suitable for storing large chunks of data.
+        *
         * @class mw.storage
         * @singleton
         */
-       storage = {
-               isLocalStorageSupported: false,
+       mw.storage = {
+
+               localStorage: window.localStorage,
+
                /**
                 * Retrieve value from device storage.
                 *
-                * @param {String} key of item to retrieve
-                * @returns {String|Boolean} false when localStorage not available, otherwise string
+                * @param {string} key Key of item to retrieve
+                * @return {string|boolean} False when localStorage not available, otherwise string
                 */
                get: function ( key ) {
-                       if ( this.isLocalStorageSupported ) {
-                               return localStorage.getItem( key );
-                       } else {
-                               return false;
-                       }
+                       try {
+                               return mw.storage.localStorage.getItem( key );
+                       } catch ( e ) {}
+                       return false;
                },
 
                /**
-                * Set a value in device storage.
-                *
-                * @param {String} key key name to store under.
-                * @param {String} value to be stored.
-                * @returns {Boolean} whether the save succeeded or not.
-                */
+                 * Set a value in device storage.
+                 *
+                 * @param {string} key Key name to store under
+                 * @param {string} value Value to be stored
+                 * @return {boolean} Whether the save succeeded or not
+                 */
                set: function ( key, value ) {
                        try {
-                               localStorage.setItem( key, value );
+                               mw.storage.localStorage.setItem( key, value );
                                return true;
-                       } catch ( e ) {
-                               return false;
-                       }
+                       } catch ( e ) {}
+                       return false;
                },
 
                /**
-                * Remove a value from device storage.
-                *
-                * @param {String} key of item to remove.
-                * @returns {Boolean} whether the save succeeded or not.
-                */
+                 * Remove a value from device storage.
+                 *
+                 * @param {string} key Key of item to remove
+                 * @return {boolean} Whether the save succeeded or not
+                 */
                remove: function ( key ) {
-                       if ( this.isLocalStorageSupported ) {
-                               localStorage.removeItem( key );
+                       try {
+                               mw.storage.localStorage.removeItem( key );
                                return true;
-                       } else {
-                               return false;
-                       }
+                       } catch ( e ) {}
+                       return false;
                }
        };
 
-       mw.storage = storage;
-       // See if local storage is supported
-       try {
-               localStorage.setItem( 'localStorageTest', 'localStorageTest' );
-               localStorage.removeItem( 'localStorageTest' );
-               storage.isLocalStorageSupported = true;
-       } catch ( e ) {
-               // Already set. No body needed.
-       }
-
 }( mediaWiki ) );