Fixes private browsing history

This commit is contained in:
Yury Delendik 2012-10-01 16:16:26 -05:00
parent 5cf5ef357f
commit 181dd33fbb

View File

@ -41,20 +41,20 @@ Cu.import('resource://gre/modules/NetUtil.jsm');
let appInfo = Cc['@mozilla.org/xre/app-info;1'] let appInfo = Cc['@mozilla.org/xre/app-info;1']
.getService(Ci.nsIXULAppInfo); .getService(Ci.nsIXULAppInfo);
let privateBrowsing, inPrivateBrowsing;
let Svc = {}; let Svc = {};
XPCOMUtils.defineLazyServiceGetter(Svc, 'mime', XPCOMUtils.defineLazyServiceGetter(Svc, 'mime',
'@mozilla.org/mime;1', '@mozilla.org/mime;1',
'nsIMIMEService'); 'nsIMIMEService');
let isInPrivateBrowsing;
if (appInfo.ID === FIREFOX_ID) { if (appInfo.ID === FIREFOX_ID) {
privateBrowsing = Cc['@mozilla.org/privatebrowsing;1'] let privateBrowsing = Cc['@mozilla.org/privatebrowsing;1']
.getService(Ci.nsIPrivateBrowsingService); .getService(Ci.nsIPrivateBrowsingService);
inPrivateBrowsing = privateBrowsing.privateBrowsingEnabled; isInPrivateBrowsing = function getInPrivateBrowsing() {
} else if (appInfo.ID === SEAMONKEY_ID || return privateBrowsing.privateBrowsingEnabled;
appInfo.ID === METRO_ID) { };
privateBrowsing = null; } else {
inPrivateBrowsing = false; isInPrivateBrowsing = function() { return false; };
} }
function getBoolPref(pref, def) { function getBoolPref(pref, def) {
@ -254,7 +254,7 @@ ChromeActions.prototype = {
}); });
}, },
setDatabase: function(data) { setDatabase: function(data) {
if (inPrivateBrowsing) if (isInPrivateBrowsing())
return; return;
// Protect against something sending tons of data to setDatabase. // Protect against something sending tons of data to setDatabase.
if (data.length > MAX_DATABASE_LENGTH) if (data.length > MAX_DATABASE_LENGTH)
@ -262,7 +262,7 @@ ChromeActions.prototype = {
setStringPref(PREF_PREFIX + '.database', data); setStringPref(PREF_PREFIX + '.database', data);
}, },
getDatabase: function() { getDatabase: function() {
if (inPrivateBrowsing) if (isInPrivateBrowsing())
return '{}'; return '{}';
return getStringPref(PREF_PREFIX + '.database', '{}'); return getStringPref(PREF_PREFIX + '.database', '{}');
}, },