Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(96)

Unified Diff: content/browser/renderer_host/render_widget_host_view_android.cc

Issue 14210004: Consolidate UpdateFrameInfo and SwapCompositorFrame. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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_)

Powered by Google App Engine
This is Rietveld 408576698