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

Unified Diff: third_party/WebKit/Source/modules/websockets/WorkerWebSocketChannel.cpp

Issue 1666893003: [ABANDONED] WebSocket Blob receive in the browser process: renderer changes (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@websocket_blob_receive_host_merged
Patch Set: Created 4 years, 10 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
Index: third_party/WebKit/Source/modules/websockets/WorkerWebSocketChannel.cpp
diff --git a/third_party/WebKit/Source/modules/websockets/WorkerWebSocketChannel.cpp b/third_party/WebKit/Source/modules/websockets/WorkerWebSocketChannel.cpp
index 9afa15c59b902c95e6807c23ab709decc1108b27..916b3fd87a88a68e8c05f5a52de31e99c94d2837 100644
--- a/third_party/WebKit/Source/modules/websockets/WorkerWebSocketChannel.cpp
+++ b/third_party/WebKit/Source/modules/websockets/WorkerWebSocketChannel.cpp
@@ -150,6 +150,12 @@ void WorkerWebSocketChannel::close(int code, const String& reason)
m_bridge->close(code, reason);
}
+void WorkerWebSocketChannel::changeBinaryType(BinaryType newBinaryType)
+{
+ ASSERT(m_bridge);
+ m_bridge->changeBinaryType(newBinaryType);
+}
+
void WorkerWebSocketChannel::fail(const String& reason, MessageLevel level, const String& sourceURL, unsigned lineNumber)
{
if (!m_bridge)
@@ -248,6 +254,13 @@ void Peer::close(int code, const String& reason)
m_mainWebSocketChannel->close(code, reason);
}
+void Peer::changeBinaryType(BinaryType newBinaryType)
+{
+ ASSERT(isMainThread());
+ if (m_mainWebSocketChannel)
+ m_mainWebSocketChannel->changeBinaryType(newBinaryType);
+}
+
void Peer::fail(const String& reason, MessageLevel level, const String& sourceURL, unsigned lineNumber)
{
ASSERT(isMainThread());
@@ -294,17 +307,30 @@ void Peer::didReceiveTextMessage(const String& payload)
m_loaderProxy->postTaskToWorkerGlobalScope(createCrossThreadTask(&workerGlobalScopeDidReceiveTextMessage, m_bridge, payload));
}
-static void workerGlobalScopeDidReceiveBinaryMessage(Bridge* bridge, PassOwnPtr<Vector<char>> payload, ExecutionContext* context)
+static void workerGlobalScopeDidReceiveArrayBuffer(Bridge* bridge, PassOwnPtr<Vector<char>> payload, ExecutionContext* context)
+{
+ ASSERT_UNUSED(context, context->isWorkerGlobalScope());
+ if (bridge->client())
+ bridge->client()->didReceiveArrayBuffer(payload);
+}
+
+void Peer::didReceiveArrayBuffer(PassOwnPtr<Vector<char>> payload)
+{
+ ASSERT(isMainThread());
+ m_loaderProxy->postTaskToWorkerGlobalScope(createCrossThreadTask(&workerGlobalScopeDidReceiveArrayBuffer, m_bridge, payload));
+}
+
+static void workerGlobalScopeDidReceiveBlob(Bridge* bridge, PassRefPtr<blink::BlobDataHandle> blobDataHandle, ExecutionContext* context)
{
ASSERT_UNUSED(context, context->isWorkerGlobalScope());
if (bridge->client())
- bridge->client()->didReceiveBinaryMessage(payload);
+ bridge->client()->didReceiveBlob(blobDataHandle);
}
-void Peer::didReceiveBinaryMessage(PassOwnPtr<Vector<char>> payload)
+void Peer::didReceiveBlob(PassRefPtr<blink::BlobDataHandle> blobDataHandle)
{
ASSERT(isMainThread());
- m_loaderProxy->postTaskToWorkerGlobalScope(createCrossThreadTask(&workerGlobalScopeDidReceiveBinaryMessage, m_bridge, payload));
+ m_loaderProxy->postTaskToWorkerGlobalScope(createCrossThreadTask(&workerGlobalScopeDidReceiveBlob, m_bridge, blobDataHandle));
}
static void workerGlobalScopeDidConsumeBufferedAmount(Bridge* bridge, uint64_t consumed, ExecutionContext* context)
@@ -437,6 +463,12 @@ void Bridge::close(int code, const String& reason)
m_loaderProxy->postTaskToLoader(createCrossThreadTask(&Peer::close, m_peer.get(), code, reason));
}
+void Bridge::changeBinaryType(BinaryType newBinaryType)
+{
+ ASSERT(m_peer);
+ m_loaderProxy->postTaskToLoader(createCrossThreadTask(&Peer::changeBinaryType, m_peer.get(), newBinaryType));
+}
+
void Bridge::fail(const String& reason, MessageLevel level, const String& sourceURL, unsigned lineNumber)
{
ASSERT(m_peer);

Powered by Google App Engine
This is Rietveld 408576698