From: Artur Adib Date: Tue, 24 Jan 2012 15:08:18 +0000 (-0500) Subject: Fix localStorage feature detection. Close #1099 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=5c62f99fee6bad235d80d337ede1a3620c031652;p=pdf.js.git Fix localStorage feature detection. Close #1099 --- diff --git a/web/viewer.js b/web/viewer.js index b6b62af..87f1c4b 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; } };