OnProgress Event was fired once during a synchronous XHR request Event.Total is some garbage value, while Event.lengthComputable and Event.loaded is correct. OnProgress should never be fired according to w3C spec.
This also means that having progress event handlers installed probably shouldn't force preflight for sync requests, since they will be ignored anyway.
Created attachment 61970 [details] proposed fix
*** Bug 17502 has been marked as a duplicate of this bug. ***
Committed <http://trac.webkit.org/changeset/63680>. Anne, any comments you may have about this change would be highly appreciated.
What you are saying in comment 2 is addressed by step 5 of the send() algorithm. The way the specification is meant to be written (and I think it is) is that for synchronous requests no tasks are added to the task queue as defined by HTML5. So nothing can happen during a synchronous request, no events, no timeouts, etc.
I think that we'll have/want to continue sending events that aren't async in nature, such as readystatechange for states UNSENT, OPENED and DONE. There doesn't seem to be any harm in that. These aren't added to task queue, they are dispatched right away.
Yes. But they are not dispatched during a request. But you are right. Those will be always dispatched (and their definition also does not depend on the asynchronous flag like the events under discussion here).