Index: content/browser/tracing/trace_message_filter.cc |
diff --git a/content/browser/tracing/trace_message_filter.cc b/content/browser/tracing/trace_message_filter.cc |
index 00fffb9900e2922711c794eda9e237a15a91ab9c..863af557ea070ab1a138efd7d5491815f1beb50e 100644 |
--- a/content/browser/tracing/trace_message_filter.cc |
+++ b/content/browser/tracing/trace_message_filter.cc |
@@ -14,7 +14,8 @@ TraceMessageFilter::TraceMessageFilter() : |
has_child_(false), |
is_awaiting_end_ack_(false), |
is_awaiting_capture_monitoring_snapshot_ack_(false), |
- is_awaiting_buffer_percent_full_ack_(false) { |
+ is_awaiting_buffer_percent_full_ack_(false), |
+ is_awaiting_configure_synthetic_delay_ack_(false) { |
} |
void TraceMessageFilter::OnChannelClosing() { |
@@ -51,6 +52,8 @@ bool TraceMessageFilter::OnMessageReceived(const IPC::Message& message, |
OnTraceNotification) |
IPC_MESSAGE_HANDLER(TracingHostMsg_TraceBufferPercentFullReply, |
OnTraceBufferPercentFullReply) |
+ IPC_MESSAGE_HANDLER(TracingHostMsg_ConfigureSyntheticDelayAck, |
+ OnConfigureSyntheticDelayAck) |
IPC_MESSAGE_UNHANDLED(handled = false) |
IPC_END_MESSAGE_MAP_EX() |
return handled; |
@@ -109,6 +112,20 @@ void TraceMessageFilter::SendCancelWatchEvent() { |
Send(new TracingMsg_CancelWatchEvent); |
} |
+void TraceMessageFilter::SendConfigureSyntheticDelay( |
+ const std::string& name, |
+ base::TimeDelta target_duration, |
+ base::debug::TraceEventSyntheticDelay::Mode mode) { |
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
+ DCHECK(!is_awaiting_configure_synthetic_delay_ack_); |
+ TracingMsg_ConfigureSyntheticDelay_Params params; |
+ params.name = name; |
+ params.target_duration = target_duration; |
+ params.mode = mode; |
+ is_awaiting_configure_synthetic_delay_ack_ = true; |
+ Send(new TracingMsg_ConfigureSyntheticDelay(params)); |
+} |
+ |
TraceMessageFilter::~TraceMessageFilter() {} |
void TraceMessageFilter::OnChildSupportsTracing() { |
@@ -173,4 +190,13 @@ void TraceMessageFilter::OnTraceBufferPercentFullReply(float percent_full) { |
} |
} |
+void TraceMessageFilter::OnConfigureSyntheticDelayAck() { |
+ if (is_awaiting_configure_synthetic_delay_ack_) { |
+ is_awaiting_configure_synthetic_delay_ack_ = false; |
+ TracingControllerImpl::GetInstance()->OnConfigureSyntheticDelayAcked(); |
+ } else { |
+ NOTREACHED(); |
+ } |
+} |
+ |
} // namespace content |