From b0b9cf00d2d7409569ed27a3388d3b05f2110196 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Wed, 23 Jul 2014 12:24:49 -0400
Subject: [PATCH] Fix errors when using localStorage in Safari's private browsing mode (#1489996)

---
 skins/larry/ui.js |   14 +++++---------
 1 files changed, 5 insertions(+), 9 deletions(-)

diff --git a/skins/larry/ui.js b/skins/larry/ui.js
index ac2d551..f6c3909 100644
--- a/skins/larry/ui.js
+++ b/skins/larry/ui.js
@@ -76,7 +76,7 @@
   function get_pref(key)
   {
     if (!prefs) {
-      prefs = window.localStorage ? rcmail.local_storage_get_item('prefs.larry', {}) : {};
+      prefs = rcmail.local_storage_get_item('prefs.larry', {});
     }
 
     // fall-back to cookies
@@ -85,9 +85,8 @@
       if (cookie != null) {
         prefs[key] = cookie;
 
-        // copy value to local storage and remove cookie
-        if (window.localStorage) {
-          rcmail.local_storage_set_item('prefs.larry', prefs);
+        // copy value to local storage and remove cookie (if localStorage is supported)
+        if (rcmail.local_storage_set_item('prefs.larry', prefs)) {
           rcmail.set_cookie(key, cookie, new Date());  // expire cookie
         }
       }
@@ -103,11 +102,8 @@
   {
     prefs[key] = val;
 
-    // write prefs to local storage
-    if (window.localStorage) {
-      rcmail.local_storage_set_item('prefs.larry', prefs);
-    }
-    else {
+    // write prefs to local storage (if supported)
+    if (!rcmail.local_storage_set_item('prefs.larry', prefs)) {
       // store value in cookie
       var exp = new Date();
       exp.setYear(exp.getFullYear() + 1);

--
Gitblit v1.9.1