| 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
|
| + // 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_)
|
|
|