From 5c62f99fee6bad235d80d337ede1a3620c031652 Mon Sep 17 00:00:00 2001 From: Artur Adib Date: Tue, 24 Jan 2012 10:08:18 -0500 Subject: [PATCH] Fix localStorage feature detection. Close #1099 --- web/viewer.js | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/web/viewer.js b/web/viewer.js index b6b62af83..87f1c4b37 100644 --- a/web/viewer.js +++ b/web/viewer.js @@ -66,12 +66,12 @@ var RenderingQueue = (function RenderingQueueClosure() { // If not, we use FUEL in FF var Settings = (function SettingsClosure() { var isLocalStorageEnabled = (function localStorageEnabledTest() { + // Feature test as per http://diveintohtml5.info/storage.html try { - localStorage; + return 'localStorage' in window && window['localStorage'] !== null; } catch (e) { return false; } - return true; })(); var extPrefix = 'extensions.uriloader@pdf.js'; var isExtension = location.protocol == 'chrome:' && !isLocalStorageEnabled; @@ -119,8 +119,9 @@ var Settings = (function SettingsClosure() { Settings.prototype = { set: function settingsSet(name, val) { - if (inPrivateBrowsing) + if (inPrivateBrowsing || !('file' in this)) return false; + var file = this.file; file[name] = val; if (isExtension) @@ -131,10 +132,10 @@ var Settings = (function SettingsClosure() { }, get: function settingsGet(name, defaultValue) { - if (inPrivateBrowsing) + if (inPrivateBrowsing || !('file' in this)) return defaultValue; - else - return this.file[name] || defaultValue; + + return this.file[name] || defaultValue; } };