| Index: Source/modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp
|
| diff --git a/Source/modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp b/Source/modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp
|
| index 9d8b0828f1f7b06485325e38d5fcf5863016b748..e1525d7d8515030b7bfa1bb56b6eceae759c4380 100644
|
| --- a/Source/modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp
|
| +++ b/Source/modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp
|
| @@ -31,21 +31,10 @@
|
| #include "config.h"
|
| #include "modules/websockets/ThreadableWebSocketChannelClientWrapper.h"
|
|
|
| -#include "core/dom/CrossThreadTask.h"
|
| -#include "core/dom/ExecutionContext.h"
|
| -#include "platform/CrossThreadCopier.h"
|
| -#include "wtf/PassRefPtr.h"
|
| -#include "wtf/RefPtr.h"
|
| -
|
| namespace WebCore {
|
|
|
| ThreadableWebSocketChannelClientWrapper::ThreadableWebSocketChannelClientWrapper(WebSocketChannelClient* client)
|
| : m_client(client)
|
| - , m_suspended(false)
|
| -{
|
| -}
|
| -
|
| -ThreadableWebSocketChannelClientWrapper::~ThreadableWebSocketChannelClientWrapper()
|
| {
|
| }
|
|
|
| @@ -61,121 +50,44 @@ void ThreadableWebSocketChannelClientWrapper::clearClient()
|
|
|
| void ThreadableWebSocketChannelClientWrapper::didConnect(const String& subprotocol, const String& extensions)
|
| {
|
| - m_pendingTasks.append(createCallbackTask(&didConnectCallback, this, subprotocol, extensions));
|
| - if (!m_suspended)
|
| - processPendingTasks();
|
| + if (m_client)
|
| + m_client->didConnect(subprotocol, extensions);
|
| }
|
|
|
| void ThreadableWebSocketChannelClientWrapper::didReceiveMessage(const String& message)
|
| {
|
| - m_pendingTasks.append(createCallbackTask(&didReceiveMessageCallback, this, message));
|
| - if (!m_suspended)
|
| - processPendingTasks();
|
| + if (m_client)
|
| + m_client->didReceiveMessage(message);
|
| }
|
|
|
| void ThreadableWebSocketChannelClientWrapper::didReceiveBinaryData(PassOwnPtr<Vector<char> > binaryData)
|
| {
|
| - m_pendingTasks.append(createCallbackTask(&didReceiveBinaryDataCallback, this, binaryData));
|
| - if (!m_suspended)
|
| - processPendingTasks();
|
| + if (m_client)
|
| + m_client->didReceiveBinaryData(binaryData);
|
| }
|
|
|
| void ThreadableWebSocketChannelClientWrapper::didUpdateBufferedAmount(unsigned long bufferedAmount)
|
| {
|
| - m_pendingTasks.append(createCallbackTask(&didUpdateBufferedAmountCallback, this, bufferedAmount));
|
| - if (!m_suspended)
|
| - processPendingTasks();
|
| + if (m_client)
|
| + m_client->didUpdateBufferedAmount(bufferedAmount);
|
| }
|
|
|
| void ThreadableWebSocketChannelClientWrapper::didStartClosingHandshake()
|
| {
|
| - m_pendingTasks.append(createCallbackTask(&didStartClosingHandshakeCallback, this));
|
| - if (!m_suspended)
|
| - processPendingTasks();
|
| + if (m_client)
|
| + m_client->didStartClosingHandshake();
|
| }
|
|
|
| void ThreadableWebSocketChannelClientWrapper::didClose(unsigned long unhandledBufferedAmount, WebSocketChannelClient::ClosingHandshakeCompletionStatus closingHandshakeCompletion, unsigned short code, const String& reason)
|
| {
|
| - m_pendingTasks.append(createCallbackTask(&didCloseCallback, this, unhandledBufferedAmount, closingHandshakeCompletion, code, reason));
|
| - if (!m_suspended)
|
| - processPendingTasks();
|
| + if (m_client)
|
| + m_client->didClose(unhandledBufferedAmount, closingHandshakeCompletion, code, reason);
|
| }
|
|
|
| void ThreadableWebSocketChannelClientWrapper::didReceiveMessageError()
|
| {
|
| - m_pendingTasks.append(createCallbackTask(&didReceiveMessageErrorCallback, this));
|
| - if (!m_suspended)
|
| - processPendingTasks();
|
| -}
|
| -
|
| -void ThreadableWebSocketChannelClientWrapper::suspend()
|
| -{
|
| - m_suspended = true;
|
| -}
|
| -
|
| -void ThreadableWebSocketChannelClientWrapper::resume()
|
| -{
|
| - m_suspended = false;
|
| - processPendingTasks();
|
| -}
|
| -
|
| -void ThreadableWebSocketChannelClientWrapper::processPendingTasks()
|
| -{
|
| - if (m_suspended)
|
| - return;
|
| - Vector<OwnPtr<ExecutionContextTask> > tasks;
|
| - tasks.swap(m_pendingTasks);
|
| - for (Vector<OwnPtr<ExecutionContextTask> >::const_iterator iter = tasks.begin(); iter != tasks.end(); ++iter)
|
| - (*iter)->performTask(0);
|
| -}
|
| -
|
| -void ThreadableWebSocketChannelClientWrapper::didConnectCallback(ExecutionContext* context, PassRefPtrWillBeRawPtr<ThreadableWebSocketChannelClientWrapper> wrapper, const String& subprotocol, const String& extensions)
|
| -{
|
| - ASSERT_UNUSED(context, !context);
|
| - if (wrapper->m_client)
|
| - wrapper->m_client->didConnect(subprotocol, extensions);
|
| -}
|
| -
|
| -void ThreadableWebSocketChannelClientWrapper::didReceiveMessageCallback(ExecutionContext* context, PassRefPtrWillBeRawPtr<ThreadableWebSocketChannelClientWrapper> wrapper, const String& message)
|
| -{
|
| - ASSERT_UNUSED(context, !context);
|
| - if (wrapper->m_client)
|
| - wrapper->m_client->didReceiveMessage(message);
|
| -}
|
| -
|
| -void ThreadableWebSocketChannelClientWrapper::didReceiveBinaryDataCallback(ExecutionContext* context, PassRefPtrWillBeRawPtr<ThreadableWebSocketChannelClientWrapper> wrapper, PassOwnPtr<Vector<char> > binaryData)
|
| -{
|
| - ASSERT_UNUSED(context, !context);
|
| - if (wrapper->m_client)
|
| - wrapper->m_client->didReceiveBinaryData(binaryData);
|
| -}
|
| -
|
| -void ThreadableWebSocketChannelClientWrapper::didUpdateBufferedAmountCallback(ExecutionContext* context, PassRefPtrWillBeRawPtr<ThreadableWebSocketChannelClientWrapper> wrapper, unsigned long bufferedAmount)
|
| -{
|
| - ASSERT_UNUSED(context, !context);
|
| - if (wrapper->m_client)
|
| - wrapper->m_client->didUpdateBufferedAmount(bufferedAmount);
|
| -}
|
| -
|
| -void ThreadableWebSocketChannelClientWrapper::didStartClosingHandshakeCallback(ExecutionContext* context, PassRefPtrWillBeRawPtr<ThreadableWebSocketChannelClientWrapper> wrapper)
|
| -{
|
| - ASSERT_UNUSED(context, !context);
|
| - if (wrapper->m_client)
|
| - wrapper->m_client->didStartClosingHandshake();
|
| -}
|
| -
|
| -void ThreadableWebSocketChannelClientWrapper::didCloseCallback(ExecutionContext* context, PassRefPtrWillBeRawPtr<ThreadableWebSocketChannelClientWrapper> wrapper, unsigned long unhandledBufferedAmount, WebSocketChannelClient::ClosingHandshakeCompletionStatus closingHandshakeCompletion, unsigned short code, const String& reason)
|
| -{
|
| - ASSERT_UNUSED(context, !context);
|
| - if (wrapper->m_client)
|
| - wrapper->m_client->didClose(unhandledBufferedAmount, closingHandshakeCompletion, code, reason);
|
| -}
|
| -
|
| -void ThreadableWebSocketChannelClientWrapper::didReceiveMessageErrorCallback(ExecutionContext* context, PassRefPtrWillBeRawPtr<ThreadableWebSocketChannelClientWrapper> wrapper)
|
| -{
|
| - ASSERT_UNUSED(context, !context);
|
| - if (wrapper->m_client)
|
| - wrapper->m_client->didReceiveMessageError();
|
| + if (m_client)
|
| + m_client->didReceiveMessageError();
|
| }
|
|
|
| } // namespace WebCore
|
|
|