- From: <bugzilla@jessica.w3.org>
- Date: Sun, 19 Oct 2014 22:21:26 +0000
- To: public-webapps-bugzilla@w3.org
https://www.w3.org/Bugs/Public/show_bug.cgi?id=27033 --- Comment #10 from Hallvord R. M. Steen <hsteen@mozilla.com> --- (In reply to Anne from comment #6) > The only change I can think of would be to only change the state to unsent > if the current state is done, if that is what implementations are actually > doing. As far as I can tell, all implementations change to 4 due to abort() and 1 due to open() (even when open() is called during abort processing). This is pretty consistent. Everything else is .. all over the place. I haven't found two implementations that fire the same events in the same order with the same states. The last iteration of my two tests in https://github.com/w3c/web-platform-tests/pull/1294 log a number of events and does a console.log() to better inspect what browsers are actually up to. * Webkit (as seen in Opera and Chrome, Safari not tested) doesn't fire any onabort events at all if you call abort() in the OPENED state. Hence these tests aren't really valid in Webkit-based browsers. If we want to require these abort events to fire, we can probably just ignore the Webkit family for now. * Trident (1st below) and Gecko (2nd below) differ in this part of the sequence of events in open-during-abort-processing (where abort() is called from onloadstart and open() is called from the readystatechange event that fires due to abort() being called): readyState after abort() 1 onloadstart readyState 1 onloadstart readyState 1 client.onabort 1 readyState after abort() 1 so in IE, abort() returns before onloadstart fires again, but in Gecko it's the other way around and there's an extra abort event firing even though open() was called. I don't know why it fails to fire upload.onabort here though.. client.onabort fires in spite of open() but upload.onabort doesn't? Weird. The other test, where open() is called from upload.onabort, has these logs: IE: "readyState before abort() 1 upload.onabort - before open() 4 readyState after open() 1 readyState after abort() 1 client.onload 4 client.onloadend 4" Gecko: "readyState before abort() 1 client.onabort 4 client.onloadend 4 upload.onabort - before open() 4 readyState after open() 1 readyState after abort() 1 client.onload 4 client.onloadend 4" Gecko has a known spec violation in failing to fire events on upload before client. IE consistently terminates abort processing and fires no more abort events when open() is called. It may be noteworthy that implementations consistently let open() prevent the abort processing's onloadend event from firing. AFAIK the spec is out of tune with implementations here. -- You are receiving this mail because: You are the QA Contact for the bug.
Received on Sunday, 19 October 2014 22:21:28 UTC