Issue 1682: don't use FUEL in pdf.js

This commit is contained in:
Gavin Sharp 2012-05-09 17:04:52 -07:00
parent adbe74c7a6
commit b607147368
2 changed files with 45 additions and 11 deletions

View File

@ -10,13 +10,26 @@ let Cc = Components.classes;
let Ci = Components.interfaces;
let Cm = Components.manager;
let Cu = Components.utils;
let application = Cc['@mozilla.org/fuel/application;1']
.getService(Ci.fuelIApplication);
Cu.import('resource://gre/modules/Services.jsm');
function getBoolPref(pref, default) {
try {
return Services.prefs.getBoolPref(pref);
} catch (ex) {
return default;
}
}
function setStringPref(pref, value) {
let str = Cc["@mozilla.org/supports-string;1"]
.createInstance(Ci.nsISupportsString);
str.data = value;
Services.prefs.setComplexValue(pref, Ci.nsISupportsString, str);
}
function log(str) {
if (!application.prefs.getValue(EXT_PREFIX + '.pdfBugEnabled', false))
if (!getBoolPref(EXT_PREFIX + '.pdfBugEnabled', false))
return;
dump(str + '\n');
}
@ -93,6 +106,6 @@ function install(aData, aReason) {
}
function uninstall(aData, aReason) {
application.prefs.setValue(EXT_PREFIX + '.database', '{}');
setStringPref(EXT_PREFIX + '.database', '{}');
}

View File

@ -17,14 +17,35 @@ const MAX_DATABASE_LENGTH = 4096;
Cu.import('resource://gre/modules/XPCOMUtils.jsm');
Cu.import('resource://gre/modules/Services.jsm');
let application = Cc['@mozilla.org/fuel/application;1']
.getService(Ci.fuelIApplication);
let privateBrowsing = Cc['@mozilla.org/privatebrowsing;1']
.getService(Ci.nsIPrivateBrowsingService);
let inPrivateBrowswing = privateBrowsing.privateBrowsingEnabled;
function getBoolPref(pref, default) {
try {
return Services.prefs.getBoolPref(pref);
} catch (ex) {
return default;
}
}
function setStringPref(pref, value) {
let str = Cc["@mozilla.org/supports-string;1"]
.createInstance(Ci.nsISupportsString);
str.data = value;
Services.prefs.setComplexValue(pref, Ci.nsISupportsString, str);
}
function getStringPref(pref, default) {
try {
return Services.prefs.getComplexValue(pref, Ci.nsISupportsString).data;
} catch (ex) {
return default;
}
}
function log(aMsg) {
if (!application.prefs.getValue(EXT_PREFIX + '.pdfBugEnabled', false))
if (!getBoolPref(EXT_PREFIX + '.pdfBugEnabled', false))
return;
let msg = 'PdfStreamConverter.js: ' + (aMsg.join ? aMsg.join('') : aMsg);
Services.console.logStringMessage(msg);
@ -51,18 +72,18 @@ ChromeActions.prototype = {
// Protect against something sending tons of data to setDatabase.
if (data.length > MAX_DATABASE_LENGTH)
return;
application.prefs.setValue(EXT_PREFIX + '.database', data);
setStringPref(EXT_PREFIX + '.database', data);
},
getDatabase: function() {
if (this.inPrivateBrowswing)
return '{}';
return application.prefs.getValue(EXT_PREFIX + '.database', '{}');
return getStringPref(EXT_PREFIX + '.database', '{}');
},
getLocale: function() {
return application.prefs.getValue('general.useragent.locale', 'en-US');
return getStringPref('general.useragent.locale', 'en-US');
},
pdfBugEnabled: function() {
return application.prefs.getValue(EXT_PREFIX + '.pdfBugEnabled', false);
return getBoolPref(EXT_PREFIX + '.pdfBugEnabled', false);
}
};