| Index: third_party/WebKit/Source/modules/fetch/Body.cpp
|
| diff --git a/third_party/WebKit/Source/modules/fetch/Body.cpp b/third_party/WebKit/Source/modules/fetch/Body.cpp
|
| index 3e489a74238ec647a95d806020db87f2bc3fe303..8ee37de5df3d1856d7e9ddc29b1ea509a09ba18c 100644
|
| --- a/third_party/WebKit/Source/modules/fetch/Body.cpp
|
| +++ b/third_party/WebKit/Source/modules/fetch/Body.cpp
|
| @@ -192,13 +192,23 @@ ScriptPromise Body::text(ScriptState* scriptState)
|
|
|
| ReadableByteStream* Body::body()
|
| {
|
| - UseCounter::count(executionContext(), UseCounter::FetchBodyStream);
|
| return bodyBuffer() ? bodyBuffer()->stream() : nullptr;
|
| }
|
|
|
| +ReadableByteStream* Body::bodyWithUseCounter()
|
| +{
|
| + UseCounter::count(executionContext(), UseCounter::FetchBodyStream);
|
| + return body();
|
| +}
|
| +
|
| bool Body::bodyUsed()
|
| {
|
| - return m_bodyPassed || (body() && body()->isLocked());
|
| + return body() && body()->isDisturbed();
|
| +}
|
| +
|
| +bool Body::isBodyLocked()
|
| +{
|
| + return body() && body()->isLocked();
|
| }
|
|
|
| bool Body::hasPendingActivity() const
|
| @@ -210,7 +220,7 @@ bool Body::hasPendingActivity() const
|
| return bodyBuffer()->hasPendingActivity();
|
| }
|
|
|
| -Body::Body(ExecutionContext* context) : ActiveDOMObject(context), m_bodyPassed(false), m_opaque(false)
|
| +Body::Body(ExecutionContext* context) : ActiveDOMObject(context), m_opaque(false)
|
| {
|
| suspendIfNeeded();
|
| }
|
| @@ -219,7 +229,7 @@ ScriptPromise Body::rejectInvalidConsumption(ScriptState* scriptState)
|
| {
|
| if (m_opaque)
|
| return ScriptPromise::reject(scriptState, V8ThrowException::createTypeError(scriptState->isolate(), "The body is opaque."));
|
| - if (bodyUsed())
|
| + if (isBodyLocked() || bodyUsed())
|
| return ScriptPromise::reject(scriptState, V8ThrowException::createTypeError(scriptState->isolate(), "Already read"));
|
| return ScriptPromise();
|
| }
|
|
|