Commit ebc78759 authored by yael.aharon@nokia.com's avatar yael.aharon@nokia.com

[Qt] WebSockets : Buffer the data in WebKit instead of QtNetwork

https://bugs.webkit.org/show_bug.cgi?id=34425

Reviewed by Kenneth Rohde Christiansen.

Reverting r54279, it was a misunderstanding.

* platform/network/qt/SocketStreamHandlePrivate.h:
* platform/network/qt/SocketStreamHandleQt.cpp:


git-svn-id: svn://svn.chromium.org/blink/trunk@54298 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent 74c4818d
2010-02-03 Yael Aharon <yael.aharon@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
[Qt] WebSockets : Buffer the data in WebKit instead of QtNetwork
https://bugs.webkit.org/show_bug.cgi?id=34425
Reverting r54279, it was a misunderstanding.
* platform/network/qt/SocketStreamHandlePrivate.h:
* platform/network/qt/SocketStreamHandleQt.cpp:
(WebCore::SocketStreamHandlePrivate::SocketStreamHandlePrivate):
(WebCore::SocketStreamHandlePrivate::send):
(WebCore::SocketStreamHandlePrivate::close):
2010-02-03 Drew Wilson <atwilson@chromium.org>
Reviewed by Alexey Proskuryakov.
......
......@@ -55,7 +55,6 @@ public slots:
int send(const char* data, int len);
void close();
void socketSentdata();
void socketBytesWritten(qint64);
void socketClosed();
void socketError(QAbstractSocket::SocketError);
void socketClosedCallback();
......@@ -66,7 +65,6 @@ public slots:
public:
QTcpSocket* m_socket;
SocketStreamHandle* m_streamHandle;
QByteArray m_data;
};
}
......
......@@ -56,15 +56,7 @@ SocketStreamHandlePrivate::SocketStreamHandlePrivate(SocketStreamHandle* streamH
if (!m_socket)
return;
if (isSecure) {
#ifndef QT_NO_OPENSSL
connect(m_socket, SIGNAL(encrypted()), this, SLOT(socketConnected()));
connect(m_socket, SIGNAL(encryptedBytesWritten(qint64)), this, SLOT(socketBytesWritten(qint64)));
#endif
} else {
connect(m_socket, SIGNAL(connected()), this, SLOT(socketConnected()));
connect(m_socket, SIGNAL(bytesWritten(qint64)), this, SLOT(socketBytesWritten(qint64)));
}
connect(m_socket, SIGNAL(connected()), this, SLOT(socketConnected()));
connect(m_socket, SIGNAL(readyRead()), this, SLOT(socketReadyRead()));
connect(m_socket, SIGNAL(disconnected()), this, SLOT(socketClosed()));
connect(m_socket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(socketError(QAbstractSocket::SocketError)));
......@@ -107,17 +99,14 @@ int SocketStreamHandlePrivate::send(const char* data, int len)
{
if (!m_socket || m_socket->state() != QAbstractSocket::ConnectedState)
return 0;
// If we are already sending something, then m_data is not empty.
bool sending = m_data.length() > 0;
m_data.append(data, len);
if (!sending)
m_socket->write(m_data);
return len;
quint64 sentSize = m_socket->write(data, len);
QMetaObject::invokeMethod(this, "socketSentData", Qt::QueuedConnection);
return sentSize;
}
void SocketStreamHandlePrivate::close()
{
if (m_socket)
if (m_socket && m_socket->state() == QAbstractSocket::ConnectedState)
m_socket->close();
}
......@@ -127,18 +116,6 @@ void SocketStreamHandlePrivate::socketSentdata()
m_streamHandle->sendPendingData();
}
void SocketStreamHandlePrivate::socketBytesWritten(qint64 written)
{
if (!m_socket || m_socket->state() != QAbstractSocket::ConnectedState || written < 0)
return;
m_data.remove(0, written);
// If we are done sending all the data, then m_data is now empty
if (m_data.isEmpty())
QMetaObject::invokeMethod(this, "socketSentdata", Qt::QueuedConnection);
else
m_socket->write(m_data);
}
void SocketStreamHandlePrivate::socketClosed()
{
QMetaObject::invokeMethod(this, "socketClosedCallback", Qt::QueuedConnection);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment