summaryrefslogtreecommitdiffstats
path: root/content/browser/profiler_controller_impl.cc
diff options
context:
space:
mode:
authorjar@chromium.org <jar@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-10 19:43:42 +0000
committerjar@chromium.org <jar@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-10 19:43:42 +0000
commit702a12dae9a2ed34362e381df7419c314e4124bf (patch)
treec9980ba18234d26584d03629600e06996744e7ce /content/browser/profiler_controller_impl.cc
parentc07eef4e772952ab4ad0213b581c97e92f00831e (diff)
downloadchromium_src-702a12dae9a2ed34362e381df7419c314e4124bf.zip
chromium_src-702a12dae9a2ed34362e381df7419c314e4124bf.tar.gz
chromium_src-702a12dae9a2ed34362e381df7419c314e4124bf.tar.bz2
Propogate status setting for profiler to track parents
[Reland: https://src.chromium.org/viewvc/chrome?view=rev&revision=120789 with minor change to avoid race on status change.] This allows child processes to track ancestry, and report it to the browser process. Parent tracking is only turned on based on an environment variable. r=rtenneti Review URL: https://chromiumcodereview.appspot.com/9363007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@121491 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/profiler_controller_impl.cc')
-rw-r--r--content/browser/profiler_controller_impl.cc14
1 files changed, 8 insertions, 6 deletions
diff --git a/content/browser/profiler_controller_impl.cc b/content/browser/profiler_controller_impl.cc
index 1954da8..b3e40e8 100644
--- a/content/browser/profiler_controller_impl.cc
+++ b/content/browser/profiler_controller_impl.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// 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.
@@ -121,14 +121,16 @@ void ProfilerControllerImpl::GetProfilerData(int sequence_number) {
sequence_number));
}
-void ProfilerControllerImpl::SetProfilerStatusInChildProcesses(bool enable) {
+void ProfilerControllerImpl::SetProfilerStatusInChildProcesses(
+ tracked_objects::ThreadData::Status status) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
for (BrowserChildProcessHostIterator iter; !iter.Done(); ++iter)
- iter.Send(new ChildProcessMsg_SetProfilerStatus(enable));
+ iter.Send(new ChildProcessMsg_SetProfilerStatus(status));
}
-void ProfilerControllerImpl::SetProfilerStatus(bool enable) {
+void ProfilerControllerImpl::SetProfilerStatus(
+ tracked_objects::ThreadData::Status status) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
BrowserThread::PostTask(
@@ -136,12 +138,12 @@ void ProfilerControllerImpl::SetProfilerStatus(bool enable) {
FROM_HERE,
base::Bind(&ProfilerControllerImpl::SetProfilerStatusInChildProcesses,
base::Unretained(this),
- enable));
+ status));
for (content::RenderProcessHost::iterator it(
content::RenderProcessHost::AllHostsIterator());
!it.IsAtEnd(); it.Advance()) {
- it.GetCurrentValue()->Send(new ChildProcessMsg_SetProfilerStatus(enable));
+ it.GetCurrentValue()->Send(new ChildProcessMsg_SetProfilerStatus(status));
}
}
} // namespace content