Chromium Code Reviews| 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()); |