|
|
@ -33,11 +33,15 @@ const PDF_CONTENT_TYPE = 'application/pdf'; |
|
|
|
Cu.import('resource://gre/modules/XPCOMUtils.jsm'); |
|
|
|
Cu.import('resource://gre/modules/XPCOMUtils.jsm'); |
|
|
|
Cu.import('resource://gre/modules/Services.jsm'); |
|
|
|
Cu.import('resource://gre/modules/Services.jsm'); |
|
|
|
Cu.import('resource://pdf.js.components/PdfStreamConverter.js'); |
|
|
|
Cu.import('resource://pdf.js.components/PdfStreamConverter.js'); |
|
|
|
|
|
|
|
Cu.import('resource://pdf.js.components/PdfRedirector.js'); |
|
|
|
|
|
|
|
|
|
|
|
let Svc = {}; |
|
|
|
let Svc = {}; |
|
|
|
XPCOMUtils.defineLazyServiceGetter(Svc, 'mime', |
|
|
|
XPCOMUtils.defineLazyServiceGetter(Svc, 'mime', |
|
|
|
'@mozilla.org/mime;1', |
|
|
|
'@mozilla.org/mime;1', |
|
|
|
'nsIMIMEService'); |
|
|
|
'nsIMIMEService'); |
|
|
|
|
|
|
|
XPCOMUtils.defineLazyServiceGetter(Svc, 'pluginHost', |
|
|
|
|
|
|
|
'@mozilla.org/plugin/host;1', |
|
|
|
|
|
|
|
'nsIPluginHost'); |
|
|
|
|
|
|
|
|
|
|
|
function getBoolPref(aPref, aDefaultValue) { |
|
|
|
function getBoolPref(aPref, aDefaultValue) { |
|
|
|
try { |
|
|
|
try { |
|
|
@ -55,8 +59,10 @@ function getIntPref(aPref, aDefaultValue) { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// Register/unregister a constructor as a component.
|
|
|
|
// Factory that registers/unregisters a constructor as a component.
|
|
|
|
let Factory = { |
|
|
|
function Factory() {} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Factory.prototype = { |
|
|
|
QueryInterface: XPCOMUtils.generateQI([Ci.nsIFactory]), |
|
|
|
QueryInterface: XPCOMUtils.generateQI([Ci.nsIFactory]), |
|
|
|
_targetConstructor: null, |
|
|
|
_targetConstructor: null, |
|
|
|
|
|
|
|
|
|
|
@ -193,7 +199,14 @@ let PdfJs = { |
|
|
|
if (this._registered) |
|
|
|
if (this._registered) |
|
|
|
return; |
|
|
|
return; |
|
|
|
|
|
|
|
|
|
|
|
Factory.register(PdfStreamConverter); |
|
|
|
this._pdfStreamConverterFactory = new Factory(); |
|
|
|
|
|
|
|
this._pdfStreamConverterFactory.register(PdfStreamConverter); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this._pdfRedirectorFactory = new Factory(); |
|
|
|
|
|
|
|
this._pdfRedirectorFactory.register(PdfRedirector); |
|
|
|
|
|
|
|
Svc.pluginHost.registerPlayPreviewMimeType('application/pdf', true, |
|
|
|
|
|
|
|
'data:application/x-moz-playpreview-pdfjs;,'); |
|
|
|
|
|
|
|
|
|
|
|
this._registered = true; |
|
|
|
this._registered = true; |
|
|
|
}, |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
@ -201,7 +214,13 @@ let PdfJs = { |
|
|
|
if (!this._registered) |
|
|
|
if (!this._registered) |
|
|
|
return; |
|
|
|
return; |
|
|
|
|
|
|
|
|
|
|
|
Factory.unregister(); |
|
|
|
this._pdfStreamConverterFactory.unregister(); |
|
|
|
|
|
|
|
delete this._pdfStreamConverterFactory; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this._pdfRedirectorFactory.unregister; |
|
|
|
|
|
|
|
delete this._pdfRedirectorFactory; |
|
|
|
|
|
|
|
Svc.pluginHost.unregisterPlayPreviewMimeType('application/pdf'); |
|
|
|
|
|
|
|
|
|
|
|
this._registered = false; |
|
|
|
this._registered = false; |
|
|
|
} |
|
|
|
} |
|
|
|
}; |
|
|
|
}; |
|
|
|