-
Notifications
You must be signed in to change notification settings - Fork 0
PDF viewing errors in IE (with byte range requests) #348
Comments
I believe the problem is most likely caused by samvera/hydra-head#335. A workaround that seems to be effective is to fixup the response headers in Apache when the client is IE 10 or 11 to reject range requests:
|
Documenting some additional troubleshooting on the issue... IE10 SUCCESSFUL IE PDF STREAMIf bypassing the repository, we can get a PDF in IE piecemeal (in byte ranges) from the filesystem successfully. There are two different kinds of byte range requests (and corresponding responses) at play. Most resemble this, a single byte range:
But occasionally (e.g., 13/80 of the requests), the interaction resembles the following; it’s not just a single byte range requested/returned in one request/response, but multiple:
IE10 BROKEN PDF STREAM VIA HYDRALoading the file through the repository, there are the same two different kinds of byte range requests (some with a single range, some with multiple). The responses are incorrect for multi-part byte range requests, so getting the PDF piecemeal fails. Again, most resemble this, a single byte range:
But here’s where it’s problematic: when multiple byte ranges are requested in the same HTTP request:
The response is incorrect; only the first range of bytes has been returned. The problem appears to be a combination of 1) how the hydra-head gem parses range requests, and 2) that IE’s native PDF reader uses multipart range requests to begin with. We haven’t observed the problem in other browsers’ PDF readers; they likely all issue only single byte range requests. |
In Internet Explorer (confirmed in IE10 & IE11), when clicking Download on a PDF item in the DDR and then scrolling the PDF before it has fully loaded in the browser, the document stops loading and displays an error.
Ctrl-clicking on "OK" displays:
Object label badly formatted.
With the same actions, I have also received these errors:
The text was updated successfully, but these errors were encountered: