Chromium Code Reviews| Index: content/browser/renderer_host/websocket_host.h |
| diff --git a/content/browser/renderer_host/websocket_host.h b/content/browser/renderer_host/websocket_host.h |
| index 39c1e41edbed3d56985f1bba437898bfae234c80..0d1cf842d6e3f6c21b89884835de297fefd7dcb8 100644 |
| --- a/content/browser/renderer_host/websocket_host.h |
| +++ b/content/browser/renderer_host/websocket_host.h |
| @@ -9,6 +9,7 @@ |
| #include <vector> |
| #include "base/memory/scoped_ptr.h" |
| +#include "base/memory/weak_ptr.h" |
| #include "content/common/content_export.h" |
| #include "content/common/websocket.h" |
| @@ -37,7 +38,8 @@ class CONTENT_EXPORT WebSocketHost { |
| public: |
| WebSocketHost(int routing_id, |
| WebSocketDispatcherHost* dispatcher, |
| - net::URLRequestContext* url_request_context); |
| + net::URLRequestContext* url_request_context, |
| + int delay_in_ms); |
|
Adam Rice
2015/03/03 15:10:03
I would make this argument type a base::TimeDelta
hiroshige
2015/03/04 06:02:38
Done.
|
| virtual ~WebSocketHost(); |
| // The renderer process is going away. |
| @@ -50,6 +52,9 @@ class CONTENT_EXPORT WebSocketHost { |
| int routing_id() const { return routing_id_; } |
| + bool handshakeSucceeded() const { return handshake_succeeded_; } |
|
Adam Rice
2015/03/03 15:10:03
This should be named handshake_succeeded() by Chro
hiroshige
2015/03/04 06:02:38
Done.
|
| + void OnHandshakeSucceeded() { handshake_succeeded_ = true; } |
| + |
| private: |
| // Handlers for each message type, dispatched by OnMessageReceived(), as |
| // defined in content/common/websocket_messages.h |
| @@ -59,6 +64,11 @@ class CONTENT_EXPORT WebSocketHost { |
| const url::Origin& origin, |
| int render_frame_id); |
| + void AddChannel(const GURL& socket_url, |
| + const std::vector<std::string>& requested_protocols, |
| + const url::Origin& origin, |
| + int render_frame_id); |
| + |
| void OnSendFrame(bool fin, |
| WebSocketMessageType type, |
| const std::vector<char>& data); |
| @@ -79,6 +89,20 @@ class CONTENT_EXPORT WebSocketHost { |
| // The ID used to route messages. |
| const int routing_id_; |
| + // Delay used for per-renderer WebSocket throttling. |
| + int delay_in_ms_; |
| + |
| + // SendFlowControl() is delayed when OnFlowControl() is called before |
| + // AddChannel() is called. |
| + // A negative value indicates there is no pending SendFlowControl(). |
|
Adam Rice
2015/03/03 15:10:03
I would just use 0 to mean no pending flow control
hiroshige
2015/03/04 06:02:38
Done.
|
| + int64 pending_flow_control_quota_; |
| + |
| + // handshake_succeeded_ is set and used by WebSocketDispatcherHost |
| + // to manage counters for per-renderer WebSocket throttling. |
| + bool handshake_succeeded_; |
| + |
| + base::WeakPtrFactory<WebSocketHost> weak_ptr_factory_; |
| + |
| DISALLOW_COPY_AND_ASSIGN(WebSocketHost); |
| }; |