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

Unified Diff: chrome/browser/net/load_timing_observer.cc

Issue 3028026: Fix bug which caused DNS time not to be reported by LoadTimingObserver. (Closed)
Patch Set: Indentation fix Created 10 years, 5 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 | « chrome/browser/net/load_timing_observer.h ('k') | chrome/browser/net/load_timing_observer_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/net/load_timing_observer.cc
diff --git a/chrome/browser/net/load_timing_observer.cc b/chrome/browser/net/load_timing_observer.cc
index d0e0485f68bd9f2469a3f55c12f6d4b10baef842..8d512780e969e05e5c5d32f06ad4cac0024bd2cf 100644
--- a/chrome/browser/net/load_timing_observer.cc
+++ b/chrome/browser/net/load_timing_observer.cc
@@ -48,7 +48,8 @@ LoadTimingObserver::URLRequestRecord::URLRequestRecord()
socket_reused(false) {
}
-LoadTimingObserver::LoadTimingObserver() {
+LoadTimingObserver::LoadTimingObserver()
+ : last_connect_job_id_(net::NetLog::Source::kInvalidId) {
}
LoadTimingObserver::~LoadTimingObserver() {
@@ -118,7 +119,7 @@ void LoadTimingObserver::OnAddURLRequestEntry(
ResourceLoaderBridge::LoadTimingInfo& timing = record->timing;
- switch(type) {
+ switch (type) {
case net::NetLog::TYPE_PROXY_SERVICE:
if (is_begin)
timing.proxy_start = TimeTicksToOffset(time, record);
@@ -135,12 +136,12 @@ void LoadTimingObserver::OnAddURLRequestEntry(
{
uint32 connect_job_id = static_cast<net::NetLogSourceParameter*>(
params)->value().id;
- ConnectJobToRecordMap::iterator it =
- connect_job_to_record_.find(connect_job_id);
- if (it != connect_job_to_record_.end() &&
- !it->second.dns_start.is_null()) {
- timing.dns_start = TimeTicksToOffset(it->second.dns_start, record);
- timing.dns_end = TimeTicksToOffset(it->second.dns_end, record);
+ if (last_connect_job_id_ == connect_job_id &&
+ !last_connect_job_record_.dns_start.is_null()) {
+ timing.dns_start =
+ TimeTicksToOffset(last_connect_job_record_.dns_start, record);
+ timing.dns_end =
+ TimeTicksToOffset(last_connect_job_record_.dns_end, record);
}
}
break;
@@ -154,8 +155,8 @@ void LoadTimingObserver::OnAddURLRequestEntry(
SocketToRecordMap::iterator it =
socket_to_record_.find(record->socket_log_id);
if (it != socket_to_record_.end() && !it->second.ssl_start.is_null()) {
- timing.ssl_start = TimeTicksToOffset(it->second.ssl_start, record);
- timing.ssl_end = TimeTicksToOffset(it->second.ssl_end, record);
+ timing.ssl_start = TimeTicksToOffset(it->second.ssl_start, record);
+ timing.ssl_end = TimeTicksToOffset(it->second.ssl_end, record);
}
}
break;
@@ -201,7 +202,13 @@ void LoadTimingObserver::OnAddConnectJobEntry(
connect_job_to_record_.insert(
std::make_pair(source.id, ConnectJobRecord()));
} else if (is_end) {
- connect_job_to_record_.erase(source.id);
+ ConnectJobToRecordMap::iterator it =
+ connect_job_to_record_.find(source.id);
+ if (it != connect_job_to_record_.end()) {
+ last_connect_job_id_ = it->first;
+ last_connect_job_record_ = it->second;
+ connect_job_to_record_.erase(it);
+ }
}
} else if (type == net::NetLog::TYPE_HOST_RESOLVER_IMPL) {
ConnectJobToRecordMap::iterator it =
« no previous file with comments | « chrome/browser/net/load_timing_observer.h ('k') | chrome/browser/net/load_timing_observer_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698