Descriptioncc: If SetDeferCommits(true) happens inside the main frame, abort it.
During the main frame, the embedder may decide it doesn't want to
commit anymore, and call SetDeferCommits(true). By continuing to
commit at this point we will submit state that it did not intend,
which in the case of the ui::Compositor would cause guttering from
resize, for example.
This adds an additional early out to abort commit after the
BeginMainFrame steps, but before UpdateLayers, if SetDeferCommits(true)
happened in the meantime. The abort will DidBeginMainFrame() to be
well paired with WillBeginMainFrame() but does not report DidCommit()
since the commit is aborted and we'll try again later.
R=enne@chromium.org
BUG=704928
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel
Review-Url: https://codereview.chromium.org/2769213006
Cr-Commit-Position: refs/heads/master@{#459775}
Committed: https://chromium.googlesource.com/chromium/src/+/97660d9bcf2f675cae26595987837c4fe67e8d97
Patch Set 1 #Patch Set 2 : defer-inside-mainframe: comments #
Total comments: 2
Dependent Patchsets: Messages
Total messages: 16 (10 generated)
|