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

Unified Diff: net/websockets/websocket.h

Issue 7576009: Merge 95232 - WebSocket: Remove obsolete experiments related files (Closed) Base URL: svn://svn.chromium.org/chrome/branches/835/src/
Patch Set: Created 9 years, 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/net.gyp ('k') | net/websockets/websocket.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/websockets/websocket.h
===================================================================
--- net/websockets/websocket.h (revision 95449)
+++ net/websockets/websocket.h (working copy)
@@ -1,235 +0,0 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-//
-// WebSocket protocol implementation in chromium.
-// It is intended to be used for live experiment of WebSocket connectivity
-// metrics.
-// Note that it is not used for WebKit's WebSocket communication.
-// See third_party/WebKit/Source/WebCore/websockets/ instead.
-
-#ifndef NET_WEBSOCKETS_WEBSOCKET_H_
-#define NET_WEBSOCKETS_WEBSOCKET_H_
-#pragma once
-
-#include <deque>
-#include <string>
-
-#include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
-#include "googleurl/src/gurl.h"
-#include "net/base/io_buffer.h"
-#include "net/base/net_api.h"
-#include "net/socket_stream/socket_stream.h"
-#include "net/url_request/url_request_context.h"
-
-class MessageLoop;
-
-namespace net {
-
-class ClientSocketFactory;
-class HostResolver;
-
-class WebSocket;
-class WebSocketHandshake;
-
-// Delegate methods will be called on the same message loop as
-// WebSocket is constructed.
-class WebSocketDelegate {
- public:
- virtual ~WebSocketDelegate() {}
-
- // Called when WebSocket connection has been established.
- virtual void OnOpen(WebSocket* socket) = 0;
-
- // Called when |msg| is received at |socket|.
- // |msg| should be in UTF-8.
- virtual void OnMessage(WebSocket* socket, const std::string& msg) = 0;
-
- // Called when WebSocket error has been detected.
- virtual void OnError(WebSocket* socket) {}
-
- // Called when |socket| is closed.
- virtual void OnClose(WebSocket* socket, bool was_clean) = 0;
-
- // Called when an error occured on |socket|.
- virtual void OnSocketError(const WebSocket* socket, int error) {}
-};
-
-class NET_API WebSocket : public base::RefCountedThreadSafe<WebSocket>,
- public SocketStream::Delegate {
- public:
- enum State {
- INITIALIZED = -1,
- CONNECTING = 0,
- OPEN = 1,
- CLOSING = 2,
- CLOSED = 3,
- };
- enum ProtocolVersion {
- DEFAULT_VERSION = 0,
- DRAFT75 = 1,
- };
- class Request {
- public:
- Request(const GURL& url,
- const std::string& protocol,
- const std::string& origin,
- const std::string& location,
- ProtocolVersion version,
- net::URLRequestContext* context)
- : url_(url),
- protocol_(protocol),
- origin_(origin),
- location_(location),
- version_(version),
- context_(context),
- host_resolver_(NULL),
- client_socket_factory_(NULL) {}
- ~Request() {}
-
- const GURL& url() const { return url_; }
- const std::string& protocol() const { return protocol_; }
- const std::string& origin() const { return origin_; }
- const std::string& location() const { return location_; }
- ProtocolVersion version() const { return version_; }
- net::URLRequestContext* context() const { return context_; }
-
- // Sets an alternative HostResolver. For testing purposes only.
- void SetHostResolver(HostResolver* host_resolver) {
- host_resolver_ = host_resolver;
- }
- HostResolver* host_resolver() const { return host_resolver_; }
-
- // Sets an alternative ClientSocketFactory. Doesn't take ownership of
- // |factory|. For testing purposes only.
- void SetClientSocketFactory(ClientSocketFactory* factory) {
- client_socket_factory_ = factory;
- }
- ClientSocketFactory* client_socket_factory() const {
- return client_socket_factory_;
- }
-
- private:
- GURL url_;
- std::string protocol_;
- std::string origin_;
- std::string location_;
- ProtocolVersion version_;
- scoped_refptr<net::URLRequestContext> context_;
-
- HostResolver* host_resolver_;
- ClientSocketFactory* client_socket_factory_;
-
- DISALLOW_COPY_AND_ASSIGN(Request);
- };
-
- // Constructs new WebSocket.
- // It takes ownership of |req|.
- // |delegate| must be alive while this object is alive.
- WebSocket(Request* req, WebSocketDelegate* delegate);
-
- const Request* request() const { return request_.get(); }
- WebSocketDelegate* delegate() const { return delegate_; }
-
- State ready_state() const { return ready_state_; }
-
- // Connects new WebSocket.
- void Connect();
-
- // Sends |msg| on the WebSocket connection.
- // |msg| should be in UTF-8.
- void Send(const std::string& msg);
-
- // Closes the WebSocket connection.
- void Close();
-
- // Detach delegate. Call before delegate is deleted.
- // Once delegate is detached, close the WebSocket connection and never call
- // delegate back.
- void DetachDelegate();
-
- // SocketStream::Delegate methods.
- // Called on IO thread.
- virtual void OnConnected(SocketStream* socket_stream,
- int max_pending_send_allowed);
- virtual void OnSentData(SocketStream* socket_stream, int amount_sent);
- virtual void OnReceivedData(SocketStream* socket_stream,
- const char* data, int len);
- virtual void OnClose(SocketStream* socket);
- virtual void OnError(const SocketStream* socket, int error);
-
- private:
- typedef std::deque< scoped_refptr<IOBufferWithSize> > PendingDataQueue;
-
- friend class WebSocketTest;
-
- friend class base::RefCountedThreadSafe<WebSocket>;
- virtual ~WebSocket();
-
- // Sends pending data in |current_write_buf_| and/or |pending_write_bufs_|.
- void SendPending();
-
- // Handles received data.
- void DoReceivedData();
-
- // Processes frame data in |current_read_buf_|.
- void ProcessFrameData();
-
- // Adds |len| bytes of |data| to |current_read_buf_|.
- void AddToReadBuffer(const char* data, int len);
-
- // Skips |len| bytes in |current_read_buf_|.
- void SkipReadBuffer(int len);
-
- void StartClosingHandshake();
- void DoForceCloseConnection();
- void FailConnection();
- // Handles closed connection.
- void DoClose();
-
- // Handles socket error report.
- void DoSocketError(int error);
-
- State ready_state_;
- scoped_ptr<Request> request_;
- scoped_ptr<WebSocketHandshake> handshake_;
- WebSocketDelegate* delegate_;
- MessageLoop* origin_loop_;
-
- scoped_refptr<SocketStream> socket_stream_;
- int max_pending_send_allowed_;
-
- // [0..offset) is received data from |socket_stream_|.
- // [0..read_consumed_len_) is already processed.
- // [read_consumed_len_..offset) is unprocessed data.
- // [offset..capacity) is free space.
- scoped_refptr<GrowableIOBuffer> current_read_buf_;
- int read_consumed_len_;
-
- // Drainable IOBuffer on the front of |pending_write_bufs_|.
- // [0..offset) is already sent to |socket_stream_|.
- // [offset..size) is being sent to |socket_stream_|, waiting OnSentData.
- scoped_refptr<DrainableIOBuffer> current_write_buf_;
-
- // Deque of IOBuffers in pending.
- // Front IOBuffer is being sent via |current_write_buf_|.
- PendingDataQueue pending_write_bufs_;
-
- // True when the 0xFF frame with length 0x00 is received.
- bool server_closing_handshake_;
- // True when trying to send 0xFF and 0x00 bytes.
- bool client_closing_handshake_;
- // True when send 0xFF and 0x00 bytes.
- bool closing_handshake_started_;
- // Task to close the connection after closing handshake has started and
- // |closing_handshake_timeout_|.
- CancelableTask* force_close_task_;
- int64 closing_handshake_timeout_;
-
- DISALLOW_COPY_AND_ASSIGN(WebSocket);
-};
-
-} // namespace net
-
-#endif // NET_WEBSOCKETS_WEBSOCKET_H_
« no previous file with comments | « net/net.gyp ('k') | net/websockets/websocket.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698