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

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(-)

Approvals:
  Gilles: Looks good to me, approved
  jenkins-bot: Verified



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/234002
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ib98499040b9edf4a1f1d9e3afd7661fc2d1f7fea
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/extensions/UniversalLanguageSelector
Gerrit-Branch: master
Gerrit-Owner: Ori.livneh <[email protected]>
Gerrit-Reviewer: Amire80 <[email protected]>
Gerrit-Reviewer: Gilles <[email protected]>
Gerrit-Reviewer: Nikerabbit <[email protected]>
Gerrit-Reviewer: Santhosh <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

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

Reply via email to