1 // Copyright 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "cc/base/latency_info_swap_promise_monitor.h" 6 7 #include "cc/base/latency_info_swap_promise.h" 8 #include "cc/trees/layer_tree_host.h" 9 #include "cc/trees/layer_tree_host_impl.h" 10 #include "cc/trees/layer_tree_impl.h" 11 12 namespace cc { 13 14 LatencyInfoSwapPromiseMonitor::LatencyInfoSwapPromiseMonitor( 15 ui::LatencyInfo* latency, 16 LayerTreeHost* layer_tree_host, 17 LayerTreeHostImpl* layer_tree_host_impl) 18 : SwapPromiseMonitor(layer_tree_host, layer_tree_host_impl), 19 latency_(latency) {} 20 21 LatencyInfoSwapPromiseMonitor::~LatencyInfoSwapPromiseMonitor() {} 22 23 void LatencyInfoSwapPromiseMonitor::OnSetNeedsCommitOnMain() { 24 if (!latency_->FindLatency( 25 ui::INPUT_EVENT_LATENCY_RENDERING_SCHEDULED_COMPONENT, 0, 0)) { 26 latency_->AddLatencyNumber( 27 ui::INPUT_EVENT_LATENCY_RENDERING_SCHEDULED_COMPONENT, 0, 0); 28 scoped_ptr<SwapPromise> swap_promise(new LatencyInfoSwapPromise(*latency_)); 29 layer_tree_host_->QueueSwapPromise(swap_promise.Pass()); 30 } 31 } 32 33 void LatencyInfoSwapPromiseMonitor::OnSetNeedsRedrawOnImpl() { 34 if (!latency_->FindLatency( 35 ui::INPUT_EVENT_LATENCY_RENDERING_SCHEDULED_COMPONENT, 0, 0)) { 36 latency_->AddLatencyNumber( 37 ui::INPUT_EVENT_LATENCY_RENDERING_SCHEDULED_COMPONENT, 0, 0); 38 scoped_ptr<SwapPromise> swap_promise(new LatencyInfoSwapPromise(*latency_)); 39 layer_tree_host_impl_->active_tree()->QueueSwapPromise(swap_promise.Pass()); 40 } 41 } 42 43 } // namespace cc 44