| Index: android_webview/browser/browser_view_renderer.cc
|
| diff --git a/android_webview/browser/browser_view_renderer.cc b/android_webview/browser/browser_view_renderer.cc
|
| index 98c45b25568924dc55ce946b151465e4a504beb0..8b083ace04ef4bfaba96914901e0434cf448f134 100644
|
| --- a/android_webview/browser/browser_view_renderer.cc
|
| +++ b/android_webview/browser/browser_view_renderer.cc
|
| @@ -250,11 +250,16 @@ bool BrowserViewRenderer::OnDraw(jobject java_canvas,
|
| }
|
|
|
| bool BrowserViewRenderer::OnDrawHardware(jobject java_canvas) {
|
| + TRACE_EVENT0("android_webview", "BrowserViewRenderer::OnDrawHardware");
|
| if (!compositor_)
|
| return false;
|
|
|
| - if (last_on_draw_global_visible_rect_.IsEmpty())
|
| + if (last_on_draw_global_visible_rect_.IsEmpty()) {
|
| + TRACE_EVENT_INSTANT0("android_webview",
|
| + "EarlyOut_EmptyVisibleRect",
|
| + TRACE_EVENT_SCOPE_THREAD);
|
| return client_->RequestDrawGL(java_canvas, false);
|
| + }
|
|
|
| if (!hardware_enabled_) {
|
| hardware_enabled_ = compositor_->InitializeHwDraw();
|
| @@ -270,6 +275,15 @@ bool BrowserViewRenderer::OnDrawHardware(jobject java_canvas) {
|
| RequestMemoryPolicy(new_policy);
|
| compositor_->SetMemoryPolicy(memory_policy_);
|
|
|
| + if (shared_renderer_state_->HasDrawGLInput()) {
|
| + TRACE_EVENT_INSTANT0("android_webview",
|
| + "EarlyOut_PreviousFrameUnconsumed",
|
| + TRACE_EVENT_SCOPE_THREAD);
|
| + // TODO(boliu): Rename this method. We didn't actually composite here.
|
| + DidComposite();
|
| + return client_->RequestDrawGL(java_canvas, false);
|
| + }
|
| +
|
| scoped_ptr<DrawGLInput> draw_gl_input(new DrawGLInput);
|
| draw_gl_input->scroll_offset = last_on_draw_scroll_offset_;
|
| draw_gl_input->width = width_;
|
| @@ -304,7 +318,6 @@ bool BrowserViewRenderer::OnDrawHardware(jobject java_canvas) {
|
| GlobalTileManager::GetInstance()->DidUse(tile_manager_key_);
|
|
|
| frame->AssignTo(&draw_gl_input->frame);
|
| - ReturnUnusedResource(shared_renderer_state_->PassDrawGLInput());
|
| shared_renderer_state_->SetDrawGLInput(draw_gl_input.Pass());
|
| DidComposite();
|
| return client_->RequestDrawGL(java_canvas, false);
|
|
|