Index: Source/core/xml/XMLHttpRequestUpload.cpp |
diff --git a/Source/core/xml/XMLHttpRequestUpload.cpp b/Source/core/xml/XMLHttpRequestUpload.cpp |
index c6bfde05d9f20536e017908ae72127d8e2bff0c7..58483057bba05f938eb889fa13a47e199d840ec6 100644 |
--- a/Source/core/xml/XMLHttpRequestUpload.cpp |
+++ b/Source/core/xml/XMLHttpRequestUpload.cpp |
@@ -60,18 +60,18 @@ void XMLHttpRequestUpload::dispatchProgressEvent(unsigned long long bytesSent, u |
dispatchEvent(XMLHttpRequestProgressEvent::create(EventTypeNames::progress, true, bytesSent, totalBytesToBeSent)); |
} |
-void XMLHttpRequestUpload::dispatchEventAndLoadEnd(PassRefPtr<Event> event) |
+void XMLHttpRequestUpload::dispatchEventAndLoadEnd(const AtomicString& type, bool lengthComputable, unsigned long long bytesSent, unsigned long long total) |
{ |
- ASSERT(event->type() == EventTypeNames::load || event->type() == EventTypeNames::abort || event->type() == EventTypeNames::error || event->type() == EventTypeNames::timeout); |
- |
- dispatchEvent(event); |
- dispatchEvent(XMLHttpRequestProgressEvent::create(EventTypeNames::loadend)); |
+ ASSERT(type == EventTypeNames::load || type == EventTypeNames::abort || type == EventTypeNames::error || type == EventTypeNames::timeout); |
+ dispatchEvent(XMLHttpRequestProgressEvent::create(type, lengthComputable, bytesSent, total)); |
+ dispatchEvent(XMLHttpRequestProgressEvent::create(EventTypeNames::loadend, lengthComputable, bytesSent, total)); |
} |
void XMLHttpRequestUpload::handleRequestError(const AtomicString& type) |
{ |
- dispatchEvent(XMLHttpRequestProgressEvent::create(EventTypeNames::progress, true, m_lastBytesSent, m_lastTotalBytesToBeSent)); |
- dispatchEventAndLoadEnd(XMLHttpRequestProgressEvent::create(type)); |
+ bool lengthComputable = m_lastTotalBytesToBeSent > 0 && m_lastBytesSent <= m_lastTotalBytesToBeSent; |
+ dispatchEvent(XMLHttpRequestProgressEvent::create(EventTypeNames::progress, lengthComputable, m_lastBytesSent, m_lastTotalBytesToBeSent)); |
+ dispatchEventAndLoadEnd(type, lengthComputable, m_lastBytesSent, m_lastTotalBytesToBeSent); |
} |
} // namespace WebCore |