[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