Implement HiDPI and pinch-zoom scaling of filter params

This change implements HiDPI scaling of filter params in CC. It also fixes content scaling of filter params (e.g.,
with -webkit-transform: scale(X)) as well as pinch-zoom scaling.

This code is mostly from http://crrev.com/191123002
   "Implement hidpi and pinch-zoom scaling of filter params in cc"
and replaces http://crrev.com/317663005
   "Scale the ALPHA_THRESHOLD filter's region based on the device scale factor"
because this fixes all filters rather than just the AlphaThresholdFilter.

BUG=376532, 281516, 281518, 349493
[email protected], [email protected], [email protected], [email protected]

Review URL: https://codereview.chromium.org/394193003

Cr-Commit-Position: refs/heads/master@{#288436}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@288436 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/cc/layers/render_surface_impl.cc b/cc/layers/render_surface_impl.cc
index 04a4da4..4ac76f4 100644
--- a/cc/layers/render_surface_impl.cc
+++ b/cc/layers/render_surface_impl.cc
@@ -224,6 +224,12 @@
   gfx::Rect contents_changed_since_last_frame =
       ContentsChanged() ? content_rect_ : gfx::Rect();
 
+  DCHECK(owning_layer_->draw_properties().target_space_transform.IsScale2d());
+  gfx::Vector2dF owning_layer_to_target_scale =
+      owning_layer_->draw_properties().target_space_transform.Scale2d();
+  owning_layer_to_target_scale.Scale(owning_layer_->contents_scale_x(),
+                                     owning_layer_->contents_scale_y());
+
   RenderPassDrawQuad* quad =
       render_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>();
   quad->SetNew(shared_quad_state,
@@ -235,6 +241,7 @@
                contents_changed_since_last_frame,
                mask_uv_rect,
                owning_layer_->filters(),
+               owning_layer_to_target_scale,
                owning_layer_->background_filters());
 }