diff options
author | boliu <boliu@chromium.org> | 2014-08-28 17:00:38 -0700 |
---|---|---|
committer | Bo Liu <boliu@google.com> | 2014-08-28 17:17:31 -0700 |
commit | a0301ba7e3af7b14f0be1dfbf052081af5a7dbca (patch) | |
tree | fb09c667380e6c8d444cfe63c41a40ecb7af2957 /android_webview | |
parent | 8d048359bef2f9db1cf3276de6713fe54734fe2e (diff) | |
download | chromium_org-a0301ba7e3af7b14f0be1dfbf052081af5a7dbca.tar.gz |
Cherry-pick: aw: Ensure fallback tick unsets |block_invalidates_|
Clean cherry-pick of chromium
crrev.com/d3ba7205b5a0c9154b91357c8795e772833fa798
BUG: 17111986
Original description:
Currently, if |compositor_needs_continuous_invalidate_| is unset before
PostFallbackTick or FallbackTickFired, then the fallback ticks are
cancelled, but we never unset |block_invalidates_|, which will block
invalidates indefinitely.
Fix is simply always unset |block_invalidates_| even if we skip
the fallback tick.
Change-Id: I8bf65ae614a5ac697d5bc1b62c7cd11fbbd16cad
Diffstat (limited to 'android_webview')
-rw-r--r-- | android_webview/browser/browser_view_renderer.cc | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/android_webview/browser/browser_view_renderer.cc b/android_webview/browser/browser_view_renderer.cc index f08a564600..a7362187ac 100644 --- a/android_webview/browser/browser_view_renderer.cc +++ b/android_webview/browser/browser_view_renderer.cc @@ -711,6 +711,9 @@ void BrowserViewRenderer::PostFallbackTick() { FROM_HERE, fallback_tick_fired_.callback(), base::TimeDelta::FromMilliseconds(kFallbackTickTimeoutInMilliseconds)); + } else { + // Pretend we just composited to unblock further invalidates. + DidComposite(); } } @@ -723,8 +726,12 @@ void BrowserViewRenderer::FallbackTickFired() { // This should only be called if OnDraw or DrawGL did not come in time, which // means block_invalidates_ must still be true. DCHECK(block_invalidates_); - if (compositor_needs_continuous_invalidate_ && compositor_) + if (compositor_needs_continuous_invalidate_ && compositor_) { ForceFakeCompositeSW(); + } else { + // Pretend we just composited to unblock further invalidates. + DidComposite(); + } } void BrowserViewRenderer::ForceFakeCompositeSW() { |