From ae7f2e9fcc961bb157bef40c2abb1f699c5d8927 Mon Sep 17 00:00:00 2001
From: Saebekassebil <saebekassebil@gmail.com>
Date: Mon, 26 Dec 2011 21:14:10 +0100
Subject: [PATCH] Respect private browsing in extension

---
 web/viewer.js | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

diff --git a/web/viewer.js b/web/viewer.js
index d0a4db76b..51dbbc31a 100644
--- a/web/viewer.js
+++ b/web/viewer.js
@@ -40,11 +40,19 @@ var Settings = (function SettingsClosure() {
   })();
   var extPrefix = 'extensions.uriloader@pdf.js';
   var isExtension = location.protocol == 'chrome:' && !isLocalStorageEnabled;
+  var inPrivateBrowsing = false;
+  if (isExtension) {
+    var pbs = Components.classes['@mozilla.org/privatebrowsing;1']
+              .getService(Components.interfaces.nsIPrivateBrowsingService);
+    inPrivateBrowsing = pbs.privateBrowsingEnabled;
+  }
 
   function Settings(fingerprint) {
     var database = null;
     var index;
-    if (isExtension)
+    if (inPrivateBrowsing)
+      return false;
+    else if (isExtension)
       database = Application.prefs.getValue(extPrefix + '.database', '{}');
     else if (isLocalStorageEnabled)
       database = localStorage.getItem('database') || '{}';
@@ -76,6 +84,8 @@ var Settings = (function SettingsClosure() {
 
   Settings.prototype = {
     set: function settingsSet(name, val) {
+      if (inPrivateBrowsing)
+        return false;
       var file = this.file;
       file[name] = val;
       if (isExtension)
@@ -86,7 +96,10 @@ var Settings = (function SettingsClosure() {
     },
 
     get: function settingsGet(name, defaultValue) {
-      return this.file[name] || defaultValue;
+      if (inPrivateBrowsing)
+        return defaultValue;
+      else
+        return this.file[name] || defaultValue;
     }
   };