Surface synchronization: Simplify SurfaceLayer and dependencies

Surface scaling is now determined in SurfaceAggregator and so SurfaceLayer
and SurfaceLayerImpl no longer need to know about SurfaceInfo. This CL
replaces SurfaceLayer::SetPrimarySurfaceInfo with
SurfaceLayer::SetPrimarySurfaceId. ui::Layer::SetShowPrimarySurface takes in a
SurfaceId and frame rect in DIP instead of a SurfaceInfo.

Bug: 672962
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Idb24e7bcb5e905a3131b40f7d5fe67792b9ec695
Reviewed-on: https://chromium-review.googlesource.com/769930
Commit-Queue: Fady Samuel <[email protected]>
Reviewed-by: Scott Violet <[email protected]>
Reviewed-by: Antoine Labour <[email protected]>
Cr-Commit-Position: refs/heads/master@{#517360}
diff --git a/content/renderer/child_frame_compositing_helper.cc b/content/renderer/child_frame_compositing_helper.cc
index 9f918ae..c9d8866 100644
--- a/content/renderer/child_frame_compositing_helper.cc
+++ b/content/renderer/child_frame_compositing_helper.cc
@@ -209,21 +209,6 @@
   web_layer_ = std::move(layer);
 }
 
-void ChildFrameCompositingHelper::CheckSizeAndAdjustLayerProperties(
-    const viz::SurfaceInfo& surface_info,
-    cc::Layer* layer) {
-  if (last_surface_size_in_pixels_ == surface_info.size_in_pixels())
-    return;
-
-  last_surface_size_in_pixels_ = surface_info.size_in_pixels();
-  // The container size is in DIP, so is the layer size.
-  // Buffer size is in physical pixels, so we need to adjust
-  // it by the device scale factor.
-  gfx::Size device_scale_adjusted_size = gfx::ScaleToFlooredSize(
-      surface_info.size_in_pixels(), 1.0f / surface_info.device_scale_factor());
-  layer->SetBounds(device_scale_adjusted_size);
-}
-
 void ChildFrameCompositingHelper::OnContainerDestroy() {
   UpdateWebLayer(nullptr);
 }
@@ -261,18 +246,19 @@
   UpdateWebLayer(std::move(layer));
 }
 
-void ChildFrameCompositingHelper::SetPrimarySurfaceInfo(
-    const viz::SurfaceInfo& surface_info) {
-  if (last_primary_surface_id_ == surface_info.id())
+void ChildFrameCompositingHelper::SetPrimarySurfaceId(
+    const viz::SurfaceId& surface_id,
+    const gfx::Size& frame_size_in_dip) {
+  if (last_primary_surface_id_ == surface_id)
     return;
 
-  last_primary_surface_id_ = surface_info.id();
+  last_primary_surface_id_ = surface_id;
 
   surface_layer_ = cc::SurfaceLayer::Create(surface_reference_factory_);
   surface_layer_->SetMasksToBounds(true);
   surface_layer_->SetDefaultBackgroundColor(SK_ColorTRANSPARENT);
 
-  surface_layer_->SetPrimarySurfaceInfo(surface_info);
+  surface_layer_->SetPrimarySurfaceId(surface_id);
   surface_layer_->SetFallbackSurfaceId(fallback_surface_id_);
 
   std::unique_ptr<cc_blink::WebLayerImpl> layer(
@@ -285,18 +271,19 @@
 
   UpdateVisibility(true);
 
-  CheckSizeAndAdjustLayerProperties(
-      surface_info,
-      static_cast<cc_blink::WebLayerImpl*>(web_layer_.get())->layer());
+  static_cast<cc_blink::WebLayerImpl*>(web_layer_.get())
+      ->layer()
+      ->SetBounds(frame_size_in_dip);
 }
 
-void ChildFrameCompositingHelper::SetFallbackSurfaceInfo(
-    const viz::SurfaceInfo& surface_info,
+void ChildFrameCompositingHelper::SetFallbackSurfaceId(
+    const viz::SurfaceId& surface_id,
+    const gfx::Size& frame_size_in_dip,
     const viz::SurfaceSequence& sequence) {
-  if (fallback_surface_id_ == surface_info.id())
+  if (fallback_surface_id_ == surface_id)
     return;
 
-  fallback_surface_id_ = surface_info.id();
+  fallback_surface_id_ = surface_id;
   // The RWHV creates a destruction dependency on the surface that needs to be
   // satisfied. The reference factory will satisfy it when a new reference has
   // been created.
@@ -313,11 +300,11 @@
   }
 
   if (!surface_layer_) {
-    SetPrimarySurfaceInfo(surface_info);
+    SetPrimarySurfaceId(surface_id, frame_size_in_dip);
     return;
   }
 
-  surface_layer_->SetFallbackSurfaceId(surface_info.id());
+  surface_layer_->SetFallbackSurfaceId(surface_id);
 }
 
 void ChildFrameCompositingHelper::UpdateVisibility(bool visible) {