Index: Source/modules/websockets/NewWebSocketChannelImpl.cpp |
diff --git a/Source/modules/websockets/NewWebSocketChannelImpl.cpp b/Source/modules/websockets/NewWebSocketChannelImpl.cpp |
index 4b818517cc3bc2e008a06da7174e846c52575dfc..6d74ff666b699f76782fcf6c7ca5d0345eeaae26 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) |
@@ -229,12 +228,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()); |
@@ -305,7 +298,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(); |
@@ -318,6 +311,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: |
@@ -332,6 +326,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: { |
@@ -342,6 +337,7 @@ void NewWebSocketChannelImpl::sendInternal() |
m_handle->send(final, type, message->vectorData->data() + m_sentSizeOfTopMessage, size); |
m_sentSizeOfTopMessage += size; |
m_sendingQuota -= size; |
+ consumedBufferedAmount += size; |
break; |
} |
} |
@@ -350,9 +346,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() |
@@ -383,7 +378,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. |
} |