Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(235)

Unified Diff: trunk/Source/modules/websockets/WorkerThreadableWebSocketChannel.cpp

Issue 338343002: Revert 176303 "ThreadableWebSocketChannelClientWrapper don't nee..." (Closed) Base URL: svn://svn.chromium.org/blink/
Patch Set: Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « trunk/Source/modules/websockets/WorkerThreadableWebSocketChannel.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: trunk/Source/modules/websockets/WorkerThreadableWebSocketChannel.cpp
===================================================================
--- trunk/Source/modules/websockets/WorkerThreadableWebSocketChannel.cpp (revision 176309)
+++ trunk/Source/modules/websockets/WorkerThreadableWebSocketChannel.cpp (working copy)
@@ -187,6 +187,20 @@
m_bridge.clear();
}
+void WorkerThreadableWebSocketChannel::suspend()
+{
+ m_workerClientWrapper->suspend();
+ if (m_bridge)
+ m_bridge->suspend();
+}
+
+void WorkerThreadableWebSocketChannel::resume()
+{
+ m_workerClientWrapper->resume();
+ if (m_bridge)
+ m_bridge->resume();
+}
+
void WorkerThreadableWebSocketChannel::trace(Visitor* visitor)
{
visitor->trace(m_workerClientWrapper);
@@ -305,6 +319,22 @@
m_mainWebSocketChannel = nullptr;
}
+void WorkerThreadableWebSocketChannel::Peer::suspend()
+{
+ ASSERT(isMainThread());
+ if (!m_mainWebSocketChannel)
+ return;
+ m_mainWebSocketChannel->suspend();
+}
+
+void WorkerThreadableWebSocketChannel::Peer::resume()
+{
+ ASSERT(isMainThread());
+ if (!m_mainWebSocketChannel)
+ return;
+ m_mainWebSocketChannel->resume();
+}
+
static void workerGlobalScopeDidConnect(ExecutionContext* context, PassRefPtrWillBeRawPtr<ThreadableWebSocketChannelClientWrapper> workerClientWrapper, const String& subprotocol, const String& extensions)
{
ASSERT_UNUSED(context, context->isWorkerGlobalScope());
@@ -495,6 +525,22 @@
terminatePeer();
}
+void WorkerThreadableWebSocketChannel::Bridge::suspend()
+{
+ if (hasTerminatedPeer())
+ return;
+
+ m_loaderProxy.postTaskToLoader(CallClosureTask::create(bind(&Peer::suspend, m_peer)));
+}
+
+void WorkerThreadableWebSocketChannel::Bridge::resume()
+{
+ if (hasTerminatedPeer())
+ return;
+
+ m_loaderProxy.postTaskToLoader(CallClosureTask::create(bind(&Peer::resume, m_peer)));
+}
+
void WorkerThreadableWebSocketChannel::Bridge::clearClientWrapper()
{
m_workerClientWrapper->clearClient();
« no previous file with comments | « trunk/Source/modules/websockets/WorkerThreadableWebSocketChannel.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698