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

Unified Diff: net/base/load_timing_info.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/base/load_states_list.h ('k') | net/base/load_timing_info.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/base/load_timing_info.h
diff --git a/net/base/load_timing_info.h b/net/base/load_timing_info.h
deleted file mode 100644
index 00dbabf55dc2a77e09f5395ad9f487770392505a..0000000000000000000000000000000000000000
--- a/net/base/load_timing_info.h
+++ /dev/null
@@ -1,141 +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_BASE_LOAD_TIMING_INFO_H_
-#define NET_BASE_LOAD_TIMING_INFO_H_
-
-#include "base/basictypes.h"
-#include "base/time/time.h"
-#include "net/base/net_export.h"
-
-namespace net {
-
-// Structure containing timing information for a request.
-// It addresses the needs of
-// http://groups.google.com/group/http-archive-specification/web/har-1-1-spec,
-// http://dev.w3.org/2006/webapi/WebTiming/, and
-// http://www.w3.org/TR/resource-timing/.
-//
-// All events that do not apply to a request have null times. For non-HTTP
-// requests, all times other than the request_start times are null.
-//
-// Requests with connection errors generally only have request start times as
-// well, since they never received an established socket.
-//
-// The general order for events is:
-// request_start
-// proxy_start
-// proxy_end
-// dns_start
-// dns_end
-// connect_start
-// ssl_start
-// ssl_end
-// connect_end
-// send_start
-// send_end
-// receive_headers_end
-//
-// Times represent when a request starts/stops blocking on an event, not the
-// time the events actually occurred. In particular, in the case of preconnects
-// and socket reuse, no time may be spent blocking on establishing a connection.
-// In the case of SPDY, PAC scripts are only run once for each shared session,
-// so no time may be spent blocking on them.
-//
-// DNS and SSL times are both times for the host, not the proxy, so DNS times
-// when using proxies are null, and only requests to HTTPS hosts (Not proxies)
-// have SSL times. One exception to this is when a proxy server itself returns
-// a redirect response. In this case, the connect times treat the proxy as the
-// host. The send and receive times will all be null, however.
-// See HttpNetworkTransaction::OnHttpsProxyTunnelResponse.
-// TODO(mmenke): Is this worth fixing?
-//
-// Note that internal to the network stack, times are when events actually
-// occurred. URLRequest converts them to time which the network stack was
-// blocked on each state.
-struct NET_EXPORT LoadTimingInfo {
- // Contains the LoadTimingInfo events related to establishing a connection.
- // These are all set by ConnectJobs.
- struct NET_EXPORT_PRIVATE ConnectTiming {
- ConnectTiming();
- ~ConnectTiming();
-
- // The time spent looking up the host's DNS address. Null for requests that
- // used proxies to look up the DNS address. Also null for SOCKS4 proxies,
- // since the DNS address is only looked up after the connection is
- // established, which results in unexpected event ordering.
- // TODO(mmenke): The SOCKS4 event ordering could be refactored to allow
- // these times to be non-null.
- base::TimeTicks dns_start;
- base::TimeTicks dns_end;
-
- // The time spent establishing the connection. Connect time includes proxy
- // connect times (Though not proxy_resolve times), DNS lookup times, time
- // spent waiting in certain queues, TCP, and SSL time.
- // TODO(mmenke): For proxies, this includes time spent blocking on higher
- // level socket pools. Fix this.
- // TODO(mmenke): Retried connections to the same server should apparently
- // be included in this time. Consider supporting that.
- // Since the network stack has multiple notions of a "retry",
- // handled at different levels, this may not be worth
- // worrying about - backup jobs, reused socket failure,
- // multiple round authentication.
- base::TimeTicks connect_start;
- base::TimeTicks connect_end;
-
- // The time when the SSL handshake started / completed. For non-HTTPS
- // requests these are null. These times are only for the SSL connection to
- // the final destination server, not an SSL/SPDY proxy.
- base::TimeTicks ssl_start;
- base::TimeTicks ssl_end;
- };
-
- LoadTimingInfo();
- ~LoadTimingInfo();
-
- // True if the socket was reused. When true, DNS, connect, and SSL times
- // will all be null. When false, those times may be null, too, for non-HTTP
- // requests, or when they don't apply to a request.
- //
- // For requests that are sent again after an AUTH challenge, this will be true
- // if the original socket is reused, and false if a new socket is used.
- // Responding to a proxy AUTH challenge is never considered to be reusing a
- // socket, since a connection to the host wasn't established when the
- // challenge was received.
- bool socket_reused;
-
- // Unique socket ID, can be used to identify requests served by the same
- // socket. For connections tunnelled over SPDY proxies, this is the ID of
- // the virtual connection (The SpdyProxyClientSocket), not the ID of the
- // actual socket. HTTP requests handled by the SPDY proxy itself all use the
- // actual socket's ID.
- //
- // 0 when there is no socket associated with the request, or it's not an HTTP
- // request.
- uint32 socket_log_id;
-
- // Start time as a base::Time, so times can be coverted into actual times.
- // Other times are recorded as TimeTicks so they are not affected by clock
- // changes.
- base::Time request_start_time;
-
- base::TimeTicks request_start;
-
- // The time spent determing which proxy to use. Null when there is no PAC.
- base::TimeTicks proxy_resolve_start;
- base::TimeTicks proxy_resolve_end;
-
- ConnectTiming connect_timing;
-
- // The time that sending HTTP request started / ended.
- base::TimeTicks send_start;
- base::TimeTicks send_end;
-
- // The time at which the end of the HTTP headers were received.
- base::TimeTicks receive_headers_end;
-};
-
-} // namespace net
-
-#endif // NET_BASE_LOAD_TIMING_INFO_H_
« no previous file with comments | « net/base/load_states_list.h ('k') | net/base/load_timing_info.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698