Bug 379824 - "xmlhttprequest abort method changes readystate to 4". r+sr=sicking, a=blocking1.9.

git-svn-id: svn://10.0.0.236/trunk@245084 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
bent.mozilla%gmail.com 2008-02-07 05:03:01 +00:00
parent 1b39e78ee4
commit f29083980c

View File

@ -1106,9 +1106,14 @@ nsXMLHttpRequest::Abort()
mACGetChannel->Cancel(NS_BINDING_ABORTED);
}
mDocument = nsnull;
mResponseBody.Truncate();
mState |= XML_HTTP_REQUEST_ABORTED;
ChangeState(XML_HTTP_REQUEST_COMPLETED, PR_TRUE, PR_TRUE);
if (!(mState & (XML_HTTP_REQUEST_UNINITIALIZED |
XML_HTTP_REQUEST_OPENED |
XML_HTTP_REQUEST_COMPLETED))) {
ChangeState(XML_HTTP_REQUEST_COMPLETED, PR_TRUE, PR_TRUE);
}
// The ChangeState call above calls onreadystatechange handlers which
// if they load a new url will cause nsXMLHttpRequest::OpenRequest to clear
@ -2591,9 +2596,12 @@ nsXMLHttpRequest::ChangeState(PRUint32 aState, PRBool aBroadcast,
// Grab private copies of the listeners we need
nsCOMArray<nsIDOMEventListener> readystatechangeEventListeners;
CopyEventListeners(mOnReadystatechangeListener,
mReadystatechangeEventListeners,
readystatechangeEventListeners);
if (aBroadcast) {
CopyEventListeners(mOnReadystatechangeListener,
mReadystatechangeEventListeners,
readystatechangeEventListeners);
}
if (aClearEventListeners) {
ClearEventListeners();