Index: net/socket/client_socket_pool_base.cc |
=================================================================== |
--- net/socket/client_socket_pool_base.cc (revision 41560) |
+++ net/socket/client_socket_pool_base.cc (working copy) |
@@ -11,7 +11,7 @@ |
#include "base/stl_util-inl.h" |
#include "base/string_util.h" |
#include "base/time.h" |
-#include "net/base/load_log.h" |
+#include "net/base/net_log.h" |
#include "net/base/net_errors.h" |
#include "net/socket/client_socket_handle.h" |
@@ -27,9 +27,6 @@ |
// some conditions. See http://crbug.com/4606. |
const int kCleanupInterval = 10; // DO NOT INCREASE THIS TIMEOUT. |
-// The maximum size of the ConnectJob's LoadLog. |
-const int kMaxNumLoadLogEntries = 50; |
- |
} // namespace |
namespace net { |
@@ -37,11 +34,11 @@ |
ConnectJob::ConnectJob(const std::string& group_name, |
base::TimeDelta timeout_duration, |
Delegate* delegate, |
- LoadLog* load_log) |
+ const BoundNetLog& net_log) |
: group_name_(group_name), |
timeout_duration_(timeout_duration), |
delegate_(delegate), |
- load_log_(load_log) { |
+ net_log_(net_log) { |
DCHECK(!group_name.empty()); |
DCHECK(delegate); |
} |
@@ -50,8 +47,8 @@ |
if (delegate_) { |
// If the delegate was not NULLed, then NotifyDelegateOfCompletion has |
// not been called yet (hence we are cancelling). |
- LoadLog::AddEvent(load_log_, LoadLog::TYPE_CANCELLED); |
- LoadLog::EndEvent(load_log_, LoadLog::TYPE_SOCKET_POOL_CONNECT_JOB); |
+ net_log_.AddEvent(NetLog::TYPE_CANCELLED); |
+ net_log_.EndEvent(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB); |
} |
} |
@@ -59,13 +56,13 @@ |
if (timeout_duration_ != base::TimeDelta()) |
timer_.Start(timeout_duration_, this, &ConnectJob::OnTimeout); |
- LoadLog::BeginEvent(load_log_, LoadLog::TYPE_SOCKET_POOL_CONNECT_JOB); |
+ net_log_.BeginEvent(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB); |
int rv = ConnectInternal(); |
if (rv != ERR_IO_PENDING) { |
delegate_ = NULL; |
- LoadLog::EndEvent(load_log_, LoadLog::TYPE_SOCKET_POOL_CONNECT_JOB); |
+ net_log_.EndEvent(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB); |
} |
return rv; |
@@ -76,7 +73,7 @@ |
Delegate *delegate = delegate_; |
delegate_ = NULL; |
- LoadLog::EndEvent(load_log_, LoadLog::TYPE_SOCKET_POOL_CONNECT_JOB); |
+ net_log_.EndEvent(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB); |
delegate->OnConnectJobComplete(rv, this); |
} |
@@ -85,8 +82,7 @@ |
// Make sure the socket is NULL before calling into |delegate|. |
set_socket(NULL); |
- LoadLog::AddEvent(load_log_, |
- LoadLog::TYPE_SOCKET_POOL_CONNECT_JOB_TIMED_OUT); |
+ net_log_.AddEvent(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB_TIMED_OUT); |
NotifyDelegateOfCompletion(ERR_TIMED_OUT); |
} |
@@ -97,9 +93,9 @@ |
ClientSocketHandle* handle, |
CompletionCallback* callback, |
RequestPriority priority, |
- LoadLog* load_log) |
+ const BoundNetLog& net_log) |
: handle_(handle), callback_(callback), priority_(priority), |
- load_log_(load_log) {} |
+ net_log_(net_log) {} |
ClientSocketPoolBaseHelper::Request::~Request() {} |
@@ -167,11 +163,11 @@ |
int ClientSocketPoolBaseHelper::RequestSocket( |
const std::string& group_name, |
const Request* request) { |
- LoadLog::BeginEvent(request->load_log(), LoadLog::TYPE_SOCKET_POOL); |
+ request->net_log().BeginEvent(NetLog::TYPE_SOCKET_POOL); |
Group& group = group_map_[group_name]; |
int rv = RequestSocketInternal(group_name, request); |
if (rv != ERR_IO_PENDING) |
- LoadLog::EndEvent(request->load_log(), LoadLog::TYPE_SOCKET_POOL); |
+ request->net_log().EndEvent(NetLog::TYPE_SOCKET_POOL); |
else |
InsertRequestIntoQueue(request, &group.pending_requests); |
return rv; |
@@ -195,13 +191,9 @@ |
// a scan of all groups, so just flip a flag here, and do the check later. |
may_have_stalled_group_ = true; |
- LoadLog::AddEvent( |
- request->load_log(), |
- LoadLog::TYPE_SOCKET_POOL_STALLED_MAX_SOCKETS); |
+ request->net_log().AddEvent(NetLog::TYPE_SOCKET_POOL_STALLED_MAX_SOCKETS); |
} else { |
- LoadLog::AddEvent( |
- request->load_log(), |
- LoadLog::TYPE_SOCKET_POOL_STALLED_MAX_SOCKETS_PER_GROUP); |
+ request->net_log().AddEvent(NetLog::TYPE_SOCKET_POOL_STALLED_MAX_SOCKETS_PER_GROUP); |
} |
return ERR_IO_PENDING; |
} |
@@ -217,7 +209,7 @@ |
base::TimeTicks::Now() - idle_socket.start_time; |
HandOutSocket( |
idle_socket.socket, idle_socket.used, handle, idle_time, &group, |
- request->load_log()); |
+ request->net_log()); |
return OK; |
} |
delete idle_socket.socket; |
@@ -230,20 +222,23 @@ |
} |
// We couldn't find a socket to reuse, so allocate and connect a new one. |
- scoped_refptr<LoadLog> job_load_log = new LoadLog(kMaxNumLoadLogEntries); |
+ BoundNetLog job_net_log = BoundNetLog::Make( |
+ request->net_log().net_log(), NetLog::SOURCE_CONNECT_JOB); |
scoped_ptr<ConnectJob> connect_job( |
connect_job_factory_->NewConnectJob(group_name, *request, this, |
- job_load_log)); |
+ job_net_log)); |
int rv = connect_job->Connect(); |
- if (rv != ERR_IO_PENDING && request->load_log()) |
- request->load_log()->Append(job_load_log); |
+ if (rv != ERR_IO_PENDING) { |
+ request->net_log().AddEventWithInteger(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB_ID, |
+ job_net_log.source().id); |
+ } |
if (rv == OK) { |
HandOutSocket(connect_job->ReleaseSocket(), false /* not reused */, |
- handle, base::TimeDelta(), &group, request->load_log()); |
+ handle, base::TimeDelta(), &group, request->net_log()); |
} else if (rv == ERR_IO_PENDING) { |
// If we don't have any sockets in this group, set a timer for potentially |
// creating a new one. If the SYN is lost, this backup socket may complete |
@@ -252,7 +247,7 @@ |
group.backup_job = connect_job_factory_->NewConnectJob(group_name, |
*request, |
this, |
- job_load_log); |
+ job_net_log); |
StartBackupSocketTimer(group_name); |
} |
@@ -296,14 +291,13 @@ |
// If our backup job is waiting on DNS, just reset the timer. |
CHECK(group.jobs.size()); |
if ((*group.jobs.begin())->GetLoadState() == LOAD_STATE_RESOLVING_HOST) { |
- LoadLog::AddEvent(group.backup_job->load_log(), |
- LoadLog::TYPE_SOCKET_BACKUP_TIMER_EXTENDED); |
+ group.backup_job->net_log().EndEvent( |
+ NetLog::TYPE_SOCKET_BACKUP_TIMER_EXTENDED); |
StartBackupSocketTimer(group_name); |
return; |
} |
- LoadLog::AddEvent(group.backup_job->load_log(), |
- LoadLog::TYPE_SOCKET_BACKUP_CREATED); |
+ group.backup_job->net_log().AddEvent(NetLog::TYPE_SOCKET_BACKUP_CREATED); |
SIMPLE_STATS_COUNTER("socket.backup_created"); |
int rv = group.backup_job->Connect(); |
if (rv == ERR_IO_PENDING) { |
@@ -326,8 +320,8 @@ |
for (; it != group.pending_requests.end(); ++it) { |
if ((*it)->handle() == handle) { |
const Request* req = RemoveRequestFromQueue(it, &group.pending_requests); |
- LoadLog::AddEvent(req->load_log(), LoadLog::TYPE_CANCELLED); |
- LoadLog::EndEvent(req->load_log(), LoadLog::TYPE_SOCKET_POOL); |
+ req->net_log().AddEvent(NetLog::TYPE_CANCELLED); |
+ req->net_log().EndEvent(NetLog::TYPE_SOCKET_POOL); |
delete req; |
if (group.jobs.size() > group.pending_requests.size() + 1) { |
// TODO(willchan): Cancel the job in the earliest LoadState. |
@@ -553,21 +547,20 @@ |
scoped_ptr<ClientSocket> socket(job->ReleaseSocket()); |
- scoped_refptr<LoadLog> job_load_log(job->load_log()); |
+ BoundNetLog job_log = job->net_log(); |
RemoveConnectJob(job, &group); |
- LoadLog::EndEvent(job_load_log, LoadLog::TYPE_SOCKET_POOL); |
- |
if (result == OK) { |
DCHECK(socket.get()); |
if (!group.pending_requests.empty()) { |
scoped_ptr<const Request> r(RemoveRequestFromQueue( |
group.pending_requests.begin(), &group.pending_requests)); |
- if (r->load_log()) |
- r->load_log()->Append(job_load_log); |
+ r->net_log().AddEventWithInteger(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB_ID, |
+ job_log.source().id); |
+ r->net_log().EndEvent(NetLog::TYPE_SOCKET_POOL); |
HandOutSocket( |
socket.release(), false /* unused socket */, r->handle(), |
- base::TimeDelta(), &group, r->load_log()); |
+ base::TimeDelta(), &group, r->net_log()); |
r->callback()->Run(result); |
} else { |
AddIdleSocket(socket.release(), false /* unused socket */, &group); |
@@ -578,8 +571,9 @@ |
if (!group.pending_requests.empty()) { |
scoped_ptr<const Request> r(RemoveRequestFromQueue( |
group.pending_requests.begin(), &group.pending_requests)); |
- if (r->load_log()) |
- r->load_log()->Append(job_load_log); |
+ r->net_log().AddEventWithInteger(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB_ID, |
+ job_log.source().id); |
+ r->net_log().EndEvent(NetLog::TYPE_SOCKET_POOL); |
r->callback()->Run(result); |
} |
MaybeOnAvailableSocketSlot(group_name); |
@@ -640,7 +634,7 @@ |
int rv = RequestSocketInternal(group_name, r.get()); |
if (rv != ERR_IO_PENDING) { |
- LoadLog::EndEvent(r->load_log(), LoadLog::TYPE_SOCKET_POOL); |
+ r->net_log().EndEvent(NetLog::TYPE_SOCKET_POOL); |
RemoveRequestFromQueue(group->pending_requests.begin(), |
&group->pending_requests); |
r->callback()->Run(rv); |
@@ -660,17 +654,16 @@ |
ClientSocketHandle* handle, |
base::TimeDelta idle_time, |
Group* group, |
- LoadLog* load_log) { |
+ const BoundNetLog& net_log) { |
DCHECK(socket); |
handle->set_socket(socket); |
handle->set_is_reused(reused); |
handle->set_idle_time(idle_time); |
if (reused) |
- LoadLog::AddStringLiteral(load_log, "Reusing socket."); |
+ net_log.AddStringLiteral("Reusing socket."); |
if (idle_time != base::TimeDelta()) { |
- LoadLog::AddString( |
- load_log, |
+ net_log.AddString( |
StringPrintf("Socket sat idle for %" PRId64 " milliseconds", |
idle_time.InMilliseconds())); |
} |