]> git.parisson.com Git - pdf.js.git/commitdiff
SeaMonkey support without SMILE
authorJakob Miland <saebekassebil@gmail.com>
Sat, 12 May 2012 13:16:53 +0000 (15:16 +0200)
committerJakob Miland <saebekassebil@gmail.com>
Sat, 12 May 2012 13:16:53 +0000 (15:16 +0200)
extensions/firefox/components/PdfStreamConverter.js
extensions/firefox/install.rdf

index 49fd134aed7cdc3246b3456753c56dec8d3d0ad4..39376a79102baaf09a74775ea29468dcbcdf13d8 100644 (file)
@@ -13,14 +13,25 @@ const PDFJS_EVENT_ID = 'pdf.js.message';
 const PDF_CONTENT_TYPE = 'application/pdf';
 const EXT_PREFIX = 'extensions.uriloader@pdf.js';
 const MAX_DATABASE_LENGTH = 4096;
+const FIREFOX_ID = '{ec8030f7-c20a-464f-9b0e-13a3a9e97384}';
+const SEAMONKEY_ID = '{92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a}';
 
 Cu.import('resource://gre/modules/XPCOMUtils.jsm');
 Cu.import('resource://gre/modules/Services.jsm');
 Cu.import('resource://gre/modules/NetUtil.jsm');
 
-let privateBrowsing = Cc['@mozilla.org/privatebrowsing;1']
-                        .getService(Ci.nsIPrivateBrowsingService);
-let inPrivateBrowswing = privateBrowsing.privateBrowsingEnabled;
+let appInfo = Cc['@mozilla.org/xre/app-info;1']
+                  .getService(Ci.nsIXULAppInfo);
+let privateBrowsing, inPrivateBrowsing;
+
+if (appInfo.ID === FIREFOX_ID) {
+  privateBrowsing = Cc['@mozilla.org/privatebrowsing;1']
+                          .getService(Ci.nsIPrivateBrowsingService);
+  inPrivateBrowsing = privateBrowsing.privateBrowsingEnabled;
+} else if (appInfo.ID === SEAMONKEY_ID) {
+  privateBrowsing = null;
+  inPrivateBrowsing = false;
+}
 
 function getBoolPref(pref, def) {
   try {
@@ -61,8 +72,8 @@ function getDOMWindow(aChannel) {
 
 // All the priviledged actions.
 function ChromeActions() {
-  this.inPrivateBrowswing = privateBrowsing.privateBrowsingEnabled;
 }
+
 ChromeActions.prototype = {
   download: function(data) {
     let mimeService = Cc['@mozilla.org/mime;1'].getService(Ci.nsIMIMEService);
@@ -98,7 +109,7 @@ ChromeActions.prototype = {
     channel.asyncOpen(listener, null);
   },
   setDatabase: function(data) {
-    if (this.inPrivateBrowswing)
+    if (inPrivateBrowsing)
       return;
     // Protect against something sending tons of data to setDatabase.
     if (data.length > MAX_DATABASE_LENGTH)
@@ -106,7 +117,7 @@ ChromeActions.prototype = {
     setStringPref(EXT_PREFIX + '.database', data);
   },
   getDatabase: function() {
-    if (this.inPrivateBrowswing)
+    if (inPrivateBrowsing)
       return '{}';
     return getStringPref(EXT_PREFIX + '.database', '{}');
   },
index d7eea9319fff5c3880c341f5bdad8ec3d693c8cc..a8177834e23adcbed42d44b02aa0ea5182fbb3a0 100644 (file)
@@ -8,6 +8,8 @@
     <!-- PDFJS_LOCALIZED_METADATA -->
     <em:name>PDF Viewer</em:name>
     <em:version>PDFJSSCRIPT_VERSION</em:version>
+
+    <!-- Firefox -->
     <em:targetApplication>
       <Description>
        <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
        <em:maxVersion>14.0a1</em:maxVersion>
      </Description>
     </em:targetApplication>
+
+    <!-- SeaMonkey -->
+    <em:targetApplication>
+      <Description>
+       <em:id>{92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a}</em:id>
+       <em:minVersion>2.1.*</em:minVersion>
+       <em:maxVersion>2.9.*</em:maxVersion>
+     </Description>
+    </em:targetApplication>
     <em:bootstrap>true</em:bootstrap>
     <em:creator>Mozilla</em:creator>
     <em:description>Uses HTML5 to display PDF files directly in Firefox.</em:description>