Index: Source/core/inspector/InspectorLayerTreeAgent.cpp |
diff --git a/Source/core/inspector/InspectorLayerTreeAgent.cpp b/Source/core/inspector/InspectorLayerTreeAgent.cpp |
index 55762f82a85252a9ec973787903f0917f7d238f0..21479be8813fff75040a159e6d08d7aeb6289208 100644 |
--- a/Source/core/inspector/InspectorLayerTreeAgent.cpp |
+++ b/Source/core/inspector/InspectorLayerTreeAgent.cpp |
@@ -73,6 +73,44 @@ inline String idForLayer(const GraphicsLayer* graphicsLayer) |
return String::number(graphicsLayer->platformLayer()->id()); |
} |
+static void buildRegionObjects(const blink::WebVector<blink::WebRect>& regions, |
pfeldman
2014/02/28 07:43:43
Builders return objects: we have buildObjectFor an
malch
2014/02/28 12:19:57
Done.
|
+ TypeBuilder::Array<TypeBuilder::LayerTree::ScrollRect>& scrollRects, |
+ const TypeBuilder::LayerTree::ScrollRect::Type::Enum& type, |
+ const TypeBuilder::LayerTree::LayerId& layerId) |
pfeldman
2014/02/28 07:43:43
Looks like this is unused.
malch
2014/02/28 12:19:57
Done.
|
+{ |
+ for (size_t i = 0; i < regions.size(); ++i) { |
+ RefPtr<TypeBuilder::DOM::Rect> rectObject = TypeBuilder::DOM::Rect::create() |
+ .setX(regions[i].x) |
+ .setY(regions[i].y) |
+ .setHeight(regions[i].height) |
+ .setWidth(regions[i].width); |
+ RefPtr<TypeBuilder::LayerTree::ScrollRect> regionObject = TypeBuilder::LayerTree::ScrollRect::create() |
+ .setRect(rectObject) |
+ .setType(type); |
+ scrollRects.addItem(regionObject); |
+ } |
+} |
+ |
+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(); |
+ buildRegionObjects(webLayer->nonFastScrollableRegion(), *scrollRects, TypeBuilder::LayerTree::ScrollRect::Type::RepaintsOnScroll, idForLayer(graphicsLayer)); |
+ buildRegionObjects(webLayer->touchEventHandlerRegion(), *scrollRects, TypeBuilder::LayerTree::ScrollRect::Type::TouchEventHandler, idForLayer(graphicsLayer)); |
+ if (webLayer->haveWheelEventHandlers()) { |
+ RefPtr<TypeBuilder::DOM::Rect> rectObject = TypeBuilder::DOM::Rect::create() |
pfeldman
2014/02/28 07:43:43
Then you would be able to reuse builder method her
malch
2014/02/28 12:19:57
Done.
|
+ .setX(webLayer->position().x) |
+ .setY(webLayer->position().y) |
+ .setHeight(webLayer->bounds().height) |
+ .setWidth(webLayer->bounds().width); |
+ RefPtr<TypeBuilder::LayerTree::ScrollRect> regionObject = TypeBuilder::LayerTree::ScrollRect::create() |
+ .setRect(rectObject) |
+ .setType(TypeBuilder::LayerTree::ScrollRect::Type::WheelEventHandler); |
+ scrollRects->addItem(regionObject); |
+ } |
+ return scrollRects->length() ? scrollRects : nullptr; |
+} |
+ |
static PassRefPtr<TypeBuilder::LayerTree::Layer> buildObjectForLayer(GraphicsLayer* graphicsLayer, int nodeId) |
{ |
blink::WebLayer* webLayer = graphicsLayer->platformLayer(); |
@@ -107,6 +145,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(buildScrollRectsForLayer(graphicsLayer)); |
pfeldman
2014/02/28 07:43:43
Why building twice, use scrollRects instead?
Do y
malch
2014/02/28 12:19:57
Done.
|
return layerObject; |
} |
@@ -202,7 +244,8 @@ void InspectorLayerTreeAgent::buildLayerIdToNodeIdMap(RenderLayer* root, LayerId |
} |
} |
-void InspectorLayerTreeAgent::gatherGraphicsLayers(GraphicsLayer* root, HashMap<int, int>& layerIdToNodeIdMap, RefPtr<TypeBuilder::Array<TypeBuilder::LayerTree::Layer> >& layers) |
+void InspectorLayerTreeAgent::gatherGraphicsLayers(GraphicsLayer* root, HashMap<int, int>& layerIdToNodeIdMap, |
+ RefPtr<TypeBuilder::Array<TypeBuilder::LayerTree::Layer> >& layers) |
pfeldman
2014/02/28 07:43:43
no need for new line here.
malch
2014/02/28 12:19:57
Done.
|
{ |
int layerId = root->platformLayer()->id(); |
if (m_pageOverlayLayerIds.find(layerId) != WTF::kNotFound) |