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

Unified Diff: net/base/load_timing_info.h

Issue 11428150: LoadTiming implementation in net, part 1. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Update comments Created 8 years 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 | « no previous file | net/base/load_timing_info.cc » ('j') | net/socket/client_socket_handle.cc » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/base/load_timing_info.h
===================================================================
--- net/base/load_timing_info.h (revision 0)
+++ net/base/load_timing_info.h (revision 0)
@@ -0,0 +1,85 @@
+// 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 LOAD_TIMING_INFO_H_
+#define LOAD_TIMING_INFO_H_
+
+#include "base/basictypes.h"
+#include "base/time.h"
+#include "net/base/net_export.h"
+
+namespace net {
+
+// All events that do not apply to a request are NULL. For non-HTTP requests,
+// all times other than the request_start times are NULL.
+//
+// The general order for events is:
+// request_start
+// proxy_start
+// proxy_end
+// *dns_start
+// *dns_end
+// *connect_start
+// *ssl_start
+// *connect_end
+// send_start
+// send_end
+// receive_headers_end
+//
+// Due to preconnect, late-binding, and cancelled requests, a request may use a
+// fresh connection that was started before the request was issued. In this
+// case, while the events without a * will always appear in the same order
+// relative to each other, and those with a * will as well, starred events may
+// occur before, during, or after request_start and proxy events. socket_reused
+// will be false in this case.
+struct NET_EXPORT LoadTimingInfo {
+ 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, if the socket
+ // was preconnected.
+ bool socket_reused;
+
+ // Unique socket ID, can be used to identify requests served by the same
+ // socket.
+ // TODO(mmenke): Do something reasonable for SPDY proxies.
+ uint32 socket_log_id;
+
+ base::Time request_start_time;
mmenke 2012/12/14 01:15:18 This could be taken care of by the caller, but we
+ base::TimeTicks request_start;
+
+ // The time spent determing which proxy to use.
+ base::TimeTicks proxy_start;
+ base::TimeTicks proxy_end;
+
+ // 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.
+ base::TimeTicks dns_start;
+ base::TimeTicks dns_end;
+
+ // The time spent establishing the connection started. Connect time includes
+ // proxy DNS lookup times, blocking, TCP, TCP retries and SSL time.
+ 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;
+
+ // 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 // LOAD_TIMING_INFO_H_
Property changes on: net\base\load_timing_info.h
___________________________________________________________________
Added: svn:eol-style
+ LF
« no previous file with comments | « no previous file | net/base/load_timing_info.cc » ('j') | net/socket/client_socket_handle.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698