Index: net/base/network_quality_estimator.cc |
diff --git a/net/base/network_quality_estimator.cc b/net/base/network_quality_estimator.cc |
index 6415ee6e6d7eb36b47ab4fd568d3537283b27729..94119e611083829861c2d9d7d1e3435e1c6b1e3d 100644 |
--- a/net/base/network_quality_estimator.cc |
+++ b/net/base/network_quality_estimator.cc |
@@ -51,23 +51,37 @@ void NetworkQualityEstimator::NotifyDataReceived(const URLRequest& request, |
return; |
} |
- base::TimeTicks now = base::TimeTicks::Now(); |
- base::TimeDelta request_duration = now - request.creation_time(); |
- DCHECK_GE(request_duration, base::TimeDelta()); |
+ base::Time now = base::Time::Now(); |
+ |
+ // Time when the resource was requested. |
bengr
2015/06/09 00:18:49
Please add a comment to explain this logic.
tbansal1
2015/06/10 18:20:11
Done.
|
+ base::Time request_start_time = !request.request_time().is_null() |
+ ? request.request_time() |
+ : request.creation_time(); |
+ |
+ // Difference of when the response headers were received and when the resource |
bengr
2015/06/09 00:18:49
// Duration between when the resource was requeste
tbansal1
2015/06/10 18:20:11
Done.
|
+ // was requested. |
+ base::TimeDelta estimated_rtt = |
bengr
2015/06/09 00:18:49
Maybe rename this as observed_rtt? It would be goo
tbansal1
2015/06/10 18:20:11
Done.
|
+ request.response_info().response_time - request_start_time; |
bengr
2015/06/09 00:18:49
Can response_time be null?
tbansal1
2015/06/10 18:20:11
No, there is a check above in the "if" condition:
|
+ DCHECK_GE(estimated_rtt, base::TimeDelta()); |
+ |
+ // Time since the resource was requested. |
+ base::TimeDelta since_request_start = now - request_start_time; |
+ DCHECK_GE(since_request_start, base::TimeDelta()); |
+ |
if (!bytes_read_since_last_connection_change_) |
- fastest_RTT_since_last_connection_change_ = request_duration; |
+ fastest_RTT_since_last_connection_change_ = estimated_rtt; |
bytes_read_since_last_connection_change_ = true; |
- if (request_duration < fastest_RTT_since_last_connection_change_) |
- fastest_RTT_since_last_connection_change_ = request_duration; |
+ if (estimated_rtt < fastest_RTT_since_last_connection_change_) |
+ fastest_RTT_since_last_connection_change_ = estimated_rtt; |
// Ignore tiny transfers which will not produce accurate rates. |
// Ignore short duration transfers. |
if (prefilter_bytes_read >= kMinTransferSizeInBytes && |
- request_duration >= |
+ since_request_start >= |
base::TimeDelta::FromMicroseconds(kMinRequestDurationMicroseconds)) { |
uint64_t kbps = static_cast<uint64_t>(prefilter_bytes_read * 8 * 1000 / |
- request_duration.InMicroseconds()); |
+ since_request_start.InMicroseconds()); |
if (kbps > peak_kbps_since_last_connection_change_) |
peak_kbps_since_last_connection_change_ = kbps; |
} |