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

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

Issue 336433003: Clobber frame_data->device_scale_factor to 1 on Android. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove readback scale, add other crbug Created 6 years, 6 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
« no previous file with comments | « android_webview/browser/hardware_renderer.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 644343df3754e8b8d962c298eb860135033e7536..57ddb3ddb37997dee54d8cd352c9ce3039f8fc53 100644
--- a/content/browser/renderer_host/render_widget_host_view_android.cc
+++ b/content/browser/renderer_host/render_widget_host_view_android.cc
@@ -692,9 +692,6 @@ void RenderWidgetHostViewAndroid::CopyFromCompositingSurface(
delegated_layer->SetHideLayerAndSubtree(true);
delegated_layer->SetIsDrawable(true);
delegated_layer->SetContentsOpaque(true);
- gfx::Transform layer_scale(
- device_scale_factor, 0.f, 0.f, device_scale_factor, 0.f, 0.f);
- delegated_layer->SetTransform(layer_scale);
compositor->AttachLayerForReadback(delegated_layer);
readback_layer = delegated_layer;
@@ -794,6 +791,14 @@ void RenderWidgetHostViewAndroid::SwapDelegatedFrame(
last_output_surface_id_ = output_surface_id;
}
+ // DelegatedRendererLayerImpl applies the inverse device_scale_factor of the
+ // renderer frame, assuming that the browser compositor will scale
+ // it back up to device scale. But on Android we put our browser layers in
+ // physical pixels and set our browser CC device_scale_factor to 1, so this
+ // suppresses the transform. This line may need to be removed when fixing
+ // http://crbug.com/384134 or http://crbug.com/310763
+ frame_data->device_scale_factor = 1.0f;
+
if (!has_content) {
DestroyDelegatedContent();
} else {
@@ -818,19 +823,6 @@ void RenderWidgetHostViewAndroid::SwapDelegatedFrame(
layer_->SetContentsOpaque(true);
layer_->SetBounds(content_size_in_layer_);
layer_->SetNeedsDisplay();
- // DelegatedRendererLayer scales the frame data from physical space to DIPs
- // by inverting the frame's device scale factor, assuming that the browser
- // compositor will map from DIPs back to physical pixels using its own
- // device scale factor. However, the Android browser compositor always uses
- // a device scale factor of 1.0, so we have to transform the delegated
- // layer by the device scale to get it into the same physical pixel space as
- // the rest of the UI.
- const gfx::Display& display =
- gfx::Screen::GetNativeScreen()->GetPrimaryDisplay();
- float device_scale_factor = display.device_scale_factor();
- gfx::Transform layer_scale(
- device_scale_factor, 0.f, 0.f, device_scale_factor, 0.f, 0.f);
- layer_->SetTransform(layer_scale);
}
base::Closure ack_callback =
« no previous file with comments | « android_webview/browser/hardware_renderer.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698