WebKit always send abort event when XHR abort() method is called. http://www.w3.org/TR/XMLHttpRequest/#the-abort()-method mandates to do that only if the XHR state is unset or opened. Related WTP test is XMLHttpRequest/abort-after-receive.htm
XMLHttpRequestUpload events should be sent before XMLHttpRequest events. This reordering may be handled as part of code refactoring done in bug 120828
Created attachment 220528 [details] potential fix over 120828 patch
WebKit XHR implementation currently sends abort event when its state is DONE and abort() is called. According to spec, the expected behavior should be to not send any abort event, but to ensure that load and loadend events are sent (since XHR is actually DONE). This should happen in particular even when xhr.abort is called in onreadystatechange callback in DONE case. Firefox is behaving this way (no abort event but load and loadend events). Blink currently does not send any load/loadend/abort event at all
Potential duplicate of bug 98404
Please set the r? flag if you would like to ask review.
*** This bug has been marked as a duplicate of bug 98404 ***