| 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..89b368685d6b64df526f0244f18de97bda3c8f54 100644
|
| --- a/content/browser/renderer_host/websocket_host.h
|
| +++ b/content/browser/renderer_host/websocket_host.h
|
| @@ -9,6 +9,8 @@
|
| #include <vector>
|
|
|
| #include "base/memory/scoped_ptr.h"
|
| +#include "base/memory/weak_ptr.h"
|
| +#include "base/time/time.h"
|
| #include "content/common/content_export.h"
|
| #include "content/common/websocket.h"
|
|
|
| @@ -37,7 +39,8 @@
|
| public:
|
| WebSocketHost(int routing_id,
|
| WebSocketDispatcherHost* dispatcher,
|
| - net::URLRequestContext* url_request_context);
|
| + net::URLRequestContext* url_request_context,
|
| + base::TimeDelta delay);
|
| virtual ~WebSocketHost();
|
|
|
| // The renderer process is going away.
|
| @@ -50,6 +53,9 @@
|
|
|
| int routing_id() const { return routing_id_; }
|
|
|
| + bool handshake_succeeded() const { return handshake_succeeded_; }
|
| + void OnHandshakeSucceeded() { handshake_succeeded_ = true; }
|
| +
|
| private:
|
| // Handlers for each message type, dispatched by OnMessageReceived(), as
|
| // defined in content/common/websocket_messages.h
|
| @@ -58,6 +64,11 @@
|
| const std::vector<std::string>& requested_protocols,
|
| 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,
|
| @@ -79,6 +90,20 @@
|
| // The ID used to route messages.
|
| const int routing_id_;
|
|
|
| + // Delay used for per-renderer WebSocket throttling.
|
| + base::TimeDelta delay_;
|
| +
|
| + // SendFlowControl() is delayed when OnFlowControl() is called before
|
| + // AddChannel() is called.
|
| + // Zero indicates there is no pending SendFlowControl().
|
| + int64_t 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);
|
| };
|
|
|
|
|