| Index: third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp
|
| diff --git a/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp b/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp
|
| index 3db6fc0f2883d23c83dddc6c373dae20bbab3318..0e38a13cb0112b9985629e5e04c18b35d62462a5 100644
|
| --- a/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp
|
| +++ b/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp
|
| @@ -62,6 +62,13 @@ static std::unique_ptr<JSONArray> sizeAsJSONArray(const T& size) {
|
| return array;
|
| }
|
|
|
| +// cc property trees make use of a sequence number to identify when tree
|
| +// topology changes. For now we naively increment the sequence number each time
|
| +// we update the property trees. We should explore optimizing our management of
|
| +// the sequence number through the use of a dirty bit or similar. See
|
| +// http://crbug.com/692842#c4.
|
| +static int sPropertyTreeSequenceNumber = 1;
|
| +
|
| class PaintArtifactCompositor::ContentLayerClientImpl
|
| : public cc::ContentLayerClient {
|
| WTF_MAKE_NONCOPYABLE(ContentLayerClientImpl);
|
| @@ -696,11 +703,12 @@ void PaintArtifactCompositor::update(
|
| m_extraDataForTesting = WTF::wrapUnique(new ExtraDataForTesting);
|
|
|
| m_rootLayer->RemoveAllChildren();
|
| - m_rootLayer->set_property_tree_sequence_number(
|
| - PropertyTreeManager::kPropertyTreeSequenceNumber);
|
| +
|
| + m_rootLayer->set_property_tree_sequence_number(sPropertyTreeSequenceNumber);
|
|
|
| PropertyTreeManager propertyTreeManager(*layerTreeHost->property_trees(),
|
| - m_rootLayer.get());
|
| + m_rootLayer.get(),
|
| + sPropertyTreeSequenceNumber);
|
|
|
| Vector<PendingLayer, 0> pendingLayers;
|
| collectPendingLayers(paintArtifact, pendingLayers, geometryMapper);
|
| @@ -725,8 +733,7 @@ void PaintArtifactCompositor::update(
|
| layer->SetElementId(pendingLayer.propertyTreeState.compositorElementId());
|
|
|
| m_rootLayer->AddChild(layer);
|
| - layer->set_property_tree_sequence_number(
|
| - PropertyTreeManager::kPropertyTreeSequenceNumber);
|
| + layer->set_property_tree_sequence_number(sPropertyTreeSequenceNumber);
|
| layer->SetTransformTreeIndex(transformId);
|
| layer->SetClipTreeIndex(clipId);
|
| layer->SetEffectTreeIndex(effectId);
|
| @@ -742,9 +749,11 @@ void PaintArtifactCompositor::update(
|
|
|
| // Mark the property trees as having been rebuilt.
|
| layerTreeHost->property_trees()->sequence_number =
|
| - PropertyTreeManager::kPropertyTreeSequenceNumber;
|
| + sPropertyTreeSequenceNumber;
|
| layerTreeHost->property_trees()->needs_rebuild = false;
|
| layerTreeHost->property_trees()->ResetCachedData();
|
| +
|
| + sPropertyTreeSequenceNumber++;
|
| }
|
|
|
| #ifndef NDEBUG
|
|
|