Adding PlayPreview API support to pdf.js/mozilla-central
This commit is contained in:
parent
d48097845f
commit
dc12d33f4d
@ -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;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user