Bug 1014466 - Part 1: Only send readystatechange event when state changed. r=khuey

This commit is contained in:
Shian-Yow Wu 2014-06-06 12:12:12 +01:00
Родитель 2dd911fd12
Коммит 88b06a7c8f
1 изменённых файлов: 12 добавлений и 5 удалений

Просмотреть файл

@ -1669,7 +1669,12 @@ XMLHttpRequest::MaybeDispatchPrematureAbortEvents(ErrorResult& aRv)
mWorkerPrivate->AssertIsOnWorkerThread();
MOZ_ASSERT(mProxy);
mStateData.mReadyState = 4;
// Only send readystatechange event when state changed.
bool isStateChanged = false;
if (mStateData.mReadyState != 4) {
isStateChanged = true;
mStateData.mReadyState = 4;
}
if (mProxy->mSeenUploadLoadStart) {
MOZ_ASSERT(mUpload);
@ -1690,10 +1695,12 @@ XMLHttpRequest::MaybeDispatchPrematureAbortEvents(ErrorResult& aRv)
}
if (mProxy->mSeenLoadStart) {
DispatchPrematureAbortEvent(this, NS_LITERAL_STRING("readystatechange"),
false, aRv);
if (aRv.Failed()) {
return;
if (isStateChanged) {
DispatchPrematureAbortEvent(this, NS_LITERAL_STRING("readystatechange"),
false, aRv);
if (aRv.Failed()) {
return;
}
}
DispatchPrematureAbortEvent(this, NS_LITERAL_STRING("abort"), false, aRv);