зеркало из https://github.com/mozilla/gecko-dev.git
Bug 608939 - XMLHttpRequest.statusText and getAllResponseHeaders shouldn't throw, r=sicking, a=sicking
--HG-- extra : rebase_source : 5dc42964f6a216c4f10127d0ad74fe52674601d7
This commit is contained in:
Родитель
70c2a075f7
Коммит
da61055435
|
@ -1321,15 +1321,15 @@ nsXMLHttpRequest::GetStatusText(nsACString& aStatusText)
|
||||||
nsresult status;
|
nsresult status;
|
||||||
mChannel->GetStatus(&status);
|
mChannel->GetStatus(&status);
|
||||||
if (NS_FAILED(status)) {
|
if (NS_FAILED(status)) {
|
||||||
return NS_ERROR_NOT_AVAILABLE;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
rv = httpChannel->GetResponseStatusText(aStatusText);
|
httpChannel->GetResponseStatusText(aStatusText);
|
||||||
}
|
}
|
||||||
|
|
||||||
return rv;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* void abort (); */
|
/* void abort (); */
|
||||||
|
@ -1388,23 +1388,21 @@ nsXMLHttpRequest::GetAllResponseHeaders(char **_retval)
|
||||||
*_retval = nsnull;
|
*_retval = nsnull;
|
||||||
|
|
||||||
if (mState & XML_HTTP_REQUEST_USE_XSITE_AC) {
|
if (mState & XML_HTTP_REQUEST_USE_XSITE_AC) {
|
||||||
|
*_retval = ToNewCString(EmptyString());
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
nsCOMPtr<nsIHttpChannel> httpChannel = GetCurrentHttpChannel();
|
nsCOMPtr<nsIHttpChannel> httpChannel = GetCurrentHttpChannel();
|
||||||
|
|
||||||
if (httpChannel) {
|
if (httpChannel) {
|
||||||
nsHeaderVisitor *visitor = new nsHeaderVisitor();
|
nsRefPtr<nsHeaderVisitor> visitor = new nsHeaderVisitor();
|
||||||
if (!visitor)
|
|
||||||
return NS_ERROR_OUT_OF_MEMORY;
|
|
||||||
NS_ADDREF(visitor);
|
|
||||||
|
|
||||||
nsresult rv = httpChannel->VisitResponseHeaders(visitor);
|
nsresult rv = httpChannel->VisitResponseHeaders(visitor);
|
||||||
if (NS_SUCCEEDED(rv))
|
if (NS_SUCCEEDED(rv))
|
||||||
*_retval = ToNewCString(visitor->Headers());
|
*_retval = ToNewCString(visitor->Headers());
|
||||||
|
}
|
||||||
NS_RELEASE(visitor);
|
|
||||||
return rv;
|
if (!*_retval) {
|
||||||
|
*_retval = ToNewCString(EmptyString());
|
||||||
}
|
}
|
||||||
|
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
|
|
|
@ -648,7 +648,7 @@ function runTest() {
|
||||||
is(res.didFail, true,
|
is(res.didFail, true,
|
||||||
"should have failed in test for " + test.toSource());
|
"should have failed in test for " + test.toSource());
|
||||||
is(res.status, 0, "wrong status in test for " + test.toSource());
|
is(res.status, 0, "wrong status in test for " + test.toSource());
|
||||||
is(res.statusText, undefined, "wrong status in test for " + test.toSource());
|
is(res.statusText, "", "wrong status in test for " + test.toSource());
|
||||||
is(res.responseXML, null,
|
is(res.responseXML, null,
|
||||||
"wrong responseXML in test for " + test.toSource());
|
"wrong responseXML in test for " + test.toSource());
|
||||||
is(res.responseText, "",
|
is(res.responseText, "",
|
||||||
|
@ -788,7 +788,7 @@ function runTest() {
|
||||||
is(res.didFail, true,
|
is(res.didFail, true,
|
||||||
"should have failed in test for " + test.toSource());
|
"should have failed in test for " + test.toSource());
|
||||||
is(res.status, 0, "wrong status in test for " + test.toSource());
|
is(res.status, 0, "wrong status in test for " + test.toSource());
|
||||||
is(res.statusText, undefined, "wrong status in test for " + test.toSource());
|
is(res.statusText, "", "wrong status in test for " + test.toSource());
|
||||||
is(res.responseXML, null,
|
is(res.responseXML, null,
|
||||||
"wrong responseXML in test for " + test.toSource());
|
"wrong responseXML in test for " + test.toSource());
|
||||||
is(res.responseText, "",
|
is(res.responseText, "",
|
||||||
|
@ -1057,7 +1057,7 @@ function runTest() {
|
||||||
is(res.didFail, true,
|
is(res.didFail, true,
|
||||||
"should have failed in test for " + test.toSource());
|
"should have failed in test for " + test.toSource());
|
||||||
is(res.status, 0, "wrong status in test for " + test.toSource());
|
is(res.status, 0, "wrong status in test for " + test.toSource());
|
||||||
is(res.statusText, undefined, "wrong status in test for " + test.toSource());
|
is(res.statusText, "", "wrong status in test for " + test.toSource());
|
||||||
is(res.responseXML, null,
|
is(res.responseXML, null,
|
||||||
"wrong responseXML in test for " + test.toSource());
|
"wrong responseXML in test for " + test.toSource());
|
||||||
is(res.responseText, "",
|
is(res.responseText, "",
|
||||||
|
|
|
@ -149,7 +149,7 @@ function runTest() {
|
||||||
is(res.didFail, true, "should have failed for " + allowOrigin);
|
is(res.didFail, true, "should have failed for " + allowOrigin);
|
||||||
is(res.responseText, "", "should have no text for " + allowOrigin);
|
is(res.responseText, "", "should have no text for " + allowOrigin);
|
||||||
is(res.status, 0, "should have no status for " + allowOrigin);
|
is(res.status, 0, "should have no status for " + allowOrigin);
|
||||||
is(res.statusText, undefined, "wrong status text for " + allowOrigin);
|
is(res.statusText, "", "wrong status text for " + allowOrigin);
|
||||||
is(res.responseXML, null, "should have no XML for " + allowOrigin);
|
is(res.responseXML, null, "should have no XML for " + allowOrigin);
|
||||||
is(res.events.join(","),
|
is(res.events.join(","),
|
||||||
"opening,rs1,sending,rs1,loadstart,rs2,rs4,error",
|
"opening,rs1,sending,rs1,loadstart,rs2,rs4,error",
|
||||||
|
|
|
@ -90,6 +90,25 @@ ok(u8v[0] == 0xaa && u8v[1] == 0xee && u8v[2] == 0x00 && u8v[3] == 0x03, "wrong
|
||||||
is(i32v[1], -1, "wrong value, expected -1 (0xffffffff)");
|
is(i32v[1], -1, "wrong value, expected -1 (0xffffffff)");
|
||||||
is(u32v[0], 0xbbbbbbbb, "wrong value, expected 0xbbbbbbbb");
|
is(u32v[0], 0xbbbbbbbb, "wrong value, expected 0xbbbbbbbb");
|
||||||
|
|
||||||
|
var client = new XMLHttpRequest();
|
||||||
|
client.onreadystatechange = function() {
|
||||||
|
if(client.readyState == 4) {
|
||||||
|
try {
|
||||||
|
is(client.responseXML, null, "responseXML should be null.");
|
||||||
|
is(client.responseText, "", "responseText should be empty string.");
|
||||||
|
is(client.status, 0, "status should be 0.");
|
||||||
|
is(client.statusText, "", "statusText should be empty string.");
|
||||||
|
is(client.getAllResponseHeaders(), "",
|
||||||
|
"getAllResponseHeaders() should return empty string.");
|
||||||
|
} catch(ex) {
|
||||||
|
ok(false, "Shouldn't throw! [" + ex + "]");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
client.open("GET", "file_XHR_pass1.xml", true);
|
||||||
|
client.send();
|
||||||
|
client.abort();
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
</pre>
|
</pre>
|
||||||
</body>
|
</body>
|
||||||
|
|
Загрузка…
Ссылка в новой задаче