| Index: Source/core/inspector/InspectorLayerTreeAgent.cpp
|
| diff --git a/Source/core/inspector/InspectorLayerTreeAgent.cpp b/Source/core/inspector/InspectorLayerTreeAgent.cpp
|
| index 1d56a28c3ec98b72066f643086df81a947df14ac..3cbe21efb3222fab65b69e2e5239e5314eac8a61 100644
|
| --- a/Source/core/inspector/InspectorLayerTreeAgent.cpp
|
| +++ b/Source/core/inspector/InspectorLayerTreeAgent.cpp
|
| @@ -152,11 +152,13 @@ void InspectorLayerTreeAgent::layerTreeDidChange()
|
| void InspectorLayerTreeAgent::didPaint(RenderObject* renderer, GraphicsContext*, const LayoutRect& rect)
|
| {
|
| RenderLayer* renderLayer = toRenderLayerModelObject(renderer)->layer();
|
| - CompositedLayerMapping* compositedLayerMapping = renderLayer->compositedLayerMapping();
|
| // Should only happen for FrameView paints when compositing is off. Consider different instrumentation method for that.
|
| - if (!compositedLayerMapping)
|
| + // Note, that this only gets called with the FrameView's RenderView which, if it is composited, only
|
| + // paint into its own backing.
|
| + ASSERT(renderLayer->compositingState() == PaintsIntoOwnBacking || renderLayer->compositingState() == NotComposited);
|
| + if (renderLayer->compositingState() != PaintsIntoOwnBacking)
|
| return;
|
| - GraphicsLayer* graphicsLayer = compositedLayerMapping->mainGraphicsLayer();
|
| + GraphicsLayer* graphicsLayer = renderLayer->compositedLayerMapping()->mainGraphicsLayer();
|
| RefPtr<TypeBuilder::DOM::Rect> domRect = TypeBuilder::DOM::Rect::create()
|
| .setX(rect.x())
|
| .setY(rect.y())
|
| @@ -179,7 +181,11 @@ PassRefPtr<TypeBuilder::Array<TypeBuilder::LayerTree::Layer> > InspectorLayerTre
|
|
|
| void InspectorLayerTreeAgent::buildLayerIdToNodeIdMap(RenderLayer* root, LayerIdToNodeIdMap& layerIdToNodeIdMap)
|
| {
|
| - if (root->compositedLayerMapping()) {
|
| + // The layer-id to node-id map is used later in buildObjectForLayer to map each graphics
|
| + // layer back to its corresponding Node. We only want to map a graphics layer to map back
|
| + // to the Node corresponding to its owning RenderLayer, not some other RenderLayer that
|
| + // paints into that GraphicsLayer.
|
| + if (root->compositingState() == PaintsIntoOwnBacking) {
|
| if (Node* node = root->renderer()->generatingNode()) {
|
| GraphicsLayer* graphicsLayer = root->compositedLayerMapping()->childForSuperlayers();
|
| layerIdToNodeIdMap.set(graphicsLayer->platformLayer()->id(), idForNode(node));
|
|
|