| Index: chrome/browser/metrics/thread_watcher.cc
|
| diff --git a/chrome/browser/metrics/thread_watcher.cc b/chrome/browser/metrics/thread_watcher.cc
|
| index 6981f63052c83f34a868ca562981b2653c4ae2a2..75c4463e29a97cf8829e7c24e14805380e76f1ad 100644
|
| --- a/chrome/browser/metrics/thread_watcher.cc
|
| +++ b/chrome/browser/metrics/thread_watcher.cc
|
| @@ -35,6 +35,20 @@
|
|
|
| using content::BrowserThread;
|
|
|
| +namespace {
|
| +
|
| +base::StackSamplingProfiler::SamplingParams GetJankTimeBombSamplingParams() {
|
| + base::StackSamplingProfiler::SamplingParams params;
|
| + params.initial_delay = base::TimeDelta::FromMilliseconds(0);
|
| + params.bursts = 1;
|
| + // 5 seconds at 10Hz.
|
| + params.samples_per_burst = 50;
|
| + params.sampling_interval = base::TimeDelta::FromMilliseconds(100);
|
| + return params;
|
| +}
|
| +
|
| +} // namespace
|
| +
|
| // ThreadWatcher methods and members.
|
| ThreadWatcher::ThreadWatcher(const WatchingParams& params)
|
| : thread_id_(params.thread_id),
|
| @@ -915,20 +929,11 @@ void StartupTimeBomb::DisarmStartupTimeBomb() {
|
| g_startup_timebomb_->Disarm();
|
| }
|
|
|
| -base::StackSamplingProfiler::SamplingParams GetJankTimeBombSamplingParams() {
|
| - base::StackSamplingProfiler::SamplingParams params;
|
| - params.initial_delay = base::TimeDelta::FromMilliseconds(0);
|
| - params.bursts = 1;
|
| - // 5 seconds at 10Hz.
|
| - params.samples_per_burst = 50;
|
| - params.sampling_interval = base::TimeDelta::FromMilliseconds(100);
|
| - return params;
|
| -}
|
| -
|
| // JankTimeBomb methods and members.
|
| //
|
| -JankTimeBomb::JankTimeBomb(base::TimeDelta duration)
|
| - : weak_ptr_factory_(this) {
|
| +JankTimeBomb::JankTimeBomb(base::TimeDelta duration,
|
| + metrics::CallStackProfileParams::Thread thread)
|
| + : thread_(thread), weak_ptr_factory_(this) {
|
| if (IsEnabled()) {
|
| WatchDogThread::PostDelayedTask(
|
| FROM_HERE,
|
| @@ -956,6 +961,8 @@ void JankTimeBomb::Alarm(base::PlatformThreadId thread_id) {
|
| GetJankTimeBombSamplingParams(),
|
| metrics::CallStackProfileMetricsProvider::GetProfilerCallback(
|
| metrics::CallStackProfileParams(
|
| + metrics::CallStackProfileParams::BROWSER_PROCESS,
|
| + thread_,
|
| metrics::CallStackProfileParams::JANKY_TASK,
|
| metrics::CallStackProfileParams::PRESERVE_ORDER))));
|
| // Use synchronous profiler. It will automatically stop collection when
|
|
|