diff --git a/src/controllers/pages/MatrixChat.js b/src/controllers/pages/MatrixChat.js index 248b2c5535..5a7e96bf6e 100644 --- a/src/controllers/pages/MatrixChat.js +++ b/src/controllers/pages/MatrixChat.js @@ -78,9 +78,9 @@ module.exports = { logged_in: false, ready: false }); - localStorage.removeItem("mx_hs_url"); - localStorage.removeItem("mx_user_id"); - localStorage.removeItem("mx_access_token"); + if (window.localStorage) { + window.localStorage.clear(); + } Notifier.stop(); MatrixClientPeg.get().removeAllListeners(); MatrixClientPeg.replace(null); diff --git a/src/controllers/templates/Login.js b/src/controllers/templates/Login.js index 1b1f94cf98..83af23cfdf 100644 --- a/src/controllers/templates/Login.js +++ b/src/controllers/templates/Login.js @@ -82,10 +82,15 @@ module.exports = { })); var localStorage = window.localStorage; if (localStorage) { - localStorage.setItem("mx_hs_url", that.state.hs_url); - localStorage.setItem("mx_is_url", that.state.is_url); - localStorage.setItem("mx_user_id", data.user_id); - localStorage.setItem("mx_access_token", data.access_token); + try { + localStorage.clear(); + localStorage.setItem("mx_hs_url", that.state.hs_url); + localStorage.setItem("mx_is_url", that.state.is_url); + localStorage.setItem("mx_user_id", data.user_id); + localStorage.setItem("mx_access_token", data.access_token); + } catch (e) { + console.warn("Error using local storage: can't persist session!"); + } } else { console.warn("No local storage available: can't persist session!"); }