Index: content/child/websocket_bridge.cc |
diff --git a/content/child/websocket_bridge.cc b/content/child/websocket_bridge.cc |
index 7cfff1ad50a942960024e79ac8d98377e363642d..5456b622e0a5046a370b8f7c0e2e0ce900721dd0 100644 |
--- a/content/child/websocket_bridge.cc |
+++ b/content/child/websocket_bridge.cc |
@@ -70,6 +70,7 @@ bool WebSocketBridge::OnMessageReceived(const IPC::Message& msg) { |
IPC_MESSAGE_HANDLER(WebSocketMsg_NotifyFinishOpeningHandshake, |
DidFinishOpeningHandshake) |
IPC_MESSAGE_HANDLER(WebSocketMsg_NotifyFailure, DidFail) |
+ IPC_MESSAGE_HANDLER(WebSocketMsg_BlobSendComplete, DidCompleteSendingBlob) |
IPC_MESSAGE_HANDLER(WebSocketMsg_SendFrame, DidReceiveData) |
IPC_MESSAGE_HANDLER(WebSocketMsg_FlowControl, DidReceiveFlowControl) |
IPC_MESSAGE_HANDLER(WebSocketMsg_DropChannel, DidClose) |
@@ -140,6 +141,13 @@ void WebSocketBridge::DidFail(const std::string& message) { |
// |this| can be deleted here. |
} |
+void WebSocketBridge::DidCompleteSendingBlob() { |
+ DVLOG(1) << "WebSocketBridge::DidCompleteSendingBlob()"; |
+ if (client_) |
+ client_->didCompleteSendingBlob(this); |
+ // |this| can be deleted here. |
+} |
+ |
void WebSocketBridge::DidReceiveData(bool fin, |
WebSocketMessageType type, |
const std::vector<char>& data) { |
@@ -256,6 +264,18 @@ void WebSocketBridge::send(bool fin, |
std::vector<char>(data, data + size))); |
} |
+void WebSocketBridge::sendBlob(const blink::WebString& uuid, |
+ uint64_t expected_size) { |
+ if (channel_id_ == kInvalidChannelId) |
+ return; |
+ |
+ DVLOG(1) << "Bridge #" << channel_id_ << " SendBlob(" << uuid.utf8() << ", " |
+ << expected_size << ")"; |
+ |
+ ChildThreadImpl::current()->Send( |
+ new WebSocketHostMsg_SendBlob(channel_id_, uuid.utf8(), expected_size)); |
+} |
+ |
void WebSocketBridge::flowControl(int64_t quota) { |
if (channel_id_ == kInvalidChannelId) |
return; |