| Index: Source/core/inspector/InspectorLayerTreeAgent.cpp
|
| diff --git a/Source/core/inspector/InspectorLayerTreeAgent.cpp b/Source/core/inspector/InspectorLayerTreeAgent.cpp
|
| index 70914c8120cdcea3c583f6f1564e57e447e3e857..4cb298db915db77ca98f88b539e6952f2d308a36 100644
|
| --- a/Source/core/inspector/InspectorLayerTreeAgent.cpp
|
| +++ b/Source/core/inspector/InspectorLayerTreeAgent.cpp
|
| @@ -77,6 +77,36 @@ inline String idForLayer(const GraphicsLayer* graphicsLayer)
|
| return String::number(graphicsLayer->platformLayer()->id());
|
| }
|
|
|
| +static PassRefPtr<TypeBuilder::LayerTree::ScrollRect> buildScrollRect(const blink::WebRect& rect, const TypeBuilder::LayerTree::ScrollRect::Type::Enum& type)
|
| +{
|
| + RefPtr<TypeBuilder::DOM::Rect> rectObject = TypeBuilder::DOM::Rect::create()
|
| + .setX(rect.x)
|
| + .setY(rect.y)
|
| + .setHeight(rect.height)
|
| + .setWidth(rect.width);
|
| + RefPtr<TypeBuilder::LayerTree::ScrollRect> scrollRectObject = TypeBuilder::LayerTree::ScrollRect::create()
|
| + .setRect(rectObject.release())
|
| + .setType(type);
|
| + return scrollRectObject.release();
|
| +}
|
| +
|
| +static PassRefPtr<TypeBuilder::Array<TypeBuilder::LayerTree::ScrollRect> > buildScrollRectsForLayer(GraphicsLayer* graphicsLayer)
|
| +{
|
| + RefPtr<TypeBuilder::Array<TypeBuilder::LayerTree::ScrollRect> > scrollRects = TypeBuilder::Array<TypeBuilder::LayerTree::ScrollRect>::create();
|
| + blink::WebLayer* webLayer = graphicsLayer->platformLayer();
|
| + for (size_t i = 0; i < webLayer->nonFastScrollableRegion().size(); ++i) {
|
| + scrollRects->addItem(buildScrollRect(webLayer->nonFastScrollableRegion()[i], TypeBuilder::LayerTree::ScrollRect::Type::RepaintsOnScroll));
|
| + }
|
| + for (size_t i = 0; i < webLayer->touchEventHandlerRegion().size(); ++i) {
|
| + scrollRects->addItem(buildScrollRect(webLayer->touchEventHandlerRegion()[i], TypeBuilder::LayerTree::ScrollRect::Type::TouchEventHandler));
|
| + }
|
| + if (webLayer->haveWheelEventHandlers()) {
|
| + blink::WebRect webRect(webLayer->position().x, webLayer->position().y, webLayer->bounds().width, webLayer->bounds().height);
|
| + scrollRects->addItem(buildScrollRect(webRect, TypeBuilder::LayerTree::ScrollRect::Type::WheelEventHandler));
|
| + }
|
| + return scrollRects->length() ? scrollRects.release() : nullptr;
|
| +}
|
| +
|
| static PassRefPtr<TypeBuilder::LayerTree::Layer> buildObjectForLayer(GraphicsLayer* graphicsLayer, BackendNodeId nodeId)
|
| {
|
| blink::WebLayer* webLayer = graphicsLayer->platformLayer();
|
| @@ -111,6 +141,9 @@ static PassRefPtr<TypeBuilder::LayerTree::Layer> buildObjectForLayer(GraphicsLay
|
| layerObject->setAnchorY(anchor.y());
|
| layerObject->setAnchorZ(anchor.z());
|
| }
|
| + RefPtr<TypeBuilder::Array<TypeBuilder::LayerTree::ScrollRect> > scrollRects = buildScrollRectsForLayer(graphicsLayer);
|
| + if (scrollRects)
|
| + layerObject->setScrollRects(scrollRects.release());
|
| return layerObject;
|
| }
|
|
|
| @@ -185,8 +218,8 @@ PassRefPtr<TypeBuilder::Array<TypeBuilder::LayerTree::Layer> > InspectorLayerTre
|
| ASSERT(!compositor->compositingLayersNeedRebuild());
|
|
|
| LayerIdToNodeIdMap layerIdToNodeIdMap;
|
| - buildLayerIdToNodeIdMap(compositor->rootRenderLayer(), nodeGroup, layerIdToNodeIdMap);
|
| RefPtr<TypeBuilder::Array<TypeBuilder::LayerTree::Layer> > layers = TypeBuilder::Array<TypeBuilder::LayerTree::Layer>::create();
|
| + buildLayerIdToNodeIdMap(compositor->rootRenderLayer(), nodeGroup, layerIdToNodeIdMap);
|
| gatherGraphicsLayers(compositor->rootGraphicsLayer(), layerIdToNodeIdMap, layers);
|
| return layers.release();
|
| }
|
|
|