// Copyright 2013 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CC_TREES_LATENCY_INFO_SWAP_PROMISE_MONITOR_H_ #define CC_TREES_LATENCY_INFO_SWAP_PROMISE_MONITOR_H_ #include "base/memory/raw_ptr.h" #include "base/sequence_checker.h" #include "cc/cc_export.h" namespace ui { class LatencyInfo; } namespace cc { class LayerTreeHostImpl; class SwapPromiseManager; // A `LatencyInfoSwapPromiseMonitor` is used to monitor compositor state change // that should be associated with a `LatencyInfoSwapPromise`, e.g. // `SetNeedsCommit()` is called on the main thread or `SetNeedsRedraw()` is // called on the compositor thread. // // Creating a `LatencyInfoSwapPromiseMonitor` will insert it into a // `SwapPromiseManager` or `LayerTreeHostImpl`, depending on the constructor // used. // // Notification of compositor state change will be sent through // `OnSetNeedsCommitOnMain()` or `OnSetNeedsRedrawOnImpl()`. Note that multiple // notifications of the same type to the same monitor will only queue one // `LatencyInfoSwapPromise`. // // When `LatencyInfoSwapPromiseMonitor` is destroyed, it will unregister itself // from `SwapPromiseManager` or `LayerTreeHostImpl`. class CC_EXPORT LatencyInfoSwapPromiseMonitor { … }; } // namespace cc #endif // CC_TREES_LATENCY_INFO_SWAP_PROMISE_MONITOR_H_