diff options
author | mmenke@chromium.org <mmenke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-30 16:44:27 +0000 |
---|---|---|
committer | mmenke@chromium.org <mmenke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-30 16:44:27 +0000 |
commit | 59d7a5ac32804bb1b12a2d5b8d21dede3f7be233 (patch) | |
tree | 25e69facf864a46c61a5466b7c9fa061a4417abe /net/socket/client_socket_pool_base.cc | |
parent | b9a3dc3b7b9c1cb60a7aa05f38a568612e5224cb (diff) | |
download | chromium_src-59d7a5ac32804bb1b12a2d5b8d21dede3f7be233.zip chromium_src-59d7a5ac32804bb1b12a2d5b8d21dede3f7be233.tar.gz chromium_src-59d7a5ac32804bb1b12a2d5b8d21dede3f7be233.tar.bz2 |
Sockets page on net-internals now displays some information about the current socket pool state. Table padding slightly increased for legibility.
TEST=manual
BUG=39756
Review URL: http://codereview.chromium.org/3267002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@57869 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/socket/client_socket_pool_base.cc')
-rw-r--r-- | net/socket/client_socket_pool_base.cc | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/net/socket/client_socket_pool_base.cc b/net/socket/client_socket_pool_base.cc index 631ef5e..49fa09e 100644 --- a/net/socket/client_socket_pool_base.cc +++ b/net/socket/client_socket_pool_base.cc @@ -395,6 +395,48 @@ LoadState ClientSocketPoolBaseHelper::GetLoadState( return LOAD_STATE_IDLE; } +Value* ClientSocketPoolBaseHelper::GetInfoAsValue( + const std::string& name, const std::string& type) const { + DictionaryValue* dict = new DictionaryValue(); + dict->SetString("name", name); + dict->SetString("type", type); + dict->SetInteger("handed_out_socket_count", handed_out_socket_count_); + dict->SetInteger("connecting_socket_count", connecting_socket_count_); + dict->SetInteger("idle_socket_count", idle_socket_count_); + dict->SetInteger("max_socket_count", max_sockets_); + dict->SetInteger("max_sockets_per_group", max_sockets_per_group_); + dict->SetInteger("pool_generation_number", pool_generation_number_); + + if (group_map_.empty()) + return dict; + + DictionaryValue* all_groups_dict = new DictionaryValue(); + for (GroupMap::const_iterator it = group_map_.begin(); + it != group_map_.end(); it++) { + const Group* group = it->second; + DictionaryValue* group_dict = new DictionaryValue(); + + group_dict->SetInteger("pending_request_count", + group->pending_requests().size()); + if (!group->pending_requests().empty()) { + group_dict->SetInteger("top_pending_priority", + group->TopPendingPriority()); + } + + group_dict->SetInteger("active_socket_count", group->active_socket_count()); + group_dict->SetInteger("idle_socket_count", group->idle_sockets().size()); + group_dict->SetInteger("connect_job_count", group->jobs().size()); + + group_dict->SetBoolean("is_stalled", + group->IsStalled(max_sockets_per_group_)); + group_dict->SetBoolean("has_backup_job", group->HasBackupJob()); + + all_groups_dict->SetWithoutPathExpansion(it->first, group_dict); + } + dict->Set("groups", all_groups_dict); + return dict; +} + bool ClientSocketPoolBaseHelper::IdleSocket::ShouldCleanup( base::TimeTicks now, base::TimeDelta timeout) const { |