Index: cc/layers/picture_layer.cc |
diff --git a/cc/layers/picture_layer.cc b/cc/layers/picture_layer.cc |
index 8b8558ce7f4e59654cd85c257b19755ec04c469e..361a5857624a1df3fbdce0338913fb4da0037745 100644 |
--- a/cc/layers/picture_layer.cc |
+++ b/cc/layers/picture_layer.cc |
@@ -21,6 +21,7 @@ PictureLayer::PictureLayer(ContentLayerClient* client) |
: client_(client), |
pile_(make_scoped_refptr(new PicturePile())), |
instrumentation_object_tracker_(id()), |
+ includes_first_paint_invalidation_(false), |
is_mask_(false), |
update_source_frame_number_(-1), |
can_use_lcd_text_last_frame_(can_use_lcd_text()) { |
@@ -56,6 +57,8 @@ void PictureLayer::PushPropertiesTo(LayerImpl* base_layer) { |
// See PictureLayerImpl::PushPropertiesTo for more details. |
layer_impl->invalidation_.Clear(); |
layer_impl->invalidation_.Swap(&pile_invalidation_); |
+ layer_impl->SetIncludesFirstPaintInvalidation( |
+ includes_first_paint_invalidation_); |
layer_impl->pile_ = PicturePileImpl::CreateFromOther(pile_.get()); |
} |
@@ -113,6 +116,19 @@ bool PictureLayer::Update(ResourceUpdateQueue* queue, |
pending_invalidation_.Swap(&pile_invalidation_); |
pending_invalidation_.Clear(); |
+ bool is_tracing; |
+ TRACE_EVENT_CATEGORY_GROUP_ENABLED( |
+ TRACE_DISABLED_BY_DEFAULT("cc.debug") "," TRACE_DISABLED_BY_DEFAULT( |
+ "devtools.timeline.layers"), |
+ &is_tracing); |
+ if (is_tracing || layer_tree_host()->debug_state().ShowHudInfo()) { |
+ includes_first_paint_invalidation_ = false; |
+ if (scoped_refptr<LayerDebugInfo> debug_info = TakeDebugInfo()) { |
+ includes_first_paint_invalidation_ = |
+ debug_info->IncludesFirstPaintInvalidation(); |
+ } |
+ } |
+ |
if (layer_tree_host()->settings().record_full_layer) { |
// Workaround for http://crbug.com/235910 - to retain backwards compat |
// the full page content must always be provided in the picture layer. |