| Index: cc/trees/layer_tree_impl.h | 
| diff --git a/cc/trees/layer_tree_impl.h b/cc/trees/layer_tree_impl.h | 
| index ccff3c2447bfcb393ab6ae4e38a813d4c3dec2b4..3bf4e0ada321a3d7cee5b52efc0edf253ab695db 100644 | 
| --- a/cc/trees/layer_tree_impl.h | 
| +++ b/cc/trees/layer_tree_impl.h | 
| @@ -168,6 +168,7 @@ class CC_EXPORT LayerTreeImpl { | 
|  | 
| void PushPropertyTreesTo(LayerTreeImpl* tree_impl); | 
| void PushPropertiesTo(LayerTreeImpl* tree_impl); | 
| +  void PushSurfaceIdsTo(LayerTreeImpl* tree_impl); | 
|  | 
| void MoveChangeTrackingToLayers(); | 
|  | 
| @@ -330,6 +331,11 @@ class CC_EXPORT LayerTreeImpl { | 
| void set_needs_full_tree_sync(bool needs) { needs_full_tree_sync_ = needs; } | 
| bool needs_full_tree_sync() const { return needs_full_tree_sync_; } | 
|  | 
| +  bool needs_surface_ids_sync() const { return needs_surface_ids_sync_; } | 
| +  void set_needs_surface_ids_sync(bool needs_surface_ids_sync) { | 
| +    needs_surface_ids_sync_ = needs_surface_ids_sync; | 
| +  } | 
| + | 
| void ForceRedrawNextActivation() { next_activation_forces_redraw_ = true; } | 
|  | 
| void set_has_ever_been_drawn(bool has_drawn) { | 
| @@ -359,6 +365,10 @@ class CC_EXPORT LayerTreeImpl { | 
| void AddToElementMap(LayerImpl* layer); | 
| void RemoveFromElementMap(LayerImpl* layer); | 
|  | 
| +  void SetSurfaceLayerIds(const base::flat_set<SurfaceId>& surface_layer_ids); | 
| +  const base::flat_set<SurfaceId>& SurfaceLayerIds() const; | 
| +  void ClearSurfaceLayerIds(); | 
| + | 
| void AddLayerShouldPushProperties(LayerImpl* layer); | 
| void RemoveLayerShouldPushProperties(LayerImpl* layer); | 
| std::unordered_set<LayerImpl*>& LayersThatShouldPushProperties(); | 
| @@ -445,10 +455,6 @@ class CC_EXPORT LayerTreeImpl { | 
| void RegisterScrollLayer(LayerImpl* layer); | 
| void UnregisterScrollLayer(LayerImpl* layer); | 
|  | 
| -  void AddSurfaceLayer(LayerImpl* layer); | 
| -  void RemoveSurfaceLayer(LayerImpl* layer); | 
| -  const LayerImplList& SurfaceLayers() const { return surface_layers_; } | 
| - | 
| LayerImpl* FindFirstScrollingLayerOrDrawnScrollbarThatIsHitByPoint( | 
| const gfx::PointF& screen_space_point); | 
|  | 
| @@ -588,7 +594,8 @@ class CC_EXPORT LayerTreeImpl { | 
| element_id_to_scrollbar_layer_ids_; | 
|  | 
| std::vector<PictureLayerImpl*> picture_layers_; | 
| -  LayerImplList surface_layers_; | 
| + | 
| +  base::flat_set<SurfaceId> surface_layer_ids_; | 
|  | 
| // List of render surfaces for the most recently prepared frame. | 
| RenderSurfaceList render_surface_list_; | 
| @@ -603,6 +610,8 @@ class CC_EXPORT LayerTreeImpl { | 
| // structural differences relative to the active tree. | 
| bool needs_full_tree_sync_; | 
|  | 
| +  bool needs_surface_ids_sync_; | 
| + | 
| bool next_activation_forces_redraw_; | 
|  | 
| bool has_ever_been_drawn_; | 
|  |