cc: Call modify tile priorities once per UpdateTiles/DidBecomeActive.

Currently, we call DidModifyTilePriorities for every layer that updates
tiles or activates. This patch reduces the number of these calls.

R=danakj

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

Cr-Commit-Position: refs/heads/master@{#309728}
diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc
index 703c37b4..9a76ad8 100644
--- a/cc/trees/layer_tree_impl.cc
+++ b/cc/trees/layer_tree_impl.cc
@@ -560,6 +560,7 @@
     typedef LayerIterator<LayerImpl> LayerIteratorType;
     LayerIteratorType end = LayerIteratorType::End(&render_surface_layer_list_);
     size_t layers_updated_count = 0;
+    bool tile_priorities_updated = false;
     for (LayerIteratorType it =
              LayerIteratorType::Begin(&render_surface_layer_list_);
          it != end;
@@ -574,8 +575,8 @@
                             : Occlusion();
 
       if (it.represents_itself()) {
-        layer->UpdateTiles(occlusion_in_content_space,
-                           resourceless_software_draw);
+        tile_priorities_updated |= layer->UpdateTiles(
+            occlusion_in_content_space, resourceless_software_draw);
         ++layers_updated_count;
       }
 
@@ -586,13 +587,14 @@
       }
 
       if (layer->mask_layer()) {
-        layer->mask_layer()->UpdateTiles(occlusion_in_content_space,
-                                         resourceless_software_draw);
+        tile_priorities_updated |= layer->mask_layer()->UpdateTiles(
+            occlusion_in_content_space, resourceless_software_draw);
         ++layers_updated_count;
       }
       if (layer->replica_layer() && layer->replica_layer()->mask_layer()) {
-        layer->replica_layer()->mask_layer()->UpdateTiles(
-            occlusion_in_content_space, resourceless_software_draw);
+        tile_priorities_updated |=
+            layer->replica_layer()->mask_layer()->UpdateTiles(
+                occlusion_in_content_space, resourceless_software_draw);
         ++layers_updated_count;
       }
 
@@ -600,6 +602,9 @@
         occlusion_tracker->LeaveLayer(it);
     }
 
+    if (tile_priorities_updated)
+      DidModifyTilePriorities();
+
     TRACE_EVENT_END1("cc", "LayerTreeImpl::UpdateTilePriorities",
                      "layers_updated_count", layers_updated_count);
   }