diff --git a/web/compatibility.js b/web/compatibility.js
index 21ac29fc5..31b6356fd 100644
--- a/web/compatibility.js
+++ b/web/compatibility.js
@@ -547,13 +547,20 @@ if (typeof PDFJS === 'undefined') {
       return;
     }
   } catch (e) { }
-  window.localStorage = {
-    data: Object.create(null),
-    getItem: function (key) {
-      return this.data[key];
-    },
-    setItem: function (key, value) {
-      this.data[key] = value;
-    }
-  };
+  // When the generic viewer is used in Firefox the following code will fail
+  // when the preference 'network.cookie.lifetimePolicy' is set to 1,
+  // see Mozilla bug 365772.
+  try {
+    window.localStorage = {
+      data: Object.create(null),
+      getItem: function (key) {
+        return this.data[key];
+      },
+      setItem: function (key, value) {
+        this.data[key] = value;
+      }
+    };
+  } catch (e) {
+    console.log('Unable to create polyfill for localStorage');
+  }
 })();