Ori.livneh has uploaded a new change for review.

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

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
(cherry picked from commit 069fd2c45477698cf5afbcb20dddb468fc45dfd5)
---
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/235502/1

diff --git a/resources/js/ext.uls.init.js b/resources/js/ext.uls.init.js
index 5a112e7..ef62044 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,
+                               JSON.parse( localStorage.getItem( 
mw.uls.previousLanguagesStorageKey ) )
+                       );
+               } catch ( e ) {}
+
+               return previousLanguages.slice( -5 );
        };
 
        /**

-- 
To view, visit https://gerrit.wikimedia.org/r/235502
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: wmf/1.26wmf20
Gerrit-Owner: Ori.livneh <[email protected]>

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

Reply via email to