sync compositor: Keep draw after ComputeScroll synchronous

Async draw will asynchronously send scroll updates that happen between
BeginFrame (which is synchronous) and Draw to the UI thread. Although
the frame is synchronously delivered to the render thread with the frame
future.

The problem with any such scroll is that any children of webview is
scrolled according to the position of the webview will appear to be out
of sync with webview content itself.

THere are two sources of such scrolls:
1) ComputeScroll, which only happen during fling animations
2) Blink main scroll being committed/activated.

This CL fixes 1) by making draws after ComputeScroll always synchronous.
Could reduce this further by checking of webview actually has children.
But this CL is good enough to ship.

Case 2) is generally rarer. In theory, commits should not happen between
BeginFrame and Draw, but webview can't make this guarantee due to other
constraints.

BUG=636164

Review-Url: https://codereview.chromium.org/2457333002
Cr-Commit-Position: refs/heads/master@{#428734}
2 files changed