Index: net/websockets/websocket_handshake_handler.h |
diff --git a/net/websockets/websocket_handshake_handler.h b/net/websockets/websocket_handshake_handler.h |
index 73af66d0aaa2716c96d2445ef00f6948fc7e420e..c65e6d9d14318d16f1e7fc57e50342755550c0e8 100644 |
--- a/net/websockets/websocket_handshake_handler.h |
+++ b/net/websockets/websocket_handshake_handler.h |
@@ -1,124 +1,19 @@ |
// 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. |
-// |
-// WebSocketHandshake*Handler handles WebSocket handshake request message |
-// from WebKit renderer process, and WebSocket handshake response message |
-// from WebSocket server. |
-// It modifies messages for the following reason: |
-// - We don't trust WebKit renderer process, so we'll not expose HttpOnly |
-// cookies to the renderer process, so handles HttpOnly cookies in |
-// browser process. |
-// |
+ |
#ifndef NET_WEBSOCKETS_WEBSOCKET_HANDSHAKE_HANDLER_H_ |
#define NET_WEBSOCKETS_WEBSOCKET_HANDSHAKE_HANDLER_H_ |
#include <string> |
-#include <vector> |
- |
-#include "net/base/net_export.h" |
-#include "net/http/http_request_info.h" |
-#include "net/http/http_response_info.h" |
-#include "net/spdy/spdy_header_block.h" |
namespace net { |
+// Given a WebSocket handshake challenge, compute the correct response. |
+// TODO(ricea): There should probably be a test for this. |
void ComputeSecWebSocketAccept(const std::string& key, |
std::string* accept); |
-class NET_EXPORT_PRIVATE WebSocketHandshakeRequestHandler { |
- public: |
- WebSocketHandshakeRequestHandler(); |
- ~WebSocketHandshakeRequestHandler() {} |
- |
- // Parses WebSocket handshake request from renderer process. |
- // It assumes a WebSocket handshake request message is given at once, and |
- // no other data is added to the request message. |
- bool ParseRequest(const char* data, int length); |
- |
- size_t original_length() const; |
- |
- // Appends the header value pair for |name| and |value|, if |name| doesn't |
- // exist. |
- void AppendHeaderIfMissing(const std::string& name, |
- const std::string& value); |
- // Removes the headers that matches (case insensitive). |
- void RemoveHeaders(const char* const headers_to_remove[], |
- size_t headers_to_remove_len); |
- |
- // Gets request info to open WebSocket connection and fills challenge data in |
- // |challenge|. |
- HttpRequestInfo GetRequestInfo(const GURL& url, std::string* challenge); |
- // Gets request as SpdyHeaderBlock. |
- // Also, fills challenge data in |challenge|. |
- bool GetRequestHeaderBlock(const GURL& url, |
- SpdyHeaderBlock* headers, |
- std::string* challenge, |
- int spdy_protocol_version); |
- // Gets WebSocket handshake raw request message to open WebSocket |
- // connection. |
- std::string GetRawRequest(); |
- // Calling raw_length is valid only after GetRawRequest() call. |
- size_t raw_length() const; |
- |
- private: |
- std::string request_line_; |
- std::string headers_; |
- int original_length_; |
- int raw_length_; |
- |
- DISALLOW_COPY_AND_ASSIGN(WebSocketHandshakeRequestHandler); |
-}; |
- |
-class NET_EXPORT_PRIVATE WebSocketHandshakeResponseHandler { |
- public: |
- WebSocketHandshakeResponseHandler(); |
- ~WebSocketHandshakeResponseHandler(); |
- |
- // Parses WebSocket handshake response from WebSocket server. |
- // Returns number of bytes in |data| used for WebSocket handshake response |
- // message. If it already got whole WebSocket handshake response message, |
- // returns zero. In other words, [data + returned value, data + length) will |
- // be WebSocket frame data after handshake response message. |
- // TODO(ukai): fail fast when response gives wrong status code. |
- size_t ParseRawResponse(const char* data, int length); |
- // Returns true if it already parses full handshake response message. |
- bool HasResponse() const; |
- // Parses WebSocket handshake response info given as HttpResponseInfo. |
- bool ParseResponseInfo(const HttpResponseInfo& response_info, |
- const std::string& challenge); |
- // Parses WebSocket handshake response as SpdyHeaderBlock. |
- bool ParseResponseHeaderBlock(const SpdyHeaderBlock& headers, |
- const std::string& challenge, |
- int spdy_protocol_version); |
- |
- // Gets the headers value. |
- void GetHeaders(const char* const headers_to_get[], |
- size_t headers_to_get_len, |
- std::vector<std::string>* values); |
- // Removes the headers that matches (case insensitive). |
- void RemoveHeaders(const char* const headers_to_remove[], |
- size_t headers_to_remove_len); |
- |
- // Gets raw WebSocket handshake response received from WebSocket server. |
- std::string GetRawResponse() const; |
- |
- // Gets WebSocket handshake response message sent to renderer process. |
- std::string GetResponse(); |
- |
- private: |
- // Original bytes input by using ParseRawResponse(). |
- std::string original_; |
- // Number of bytes actually used for the handshake response in |original_|. |
- int original_header_length_; |
- |
- std::string status_line_; |
- std::string headers_; |
- std::string header_separator_; |
- |
- DISALLOW_COPY_AND_ASSIGN(WebSocketHandshakeResponseHandler); |
-}; |
- |
} // namespace net |
#endif // NET_WEBSOCKETS_WEBSOCKET_HANDSHAKE_HANDLER_H_ |