mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1185820 - XMLHttpRequest::Open() in worker should count the recursion using a uint32_t and not a boolean. r=khuey
This commit is contained in:
parent
5eb917283b
commit
489b618a01
@ -103,6 +103,7 @@ public:
|
||||
// Only touched on the worker thread.
|
||||
uint32_t mOuterEventStreamId;
|
||||
uint32_t mOuterChannelId;
|
||||
uint32_t mOpenCount;
|
||||
uint64_t mLastLoaded;
|
||||
uint64_t mLastTotal;
|
||||
uint64_t mLastUploadLoaded;
|
||||
@ -112,7 +113,6 @@ public:
|
||||
bool mLastUploadLengthComputable;
|
||||
bool mSeenLoadStart;
|
||||
bool mSeenUploadLoadStart;
|
||||
bool mOpening;
|
||||
|
||||
// Only touched on the main thread.
|
||||
bool mUploadEventListenersAttached;
|
||||
@ -125,10 +125,10 @@ public:
|
||||
: mWorkerPrivate(nullptr), mXMLHttpRequestPrivate(aXHRPrivate),
|
||||
mMozAnon(aMozAnon), mMozSystem(aMozSystem),
|
||||
mInnerEventStreamId(0), mInnerChannelId(0), mOutstandingSendCount(0),
|
||||
mOuterEventStreamId(0), mOuterChannelId(0), mLastLoaded(0), mLastTotal(0),
|
||||
mLastUploadLoaded(0), mLastUploadTotal(0), mIsSyncXHR(false),
|
||||
mOuterEventStreamId(0), mOuterChannelId(0), mOpenCount(0), mLastLoaded(0),
|
||||
mLastTotal(0), mLastUploadLoaded(0), mLastUploadTotal(0), mIsSyncXHR(false),
|
||||
mLastLengthComputable(false), mLastUploadLengthComputable(false),
|
||||
mSeenLoadStart(false), mSeenUploadLoadStart(false), mOpening(false),
|
||||
mSeenLoadStart(false), mSeenUploadLoadStart(false),
|
||||
mUploadEventListenersAttached(false), mMainThreadSeenLoadStart(false),
|
||||
mInOpen(false), mArrayBufferResponseWasTransferred(false)
|
||||
{ }
|
||||
@ -1859,7 +1859,7 @@ XMLHttpRequest::SendInternal(const nsAString& aStringBody,
|
||||
mWorkerPrivate->AssertIsOnWorkerThread();
|
||||
|
||||
// No send() calls when open is running.
|
||||
if (mProxy->mOpening) {
|
||||
if (mProxy->mOpenCount) {
|
||||
aRv.Throw(NS_ERROR_FAILURE);
|
||||
return;
|
||||
}
|
||||
@ -1954,15 +1954,17 @@ XMLHttpRequest::Open(const nsACString& aMethod, const nsAString& aUrl,
|
||||
mBackgroundRequest, mWithCredentials,
|
||||
mTimeout);
|
||||
|
||||
mProxy->mOpening = true;
|
||||
++mProxy->mOpenCount;
|
||||
if (!runnable->Dispatch(mWorkerPrivate->GetJSContext())) {
|
||||
mProxy->mOpening = false;
|
||||
ReleaseProxy();
|
||||
if (!--mProxy->mOpenCount) {
|
||||
ReleaseProxy();
|
||||
}
|
||||
|
||||
aRv.Throw(NS_ERROR_FAILURE);
|
||||
return;
|
||||
}
|
||||
|
||||
mProxy->mOpening = false;
|
||||
--mProxy->mOpenCount;
|
||||
mProxy->mIsSyncXHR = !aAsync;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user