summaryrefslogtreecommitdiffstats
path: root/net/socket/client_socket_pool_base.cc
diff options
context:
space:
mode:
authormmenke@chromium.org <mmenke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-30 16:44:27 +0000
committermmenke@chromium.org <mmenke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-30 16:44:27 +0000
commit59d7a5ac32804bb1b12a2d5b8d21dede3f7be233 (patch)
tree25e69facf864a46c61a5466b7c9fa061a4417abe /net/socket/client_socket_pool_base.cc
parentb9a3dc3b7b9c1cb60a7aa05f38a568612e5224cb (diff)
downloadchromium_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.cc42
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 {