Index: android_webview/browser/hardware_renderer.cc |
diff --git a/android_webview/browser/hardware_renderer.cc b/android_webview/browser/hardware_renderer.cc |
index 4aff9c7ac9bf5a14994e05ea90279e842eec17c1..5e711ff1f35594bfdb4453ed6616da2f95d22017 100644 |
--- a/android_webview/browser/hardware_renderer.cc |
+++ b/android_webview/browser/hardware_renderer.cc |
@@ -140,7 +140,7 @@ void HardwareRenderer::DidBeginMainFrame() { |
void HardwareRenderer::CommitFrame() { |
scroll_offset_ = shared_renderer_state_->GetScrollOffset(); |
- if (committed_frame_.get()) { |
+ if (committed_frame_.get() && !shared_renderer_state_->ForceCommit()) { |
TRACE_EVENT_INSTANT0("android_webview", |
"EarlyOut_PreviousFrameUnconsumed", |
TRACE_EVENT_SCOPE_THREAD); |
@@ -206,6 +206,11 @@ void HardwareRenderer::DrawGL(bool stencil_enabled, |
DLOG(WARNING) << "EGLContextChanged"; |
SetFrameData(); |
+ if (shared_renderer_state_->ForceCommit()) { |
+ CommitFrame(); |
+ SetFrameData(); |
boliu
2014/10/15 18:01:25
Hmm, my guess is it doesn't like having 2 frames s
hush (inactive)
2014/10/15 18:17:30
you committed frame data twice. I don't know what
|
+ } |
+ |
gfx::Transform transform(gfx::Transform::kSkipInitialization); |
transform.matrix().setColMajorf(draw_info->transform); |
transform.Translate(scroll_offset_.x(), scroll_offset_.y()); |