Brion VIBBER has submitted this change and it was merged.

Change subject: Workaround for app crashing on low memory. Retain last page 
location.
......................................................................


Workaround for app crashing on low memory. Retain last page location.

Change-Id: I48121f3ddeb3168370ce91d644fa48439a3d0dee
---
M js/lib/app_history.js
M js/lib/wikiapp.js
2 files changed, 15 insertions(+), 6 deletions(-)

Approvals:
  Brion VIBBER: Verified; Looks good to me, approved



diff --git a/js/lib/app_history.js b/js/lib/app_history.js
index e288ab5..c3dec7b 100644
--- a/js/lib/app_history.js
+++ b/js/lib/app_history.js
@@ -26,7 +26,7 @@
                        });
                });
                if ( langUrl ) {
-                       localStorage["lastReadPage"] = decodeURI( langUrl );
+                       localStorage["lastReadPage"] = langUrl;
                }
        }
 
diff --git a/js/lib/wikiapp.js b/js/lib/wikiapp.js
index d205839..83808f9 100644
--- a/js/lib/wikiapp.js
+++ b/js/lib/wikiapp.js
@@ -70,9 +70,9 @@
                return d;
        }
 
-       function setCurrentPage(page, langUrl) {
+       function setCurrentPage(page, unencodedLangUrl) {
                app.curPage = page;
-               app.curLangUrl = langUrl;
+               app.curLangUrl = unencodedLangUrl;
                chrome.renderHtml(page);
 
                setPageActionsState(true);
@@ -103,7 +103,7 @@
                app.curPage = null;
        }
 
-       function loadPage(title, language, langUrl) {
+       function loadPage(title, language, unencodedLangUrl) {
                var d = $.Deferred();
 
                function doRequest() {
@@ -111,7 +111,7 @@
                                if(page === null) {
                                        setErrorPage(404);
                                }
-                               setCurrentPage(page, langUrl);
+                               setCurrentPage(page, unencodedLangUrl);
                                d.resolve(page);
                        }).fail(function(xhr, textStatus, errorThrown) {
                                if(textStatus === "abort") {
@@ -154,6 +154,13 @@
                return app.baseUrlForLanguage( lang ) + "/wiki/" + 
encodeURIComponent(title.replace(/ /g, '_'));
        }
 
+    function unencodedUrlForTitle( title, lang ) {
+        if(typeof lang === 'undefined') {
+            lang = preferencesDB.get("language");
+        }
+        return app.baseUrlForLanguage( lang ) + "/wiki/" + title.replace(/ /g, 
'_');
+    }
+
        function baseUrlForLanguage( lang ) {
                var url = window.PROTOCOL + '://' + lang + '.' + PROJECTNAME + 
'.org';
                return url;
@@ -182,6 +189,7 @@
                var d = $.Deferred();
                var options = $.extend({cache: false, updateHistory: true}, 
options || {});
                var url = app.urlForTitle(title, lang);
+               var unencodedUrl = app.unencodedUrlForTitle(title, lang);
                if(typeof lang === "undefined") {
                        lang = preferencesDB.get("language");
                }
@@ -204,7 +212,7 @@
                if(title === "") {
                        title = "Main_Page"; // FIXME
                }
-               d = app.loadPage(title, lang, url);
+               d = app.loadPage(title, lang, unencodedUrl);
                d.done(function() {
                        console.log("Navigating to " + title);
                        if(options.hideCurrent) {
@@ -307,6 +315,7 @@
                getCurrentTitle: getCurrentTitle,
                getCurrentLangUrl: getCurrentLangUrl,
                urlForTitle: urlForTitle,
+               unencodedUrlForTitle: unencodedUrlForTitle,
                titleForUrl:titleForUrl,
                languageForUrl: languageForUrl,
                baseUrlForLanguage: baseUrlForLanguage,

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I48121f3ddeb3168370ce91d644fa48439a3d0dee
Gerrit-PatchSet: 1
Gerrit-Project: apps/firefox/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Dr0ptp4kt <ab...@wikimedia.org>
Gerrit-Reviewer: Brion VIBBER <br...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to