Index: Source/core/xml/XMLHttpRequest.cpp |
diff --git a/Source/core/xml/XMLHttpRequest.cpp b/Source/core/xml/XMLHttpRequest.cpp |
index 0d4d2feccf831abf29a42c4dbe624d482954e540..2dbc810eded218b7ad79de94938bc43cd2695013 100644 |
--- a/Source/core/xml/XMLHttpRequest.cpp |
+++ b/Source/core/xml/XMLHttpRequest.cpp |
@@ -856,14 +856,16 @@ void XMLHttpRequest::abort() |
// Clear headers as required by the spec |
m_requestHeaders.clear(); |
- if ((m_state <= OPENED && !sendFlag) || m_state == DONE) |
- m_state = UNSENT; |
- else { |
- ASSERT(!m_loader); |
- changeState(DONE); |
+ if ((m_state <= OPENED && !sendFlag) || m_state == DONE) { |
+ // No readystatechange event is dispatched. |
m_state = UNSENT; |
+ return; |
} |
+ ASSERT(!m_loader); |
+ changeState(DONE); |
+ m_state = UNSENT; |
+ |
m_progressEventThrottle.dispatchEventAndLoadEnd(XMLHttpRequestProgressEvent::create(EventTypeNames::abort)); |
if (!m_uploadComplete) { |
m_uploadComplete = true; |