|
|
@ -692,17 +692,34 @@ PdfStreamConverter.prototype = { |
|
|
|
// nsIRequestObserver::onStartRequest
|
|
|
|
// nsIRequestObserver::onStartRequest
|
|
|
|
onStartRequest: function(aRequest, aContext) { |
|
|
|
onStartRequest: function(aRequest, aContext) { |
|
|
|
// Setup the request so we can use it below.
|
|
|
|
// Setup the request so we can use it below.
|
|
|
|
var acceptRanges = false; |
|
|
|
var isHttpRequest = false; |
|
|
|
try { |
|
|
|
try { |
|
|
|
aRequest.QueryInterface(Ci.nsIHttpChannel); |
|
|
|
aRequest.QueryInterface(Ci.nsIHttpChannel); |
|
|
|
if (aRequest.getResponseHeader('Accept-Ranges') === 'bytes') { |
|
|
|
isHttpRequest = true; |
|
|
|
|
|
|
|
} catch (e) {} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var rangeRequest = false; |
|
|
|
|
|
|
|
if (isHttpRequest) { |
|
|
|
|
|
|
|
var contentEncoding = 'identity'; |
|
|
|
|
|
|
|
try { |
|
|
|
|
|
|
|
contentEncoding = aRequest.getResponseHeader('Content-Encoding'); |
|
|
|
|
|
|
|
} catch (e) {} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var acceptRanges; |
|
|
|
|
|
|
|
try { |
|
|
|
|
|
|
|
acceptRanges = aRequest.getResponseHeader('Accept-Ranges'); |
|
|
|
|
|
|
|
} catch (e) {} |
|
|
|
|
|
|
|
|
|
|
|
var hash = aRequest.URI.ref; |
|
|
|
var hash = aRequest.URI.ref; |
|
|
|
acceptRanges = hash.indexOf('disableRange=true') < 0; |
|
|
|
rangeRequest = contentEncoding === 'identity' && |
|
|
|
|
|
|
|
acceptRanges === 'bytes' && |
|
|
|
|
|
|
|
hash.indexOf('disableRange=true') < 0; |
|
|
|
} |
|
|
|
} |
|
|
|
} catch (e) {} |
|
|
|
|
|
|
|
aRequest.QueryInterface(Ci.nsIChannel); |
|
|
|
aRequest.QueryInterface(Ci.nsIChannel); |
|
|
|
|
|
|
|
|
|
|
|
aRequest.QueryInterface(Ci.nsIWritablePropertyBag); |
|
|
|
aRequest.QueryInterface(Ci.nsIWritablePropertyBag); |
|
|
|
|
|
|
|
|
|
|
|
var contentDispositionFilename; |
|
|
|
var contentDispositionFilename; |
|
|
|
try { |
|
|
|
try { |
|
|
|
contentDispositionFilename = aRequest.contentDispositionFilename; |
|
|
|
contentDispositionFilename = aRequest.contentDispositionFilename; |
|
|
@ -712,7 +729,7 @@ PdfStreamConverter.prototype = { |
|
|
|
aRequest.setProperty('contentType', aRequest.contentType); |
|
|
|
aRequest.setProperty('contentType', aRequest.contentType); |
|
|
|
aRequest.contentType = 'text/html'; |
|
|
|
aRequest.contentType = 'text/html'; |
|
|
|
|
|
|
|
|
|
|
|
if (!acceptRanges) { |
|
|
|
if (!rangeRequest) { |
|
|
|
// Creating storage for PDF data
|
|
|
|
// Creating storage for PDF data
|
|
|
|
var contentLength = aRequest.contentLength; |
|
|
|
var contentLength = aRequest.contentLength; |
|
|
|
this.dataListener = new PdfDataListener(contentLength); |
|
|
|
this.dataListener = new PdfDataListener(contentLength); |
|
|
@ -750,7 +767,7 @@ PdfStreamConverter.prototype = { |
|
|
|
// Double check the url is still the correct one.
|
|
|
|
// Double check the url is still the correct one.
|
|
|
|
if (domWindow.document.documentURIObject.equals(aRequest.URI)) { |
|
|
|
if (domWindow.document.documentURIObject.equals(aRequest.URI)) { |
|
|
|
var actions; |
|
|
|
var actions; |
|
|
|
if (acceptRanges) { |
|
|
|
if (rangeRequest) { |
|
|
|
// We are going to be issuing range requests, so cancel the
|
|
|
|
// We are going to be issuing range requests, so cancel the
|
|
|
|
// original request
|
|
|
|
// original request
|
|
|
|
aRequest.resume(); |
|
|
|
aRequest.resume(); |
|
|
|