Diff
Modified: trunk/Source/WebCore/ChangeLog (203216 => 203217)
--- trunk/Source/WebCore/ChangeLog 2016-07-14 06:36:25 UTC (rev 203216)
+++ trunk/Source/WebCore/ChangeLog 2016-07-14 07:05:40 UTC (rev 203217)
@@ -1,3 +1,62 @@
+2016-07-13 Alex Christensen <[email protected]>
+
+ Modernize WebSocket handle
+ https://bugs.webkit.org/show_bug.cgi?id=159750
+
+ Reviewed by Brady Eidson.
+
+ No new tests. No change in behavior.
+ This patch just removes ThreadableWebSocketChannel::InvalidMessage which is never used
+ and makes our use of SocketStreamHandleClient a reference instead of a pointer.
+
+ * Modules/websockets/ThreadableWebSocketChannel.h:
+ * Modules/websockets/WebSocket.cpp:
+ (WebCore::WebSocket::send):
+ * Modules/websockets/WebSocketChannel.cpp:
+ (WebCore::WebSocketChannel::connect):
+ * platform/network/SocketStreamHandleBase.cpp:
+ (WebCore::SocketStreamHandleBase::SocketStreamHandleBase):
+ (WebCore::SocketStreamHandleBase::send):
+ (WebCore::SocketStreamHandleBase::disconnect):
+ (WebCore::SocketStreamHandleBase::sendPendingData):
+ (WebCore::SocketStreamHandleBase::setClient): Deleted.
+ * platform/network/SocketStreamHandleBase.h:
+ (WebCore::SocketStreamHandleBase::~SocketStreamHandleBase):
+ (WebCore::SocketStreamHandleBase::bufferedAmount):
+ (WebCore::SocketStreamHandleBase::client):
+ * platform/network/cf/SocketStreamHandle.h:
+ (WebCore::SocketStreamHandle::create):
+ * platform/network/cf/SocketStreamHandleCFNet.cpp:
+ (WebCore::SocketStreamHandle::SocketStreamHandle):
+ (WebCore::SocketStreamHandle::addCONNECTCredentials):
+ (WebCore::SocketStreamHandle::copyCFStreamDescription):
+ (WebCore::SocketStreamHandle::readStreamCallback):
+ (WebCore::SocketStreamHandle::writeStreamCallback):
+ (WebCore::SocketStreamHandle::reportErrorToClient):
+ (WebCore::SocketStreamHandle::~SocketStreamHandle):
+ (WebCore::SocketStreamHandle::platformClose):
+ (WebCore::SocketStreamHandle::port):
+ * platform/network/curl/SocketStreamHandle.h:
+ (WebCore::SocketStreamHandle::create):
+ * platform/network/curl/SocketStreamHandleCurl.cpp:
+ (WebCore::SocketStreamHandle::SocketStreamHandle):
+ (WebCore::SocketStreamHandle::platformClose):
+ (WebCore::SocketStreamHandle::readData):
+ (WebCore::SocketStreamHandle::didReceiveData):
+ (WebCore::SocketStreamHandle::didOpenSocket):
+ (WebCore::SocketStreamHandle::createCopy):
+ * platform/network/soup/SocketStreamHandle.h:
+ * platform/network/soup/SocketStreamHandleSoup.cpp:
+ (WebCore::SocketStreamHandle::SocketStreamHandle):
+ (WebCore::SocketStreamHandle::~SocketStreamHandle):
+ (WebCore::SocketStreamHandle::connected):
+ (WebCore::SocketStreamHandle::connectedCallback):
+ (WebCore::SocketStreamHandle::readBytes):
+ (WebCore::SocketStreamHandle::didFail):
+ (WebCore::SocketStreamHandle::writeReady):
+ (WebCore::SocketStreamHandle::platformClose):
+ (WebCore::SocketStreamHandle::beginWaitingForSocketWritability):
+
2016-07-13 Carlos Garcia Campos <[email protected]>
[GLib] Use a GSource instead of a thread to poll memory pressure eventFD in linux implementation
Modified: trunk/Source/WebCore/Modules/websockets/ThreadableWebSocketChannel.h (203216 => 203217)
--- trunk/Source/WebCore/Modules/websockets/ThreadableWebSocketChannel.h 2016-07-14 06:36:25 UTC (rev 203216)
+++ trunk/Source/WebCore/Modules/websockets/ThreadableWebSocketChannel.h 2016-07-14 07:05:40 UTC (rev 203217)
@@ -54,8 +54,7 @@
enum SendResult {
SendSuccess,
- SendFail,
- InvalidMessage
+ SendFail
};
virtual void connect(const URL&, const String& protocol) = 0;
Modified: trunk/Source/WebCore/Modules/websockets/WebSocket.cpp (203216 => 203217)
--- trunk/Source/WebCore/Modules/websockets/WebSocket.cpp 2016-07-14 06:36:25 UTC (rev 203216)
+++ trunk/Source/WebCore/Modules/websockets/WebSocket.cpp 2016-07-14 07:05:40 UTC (rev 203217)
@@ -338,12 +338,7 @@
return;
}
ASSERT(m_channel);
- ThreadableWebSocketChannel::SendResult result = m_channel->send(message);
- if (result == ThreadableWebSocketChannel::InvalidMessage) {
- scriptExecutionContext()->addConsoleMessage(MessageSource::JS, MessageLevel::Error, ASCIILiteral("Websocket message contains invalid character(s)."));
- ec = SYNTAX_ERR;
- return;
- }
+ m_channel->send(message);
}
void WebSocket::send(ArrayBuffer& binaryData, ExceptionCode& ec)
Modified: trunk/Source/WebCore/Modules/websockets/WebSocketChannel.cpp (203216 => 203217)
--- trunk/Source/WebCore/Modules/websockets/WebSocketChannel.cpp 2016-07-14 06:36:25 UTC (rev 203216)
+++ trunk/Source/WebCore/Modules/websockets/WebSocketChannel.cpp 2016-07-14 07:05:40 UTC (rev 203217)
@@ -97,7 +97,7 @@
if (NetworkingContext* networkingContext = frame->loader().networkingContext()) {
ref();
Page* page = frame->page();
- m_handle = SocketStreamHandle::create(m_handshake->url(), this, *networkingContext, (page ? page->usesEphemeralSession() : false));
+ m_handle = SocketStreamHandle::create(m_handshake->url(), *this, *networkingContext, (page ? page->usesEphemeralSession() : false));
}
}
}
Modified: trunk/Source/WebCore/platform/network/SocketStreamHandleBase.cpp (203216 => 203217)
--- trunk/Source/WebCore/platform/network/SocketStreamHandleBase.cpp 2016-07-14 06:36:25 UTC (rev 203216)
+++ trunk/Source/WebCore/platform/network/SocketStreamHandleBase.cpp 2016-07-14 07:05:40 UTC (rev 203217)
@@ -38,7 +38,7 @@
const unsigned int bufferSize = 100 * 1024 * 1024;
-SocketStreamHandleBase::SocketStreamHandleBase(const URL& url, SocketStreamHandleClient* client)
+SocketStreamHandleBase::SocketStreamHandleBase(const URL& url, SocketStreamHandleClient& client)
: m_url(url)
, m_client(client)
, m_state(Connecting)
@@ -60,8 +60,7 @@
return false;
}
m_buffer.append(data, length);
- if (m_client)
- m_client->didUpdateBufferedAmount(static_cast<SocketStreamHandle&>(*this), bufferedAmount());
+ m_client.didUpdateBufferedAmount(static_cast<SocketStreamHandle&>(*this), bufferedAmount());
return true;
}
int bytesWritten = 0;
@@ -75,8 +74,7 @@
}
if (bytesWritten < length) {
m_buffer.append(data + bytesWritten, length - bytesWritten);
- if (m_client)
- m_client->didUpdateBufferedAmount(static_cast<SocketStreamHandle&>(*this), bufferedAmount());
+ m_client.didUpdateBufferedAmount(static_cast<SocketStreamHandle&>(*this), bufferedAmount());
}
return true;
}
@@ -99,12 +97,6 @@
m_state = Closed;
}
-void SocketStreamHandleBase::setClient(SocketStreamHandleClient* client)
-{
- ASSERT(!client || (!m_client && m_state == Connecting));
- m_client = client;
-}
-
bool SocketStreamHandleBase::sendPendingData()
{
if (m_state != Open && m_state != Closing)
@@ -126,8 +118,7 @@
ASSERT(m_buffer.size() - bytesWritten <= bufferSize);
m_buffer.consume(bytesWritten);
} while (!pending && !m_buffer.isEmpty());
- if (m_client)
- m_client->didUpdateBufferedAmount(static_cast<SocketStreamHandle&>(*this), bufferedAmount());
+ m_client.didUpdateBufferedAmount(static_cast<SocketStreamHandle&>(*this), bufferedAmount());
return true;
}
Modified: trunk/Source/WebCore/platform/network/SocketStreamHandleBase.h (203216 => 203217)
--- trunk/Source/WebCore/platform/network/SocketStreamHandleBase.h 2016-07-14 06:36:25 UTC (rev 203216)
+++ trunk/Source/WebCore/platform/network/SocketStreamHandleBase.h 2016-07-14 07:05:40 UTC (rev 203217)
@@ -36,34 +36,33 @@
namespace WebCore {
- class SocketStreamHandle;
- class SocketStreamHandleClient;
+class SocketStreamHandle;
+class SocketStreamHandleClient;
- class SocketStreamHandleBase {
- public:
- enum SocketStreamState { Connecting, Open, Closing, Closed };
- virtual ~SocketStreamHandleBase() { }
- SocketStreamState state() const;
+class SocketStreamHandleBase {
+public:
+ enum SocketStreamState { Connecting, Open, Closing, Closed };
+ virtual ~SocketStreamHandleBase() { }
+ SocketStreamState state() const;
- bool send(const char* data, int length);
- void close(); // Disconnect after all data in buffer are sent.
- void disconnect();
- size_t bufferedAmount() const { return m_buffer.size(); }
+ bool send(const char* data, int length);
+ void close(); // Disconnect after all data in buffer are sent.
+ void disconnect();
+ size_t bufferedAmount() const { return m_buffer.size(); }
- SocketStreamHandleClient* client() const { return m_client; }
- void setClient(SocketStreamHandleClient*);
+ SocketStreamHandleClient& client() const { return m_client; }
- protected:
- SocketStreamHandleBase(const URL&, SocketStreamHandleClient*);
+protected:
+ SocketStreamHandleBase(const URL&, SocketStreamHandleClient&);
- bool sendPendingData();
- virtual int platformSend(const char* data, int length) = 0;
- virtual void platformClose() = 0;
+ bool sendPendingData();
+ virtual int platformSend(const char* data, int length) = 0;
+ virtual void platformClose() = 0;
- URL m_url;
- SocketStreamHandleClient* m_client;
- StreamBuffer<char, 1024 * 1024> m_buffer;
- SocketStreamState m_state;
- };
+ URL m_url;
+ SocketStreamHandleClient& m_client;
+ StreamBuffer<char, 1024 * 1024> m_buffer;
+ SocketStreamState m_state;
+};
} // namespace WebCore
Modified: trunk/Source/WebCore/platform/network/cf/SocketStreamHandle.h (203216 => 203217)
--- trunk/Source/WebCore/platform/network/cf/SocketStreamHandle.h 2016-07-14 06:36:25 UTC (rev 203216)
+++ trunk/Source/WebCore/platform/network/cf/SocketStreamHandle.h 2016-07-14 07:05:40 UTC (rev 203217)
@@ -47,7 +47,7 @@
class SocketStreamHandle : public ThreadSafeRefCounted<SocketStreamHandle>, public SocketStreamHandleBase {
public:
- static Ref<SocketStreamHandle> create(const URL& url, SocketStreamHandleClient* client, NetworkingContext& networkingContext, bool usesEphemeralSession) { return adoptRef(*new SocketStreamHandle(url, client, networkingContext, usesEphemeralSession)); }
+ static Ref<SocketStreamHandle> create(const URL& url, SocketStreamHandleClient& client, NetworkingContext& networkingContext, bool usesEphemeralSession) { return adoptRef(*new SocketStreamHandle(url, client, networkingContext, usesEphemeralSession)); }
virtual ~SocketStreamHandle();
@@ -55,7 +55,7 @@
virtual int platformSend(const char* data, int length);
virtual void platformClose();
- SocketStreamHandle(const URL&, SocketStreamHandleClient*, NetworkingContext&, bool usesEphemeralSession);
+ SocketStreamHandle(const URL&, SocketStreamHandleClient&, NetworkingContext&, bool usesEphemeralSession);
void createStreams();
void scheduleStreams();
void chooseProxy();
Modified: trunk/Source/WebCore/platform/network/cf/SocketStreamHandleCFNet.cpp (203216 => 203217)
--- trunk/Source/WebCore/platform/network/cf/SocketStreamHandleCFNet.cpp 2016-07-14 06:36:25 UTC (rev 203216)
+++ trunk/Source/WebCore/platform/network/cf/SocketStreamHandleCFNet.cpp 2016-07-14 07:05:40 UTC (rev 203217)
@@ -67,7 +67,7 @@
namespace WebCore {
-SocketStreamHandle::SocketStreamHandle(const URL& url, SocketStreamHandleClient* client, NetworkingContext& networkingContext, bool usesEphemeralSession)
+SocketStreamHandle::SocketStreamHandle(const URL& url, SocketStreamHandleClient& client, NetworkingContext& networkingContext, bool usesEphemeralSession)
: SocketStreamHandleBase(url, client)
, m_connectingSubstate(New)
, m_connectionType(Unknown)
@@ -74,7 +74,7 @@
, m_sentStoredCredentials(false)
, m_networkingContext(networkingContext)
{
- LOG(Network, "SocketStreamHandle %p new client %p", this, m_client);
+ LOG(Network, "SocketStreamHandle %p new client %p", this, &m_client);
ASSERT(url.protocolIs("ws") || url.protocolIs("wss"));
@@ -87,7 +87,7 @@
if (url.protocolIs("ws")
&& !usesEphemeralSession
&& _CFNetworkIsKnownHSTSHostWithSession(m_httpsURL.get(), nullptr)) {
- m_client->didFailSocketStream(*this, SocketStreamError(0, m_url.string(), "WebSocket connection failed because it violates HTTP Strict Transport Security."));
+ m_client.didFailSocketStream(*this, SocketStreamError(0, m_url.string(), "WebSocket connection failed because it violates HTTP Strict Transport Security."));
return;
}
#endif
@@ -388,7 +388,7 @@
if (!CFHTTPAuthenticationRequiresUserNameAndPassword(authentication.get())) {
// That's all we can offer...
- m_client->didFailSocketStream(*this, SocketStreamError(0, m_url.string(), "Proxy authentication scheme is not supported for WebSockets"));
+ m_client.didFailSocketStream(*this, SocketStreamError(0, m_url.string(), "Proxy authentication scheme is not supported for WebSockets"));
return;
}
@@ -399,7 +399,7 @@
if (!methodCF || !realmCF) {
// This shouldn't happen, but on some OS versions we get incomplete authentication data, see <rdar://problem/10416316>.
- m_client->didFailSocketStream(*this, SocketStreamError(0, m_url.string(), "WebSocket proxy authentication couldn't be handled"));
+ m_client.didFailSocketStream(*this, SocketStreamError(0, m_url.string(), "WebSocket proxy authentication couldn't be handled"));
return;
}
@@ -418,7 +418,7 @@
if (!proxyAuthorizationString) {
// Fails e.g. for NTLM auth.
- m_client->didFailSocketStream(*this, SocketStreamError(0, m_url.string(), "Proxy authentication scheme is not supported for WebSockets"));
+ m_client.didFailSocketStream(*this, SocketStreamError(0, m_url.string(), "Proxy authentication scheme is not supported for WebSockets"));
return;
}
@@ -430,7 +430,7 @@
// FIXME: On platforms where AuthBrokerAgent is not available, ask the client if credentials could not be found.
- m_client->didFailSocketStream(*this, SocketStreamError(0, m_url.string(), "Proxy credentials are not available"));
+ m_client.didFailSocketStream(*this, SocketStreamError(0, m_url.string(), "Proxy credentials are not available"));
}
CFStringRef SocketStreamHandle::copyCFStreamDescription(void* info)
@@ -505,7 +505,7 @@
addCONNECTCredentials(proxyResponse.get());
return;
default:
- m_client->didFailSocketStream(*this, SocketStreamError(static_cast<int>(proxyResponseCode), m_url.string(), "Proxy connection could not be established, unexpected response code"));
+ m_client.didFailSocketStream(*this, SocketStreamError(static_cast<int>(proxyResponseCode), m_url.string(), "Proxy connection could not be established, unexpected response code"));
platformClose();
return;
}
@@ -512,7 +512,7 @@
}
m_connectingSubstate = Connected;
m_state = Open;
- m_client->didOpenSocketStream(*this);
+ m_client.didOpenSocketStream(*this);
}
// Not an "else if", we could have made a client call above, and it could close the connection.
@@ -533,7 +533,7 @@
if (!length)
return;
- m_client->didReceiveSocketStreamData(*this, reinterpret_cast<const char*>(ptr), length);
+ m_client.didReceiveSocketStreamData(*this, reinterpret_cast<const char*>(ptr), length);
return;
}
@@ -583,7 +583,7 @@
}
m_connectingSubstate = Connected;
m_state = Open;
- m_client->didOpenSocketStream(*this);
+ m_client.didOpenSocketStream(*this);
}
// Not an "else if", we could have made a client call above, and it could close the connection.
@@ -636,7 +636,7 @@
description = String(descriptionCF.get());
}
- m_client->didFailSocketStream(*this, SocketStreamError(static_cast<int>(errorCode), m_url.string(), description));
+ m_client.didFailSocketStream(*this, SocketStreamError(static_cast<int>(errorCode), m_url.string(), description));
}
SocketStreamHandle::~SocketStreamHandle()
@@ -664,7 +664,7 @@
ASSERT(!m_readStream == !m_writeStream);
if (!m_readStream) {
if (m_connectingSubstate == New || m_connectingSubstate == ExecutingPACFile)
- m_client->didCloseSocketStream(*this);
+ m_client.didCloseSocketStream(*this);
return;
}
@@ -682,7 +682,7 @@
m_readStream = 0;
m_writeStream = 0;
- m_client->didCloseSocketStream(*this);
+ m_client.didCloseSocketStream(*this);
}
unsigned short SocketStreamHandle::port() const
Modified: trunk/Source/WebCore/platform/network/curl/SocketStreamHandle.h (203216 => 203217)
--- trunk/Source/WebCore/platform/network/curl/SocketStreamHandle.h 2016-07-14 06:36:25 UTC (rev 203216)
+++ trunk/Source/WebCore/platform/network/curl/SocketStreamHandle.h 2016-07-14 07:05:40 UTC (rev 203217)
@@ -51,12 +51,12 @@
class SocketStreamHandle : public ThreadSafeRefCounted<SocketStreamHandle>, public SocketStreamHandleBase {
public:
- static Ref<SocketStreamHandle> create(const URL& url, SocketStreamHandleClient* client, NetworkingContext&, bool) { return adoptRef(*new SocketStreamHandle(url, client)); }
+ static Ref<SocketStreamHandle> create(const URL& url, SocketStreamHandleClient& client, NetworkingContext&, bool) { return adoptRef(*new SocketStreamHandle(url, client)); }
virtual ~SocketStreamHandle();
private:
- SocketStreamHandle(const URL&, SocketStreamHandleClient*);
+ SocketStreamHandle(const URL&, SocketStreamHandleClient&);
int platformSend(const char* data, int length) override;
void platformClose() override;
Modified: trunk/Source/WebCore/platform/network/curl/SocketStreamHandleCurl.cpp (203216 => 203217)
--- trunk/Source/WebCore/platform/network/curl/SocketStreamHandleCurl.cpp 2016-07-14 06:36:25 UTC (rev 203216)
+++ trunk/Source/WebCore/platform/network/curl/SocketStreamHandleCurl.cpp 2016-07-14 07:05:40 UTC (rev 203217)
@@ -42,10 +42,10 @@
namespace WebCore {
-SocketStreamHandle::SocketStreamHandle(const URL& url, SocketStreamHandleClient* client)
+SocketStreamHandle::SocketStreamHandle(const URL& url, SocketStreamHandleClient& client)
: SocketStreamHandleBase(url, client)
{
- LOG(Network, "SocketStreamHandle %p new client %p", this, m_client);
+ LOG(Network, "SocketStreamHandle %p new client %p", this, &m_client);
ASSERT(isMainThread());
startThread();
}
@@ -80,8 +80,7 @@
stopThread();
- if (m_client)
- m_client->didCloseSocketStream(*this);
+ m_client.didCloseSocketStream(*this);
}
bool SocketStreamHandle::readData(CURL* curlHandle)
@@ -256,8 +255,8 @@
for (auto& socketData : receiveData) {
if (socketData.size > 0) {
- if (m_client && state() == Open)
- m_client->didReceiveSocketStreamData(*this, socketData.data.get(), socketData.size);
+ if (state() == Open)
+ m_client.didReceiveSocketStreamData(*this, socketData.data.get(), socketData.size);
} else
platformClose();
}
@@ -269,8 +268,7 @@
m_state = Open;
- if (m_client)
- m_client->didOpenSocketStream(*this);
+ m_client.didOpenSocketStream(*this);
}
std::unique_ptr<char[]> SocketStreamHandle::createCopy(const char* data, int length)
Modified: trunk/Source/WebCore/platform/network/soup/SocketStreamHandle.h (203216 => 203217)
--- trunk/Source/WebCore/platform/network/soup/SocketStreamHandle.h 2016-07-14 06:36:25 UTC (rev 203216)
+++ trunk/Source/WebCore/platform/network/soup/SocketStreamHandle.h 2016-07-14 07:05:40 UTC (rev 203217)
@@ -48,14 +48,14 @@
class SocketStreamHandle final : public RefCounted<SocketStreamHandle>, public SocketStreamHandleBase {
public:
- static Ref<SocketStreamHandle> create(const URL& url, SocketStreamHandleClient* client, NetworkingContext&, bool) { return adoptRef(*new SocketStreamHandle(url, client)); }
- static Ref<SocketStreamHandle> create(GSocketConnection* socketConnection, SocketStreamHandleClient* client) { return adoptRef(*new SocketStreamHandle(socketConnection, client)); }
+ static Ref<SocketStreamHandle> create(const URL& url, SocketStreamHandleClient& client, NetworkingContext&, bool) { return adoptRef(*new SocketStreamHandle(url, client)); }
+ static Ref<SocketStreamHandle> create(GSocketConnection* socketConnection, SocketStreamHandleClient& client) { return adoptRef(*new SocketStreamHandle(socketConnection, client)); }
virtual ~SocketStreamHandle();
private:
- SocketStreamHandle(const URL&, SocketStreamHandleClient*);
- SocketStreamHandle(GSocketConnection*, SocketStreamHandleClient*);
+ SocketStreamHandle(const URL&, SocketStreamHandleClient&);
+ SocketStreamHandle(GSocketConnection*, SocketStreamHandleClient&);
int platformSend(const char* data, int length) override;
void platformClose() override;
Modified: trunk/Source/WebCore/platform/network/soup/SocketStreamHandleSoup.cpp (203216 => 203217)
--- trunk/Source/WebCore/platform/network/soup/SocketStreamHandleSoup.cpp 2016-07-14 06:36:25 UTC (rev 203216)
+++ trunk/Source/WebCore/platform/network/soup/SocketStreamHandleSoup.cpp 2016-07-14 07:05:40 UTC (rev 203217)
@@ -48,11 +48,11 @@
namespace WebCore {
-SocketStreamHandle::SocketStreamHandle(const URL& url, SocketStreamHandleClient* client)
+SocketStreamHandle::SocketStreamHandle(const URL& url, SocketStreamHandleClient& client)
: SocketStreamHandleBase(url, client)
, m_cancellable(adoptGRef(g_cancellable_new()))
{
- LOG(Network, "SocketStreamHandle %p new client %p", this, m_client);
+ LOG(Network, "SocketStreamHandle %p new client %p", this, &m_client);
unsigned port = url.hasPort() ? url.port() : (url.protocolIs("wss") ? 443 : 80);
GRefPtr<GSocketClient> socketClient = adoptGRef(g_socket_client_new());
@@ -64,11 +64,11 @@
reinterpret_cast<GAsyncReadyCallback>(connectedCallback), protectedThis.leakRef());
}
-SocketStreamHandle::SocketStreamHandle(GSocketConnection* socketConnection, SocketStreamHandleClient* client)
+SocketStreamHandle::SocketStreamHandle(GSocketConnection* socketConnection, SocketStreamHandleClient& client)
: SocketStreamHandleBase(URL(), client)
, m_cancellable(adoptGRef(g_cancellable_new()))
{
- LOG(Network, "SocketStreamHandle %p new client %p", this, m_client);
+ LOG(Network, "SocketStreamHandle %p new client %p", this, &m_client);
GRefPtr<GSocketConnection> connection = socketConnection;
connected(WTFMove(connection));
}
@@ -76,7 +76,6 @@
SocketStreamHandle::~SocketStreamHandle()
{
LOG(Network, "SocketStreamHandle %p delete", this);
- setClient(nullptr);
}
void SocketStreamHandle::connected(GRefPtr<GSocketConnection>&& socketConnection)
@@ -91,7 +90,7 @@
reinterpret_cast<GAsyncReadyCallback>(readReadyCallback), protectedThis.leakRef());
m_state = Open;
- m_client->didOpenSocketStream(*this);
+ m_client.didOpenSocketStream(*this);
}
void SocketStreamHandle::connectedCallback(GSocketClient* client, GAsyncResult* result, SocketStreamHandle* handle)
@@ -124,7 +123,7 @@
// The client can close the handle, potentially removing the last reference.
RefPtr<SocketStreamHandle> protectedThis(this);
- m_client->didReceiveSocketStreamData(*this, m_readBuffer.get(), bytesRead);
+ m_client.didReceiveSocketStreamData(*this, m_readBuffer.get(), bytesRead);
if (m_inputStream) {
g_input_stream_read_async(m_inputStream.get(), m_readBuffer.get(), READ_BUFFER_SIZE, G_PRIORITY_DEFAULT, m_cancellable.get(),
reinterpret_cast<GAsyncReadyCallback>(readReadyCallback), protectedThis.leakRef());
@@ -150,7 +149,7 @@
void SocketStreamHandle::didFail(SocketStreamError&& error)
{
- m_client->didFailSocketStream(*this, WTFMove(error));
+ m_client.didFailSocketStream(*this, WTFMove(error));
}
void SocketStreamHandle::writeReady()
@@ -207,7 +206,7 @@
m_inputStream = nullptr;
m_readBuffer = nullptr;
- m_client->didCloseSocketStream(*this);
+ m_client.didCloseSocketStream(*this);
}
void SocketStreamHandle::beginWaitingForSocketWritability()
Modified: trunk/Source/WebKit2/ChangeLog (203216 => 203217)
--- trunk/Source/WebKit2/ChangeLog 2016-07-14 06:36:25 UTC (rev 203216)
+++ trunk/Source/WebKit2/ChangeLog 2016-07-14 07:05:40 UTC (rev 203217)
@@ -1,3 +1,13 @@
+2016-07-13 Alex Christensen <[email protected]>
+
+ Modernize WebSocket handle
+ https://bugs.webkit.org/show_bug.cgi?id=159750
+
+ Reviewed by Brady Eidson.
+
+ * UIProcess/InspectorServer/soup/WebSocketServerSoup.cpp:
+ (WebKit::connectionCallback):
+
2016-07-13 Carlos Garcia Campos <[email protected]>
REGRESSION(r202273): [GTK] Redirected X window is resized to the previous size on size allocate
Modified: trunk/Source/WebKit2/UIProcess/InspectorServer/soup/WebSocketServerSoup.cpp (203216 => 203217)
--- trunk/Source/WebKit2/UIProcess/InspectorServer/soup/WebSocketServerSoup.cpp 2016-07-14 06:36:25 UTC (rev 203216)
+++ trunk/Source/WebKit2/UIProcess/InspectorServer/soup/WebSocketServerSoup.cpp 2016-07-14 07:05:40 UTC (rev 203217)
@@ -47,7 +47,7 @@
#endif
auto webSocketConnection = std::make_unique<WebSocketServerConnection>(server->client(), server);
- webSocketConnection->setSocketHandle(SocketStreamHandle::create(connection, webSocketConnection.get()));
+ webSocketConnection->setSocketHandle(SocketStreamHandle::create(connection, *webSocketConnection));
server->didAcceptConnection(WTFMove(webSocketConnection));
return TRUE;