Bug 1591579 - XMLWorker takes data from XMLMainThread without calling GetResponse(), r=smaug

Differential Revision: https://phabricator.services.mozilla.com/D50921
This commit is contained in:
Andrea Marchesini
2019-10-31 10:27:33 +00:00
parent 1bce839176
commit 8fd1a0748c
3 changed files with 249 additions and 201 deletions

View File

@@ -546,6 +546,8 @@ nsresult XMLHttpRequestMainThread::AppendToResponseText(
void XMLHttpRequestMainThread::GetResponseText(DOMString& aResponseText,
ErrorResult& aRv) {
MOZ_DIAGNOSTIC_ASSERT(!mForWorker);
XMLHttpRequestStringSnapshot snapshot;
GetResponseText(snapshot, aRv);
if (aRv.Failed()) {
@@ -660,6 +662,8 @@ void XMLHttpRequestMainThread::SetResponseType(
void XMLHttpRequestMainThread::GetResponse(
JSContext* aCx, JS::MutableHandle<JS::Value> aResponse, ErrorResult& aRv) {
MOZ_DIAGNOSTIC_ASSERT(!mForWorker);
switch (mResponseType) {
case XMLHttpRequestResponseType::_empty:
case XMLHttpRequestResponseType::Text: {
@@ -705,7 +709,10 @@ void XMLHttpRequestMainThread::GetResponse(
mResponseBlob = Blob::Create(GetOwnerGlobal(), mResponseBlobImpl);
}
GetOrCreateDOMReflector(aCx, mResponseBlob, aResponse);
if (!GetOrCreateDOMReflector(aCx, mResponseBlob, aResponse)) {
aResponse.setNull();
}
return;
}
case XMLHttpRequestResponseType::Document: {