Index: Source/modules/websockets/NewWebSocketChannelImpl.cpp |
diff --git a/Source/modules/websockets/NewWebSocketChannelImpl.cpp b/Source/modules/websockets/NewWebSocketChannelImpl.cpp |
index 7b056012a46a1b31e2b628f282b8c0e9336ebfc1..cef32c2c3fd6ec283ddb50f3b079ec87cdb38596 100644 |
--- a/Source/modules/websockets/NewWebSocketChannelImpl.cpp |
+++ b/Source/modules/websockets/NewWebSocketChannelImpl.cpp |
@@ -115,7 +115,6 @@ NewWebSocketChannelImpl::NewWebSocketChannelImpl(ExecutionContext* context, WebS |
, m_identifier(0) |
, m_sendingQuota(0) |
, m_receivedDataSizeForFlowControl(receivedDataSizeForFlowControlHighWaterMark * 2) // initial quota |
- , m_bufferedAmount(0) |
, m_sentSizeOfTopMessage(0) |
, m_sourceURLAtConstruction(sourceURL) |
, m_lineNumberAtConstruction(lineNumber) |
@@ -241,12 +240,6 @@ WebSocketChannel::SendResult NewWebSocketChannelImpl::send(PassOwnPtr<Vector<cha |
return SendSuccess; |
} |
-unsigned long NewWebSocketChannelImpl::bufferedAmount() const |
-{ |
- WTF_LOG(Network, "NewWebSocketChannelImpl %p bufferedAmount()", this); |
- return m_bufferedAmount; |
-} |
- |
void NewWebSocketChannelImpl::close(int code, const String& reason) |
{ |
WTF_LOG(Network, "NewWebSocketChannelImpl %p close(%d, %s)", this, code, reason.utf8().data()); |
@@ -317,7 +310,7 @@ NewWebSocketChannelImpl::Message::Message(PassOwnPtr<Vector<char> > vectorData) |
void NewWebSocketChannelImpl::sendInternal() |
{ |
ASSERT(m_handle); |
- unsigned long bufferedAmount = m_bufferedAmount; |
+ unsigned long consumedBufferedAmount = 0; |
while (!m_messages.isEmpty() && m_sendingQuota > 0 && !m_blobLoader) { |
bool final = false; |
Message* message = m_messages.first().get(); |
@@ -330,6 +323,7 @@ void NewWebSocketChannelImpl::sendInternal() |
m_handle->send(final, type, message->text.data() + m_sentSizeOfTopMessage, size); |
m_sentSizeOfTopMessage += size; |
m_sendingQuota -= size; |
+ consumedBufferedAmount += size; |
break; |
} |
case MessageTypeBlob: |
@@ -344,6 +338,7 @@ void NewWebSocketChannelImpl::sendInternal() |
m_handle->send(final, type, static_cast<const char*>(message->arrayBuffer->data()) + m_sentSizeOfTopMessage, size); |
m_sentSizeOfTopMessage += size; |
m_sendingQuota -= size; |
+ consumedBufferedAmount += size; |
break; |
} |
case MessageTypeVector: { |
@@ -354,6 +349,7 @@ void NewWebSocketChannelImpl::sendInternal() |
m_handle->send(final, type, message->vectorData->data() + m_sentSizeOfTopMessage, size); |
m_sentSizeOfTopMessage += size; |
m_sendingQuota -= size; |
+ consumedBufferedAmount += size; |
break; |
} |
} |
@@ -362,9 +358,8 @@ void NewWebSocketChannelImpl::sendInternal() |
m_sentSizeOfTopMessage = 0; |
} |
} |
- if (m_client && m_bufferedAmount != bufferedAmount) { |
- m_client->didUpdateBufferedAmount(m_bufferedAmount); |
- } |
+ if (m_client && consumedBufferedAmount > 0) |
+ m_client->didConsumeBufferedAmount(consumedBufferedAmount); |
} |
void NewWebSocketChannelImpl::flowControlIfNecessary() |
@@ -395,7 +390,7 @@ void NewWebSocketChannelImpl::handleDidClose(bool wasClean, unsigned short code, |
m_client = 0; |
WebSocketChannelClient::ClosingHandshakeCompletionStatus status = |
wasClean ? WebSocketChannelClient::ClosingHandshakeComplete : WebSocketChannelClient::ClosingHandshakeIncomplete; |
- client->didClose(m_bufferedAmount, status, code, reason); |
+ client->didClose(status, code, reason); |
// client->didClose may delete this object. |
} |