Index: net/websockets/websocket_job.h |
diff --git a/net/websockets/websocket_job.h b/net/websockets/websocket_job.h |
deleted file mode 100644 |
index bad06cfcab4d2f53e5f23a7f0857036e67a4c803..0000000000000000000000000000000000000000 |
--- a/net/websockets/websocket_job.h |
+++ /dev/null |
@@ -1,154 +0,0 @@ |
-// Copyright (c) 2012 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. |
- |
-#ifndef NET_WEBSOCKETS_WEBSOCKET_JOB_H_ |
-#define NET_WEBSOCKETS_WEBSOCKET_JOB_H_ |
- |
-#include <deque> |
-#include <string> |
-#include <vector> |
- |
-#include "base/memory/weak_ptr.h" |
-#include "net/base/address_list.h" |
-#include "net/base/completion_callback.h" |
-#include "net/socket_stream/socket_stream_job.h" |
-#include "net/spdy/spdy_header_block.h" |
-#include "net/spdy/spdy_websocket_stream.h" |
- |
-class GURL; |
- |
-namespace net { |
- |
-class DrainableIOBuffer; |
-class SSLInfo; |
-class WebSocketHandshakeRequestHandler; |
-class WebSocketHandshakeResponseHandler; |
- |
-// WebSocket protocol specific job on SocketStream. |
-// It captures WebSocket handshake message and handles cookie operations. |
-// Chrome security policy doesn't allow renderer process (except dev tools) |
-// see HttpOnly cookies, so it injects cookie header in handshake request and |
-// strips set-cookie headers in handshake response. |
-// TODO(ukai): refactor websocket.cc to use this. |
-class NET_EXPORT WebSocketJob |
- : public SocketStreamJob, |
- public SocketStream::Delegate, |
- public SpdyWebSocketStream::Delegate { |
- public: |
- // This is state of WebSocket, not SocketStream. |
- enum State { |
- INITIALIZED = -1, |
- CONNECTING = 0, |
- OPEN = 1, |
- CLOSING = 2, |
- CLOSED = 3, |
- }; |
- |
- explicit WebSocketJob(SocketStream::Delegate* delegate); |
- |
- static void EnsureInit(); |
- |
- State state() const { return state_; } |
- void Connect() override; |
- bool SendData(const char* data, int len) override; |
- void Close() override; |
- void RestartWithAuth(const AuthCredentials& credentials) override; |
- void DetachDelegate() override; |
- |
- // SocketStream::Delegate methods. |
- int OnStartOpenConnection(SocketStream* socket, |
- const CompletionCallback& callback) override; |
- void OnConnected(SocketStream* socket, int max_pending_send_allowed) override; |
- void OnSentData(SocketStream* socket, int amount_sent) override; |
- void OnReceivedData(SocketStream* socket, const char* data, int len) override; |
- void OnClose(SocketStream* socket) override; |
- void OnAuthRequired(SocketStream* socket, |
- AuthChallengeInfo* auth_info) override; |
- void OnSSLCertificateError(SocketStream* socket, |
- const SSLInfo& ssl_info, |
- bool fatal) override; |
- void OnError(const SocketStream* socket, int error) override; |
- |
- // SpdyWebSocketStream::Delegate methods. |
- void OnCreatedSpdyStream(int status) override; |
- void OnSentSpdyHeaders() override; |
- void OnSpdyResponseHeadersUpdated( |
- const SpdyHeaderBlock& response_headers) override; |
- void OnSentSpdyData(size_t bytes_sent) override; |
- void OnReceivedSpdyData(scoped_ptr<SpdyBuffer> buffer) override; |
- void OnCloseSpdyStream() override; |
- |
- private: |
- friend class WebSocketThrottle; |
- friend class WebSocketJobTest; |
- ~WebSocketJob() override; |
- |
- bool SendHandshakeRequest(const char* data, int len); |
- void AddCookieHeaderAndSend(); |
- void LoadCookieCallback(const std::string& cookie); |
- |
- void OnSentHandshakeRequest(SocketStream* socket, int amount_sent); |
- // Parses received data into handshake_response_. When finished receiving the |
- // response, calls SaveCookiesAndNotifyHeadersComplete(). |
- void OnReceivedHandshakeResponse( |
- SocketStream* socket, const char* data, int len); |
- // Saves received cookies to the cookie store, and then notifies the |
- // delegate_ of completion of handshake. |
- void SaveCookiesAndNotifyHeadersComplete(); |
- void SaveNextCookie(); |
- void OnCookieSaved(bool cookie_status); |
- // Clears variables for handling cookies, rebuilds handshake string excluding |
- // cookies, and then pass the handshake string to delegate_. |
- void NotifyHeadersComplete(); |
- void DoSendData(); |
- |
- GURL GetURLForCookies() const; |
- |
- const AddressList& address_list() const; |
- int TrySpdyStream(); |
- void SetWaiting(); |
- bool IsWaiting() const; |
- void Wakeup(); |
- void RetryPendingIO(); |
- void CompleteIO(int result); |
- |
- bool SendDataInternal(const char* data, int length); |
- void CloseInternal(); |
- void SendPending(); |
- |
- SocketStream::Delegate* delegate_; |
- State state_; |
- bool waiting_; |
- AddressList addresses_; |
- CompletionCallback callback_; // for throttling. |
- |
- scoped_ptr<WebSocketHandshakeRequestHandler> handshake_request_; |
- scoped_ptr<WebSocketHandshakeResponseHandler> handshake_response_; |
- |
- bool started_to_send_handshake_request_; |
- size_t handshake_request_sent_; |
- |
- std::vector<std::string> response_cookies_; |
- size_t response_cookies_save_index_; |
- |
- std::deque<scoped_refptr<IOBufferWithSize> > send_buffer_queue_; |
- scoped_refptr<DrainableIOBuffer> current_send_buffer_; |
- std::vector<char> received_data_after_handshake_; |
- |
- int spdy_protocol_version_; |
- scoped_ptr<SpdyWebSocketStream> spdy_websocket_stream_; |
- std::string challenge_; |
- |
- bool save_next_cookie_running_; |
- bool callback_pending_; |
- |
- base::WeakPtrFactory<WebSocketJob> weak_ptr_factory_; |
- base::WeakPtrFactory<WebSocketJob> weak_ptr_factory_for_send_pending_; |
- |
- DISALLOW_COPY_AND_ASSIGN(WebSocketJob); |
-}; |
- |
-} // namespace |
- |
-#endif // NET_WEBSOCKETS_WEBSOCKET_JOB_H_ |