summaryrefslogtreecommitdiff
path: root/android_webview
diff options
context:
space:
mode:
authorboliu <boliu@chromium.org>2014-08-28 17:00:38 -0700
committerBo Liu <boliu@google.com>2014-08-28 17:17:31 -0700
commita0301ba7e3af7b14f0be1dfbf052081af5a7dbca (patch)
treefb09c667380e6c8d444cfe63c41a40ecb7af2957 /android_webview
parent8d048359bef2f9db1cf3276de6713fe54734fe2e (diff)
downloadchromium_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.cc9
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() {