]> git.parisson.com Git - pdf.js.git/commitdiff
Issue 1682: don't use FUEL in pdf.js
authorGavin Sharp <gavin@gavinsharp.com>
Thu, 10 May 2012 00:04:52 +0000 (17:04 -0700)
committerGavin Sharp <gavin@gavinsharp.com>
Thu, 10 May 2012 00:04:52 +0000 (17:04 -0700)
extensions/firefox/bootstrap.js
extensions/firefox/components/PdfStreamConverter.js

index d03812bcbbbeb765dca9b66680db5e752e72dd55..af9c5c1b2041a1be22053d588a1674a565b2412a 100644 (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', '{}');
 }
 
index af9cf41b8bc858b94068c026ebceeb620b6fecc2..bfffd0bc1110c855b1ddae4fceaec388474a91c1 100644 (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);
   }
 };