Ori.livneh has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/234002

Change subject: Use localStorage to store previous languages, not cookies
......................................................................

Use localStorage to store previous languages, not cookies

Automatically migrates data from uls-previous-language cookie to localStorage.
See associated bug for rationale.

Bug: T110353
Change-Id: Ib98499040b9edf4a1f1d9e3afd7661fc2d1f7fea
---
M resources/js/ext.uls.init.js
1 file changed, 22 insertions(+), 11 deletions(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/UniversalLanguageSelector 
refs/changes/02/234002/1

diff --git a/resources/js/ext.uls.init.js b/resources/js/ext.uls.init.js
index 5a112e7..780f60f 100644
--- a/resources/js/ext.uls.init.js
+++ b/resources/js/ext.uls.init.js
@@ -22,7 +22,7 @@
        var hasOwn = Object.prototype.hasOwnProperty;
 
        mw.uls = mw.uls || {};
-       mw.uls.previousLanguagesCookie = 'uls-previous-languages';
+       mw.uls.previousLanguagesStorageKey = 'uls-previous-languages';
        mw.uls.previousLanguageAutonymCookie = 'uls-previous-language-autonym';
        mw.uls.languageSettingsModules = [ 'ext.uls.inputsettings', 
'ext.uls.displaysettings' ];
 
@@ -85,22 +85,33 @@
        };
 
        mw.uls.setPreviousLanguages = function ( previousLanguages ) {
-               $.cookie( mw.uls.previousLanguagesCookie,
-                       JSON.stringify( previousLanguages ), {
-                               path: '/'
-                       }
-               );
+               try {
+                       localStorage.setItem(
+                               mw.uls.previousLanguagesStorageKey,
+                               JSON.stringify( previousLanguages.slice( -5 ) )
+                       );
+               } catch ( e ) {}
        };
 
        mw.uls.getPreviousLanguages = function () {
-               var previousLanguages = $.cookie( 
mw.uls.previousLanguagesCookie );
+               var previousLanguages = $.cookie( 
mw.uls.previousLanguagesStorageKey );
 
-               if ( !previousLanguages ) {
-                       return [];
+               if ( $.isArray( previousLanguages ) ) {
+                       // Migrate data from cookie to localStorage.
+                       mw.uls.setPreviousLanguages( previousLanguages );
+                       $.removeCookie( mw.uls.previousLanguagesStorageKey );
+               } else {
+                       previousLanguages = [];
                }
 
-               // return last 5 language changes
-               return JSON.parse( previousLanguages ).slice( -5 );
+               try {
+                       previousLanguages.push.apply(
+                               previousLanguages,
+                               localStorage.getItem( 
mw.uls.previousLanguagesStorageKey )
+                       );
+               } catch ( e ) {}
+
+               return previousLanguages.slice( -5 );
        };
 
        /**

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib98499040b9edf4a1f1d9e3afd7661fc2d1f7fea
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/UniversalLanguageSelector
Gerrit-Branch: master
Gerrit-Owner: Ori.livneh <[email protected]>

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

Reply via email to