Chromium Code Reviews
Descriptioncc: Complete swap promise for aborted commit after pending activation.
Swap promises are used by android webview (via the visual state message
in FrameSwapMessageQueue) to wait until all changes made on the main
thread are ready to be drawn. This happens in two ways either we go
through the commit and activate it or if there is aborted commit because
there are no updates in the commit. In either case we assume that the
compositor is ready to draw all changes.
With main frame before activation we have two frames in flight where one
frame is being activated and the next one is sent to the main thread. In
case of aborted commits the swap promise for a frame might be completed
before the previous frame is activated. This means that the assumption
above re: being ready to draw is invalid.
This CL allows passing swap promises from the main thread to the impl
thread on aborted commits. If activation is pending on the impl thread
the swap promises are queued up to be completed upon activation,
otherwise the promises are completed immediately. For SingleThreadProxy
and RemoteChannel we don't have multiple frames in flight so we complete
the promises on the main thread as before.
BUG=612596
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel
Committed: https://crrev.com/ad3235e21ef666ea29cea5a8f85c303589880297
Cr-Commit-Position: refs/heads/master@{#410576}
Patch Set 1 #Patch Set 2 : rebase #Patch Set 3 : fix compile error #
Total comments: 6
Patch Set 4 : rebase #Patch Set 5 : test #Patch Set 6 : brianderson's review #Patch Set 7 : rebase #Patch Set 8 : post rebase fix #
Dependent Patchsets: Messages
Total messages: 39 (24 generated)
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||