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

Unified Diff: net/http/http_network_transaction.h

Issue 992733002: Remove //net (except for Android test stuff) and sdch (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 9 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/http/http_network_session_peer.cc ('k') | net/http/http_network_transaction.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/http/http_network_transaction.h
diff --git a/net/http/http_network_transaction.h b/net/http/http_network_transaction.h
deleted file mode 100644
index 2c4bd93fb980a28ca38067e19688979bd0dcef57..0000000000000000000000000000000000000000
--- a/net/http/http_network_transaction.h
+++ /dev/null
@@ -1,335 +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_HTTP_HTTP_NETWORK_TRANSACTION_H_
-#define NET_HTTP_HTTP_NETWORK_TRANSACTION_H_
-
-#include <string>
-
-#include "base/basictypes.h"
-#include "base/gtest_prod_util.h"
-#include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
-#include "base/time/time.h"
-#include "net/base/net_log.h"
-#include "net/base/request_priority.h"
-#include "net/http/http_auth.h"
-#include "net/http/http_request_headers.h"
-#include "net/http/http_response_info.h"
-#include "net/http/http_stream_factory.h"
-#include "net/http/http_transaction.h"
-#include "net/proxy/proxy_service.h"
-#include "net/ssl/ssl_config_service.h"
-#include "net/websockets/websocket_handshake_stream_base.h"
-
-namespace net {
-
-class ClientSocketHandle;
-class HttpAuthController;
-class HttpNetworkSession;
-class HttpStream;
-class HttpStreamRequest;
-class IOBuffer;
-class ProxyInfo;
-class SpdySession;
-struct HttpRequestInfo;
-
-class NET_EXPORT_PRIVATE HttpNetworkTransaction
- : public HttpTransaction,
- public HttpStreamRequest::Delegate {
- public:
- HttpNetworkTransaction(RequestPriority priority,
- HttpNetworkSession* session);
-
- ~HttpNetworkTransaction() override;
-
- // HttpTransaction methods:
- int Start(const HttpRequestInfo* request_info,
- const CompletionCallback& callback,
- const BoundNetLog& net_log) override;
- int RestartIgnoringLastError(const CompletionCallback& callback) override;
- int RestartWithCertificate(X509Certificate* client_cert,
- const CompletionCallback& callback) override;
- int RestartWithAuth(const AuthCredentials& credentials,
- const CompletionCallback& callback) override;
- bool IsReadyToRestartForAuth() override;
-
- int Read(IOBuffer* buf,
- int buf_len,
- const CompletionCallback& callback) override;
- void StopCaching() override;
- bool GetFullRequestHeaders(HttpRequestHeaders* headers) const override;
- int64 GetTotalReceivedBytes() const override;
- void DoneReading() override;
- const HttpResponseInfo* GetResponseInfo() const override;
- LoadState GetLoadState() const override;
- UploadProgress GetUploadProgress() const override;
- void SetQuicServerInfo(QuicServerInfo* quic_server_info) override;
- bool GetLoadTimingInfo(LoadTimingInfo* load_timing_info) const override;
- void SetPriority(RequestPriority priority) override;
- void SetWebSocketHandshakeStreamCreateHelper(
- WebSocketHandshakeStreamBase::CreateHelper* create_helper) override;
- void SetBeforeNetworkStartCallback(
- const BeforeNetworkStartCallback& callback) override;
- void SetBeforeProxyHeadersSentCallback(
- const BeforeProxyHeadersSentCallback& callback) override;
- int ResumeNetworkStart() override;
-
- // HttpStreamRequest::Delegate methods:
- void OnStreamReady(const SSLConfig& used_ssl_config,
- const ProxyInfo& used_proxy_info,
- HttpStream* stream) override;
- void OnWebSocketHandshakeStreamReady(
- const SSLConfig& used_ssl_config,
- const ProxyInfo& used_proxy_info,
- WebSocketHandshakeStreamBase* stream) override;
- void OnStreamFailed(int status, const SSLConfig& used_ssl_config) override;
- void OnCertificateError(int status,
- const SSLConfig& used_ssl_config,
- const SSLInfo& ssl_info) override;
- void OnNeedsProxyAuth(const HttpResponseInfo& response_info,
- const SSLConfig& used_ssl_config,
- const ProxyInfo& used_proxy_info,
- HttpAuthController* auth_controller) override;
- void OnNeedsClientAuth(const SSLConfig& used_ssl_config,
- SSLCertRequestInfo* cert_info) override;
- void OnHttpsProxyTunnelResponse(const HttpResponseInfo& response_info,
- const SSLConfig& used_ssl_config,
- const ProxyInfo& used_proxy_info,
- HttpStream* stream) override;
-
- private:
- friend class HttpNetworkTransactionSSLTest;
-
- FRIEND_TEST_ALL_PREFIXES(HttpNetworkTransactionTest,
- ResetStateForRestart);
- FRIEND_TEST_ALL_PREFIXES(SpdyNetworkTransactionTest,
- WindowUpdateReceived);
- FRIEND_TEST_ALL_PREFIXES(SpdyNetworkTransactionTest,
- WindowUpdateSent);
- FRIEND_TEST_ALL_PREFIXES(SpdyNetworkTransactionTest,
- WindowUpdateOverflow);
- FRIEND_TEST_ALL_PREFIXES(SpdyNetworkTransactionTest,
- FlowControlStallResume);
- FRIEND_TEST_ALL_PREFIXES(SpdyNetworkTransactionTest,
- FlowControlStallResumeAfterSettings);
- FRIEND_TEST_ALL_PREFIXES(SpdyNetworkTransactionTest,
- FlowControlNegativeSendWindowSize);
-
- enum State {
- STATE_NOTIFY_BEFORE_CREATE_STREAM,
- STATE_CREATE_STREAM,
- STATE_CREATE_STREAM_COMPLETE,
- STATE_INIT_STREAM,
- STATE_INIT_STREAM_COMPLETE,
- STATE_GENERATE_PROXY_AUTH_TOKEN,
- STATE_GENERATE_PROXY_AUTH_TOKEN_COMPLETE,
- STATE_GENERATE_SERVER_AUTH_TOKEN,
- STATE_GENERATE_SERVER_AUTH_TOKEN_COMPLETE,
- STATE_INIT_REQUEST_BODY,
- STATE_INIT_REQUEST_BODY_COMPLETE,
- STATE_BUILD_REQUEST,
- STATE_BUILD_REQUEST_COMPLETE,
- STATE_SEND_REQUEST,
- STATE_SEND_REQUEST_COMPLETE,
- STATE_READ_HEADERS,
- STATE_READ_HEADERS_COMPLETE,
- STATE_READ_BODY,
- STATE_READ_BODY_COMPLETE,
- STATE_DRAIN_BODY_FOR_AUTH_RESTART,
- STATE_DRAIN_BODY_FOR_AUTH_RESTART_COMPLETE,
- STATE_NONE
- };
-
- bool is_https_request() const;
-
- // Returns true if the request is using an HTTP(S) proxy without being
- // tunneled via the CONNECT method.
- bool UsingHttpProxyWithoutTunnel() const;
-
- void DoCallback(int result);
- void OnIOComplete(int result);
-
- // Runs the state transition loop.
- int DoLoop(int result);
-
- // Each of these methods corresponds to a State value. Those with an input
- // argument receive the result from the previous state. If a method returns
- // ERR_IO_PENDING, then the result from OnIOComplete will be passed to the
- // next state method as the result arg.
- int DoNotifyBeforeCreateStream();
- int DoCreateStream();
- int DoCreateStreamComplete(int result);
- int DoInitStream();
- int DoInitStreamComplete(int result);
- int DoGenerateProxyAuthToken();
- int DoGenerateProxyAuthTokenComplete(int result);
- int DoGenerateServerAuthToken();
- int DoGenerateServerAuthTokenComplete(int result);
- int DoInitRequestBody();
- int DoInitRequestBodyComplete(int result);
- int DoBuildRequest();
- int DoBuildRequestComplete(int result);
- int DoSendRequest();
- int DoSendRequestComplete(int result);
- int DoReadHeaders();
- int DoReadHeadersComplete(int result);
- int DoReadBody();
- int DoReadBodyComplete(int result);
- int DoDrainBodyForAuthRestart();
- int DoDrainBodyForAuthRestartComplete(int result);
-
- void BuildRequestHeaders(bool using_http_proxy_without_tunnel);
-
- // Writes a log message to help debugging in the field when we block a proxy
- // response to a CONNECT request.
- void LogBlockedTunnelResponse(int response_code) const;
-
- // Called to handle a client certificate request.
- int HandleCertificateRequest(int error);
-
- // Called wherever ERR_HTTP_1_1_REQUIRED or
- // ERR_PROXY_HTTP_1_1_REQUIRED has to be handled.
- int HandleHttp11Required(int error);
-
- // Called to possibly handle a client authentication error.
- void HandleClientAuthError(int error);
-
- // Called to possibly recover from an SSL handshake error. Sets next_state_
- // and returns OK if recovering from the error. Otherwise, the same error
- // code is returned.
- int HandleSSLHandshakeError(int error);
-
- // Called to possibly recover from the given error. Sets next_state_ and
- // returns OK if recovering from the error. Otherwise, the same error code
- // is returned.
- int HandleIOError(int error);
-
- // Gets the response headers from the HttpStream.
- HttpResponseHeaders* GetResponseHeaders() const;
-
- // Called when the socket is unexpectedly closed. Returns true if the request
- // should be resent in case of a socket reuse/close race.
- bool ShouldResendRequest() const;
-
- // Resets the connection and the request headers for resend. Called when
- // ShouldResendRequest() is true.
- void ResetConnectionAndRequestForResend();
-
- // Sets up the state machine to restart the transaction with auth.
- void PrepareForAuthRestart(HttpAuth::Target target);
-
- // Called when we don't need to drain the response body or have drained it.
- // Resets |connection_| unless |keep_alive| is true, then calls
- // ResetStateForRestart. Sets |next_state_| appropriately.
- void DidDrainBodyForAuthRestart(bool keep_alive);
-
- // Resets the members of the transaction so it can be restarted.
- void ResetStateForRestart();
-
- // Resets the members of the transaction, except |stream_|, which needs
- // to be maintained for multi-round auth.
- void ResetStateForAuthRestart();
-
- // Returns true if we should try to add a Proxy-Authorization header
- bool ShouldApplyProxyAuth() const;
-
- // Returns true if we should try to add an Authorization header.
- bool ShouldApplyServerAuth() const;
-
- // Handles HTTP status code 401 or 407.
- // HandleAuthChallenge() returns a network error code, or OK on success.
- // May update |pending_auth_target_| or |response_.auth_challenge|.
- int HandleAuthChallenge();
-
- // Returns true if we have auth credentials for the given target.
- bool HaveAuth(HttpAuth::Target target) const;
-
- // Get the {scheme, host, path, port} for the authentication target
- GURL AuthURL(HttpAuth::Target target) const;
-
- // Returns true if this transaction is for a WebSocket handshake
- bool ForWebSocketHandshake() const;
-
- // Debug helper.
- static std::string DescribeState(State state);
-
- void SetStream(HttpStream* stream);
-
- scoped_refptr<HttpAuthController>
- auth_controllers_[HttpAuth::AUTH_NUM_TARGETS];
-
- // Whether this transaction is waiting for proxy auth, server auth, or is
- // not waiting for any auth at all. |pending_auth_target_| is read and
- // cleared by RestartWithAuth().
- HttpAuth::Target pending_auth_target_;
-
- CompletionCallback io_callback_;
- CompletionCallback callback_;
-
- HttpNetworkSession* session_;
-
- BoundNetLog net_log_;
- const HttpRequestInfo* request_;
- RequestPriority priority_;
- HttpResponseInfo response_;
-
- // |proxy_info_| is the ProxyInfo used by the HttpStreamRequest.
- ProxyInfo proxy_info_;
-
- scoped_ptr<HttpStreamRequest> stream_request_;
- scoped_ptr<HttpStream> stream_;
-
- // True if we've validated the headers that the stream parser has returned.
- bool headers_valid_;
-
- SSLConfig server_ssl_config_;
- SSLConfig proxy_ssl_config_;
- // fallback_error_code contains the error code that caused the last TLS
- // fallback. If the fallback connection results in
- // ERR_SSL_INAPPROPRIATE_FALLBACK (i.e. the server indicated that the
- // fallback should not have been needed) then we use this value to return the
- // original error that triggered the fallback.
- int fallback_error_code_;
-
- HttpRequestHeaders request_headers_;
-
- // The size in bytes of the buffer we use to drain the response body that
- // we want to throw away. The response body is typically a small error
- // page just a few hundred bytes long.
- static const int kDrainBodyBufferSize = 1024;
-
- // User buffer and length passed to the Read method.
- scoped_refptr<IOBuffer> read_buf_;
- int read_buf_len_;
-
- // Total number of bytes received on streams for this transaction.
- int64 total_received_bytes_;
-
- // When the transaction started / finished sending the request, including
- // the body, if present.
- base::TimeTicks send_start_time_;
- base::TimeTicks send_end_time_;
-
- // The next state in the state machine.
- State next_state_;
-
- // True when the tunnel is in the process of being established - we can't
- // read from the socket until the tunnel is done.
- bool establishing_tunnel_;
-
- // The helper object to use to create WebSocketHandshakeStreamBase
- // objects. Only relevant when establishing a WebSocket connection.
- WebSocketHandshakeStreamBase::CreateHelper*
- websocket_handshake_stream_base_create_helper_;
-
- BeforeNetworkStartCallback before_network_start_callback_;
- BeforeProxyHeadersSentCallback before_proxy_headers_sent_callback_;
-
- DISALLOW_COPY_AND_ASSIGN(HttpNetworkTransaction);
-};
-
-} // namespace net
-
-#endif // NET_HTTP_HTTP_NETWORK_TRANSACTION_H_
« no previous file with comments | « net/http/http_network_session_peer.cc ('k') | net/http/http_network_transaction.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698