Commit 817769ed authored by Sami Kyostila's avatar Sami Kyostila Committed by Commit Bot

scheduler: Don't emit virtual time trace events unless virtual time is on

This patch makes WebScopedVirtualTimePauser avoid emitting trace events
if virtual time is disabled.

Bug: 1069603
Change-Id: I14bfe21bcd67f325018ffeec1d17e01fe2f1dde0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2144143
Auto-Submit: Sami Kyöstilä <skyostil@chromium.org>
Reviewed-by: default avatarAlexander Timin <altimin@chromium.org>
Reviewed-by: default avatarGabriel Charette <gab@chromium.org>
Commit-Queue: Sami Kyöstilä <skyostil@chromium.org>
Cr-Commit-Position: refs/heads/master@{#759273}
parent 231c063a
...@@ -60,6 +60,7 @@ class BLINK_PLATFORM_EXPORT WebScopedVirtualTimePauser { ...@@ -60,6 +60,7 @@ class BLINK_PLATFORM_EXPORT WebScopedVirtualTimePauser {
base::TimeTicks virtual_time_when_paused_; base::TimeTicks virtual_time_when_paused_;
bool paused_ = false; bool paused_ = false;
bool virtual_time_enabled_when_paused_ = false;
VirtualTaskDuration duration_ = VirtualTaskDuration::kInstant; VirtualTaskDuration duration_ = VirtualTaskDuration::kInstant;
scheduler::MainThreadSchedulerImpl* scheduler_; // NOT OWNED scheduler::MainThreadSchedulerImpl* scheduler_; // NOT OWNED
WebString debug_name_; WebString debug_name_;
......
...@@ -57,9 +57,17 @@ void WebScopedVirtualTimePauser::PauseVirtualTime() { ...@@ -57,9 +57,17 @@ void WebScopedVirtualTimePauser::PauseVirtualTime() {
return; return;
paused_ = true; paused_ = true;
// Note that virtual time can never be disabled after it's enabled once, so we
// don't need to worry about the reverse transition.
virtual_time_enabled_when_paused_ = scheduler_->IsVirtualTimeEnabled();
if (virtual_time_enabled_when_paused_) {
// This trace event shows when individual pausers are active (instead of the
// global paused/unpaused state).
TRACE_EVENT_NESTABLE_ASYNC_BEGIN1( TRACE_EVENT_NESTABLE_ASYNC_BEGIN1(
"renderer.scheduler", "WebScopedVirtualTimePauser::PauseVirtualTime", "renderer.scheduler", "WebScopedVirtualTimePauser::PauseVirtualTime",
trace_id_, "name", debug_name_.Latin1()); trace_id_, "name", debug_name_.Latin1());
}
virtual_time_when_paused_ = scheduler_->IncrementVirtualTimePauseCount(); virtual_time_when_paused_ = scheduler_->IncrementVirtualTimePauseCount();
} }
...@@ -77,9 +85,11 @@ void WebScopedVirtualTimePauser::DecrementVirtualTimePauseCount() { ...@@ -77,9 +85,11 @@ void WebScopedVirtualTimePauser::DecrementVirtualTimePauseCount() {
scheduler_->MaybeAdvanceVirtualTime(virtual_time_when_paused_ + scheduler_->MaybeAdvanceVirtualTime(virtual_time_when_paused_ +
base::TimeDelta::FromMilliseconds(10)); base::TimeDelta::FromMilliseconds(10));
} }
if (virtual_time_enabled_when_paused_) {
TRACE_EVENT_NESTABLE_ASYNC_END0( TRACE_EVENT_NESTABLE_ASYNC_END0(
"renderer.scheduler", "WebScopedVirtualTimePauser::PauseVirtualTime", "renderer.scheduler", "WebScopedVirtualTimePauser::PauseVirtualTime",
trace_id_); trace_id_);
}
} }
} // namespace blink } // namespace blink
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment