@@ -692,17 +692,34 @@ PdfStreamConverter.prototype = {
692
692
// nsIRequestObserver::onStartRequest
693
693
onStartRequest : function (aRequest , aContext ) {
694
694
// Setup the request so we can use it below.
695
- var acceptRanges = false ;
695
+ var isHttpRequest = false ;
696
696
try {
697
697
aRequest .QueryInterface (Ci .nsIHttpChannel );
698
- if (aRequest .getResponseHeader ('Accept-Ranges' ) === 'bytes' ) {
699
- var hash = aRequest .URI .ref ;
700
- acceptRanges = hash .indexOf ('disableRange=true' ) < 0 ;
701
- }
698
+ isHttpRequest = true ;
702
699
} catch (e ) {}
700
+
701
+ var rangeRequest = false ;
702
+ if (isHttpRequest ) {
703
+ var contentEncoding = 'identity' ;
704
+ try {
705
+ contentEncoding = aRequest .getResponseHeader ('Content-Encoding' );
706
+ } catch (e ) {}
707
+
708
+ var acceptRanges ;
709
+ try {
710
+ acceptRanges = aRequest .getResponseHeader ('Accept-Ranges' );
711
+ } catch (e ) {}
712
+
713
+ var hash = aRequest .URI .ref ;
714
+ rangeRequest = contentEncoding === 'identity' &&
715
+ acceptRanges === 'bytes' &&
716
+ hash .indexOf ('disableRange=true' ) < 0 ;
717
+ }
718
+
703
719
aRequest .QueryInterface (Ci .nsIChannel );
704
720
705
721
aRequest .QueryInterface (Ci .nsIWritablePropertyBag );
722
+
706
723
var contentDispositionFilename ;
707
724
try {
708
725
contentDispositionFilename = aRequest .contentDispositionFilename ;
@@ -712,7 +729,7 @@ PdfStreamConverter.prototype = {
712
729
aRequest .setProperty ('contentType' , aRequest .contentType );
713
730
aRequest .contentType = 'text/html' ;
714
731
715
- if (!acceptRanges ) {
732
+ if (!rangeRequest ) {
716
733
// Creating storage for PDF data
717
734
var contentLength = aRequest .contentLength ;
718
735
this .dataListener = new PdfDataListener (contentLength );
@@ -750,7 +767,7 @@ PdfStreamConverter.prototype = {
750
767
// Double check the url is still the correct one.
751
768
if (domWindow .document .documentURIObject .equals (aRequest .URI )) {
752
769
var actions ;
753
- if (acceptRanges ) {
770
+ if (rangeRequest ) {
754
771
// We are going to be issuing range requests, so cancel the
755
772
// original request
756
773
aRequest .resume ();
0 commit comments