Index: content/browser/renderer_host/websocket_host.cc |
diff --git a/content/browser/renderer_host/websocket_host.cc b/content/browser/renderer_host/websocket_host.cc |
index cce4485b3d4d67801e5037ee042d88fd5aaaaa41..710f640096af6fcd4427f21cf4aeb2b1d3f40a22 100644 |
--- a/content/browser/renderer_host/websocket_host.cc |
+++ b/content/browser/renderer_host/websocket_host.cc |
@@ -371,6 +371,7 @@ WebSocketHost::WebSocketHost(int routing_id, |
delay_(delay), |
pending_flow_control_quota_(0), |
handshake_succeeded_(false), |
+ loader_test_num_read_bytes_(0), |
weak_ptr_factory_(this) { |
DVLOG(1) << "WebSocketHost: created routing_id=" << routing_id; |
} |
@@ -390,6 +391,12 @@ bool WebSocketHost::OnMessageReceived(const IPC::Message& message) { |
IPC_MESSAGE_HANDLER(WebSocketMsg_SendFrame, OnSendFrame) |
IPC_MESSAGE_HANDLER(WebSocketMsg_FlowControl, OnFlowControl) |
IPC_MESSAGE_HANDLER(WebSocketMsg_DropChannel, OnDropChannel) |
+ IPC_MESSAGE_HANDLER(WebSocketHostMsg_LoaderTransferTest_Setup, |
+ OnLoaderTransferTest_Setup) |
+ IPC_MESSAGE_HANDLER(WebSocketHostMsg_LoaderTransferTest_Send, |
+ OnLoaderTransferTest_Send) |
+ IPC_MESSAGE_HANDLER(WebSocketHostMsg_LoaderTransferTest_Close, |
+ OnLoaderTransferTest_Close) |
IPC_MESSAGE_UNHANDLED(handled = false) |
IPC_END_MESSAGE_MAP() |
return handled; |
@@ -580,4 +587,32 @@ void WebSocketHost::BlobSendComplete(int result) { |
} |
} |
+void WebSocketHost::OnLoaderTransferTest_Setup(int buffer_size) { |
+ // fprintf(stderr, "%s\n", __PRETTY_FUNCTION__); |
+ loader_test_num_read_bytes_ = 0; |
+ base::SharedMemoryHandle handle; |
+ shared_memory_.reset(new base::SharedMemory); |
+ shared_memory_->CreateAndMapAnonymous(buffer_size); |
+ shared_memory_->ShareToProcess(dispatcher_->PeerHandle(), &handle); |
+ dispatcher_->SendLoaderTransferTest_SetDataBuffer(routing_id_, handle); |
+} |
+ |
+void WebSocketHost::OnLoaderTransferTest_Send(int offset, int size) { |
+ // fprintf(stderr, "%s offset = %d, size = %d\n", __PRETTY_FUNCTION__, offset, size); |
+ loader_test_num_read_bytes_ += size; |
+ dispatcher_->SendLoaderTransferTest_Ack(routing_id_); |
+ |
+ // const char* p = static_cast<const char*>(shared_memory_->memory()) + offset; |
+ // fprintf(stderr, "*p = 0x%02x\n", *p); |
+} |
+ |
+void WebSocketHost::OnLoaderTransferTest_Close() { |
+ // fprintf(stderr, "%s\n", __PRETTY_FUNCTION__); |
+ shared_memory_ = nullptr; |
+ dispatcher_->SendLoaderTransferTest_Done(routing_id_); |
+ fprintf(stderr, "%s done: read %zu bytes\n", __PRETTY_FUNCTION__, |
+ loader_test_num_read_bytes_); |
+} |
+ |
+ |
} // namespace content |