Chromium Code Reviews| Index: content/browser/renderer_host/render_widget_host_view_android.cc |
| diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/content/browser/renderer_host/render_widget_host_view_android.cc |
| index 1597e00b40a6faf85ce01de466303f514f2d404c..954db8fac4403ca1660f570365f4dba6fd9e1d49 100644 |
| --- a/content/browser/renderer_host/render_widget_host_view_android.cc |
| +++ b/content/browser/renderer_host/render_widget_host_view_android.cc |
| @@ -504,6 +504,22 @@ void RenderWidgetHostViewAndroid::OnAcceleratedCompositingStateChange() { |
| void RenderWidgetHostViewAndroid::OnSwapCompositorFrame( |
| scoped_ptr<cc::CompositorFrame> frame) { |
| + // Always let ContentViewCore know about the new frame first, so it can decide |
|
Sami
2013/04/16 09:44:21
Should this be after the early-out below?
no sievers
2013/04/16 16:06:32
ContentViewCoreImpl has these UpdateFrameInfo call
Sami
2013/04/16 16:19:21
Ah, gotcha. We still need to support the SurfaceTe
|
| + // to schedule a Draw immediately when it sees the texture layer invalidation. |
| + if (content_view_core_) { |
| + // All offsets and sizes are in CSS pixels. |
| + content_view_core_->UpdateFrameInfo( |
| + frame->metadata.root_scroll_offset, |
| + frame->metadata.page_scale_factor, |
| + gfx::Vector2dF(frame->metadata.min_page_scale_factor, |
| + frame->metadata.max_page_scale_factor), |
| + frame->metadata.root_layer_size, |
| + frame->metadata.viewport_size, |
| + frame->metadata.location_bar_offset, |
| + frame->metadata.location_bar_content_translation, |
| + frame->metadata.overdraw_bottom_height); |
| + } |
| + |
| if (!frame->gl_frame_data || frame->gl_frame_data->mailbox.IsZero()) |
| return; |
| @@ -585,12 +601,6 @@ void RenderWidgetHostViewAndroid::BuffersSwapped( |
| ImageTransportFactoryAndroid::GetInstance()->AcquireTexture( |
| texture_id_in_layer_, mailbox.name); |
| - // We need to tell ContentViewCore about the new frame before calling |
| - // setNeedsDisplay() below so that it has the needed information schedule the |
| - // next compositor frame. |
| - if (content_view_core_) |
| - content_view_core_->DidProduceRendererFrame(); |
| - |
| texture_layer_->SetNeedsDisplay(); |
| texture_layer_->SetBounds(gfx::Size(content_size.width(), |
| content_size.height())); |
| @@ -745,24 +755,6 @@ SkColor RenderWidgetHostViewAndroid::GetCachedBackgroundColor() const { |
| return cached_background_color_; |
| } |
| -void RenderWidgetHostViewAndroid::UpdateFrameInfo( |
| - const gfx::Vector2dF& scroll_offset, |
| - float page_scale_factor, |
| - const gfx::Vector2dF& page_scale_factor_limits, |
| - const gfx::SizeF& content_size, |
| - const gfx::SizeF& viewport_size, |
| - const gfx::Vector2dF& controls_offset, |
| - const gfx::Vector2dF& content_offset, |
| - float overdraw_bottom_height) { |
| - if (content_view_core_) { |
| - // All offsets and sizes are in CSS pixels. |
| - content_view_core_->UpdateFrameInfo( |
| - scroll_offset, page_scale_factor, page_scale_factor_limits, |
| - content_size, viewport_size, controls_offset, content_offset, |
| - overdraw_bottom_height); |
| - } |
| -} |
| - |
| void RenderWidgetHostViewAndroid::SetContentViewCore( |
| ContentViewCoreImpl* content_view_core) { |
| if (content_view_core_ && is_layer_attached_) |