Index: content/browser/tcmalloc_internals_request_job.cc |
diff --git a/content/browser/tcmalloc_internals_request_job.cc b/content/browser/tcmalloc_internals_request_job.cc |
deleted file mode 100644 |
index e55df5e5141ac83d0ffe24fba06bcca3c92e18e4..0000000000000000000000000000000000000000 |
--- a/content/browser/tcmalloc_internals_request_job.cc |
+++ /dev/null |
@@ -1,121 +0,0 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "content/browser/tcmalloc_internals_request_job.h" |
- |
-#include "base/allocator/allocator_extension.h" |
-#include "content/common/child_process_messages.h" |
-#include "content/public/browser/browser_child_process_host_iterator.h" |
-#include "content/public/browser/browser_thread.h" |
-#include "content/public/browser/render_process_host.h" |
-#include "content/public/common/process_type.h" |
-#include "net/base/net_errors.h" |
- |
-namespace content { |
- |
-// static |
-AboutTcmallocOutputs* AboutTcmallocOutputs::GetInstance() { |
- return base::Singleton<AboutTcmallocOutputs>::get(); |
-} |
- |
-AboutTcmallocOutputs::AboutTcmallocOutputs() {} |
- |
-AboutTcmallocOutputs::~AboutTcmallocOutputs() {} |
- |
-void AboutTcmallocOutputs::OnStatsForChildProcess( |
- base::ProcessId pid, int process_type, |
- const std::string& output) { |
- std::string header = GetProcessTypeNameInEnglish(process_type); |
- base::StringAppendF(&header, " PID %d", static_cast<int>(pid)); |
- SetOutput(header, output); |
-} |
- |
-void AboutTcmallocOutputs::SetOutput(const std::string& header, |
- const std::string& output) { |
- DCHECK_CURRENTLY_ON(BrowserThread::IO); |
- |
- outputs_[header] = output; |
-} |
- |
-void AboutTcmallocOutputs::DumpToHTMLTable(std::string* data) { |
- DCHECK_CURRENTLY_ON(BrowserThread::IO); |
- |
- data->append("<table width=\"100%\">\n"); |
- for (AboutTcmallocOutputsType::const_iterator oit = outputs_.begin(); |
- oit != outputs_.end(); |
- oit++) { |
- data->append("<tr><td bgcolor=\"yellow\">"); |
- data->append(oit->first); |
- data->append("</td></tr>\n"); |
- data->append("<tr><td><pre>\n"); |
- data->append(oit->second); |
- data->append("</pre></td></tr>\n"); |
- } |
- data->append("</table>\n"); |
- outputs_.clear(); |
-} |
- |
-TcmallocInternalsRequestJob::TcmallocInternalsRequestJob( |
- net::URLRequest* request, net::NetworkDelegate* network_delegate) |
- : net::URLRequestSimpleJob(request, network_delegate) { |
-} |
- |
-#if defined(USE_TCMALLOC) |
-void RequestTcmallocStatsFromChildRenderProcesses() { |
- RenderProcessHost::iterator it(RenderProcessHost::AllHostsIterator()); |
- while (!it.IsAtEnd()) { |
- it.GetCurrentValue()->Send(new ChildProcessMsg_GetTcmallocStats); |
- it.Advance(); |
- } |
-} |
- |
-void AboutTcmalloc(std::string* data) { |
- data->append("<!DOCTYPE html>\n<html>\n<head>\n"); |
- data->append( |
- "<meta http-equiv=\"Content-Security-Policy\" " |
- "content=\"object-src 'none'; script-src 'none'\">"); |
- data->append("<title>tcmalloc stats</title>"); |
- data->append("</head><body>"); |
- |
- // Display any stats for which we sent off requests the last time. |
- data->append("<p>Stats as of last page load;"); |
- data->append("reload to get stats as of this page load.</p>\n"); |
- data->append("<table width=\"100%\">\n"); |
- |
- AboutTcmallocOutputs::GetInstance()->DumpToHTMLTable(data); |
- |
- data->append("</body></html>\n"); |
- |
- // Populate the collector with stats from the local browser process |
- // and send off requests to all the renderer processes. |
- char buffer[1024 * 32]; |
- base::allocator::GetStats(buffer, sizeof(buffer)); |
- std::string browser("Browser"); |
- AboutTcmallocOutputs::GetInstance()->SetOutput(browser, buffer); |
- |
- for (BrowserChildProcessHostIterator iter; !iter.Done(); ++iter) { |
- iter.Send(new ChildProcessMsg_GetTcmallocStats); |
- } |
- |
- BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, base::Bind( |
- &RequestTcmallocStatsFromChildRenderProcesses)); |
-} |
-#endif |
- |
-int TcmallocInternalsRequestJob::GetData( |
- std::string* mime_type, |
- std::string* charset, |
- std::string* data, |
- const net::CompletionCallback& callback) const { |
- mime_type->assign("text/html"); |
- charset->assign("UTF8"); |
- |
- data->clear(); |
-#if defined(USE_TCMALLOC) |
- AboutTcmalloc(data); |
-#endif |
- return net::OK; |
-} |
- |
-} // namespace content |