[Pkg-javascript-commits] [pdf.js] 19/116: Use Content-Range instead of Content-Length #5512

David Prévot taffit at moszumanska.debian.org
Fri Mar 6 16:19:56 UTC 2015


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to branch master
in repository pdf.js.

commit c02b2cb37c6c82a65b8877b5671122b6c23ae6b7
Author: Rob Wu <rob at robwu.nl>
Date:   Tue Dec 30 16:48:17 2014 +0100

    Use Content-Range instead of Content-Length #5512
    
    Use Content-Range header instead of Content-Length when the
    response has status code 206, to work around issue #5512,
    which is caused by a bug in Chrome (since version 39):
    https://code.google.com/p/chromium/issues/detail?id=442318
---
 src/core/worker.js | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/src/core/worker.js b/src/core/worker.js
index 40d7d89..2de0320 100644
--- a/src/core/worker.js
+++ b/src/core/worker.js
@@ -106,6 +106,22 @@ var WorkerMessageHandler = PDFJS.WorkerMessageHandler = {
 
           var length = fullRequestXhr.getResponseHeader('Content-Length');
           length = parseInt(length, 10);
+//#if (GENERIC || CHROME)
+          if (fullRequestXhr.status === 206) {
+            // Since Chrome 39, there exists a bug where cached responses are
+            // served with status code 206 for non-range requests.
+            // Content-Length does not specify the total size of the resource
+            // when the status code is 206 (see RFC 2616, section 14.16).
+            // In this case, extract the file size from the Content-Range
+            // header, which is defined to be "bytes start-end/length" for
+            // byte range requests.
+            // See https://github.com/mozilla/pdf.js/issues/5512 and
+            // https://code.google.com/p/chromium/issues/detail?id=442318
+            length = fullRequestXhr.getResponseHeader('Content-Range');
+            length = length && /bytes \d+-\d+\/(\d+)/.exec(length);
+            length = length && parseInt(length[1], 10);
+          }
+//#endif
           if (!isInt(length)) {
             return;
           }

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/pdf.js.git



More information about the Pkg-javascript-commits mailing list