summaryrefslogtreecommitdiffstats
path: root/content
diff options
context:
space:
mode:
authornduca@chromium.org <nduca@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-07-08 23:14:39 +0000
committernduca@chromium.org <nduca@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-07-08 23:14:39 +0000
commit91a2aeac66b45ac32f809d184c9e456afc7a922e (patch)
tree7c6ef0c47bb89372c0fec14831fed4db096cd9d4 /content
parent89d9b38895a1cf9a9205683118da437c72c274d1 (diff)
downloadchromium_src-91a2aeac66b45ac32f809d184c9e456afc7a922e.zip
chromium_src-91a2aeac66b45ac32f809d184c9e456afc7a922e.tar.gz
chromium_src-91a2aeac66b45ac32f809d184c9e456afc7a922e.tar.bz2
Process names, and predictable thread and process ordering in about:tracing
R=dsinclair Review URL: https://chromiumcodereview.appspot.com/17451017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@210437 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content')
-rw-r--r--content/browser/browser_main.cc4
-rw-r--r--content/common/content_constants_internal.cc9
-rw-r--r--content/common/content_constants_internal.h11
-rw-r--r--content/gpu/gpu_main.cc4
-rw-r--r--content/plugin/plugin_main.cc4
-rw-r--r--content/ppapi_plugin/ppapi_broker_main.cc4
-rw-r--r--content/ppapi_plugin/ppapi_plugin_main.cc4
-rw-r--r--content/renderer/render_thread_impl.cc5
-rw-r--r--content/renderer/render_view_impl.cc5
-rw-r--r--content/renderer/renderer_main.cc4
10 files changed, 54 insertions, 0 deletions
diff --git a/content/browser/browser_main.cc b/content/browser/browser_main.cc
index df6a4e0..640ccee 100644
--- a/content/browser/browser_main.cc
+++ b/content/browser/browser_main.cc
@@ -5,6 +5,7 @@
#include "content/browser/browser_main.h"
#include "base/debug/trace_event.h"
+#include "content/common/content_constants_internal.h"
#include "content/public/browser/browser_main_runner.h"
namespace content {
@@ -12,6 +13,9 @@ namespace content {
// Main routine for running as the Browser process.
int BrowserMain(const MainFunctionParams& parameters) {
TRACE_EVENT_BEGIN_ETW("BrowserMain", 0, "");
+ base::debug::TraceLog::GetInstance()->SetProcessName("Browser");
+ base::debug::TraceLog::GetInstance()->SetProcessSortIndex(
+ kTraceEventBrowserProcessSortIndex);
scoped_ptr<BrowserMainRunner> main_runner(BrowserMainRunner::Create());
diff --git a/content/common/content_constants_internal.cc b/content/common/content_constants_internal.cc
index 45316c3..c2bcaff 100644
--- a/content/common/content_constants_internal.cc
+++ b/content/common/content_constants_internal.cc
@@ -8,4 +8,13 @@ namespace content {
const int kHungRendererDelayMs = 30000;
+const int kTraceEventBrowserProcessSortIndex = -6;
+const int kTraceEventRendererProcessSortIndex = -5;
+const int kTraceEventPluginProcessSortIndex = -4;
+const int kTraceEventPpapiProcessSortIndex = -3;
+const int kTraceEventPpapiBrokerProcessSortIndex = -2;
+const int kTraceEventGpuProcessSortIndex = -1;
+
+const int kTraceEventRendererMainThreadSortIndex = -1;
+
} // namespace content
diff --git a/content/common/content_constants_internal.h b/content/common/content_constants_internal.h
index b69bb4a..ddb082f 100644
--- a/content/common/content_constants_internal.h
+++ b/content/common/content_constants_internal.h
@@ -12,6 +12,17 @@ namespace content {
// How long to wait before we consider a renderer hung.
CONTENT_EXPORT extern const int kHungRendererDelayMs;
+// Constants used to organize content processes in about:tracing.
+CONTENT_EXPORT extern const int kTraceEventBrowserProcessSortIndex;
+CONTENT_EXPORT extern const int kTraceEventRendererProcessSortIndex;
+CONTENT_EXPORT extern const int kTraceEventPluginProcessSortIndex;
+CONTENT_EXPORT extern const int kTraceEventPpapiProcessSortIndex;
+CONTENT_EXPORT extern const int kTraceEventPpapiBrokerProcessSortIndex;
+CONTENT_EXPORT extern const int kTraceEventGpuProcessSortIndex;
+
+// Constants used to organize content threads in about:tracing.
+CONTENT_EXPORT extern const int kTraceEventRendererMainThreadSortIndex;
+
} // namespace content
#endif // CONTENT_COMMON_CONTENT_CONSTANTS_INTERNAL_H_
diff --git a/content/gpu/gpu_main.cc b/content/gpu/gpu_main.cc
index 221361f..22a8bf3 100644
--- a/content/gpu/gpu_main.cc
+++ b/content/gpu/gpu_main.cc
@@ -17,6 +17,7 @@
#include "base/threading/platform_thread.h"
#include "build/build_config.h"
#include "content/child/child_process.h"
+#include "content/common/content_constants_internal.h"
#include "content/common/gpu/gpu_config.h"
#include "content/common/gpu/gpu_messages.h"
#include "content/common/sandbox_linux.h"
@@ -84,6 +85,9 @@ bool GpuProcessLogMessageHandler(int severity,
// Main function for starting the Gpu process.
int GpuMain(const MainFunctionParams& parameters) {
TRACE_EVENT0("gpu", "GpuMain");
+ base::debug::TraceLog::GetInstance()->SetProcessName("GPU Process");
+ base::debug::TraceLog::GetInstance()->SetProcessSortIndex(
+ kTraceEventGpuProcessSortIndex);
const CommandLine& command_line = parameters.command_line;
if (command_line.HasSwitch(switches::kGpuStartupDialog)) {
diff --git a/content/plugin/plugin_main.cc b/content/plugin/plugin_main.cc
index 69415e0..d8518a8 100644
--- a/content/plugin/plugin_main.cc
+++ b/content/plugin/plugin_main.cc
@@ -16,6 +16,7 @@
#include "base/threading/platform_thread.h"
#include "base/timer/hi_res_timer_manager.h"
#include "content/child/child_process.h"
+#include "content/common/content_constants_internal.h"
#include "content/plugin/plugin_thread.h"
#include "content/public/common/content_switches.h"
#include "content/public/common/main_function_params.h"
@@ -54,6 +55,9 @@ int PluginMain(const MainFunctionParams& parameters) {
#endif
base::MessageLoop main_message_loop(base::MessageLoop::TYPE_UI);
base::PlatformThread::SetName("CrPluginMain");
+ base::debug::TraceLog::GetInstance()->SetProcessName("Plugin Process");
+ base::debug::TraceLog::GetInstance()->SetProcessSortIndex(
+ kTraceEventPluginProcessSortIndex);
base::PowerMonitor power_monitor;
base::HighResolutionTimerManager high_resolution_timer_manager;
diff --git a/content/ppapi_plugin/ppapi_broker_main.cc b/content/ppapi_plugin/ppapi_broker_main.cc
index 0fd01f8..3c467a3 100644
--- a/content/ppapi_plugin/ppapi_broker_main.cc
+++ b/content/ppapi_plugin/ppapi_broker_main.cc
@@ -6,6 +6,7 @@
#include "base/threading/platform_thread.h"
#include "build/build_config.h"
#include "content/child/child_process.h"
+#include "content/common/content_constants_internal.h"
#include "content/ppapi_plugin/ppapi_thread.h"
#include "content/public/common/content_switches.h"
#include "content/public/common/main_function_params.h"
@@ -21,6 +22,9 @@ int PpapiBrokerMain(const MainFunctionParams& parameters) {
base::MessageLoop main_message_loop(base::MessageLoop::TYPE_DEFAULT);
base::PlatformThread::SetName("CrPPAPIBrokerMain");
+ base::debug::TraceLog::GetInstance()->SetProcessName("PPAPI Broker Process");
+ base::debug::TraceLog::GetInstance()->SetProcessSortIndex(
+ kTraceEventPpapiBrokerProcessSortIndex);
ChildProcess ppapi_broker_process;
ppapi_broker_process.set_main_thread(
diff --git a/content/ppapi_plugin/ppapi_plugin_main.cc b/content/ppapi_plugin/ppapi_plugin_main.cc
index ca73f49..c6fb5be 100644
--- a/content/ppapi_plugin/ppapi_plugin_main.cc
+++ b/content/ppapi_plugin/ppapi_plugin_main.cc
@@ -9,6 +9,7 @@
#include "base/threading/platform_thread.h"
#include "build/build_config.h"
#include "content/child/child_process.h"
+#include "content/common/content_constants_internal.h"
#include "content/common/sandbox_linux.h"
#include "content/ppapi_plugin/ppapi_thread.h"
#include "content/public/common/content_client.h"
@@ -81,6 +82,9 @@ int PpapiPluginMain(const MainFunctionParams& parameters) {
base::MessageLoop main_message_loop;
base::PlatformThread::SetName("CrPPAPIMain");
+ base::debug::TraceLog::GetInstance()->SetProcessName("PPAPI Process");
+ base::debug::TraceLog::GetInstance()->SetProcessSortIndex(
+ kTraceEventPpapiProcessSortIndex);
#if defined(OS_LINUX) && defined(USE_NSS)
// Some out-of-process PPAPI plugins use NSS.
diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc
index aaf2b41..76b4040 100644
--- a/content/renderer/render_thread_impl.cc
+++ b/content/renderer/render_thread_impl.cc
@@ -36,6 +36,7 @@
#include "content/child/runtime_features.h"
#include "content/child/thread_safe_sender.h"
#include "content/child/web_database_observer_impl.h"
+#include "content/common/content_constants_internal.h"
#include "content/common/child_process_messages.h"
#include "content/common/database_messages.h"
#include "content/common/db_message_filter.h"
@@ -316,6 +317,10 @@ RenderThreadImpl::RenderThreadImpl(const std::string& channel_name)
void RenderThreadImpl::Init() {
TRACE_EVENT_BEGIN_ETW("RenderThreadImpl::Init", 0, "");
+ base::debug::TraceLog::GetInstance()->SetThreadSortIndex(
+ base::PlatformThread::CurrentId(),
+ kTraceEventRendererMainThreadSortIndex);
+
v8::V8::SetCounterFunction(base::StatsTable::FindLocation);
v8::V8::SetCreateHistogramFunction(CreateHistogram);
v8::V8::SetAddHistogramSampleFunction(AddHistogramSample);
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc
index 64a907c..d2a93bf 100644
--- a/content/renderer/render_view_impl.cc
+++ b/content/renderer/render_view_impl.cc
@@ -982,6 +982,8 @@ RenderViewImpl::~RenderViewImpl() {
if (decrement_shared_popup_at_destruction_)
shared_popup_counter_->data--;
+ base::debug::TraceLog::GetInstance()->RemoveProcessLabel(routing_id_);
+
// If file chooser is still waiting for answer, dispatch empty answer.
while (!file_chooser_completions_.empty()) {
if (file_chooser_completions_.front()->completion) {
@@ -1973,6 +1975,9 @@ void RenderViewImpl::UpdateTitle(WebFrame* frame,
if (frame->parent())
return;
+ base::debug::TraceLog::GetInstance()->UpdateProcessLabel(
+ routing_id_, UTF16ToUTF8(title));
+
string16 shortened_title = title.substr(0, kMaxTitleChars);
Send(new ViewHostMsg_UpdateTitle(routing_id_, page_id_, shortened_title,
title_direction));
diff --git a/content/renderer/renderer_main.cc b/content/renderer/renderer_main.cc
index 0cfc505..942db83 100644
--- a/content/renderer/renderer_main.cc
+++ b/content/renderer/renderer_main.cc
@@ -23,6 +23,7 @@
#include "base/time/time.h"
#include "base/timer/hi_res_timer_manager.h"
#include "content/child/child_process.h"
+#include "content/common/content_constants_internal.h"
#include "content/common/pepper_plugin_registry.h"
#include "content/public/common/content_switches.h"
#include "content/public/common/main_function_params.h"
@@ -110,6 +111,9 @@ class MemoryObserver : public base::MessageLoop::TaskObserver {
// mainline routine for running as the Renderer process
int RendererMain(const MainFunctionParams& parameters) {
TRACE_EVENT_BEGIN_ETW("RendererMain", 0, "");
+ base::debug::TraceLog::GetInstance()->SetProcessName("Renderer");
+ base::debug::TraceLog::GetInstance()->SetProcessSortIndex(
+ kTraceEventRendererProcessSortIndex);
const CommandLine& parsed_command_line = parameters.command_line;