Closed Bug 697689 Opened 10 years ago Closed 10 years ago
XHR broken on local filesystem
Steps to reproduce: 1. Download the attachment. 2. Open the attachment on the local volume (file:// URLs). Actual Result: error event will be fired. Oddly, .response will return Blob object despite the failure. Expected result: load event should be fired (load shouls success). This test will not fail on the network (http:// URLs).
Seekable streams will complain if OnDataAvailable succeeded but didn't consume the data. https://mxr.mozilla.org/mozilla-central/source/netwerk/base/src/nsInputStreamPump.cpp#509
Assignee: nobody → VYV03354
Status: NEW → ASSIGNED
Attachment #569928 - Flags: review?(jonas)
> Seekable streams will complain if OnDataAvailable succeeded but didn't consume the data. Not just seekable streams. The OnDataAvailable contract is very clear: if it does not consume the data it needs to throw. Says so right in the interface documentation.
My result: 3: 895/895 [object Blob] 895 7 load loadend 3: 895/895 [object Blob] 895 3 load loadend
(In reply to Rocco Stilo from comment #3) Does your build contain a patch of bug 689008? It was pushed very recently. Anyway, the current code should be fixed because it violates the nsIStreamListener contract as bz pointed out. https://mxr.mozilla.org/mozilla-central/source/netwerk/base/public/nsIStreamListener.idl#69 > * be read without blocking the calling thread. The onDataAvailable impl > * must read exactly |aCount| bytes of data before returning.
Updated a comment according to bz's advice.
Attachment #569928 - Flags: review+
Attachment #569970 - Flags: review?(jonas) → review+
In my queue, which is going via try then onto inbound: https://tbpl.mozilla.org/?tree=Try&rev=d3d2522ed095 Thanks :-)
Target Milestone: --- → mozilla10
Status: ASSIGNED → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.