Index: content/child/websocket_dispatcher.cc |
diff --git a/content/child/websocket_dispatcher.cc b/content/child/websocket_dispatcher.cc |
index 9fc3370bb65d8bcc1b380761dba11efcf43103f9..50889e45b3dda4df77d07cf378afa5c9ad51cb71 100644 |
--- a/content/child/websocket_dispatcher.cc |
+++ b/content/child/websocket_dispatcher.cc |
@@ -35,6 +35,15 @@ void WebSocketDispatcher::RemoveBridge(int channel_id) { |
} |
bool WebSocketDispatcher::OnMessageReceived(const IPC::Message& msg) { |
+ if (!CanHandleMessage(msg)) |
+ return false; |
+ WebSocketBridge* bridge = GetBridge(msg.routing_id(), msg.type()); |
+ if (!bridge) |
+ return true; |
+ return bridge->OnMessageReceived(msg); |
+} |
+ |
+bool WebSocketDispatcher::CanHandleMessage(const IPC::Message& msg) const { |
switch (msg.type()) { |
case WebSocketMsg_AddChannelResponse::ID: |
case WebSocketMsg_NotifyStartOpeningHandshake::ID: |
@@ -44,15 +53,10 @@ bool WebSocketDispatcher::OnMessageReceived(const IPC::Message& msg) { |
case WebSocketMsg_FlowControl::ID: |
case WebSocketMsg_DropChannel::ID: |
case WebSocketMsg_NotifyClosing::ID: |
- break; |
+ return true; |
default: |
return false; |
} |
- |
- WebSocketBridge* bridge = GetBridge(msg.routing_id(), msg.type()); |
- if (!bridge) |
- return true; |
- return bridge->OnMessageReceived(msg); |
} |
WebSocketBridge* WebSocketDispatcher::GetBridge(int channel_id, uint32_t type) { |