#ifndef NET_WEBSOCKETS_WEBSOCKET_STREAM_H_
#define NET_WEBSOCKETS_WEBSOCKET_STREAM_H_
#include <memory>
#include <optional>
#include <string>
#include <vector>
#include "base/functional/callback.h"
#include "base/memory/scoped_refptr.h"
#include "base/time/time.h"
#include "net/base/completion_once_callback.h"
#include "net/base/isolation_info.h"
#include "net/base/net_export.h"
#include "net/cookies/site_for_cookies.h"
#include "net/log/net_log_with_source.h"
#include "net/storage_access_api/status.h"
#include "net/websockets/websocket_event_interface.h"
#include "net/websockets/websocket_handshake_request_info.h"
#include "net/websockets/websocket_handshake_response_info.h"
class GURL;
namespace base {
class OneShotTimer;
class Time;
}
namespace url {
class Origin;
}
namespace net {
class AuthChallengeInfo;
class AuthCredentials;
class HttpRequestHeaders;
class HttpResponseHeaders;
class IPEndPoint;
class IsolationInfo;
class NetLogWithSource;
class SSLInfo;
class SiteForCookies;
class URLRequest;
class URLRequestContext;
class WebSocketBasicHandshakeStream;
class WebSocketHttp2HandshakeStream;
class WebSocketHttp3HandshakeStream;
struct NetworkTrafficAnnotationTag;
struct TransportInfo;
struct WebSocketFrame;
struct WebSocketHandshakeRequestInfo;
struct WebSocketHandshakeResponseInfo;
class NET_EXPORT_PRIVATE WebSocketStreamRequest { … };
class NET_EXPORT_PRIVATE WebSocketStreamRequestAPI
: public WebSocketStreamRequest { … };
class NET_EXPORT_PRIVATE WebSocketStream { … };
void WebSocketDispatchOnFinishOpeningHandshake(
WebSocketStream::ConnectDelegate* connect_delegate,
const GURL& gurl,
const scoped_refptr<HttpResponseHeaders>& headers,
const IPEndPoint& remote_endpoint,
base::Time response_time);
}
#endif