Index: cc/base/latency_info_swap_promise_monitor.cc |
diff --git a/cc/base/latency_info_swap_promise_monitor.cc b/cc/base/latency_info_swap_promise_monitor.cc |
index 0f2ff7481bb33f86393d754e8fb149d29fdd2b01..1a69b211d94b95b6b33a9f2ec0b1f75277c9a2e1 100644 |
--- a/cc/base/latency_info_swap_promise_monitor.cc |
+++ b/cc/base/latency_info_swap_promise_monitor.cc |
@@ -9,6 +9,19 @@ |
#include "cc/trees/layer_tree_host_impl.h" |
#include "cc/trees/layer_tree_impl.h" |
+namespace { |
+ |
+bool AddRenderingScheduledComponent(ui::LatencyInfo* latency_info) { |
+ if (latency_info->FindLatency( |
+ ui::INPUT_EVENT_LATENCY_RENDERING_SCHEDULED_COMPONENT, 0, 0)) |
+ return false; |
+ latency_info->AddLatencyNumber( |
+ ui::INPUT_EVENT_LATENCY_RENDERING_SCHEDULED_COMPONENT, 0, 0); |
+ return true; |
+} |
+ |
+} // namespace |
+ |
namespace cc { |
LatencyInfoSwapPromiseMonitor::LatencyInfoSwapPromiseMonitor( |
@@ -21,23 +34,25 @@ LatencyInfoSwapPromiseMonitor::LatencyInfoSwapPromiseMonitor( |
LatencyInfoSwapPromiseMonitor::~LatencyInfoSwapPromiseMonitor() {} |
void LatencyInfoSwapPromiseMonitor::OnSetNeedsCommitOnMain() { |
- if (!latency_->FindLatency( |
- ui::INPUT_EVENT_LATENCY_RENDERING_SCHEDULED_COMPONENT, 0, 0)) { |
- latency_->AddLatencyNumber( |
- ui::INPUT_EVENT_LATENCY_RENDERING_SCHEDULED_COMPONENT, 0, 0); |
+ if (AddRenderingScheduledComponent(latency_)) { |
scoped_ptr<SwapPromise> swap_promise(new LatencyInfoSwapPromise(*latency_)); |
layer_tree_host_->QueueSwapPromise(swap_promise.Pass()); |
} |
} |
void LatencyInfoSwapPromiseMonitor::OnSetNeedsRedrawOnImpl() { |
- if (!latency_->FindLatency( |
- ui::INPUT_EVENT_LATENCY_RENDERING_SCHEDULED_COMPONENT, 0, 0)) { |
- latency_->AddLatencyNumber( |
- ui::INPUT_EVENT_LATENCY_RENDERING_SCHEDULED_COMPONENT, 0, 0); |
+ if (AddRenderingScheduledComponent(latency_)) { |
scoped_ptr<SwapPromise> swap_promise(new LatencyInfoSwapPromise(*latency_)); |
layer_tree_host_impl_->active_tree()->QueueSwapPromise(swap_promise.Pass()); |
} |
} |
+void LatencyInfoSwapPromiseMonitor::OnForwardScrollUpdateToMainThreadOnImpl() { |
+ if (AddRenderingScheduledComponent(latency_)) { |
+ scoped_ptr<SwapPromise> swap_promise(new LatencyInfoSwapPromise(*latency_)); |
+ layer_tree_host_impl_->QueueSwapPromiseForMainThreadScrollUpdate( |
+ swap_promise.Pass()); |
+ } |
+} |
+ |
} // namespace cc |