Chromium Code Reviews| Index: Source/core/inspector/InspectorLayerTreeAgent.cpp |
| diff --git a/Source/core/inspector/InspectorLayerTreeAgent.cpp b/Source/core/inspector/InspectorLayerTreeAgent.cpp |
| index 55762f82a85252a9ec973787903f0917f7d238f0..cd81d12d32a57c2ec3b2e0c6a394e0cb337c8924 100644 |
| --- a/Source/core/inspector/InspectorLayerTreeAgent.cpp |
| +++ b/Source/core/inspector/InspectorLayerTreeAgent.cpp |
| @@ -73,6 +73,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) |
|
pfeldman
2014/03/04 09:45:59
.release()
malch
2014/03/07 12:42:07
Done.
|
| + .setType(type); |
| + return scrollRectObject; |
|
pfeldman
2014/03/04 09:45:59
return scrollRectObject.release();
malch
2014/03/07 12:42:07
Done.
|
| +} |
| + |
| +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 = new blink::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 : nullptr; |
|
pfeldman
2014/03/04 09:45:59
ditto
malch
2014/03/07 12:42:07
Done.
|
| +} |
| + |
| static PassRefPtr<TypeBuilder::LayerTree::Layer> buildObjectForLayer(GraphicsLayer* graphicsLayer, int nodeId) |
| { |
| blink::WebLayer* webLayer = graphicsLayer->platformLayer(); |
| @@ -107,6 +137,10 @@ 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); |
|
pfeldman
2014/03/04 09:45:59
ditto
malch
2014/03/07 12:42:07
Done.
|
| return layerObject; |
| } |