// Copyright 2013 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "base/compiler_specific.h" #include "cc/trees/swap_promise_monitor.h" #ifndef CC_TREES_LATENCY_INFO_SWAP_PROMISE_MONITOR_H_ #define CC_TREES_LATENCY_INFO_SWAP_PROMISE_MONITOR_H_ namespace ui { struct LatencyInfo; } // namespace ui namespace cc { // A LatencyInfoSwapPromiseMonitor queues a LatencyInfoSwapPromise into // LayerTreeHost or LayerTreeHostImpl if there is compositor state change // while it is being mointored. class CC_EXPORT LatencyInfoSwapPromiseMonitor : public SwapPromiseMonitor { public: LatencyInfoSwapPromiseMonitor(ui::LatencyInfo* latency, LayerTreeHost* layer_tree_host, LayerTreeHostImpl* layer_tree_host_impl); ~LatencyInfoSwapPromiseMonitor() override; void OnSetNeedsCommitOnMain() override; void OnSetNeedsRedrawOnImpl() override; void OnForwardScrollUpdateToMainThreadOnImpl() override; private: ui::LatencyInfo* latency_; }; } // namespace cc #endif // CC_TREES_LATENCY_INFO_SWAP_PROMISE_MONITOR_H_