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

Side by Side Diff: chrome/common/socket_stream_dispatcher.cc

Issue 1625015: Refactor ChildProcess and related classes to create a framework outside of br... (Closed) Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: Created 10 years, 8 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/common/plugin_messages_internal.h ('k') | chrome/gpu/gpu_channel.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/common/socket_stream_dispatcher.h" 5 #include "chrome/common/socket_stream_dispatcher.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/id_map.h" 9 #include "base/id_map.h"
10 #include "base/ref_counted.h" 10 #include "base/ref_counted.h"
11 #include "chrome/common/child_thread.h" 11 #include "base/mp/mp_child_thread.h"
12 #include "chrome/common/render_messages.h" 12 #include "chrome/common/render_messages.h"
13 #include "chrome/common/net/socket_stream.h" 13 #include "chrome/common/net/socket_stream.h"
14 #include "googleurl/src/gurl.h" 14 #include "googleurl/src/gurl.h"
15 #include "webkit/glue/websocketstreamhandle_bridge.h" 15 #include "webkit/glue/websocketstreamhandle_bridge.h"
16 #include "webkit/glue/websocketstreamhandle_delegate.h" 16 #include "webkit/glue/websocketstreamhandle_delegate.h"
17 17
18 // IPCWebSocketStreamHandleBridge is owned by each SocketStreamHandle. 18 // IPCWebSocketStreamHandleBridge is owned by each SocketStreamHandle.
19 // It communicates with the main browser process via SocketStreamDispatcher. 19 // It communicates with the main browser process via SocketStreamDispatcher.
20 class IPCWebSocketStreamHandleBridge 20 class IPCWebSocketStreamHandleBridge
21 : public webkit_glue::WebSocketStreamHandleBridge { 21 : public webkit_glue::WebSocketStreamHandleBridge {
22 public: 22 public:
23 IPCWebSocketStreamHandleBridge( 23 IPCWebSocketStreamHandleBridge(
24 ChildThread* child_thread, 24 base::MpChildThread* child_thread,
25 WebKit::WebSocketStreamHandle* handle, 25 WebKit::WebSocketStreamHandle* handle,
26 webkit_glue::WebSocketStreamHandleDelegate* delegate) 26 webkit_glue::WebSocketStreamHandleDelegate* delegate)
27 : socket_id_(chrome_common_net::kNoSocketId), 27 : socket_id_(chrome_common_net::kNoSocketId),
28 child_thread_(child_thread), 28 child_thread_(child_thread),
29 handle_(handle), 29 handle_(handle),
30 delegate_(delegate) {} 30 delegate_(delegate) {}
31 31
32 // Returns the handle having given id or NULL if there is no such handle. 32 // Returns the handle having given id or NULL if there is no such handle.
33 static IPCWebSocketStreamHandleBridge* FromSocketId(int id); 33 static IPCWebSocketStreamHandleBridge* FromSocketId(int id);
34 34
35 // webkit_glue::WebSocketStreamHandleBridge methods. 35 // webkit_glue::WebSocketStreamHandleBridge methods.
36 virtual void Connect(const GURL& url); 36 virtual void Connect(const GURL& url);
37 virtual bool Send(const std::vector<char>& data); 37 virtual bool Send(const std::vector<char>& data);
38 virtual void Close(); 38 virtual void Close();
39 39
40 // Called by SocketStreamDispatcher. 40 // Called by SocketStreamDispatcher.
41 void OnConnected(int max_amount_send_allowed); 41 void OnConnected(int max_amount_send_allowed);
42 void OnSentData(int amount_sent); 42 void OnSentData(int amount_sent);
43 void OnReceivedData(const std::vector<char>& data); 43 void OnReceivedData(const std::vector<char>& data);
44 void OnClosed(); 44 void OnClosed();
45 45
46 private: 46 private:
47 virtual ~IPCWebSocketStreamHandleBridge(); 47 virtual ~IPCWebSocketStreamHandleBridge();
48 48
49 void DoConnect(const GURL& url); 49 void DoConnect(const GURL& url);
50 int socket_id_; 50 int socket_id_;
51 51
52 ChildThread* child_thread_; 52 base::MpChildThread* child_thread_;
53 WebKit::WebSocketStreamHandle* handle_; 53 WebKit::WebSocketStreamHandle* handle_;
54 webkit_glue::WebSocketStreamHandleDelegate* delegate_; 54 webkit_glue::WebSocketStreamHandleDelegate* delegate_;
55 55
56 static IDMap<IPCWebSocketStreamHandleBridge> all_bridges; 56 static IDMap<IPCWebSocketStreamHandleBridge> all_bridges;
57 }; 57 };
58 58
59 IDMap<IPCWebSocketStreamHandleBridge> 59 IDMap<IPCWebSocketStreamHandleBridge>
60 IPCWebSocketStreamHandleBridge::all_bridges; 60 IPCWebSocketStreamHandleBridge::all_bridges;
61 61
62 /* static */ 62 /* static */
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
152 152
153 SocketStreamDispatcher::SocketStreamDispatcher() { 153 SocketStreamDispatcher::SocketStreamDispatcher() {
154 } 154 }
155 155
156 /* static */ 156 /* static */
157 webkit_glue::WebSocketStreamHandleBridge* 157 webkit_glue::WebSocketStreamHandleBridge*
158 SocketStreamDispatcher::CreateBridge( 158 SocketStreamDispatcher::CreateBridge(
159 WebKit::WebSocketStreamHandle* handle, 159 WebKit::WebSocketStreamHandle* handle,
160 webkit_glue::WebSocketStreamHandleDelegate* delegate) { 160 webkit_glue::WebSocketStreamHandleDelegate* delegate) {
161 return new IPCWebSocketStreamHandleBridge( 161 return new IPCWebSocketStreamHandleBridge(
162 ChildThread::current(), handle, delegate); 162 base::MpChildThread::current(), handle, delegate);
163 } 163 }
164 164
165 bool SocketStreamDispatcher::OnMessageReceived(const IPC::Message& msg) { 165 bool SocketStreamDispatcher::OnMessageReceived(const IPC::Message& msg) {
166 bool handled = true; 166 bool handled = true;
167 IPC_BEGIN_MESSAGE_MAP(SocketStreamDispatcher, msg) 167 IPC_BEGIN_MESSAGE_MAP(SocketStreamDispatcher, msg)
168 IPC_MESSAGE_HANDLER(ViewMsg_SocketStream_Connected, OnConnected) 168 IPC_MESSAGE_HANDLER(ViewMsg_SocketStream_Connected, OnConnected)
169 IPC_MESSAGE_HANDLER(ViewMsg_SocketStream_SentData, OnSentData) 169 IPC_MESSAGE_HANDLER(ViewMsg_SocketStream_SentData, OnSentData)
170 IPC_MESSAGE_HANDLER(ViewMsg_SocketStream_ReceivedData, OnReceivedData) 170 IPC_MESSAGE_HANDLER(ViewMsg_SocketStream_ReceivedData, OnReceivedData)
171 IPC_MESSAGE_HANDLER(ViewMsg_SocketStream_Closed, OnClosed) 171 IPC_MESSAGE_HANDLER(ViewMsg_SocketStream_Closed, OnClosed)
172 IPC_MESSAGE_UNHANDLED(handled = false) 172 IPC_MESSAGE_UNHANDLED(handled = false)
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
206 } 206 }
207 207
208 void SocketStreamDispatcher::OnClosed(int socket_id) { 208 void SocketStreamDispatcher::OnClosed(int socket_id) {
209 IPCWebSocketStreamHandleBridge* bridge = 209 IPCWebSocketStreamHandleBridge* bridge =
210 IPCWebSocketStreamHandleBridge::FromSocketId(socket_id); 210 IPCWebSocketStreamHandleBridge::FromSocketId(socket_id);
211 if (bridge) 211 if (bridge)
212 bridge->OnClosed(); 212 bridge->OnClosed();
213 else 213 else
214 DLOG(ERROR) << "No SocketStreamHandleBridge for socket_id=" << socket_id; 214 DLOG(ERROR) << "No SocketStreamHandleBridge for socket_id=" << socket_id;
215 } 215 }
OLDNEW
« no previous file with comments | « chrome/common/plugin_messages_internal.h ('k') | chrome/gpu/gpu_channel.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698