From b6071473681b7fa177be8393a0b45ac9344d819e Mon Sep 17 00:00:00 2001 From: Gavin Sharp Date: Wed, 9 May 2012 17:04:52 -0700 Subject: [PATCH] Issue 1682: don't use FUEL in pdf.js --- extensions/firefox/bootstrap.js | 21 ++++++++--- .../firefox/components/PdfStreamConverter.js | 35 +++++++++++++++---- 2 files changed, 45 insertions(+), 11 deletions(-) diff --git a/extensions/firefox/bootstrap.js b/extensions/firefox/bootstrap.js index d03812bcb..af9c5c1b2 100644 --- a/extensions/firefox/bootstrap.js +++ b/extensions/firefox/bootstrap.js @@ -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', '{}'); } diff --git a/extensions/firefox/components/PdfStreamConverter.js b/extensions/firefox/components/PdfStreamConverter.js index af9cf41b8..bfffd0bc1 100644 --- a/extensions/firefox/components/PdfStreamConverter.js +++ b/extensions/firefox/components/PdfStreamConverter.js @@ -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); } };