Index: cc/output/swap_promise.h |
diff --git a/cc/output/swap_promise.h b/cc/output/swap_promise.h |
index 45a9531160983a4441edf0fa934f016e460cd253..70b9ac872260a7f13ab5979e4e8a603c4a08aaab 100644 |
--- a/cc/output/swap_promise.h |
+++ b/cc/output/swap_promise.h |
@@ -20,8 +20,9 @@ namespace cc { |
// If the commit results in a successful activation of the pending layer tree, |
// SwapPromise::DidActivate() will be called. |
// |
-// If the new compositor state is sent to the output, SwapPromise::DidSwap() |
-// will be called. |
+// If the new compositor state is goint to be sent to the output, |
+// SwapPromise::WillSwap() will be called before the swap and |
+// SwapPromise::DidSwap() will be called once the swap is over. |
// |
// If the scheduler fails to activate the pending tree, or the compositor |
// fails to send its new state to the output, SwapPromise::DidNotSwap() will |
@@ -30,13 +31,13 @@ namespace cc { |
// Promises complete afer either DidSwap() or DidNotSwap() is called, thus |
// there are three possible call sequences: |
// DidNotSwap() |
-// DidActivate() ; DidSwap() |
+// DidActivate() ; WillSwap(); DidSwap() |
// DidActivate() ; DidNotSwap() |
// |
// Clients that wish to use SwapPromise should have a subclass that defines |
-// the behavior of DidActivate(), DidSwap() and DidNotSwap(). Notice that the |
-// promise can be broken at either main or impl thread, e.g. commit fails on |
-// main thread, new frame data has no actual damage so |
+// the behavior of DidActivate(), WillSwap(), DidSwap() and DidNotSwap(). Notice |
+// that the promise can be broken at either main or impl thread, e.g. commit |
+// fails on main thread, new frame data has no actual damage so |
// LayerTreeHostImpl::SwapBuffers() bails out early on impl thread, so don't |
// assume that Did*() methods are called at a particular thread. It is better |
// to let the subclass carry thread-safe member data and operate on that |
@@ -59,7 +60,8 @@ class CC_EXPORT SwapPromise { |
virtual ~SwapPromise() {} |
virtual void DidActivate() = 0; |
- virtual void DidSwap(CompositorFrameMetadata* metadata) = 0; |
+ virtual void WillSwap(CompositorFrameMetadata* metadata) = 0; |
+ virtual void DidSwap() = 0; |
// Return |KEEP_ACTIVE| if this promise should remain active (should not be |
// broken by the owner). |
virtual DidNotSwapAction DidNotSwap(DidNotSwapReason reason) = 0; |