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

Unified Diff: net/websockets/websocket_handshake_handler.h

Issue 723343002: Update from https://crrev.com/304121 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 6 years, 1 month 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/websockets/websocket_channel_test.cc ('k') | net/websockets/websocket_handshake_handler.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_
« no previous file with comments | « net/websockets/websocket_channel_test.cc ('k') | net/websockets/websocket_handshake_handler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698