Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(649)

Side by Side Diff: Source/core/inspector/InspectorLayerTreeAgent.cpp

Issue 166273018: Added showing slow scroll rectangles in Layers panel. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: New fixes. Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2012 Apple Inc. All rights reserved. 2 * Copyright (C) 2012 Apple Inc. All rights reserved.
3 * Copyright (C) 2013 Google Inc. All rights reserved. 3 * Copyright (C) 2013 Google Inc. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are 6 * modification, are permitted provided that the following conditions are
7 * met: 7 * met:
8 * 8 *
9 * * Redistributions of source code must retain the above copyright 9 * * Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 } 66 }
67 int layerId; 67 int layerId;
68 RefPtr<GraphicsContextSnapshot> graphicsSnapshot; 68 RefPtr<GraphicsContextSnapshot> graphicsSnapshot;
69 }; 69 };
70 70
71 inline String idForLayer(const GraphicsLayer* graphicsLayer) 71 inline String idForLayer(const GraphicsLayer* graphicsLayer)
72 { 72 {
73 return String::number(graphicsLayer->platformLayer()->id()); 73 return String::number(graphicsLayer->platformLayer()->id());
74 } 74 }
75 75
76 static PassRefPtr<TypeBuilder::LayerTree::ScrollRect> buildScrollRect(const blin k::WebRect& rect, const TypeBuilder::LayerTree::ScrollRect::Type::Enum& type)
77 {
78 RefPtr<TypeBuilder::DOM::Rect> rectObject = TypeBuilder::DOM::Rect::create()
79 .setX(rect.x)
80 .setY(rect.y)
81 .setHeight(rect.height)
82 .setWidth(rect.width);
83 RefPtr<TypeBuilder::LayerTree::ScrollRect> scrollRectObject = TypeBuilder::L ayerTree::ScrollRect::create()
84 .setRect(rectObject.release())
85 .setType(type);
86 return scrollRectObject.release();
87 }
88
89 static PassRefPtr<TypeBuilder::Array<TypeBuilder::LayerTree::ScrollRect> > build ScrollRectsForLayer(GraphicsLayer* graphicsLayer)
90 {
91 RefPtr<TypeBuilder::Array<TypeBuilder::LayerTree::ScrollRect> > scrollRects = TypeBuilder::Array<TypeBuilder::LayerTree::ScrollRect>::create();
92 blink::WebLayer* webLayer = graphicsLayer->platformLayer();
93 for (size_t i = 0; i < webLayer->nonFastScrollableRegion().size(); ++i) {
94 scrollRects->addItem(buildScrollRect(webLayer->nonFastScrollableRegion() [i], TypeBuilder::LayerTree::ScrollRect::Type::RepaintsOnScroll));
95 }
96 for (size_t i = 0; i < webLayer->touchEventHandlerRegion().size(); ++i) {
97 scrollRects->addItem(buildScrollRect(webLayer->touchEventHandlerRegion() [i], TypeBuilder::LayerTree::ScrollRect::Type::TouchEventHandler));
98 }
99 if (webLayer->haveWheelEventHandlers()) {
100 blink::WebRect* webRect = new blink::WebRect(webLayer->position().x, web Layer->position().y, webLayer->bounds().width, webLayer->bounds().height);
caseq 2014/03/11 12:04:09 that's a memory leak. Why do you need a dynamic al
malch 2014/03/11 12:48:49 Done.
101 scrollRects->addItem(buildScrollRect(*webRect, TypeBuilder::LayerTree::S crollRect::Type::WheelEventHandler));
102 }
103 return scrollRects->length() ? scrollRects.release() : nullptr;
104 }
105
76 static PassRefPtr<TypeBuilder::LayerTree::Layer> buildObjectForLayer(GraphicsLay er* graphicsLayer, int nodeId) 106 static PassRefPtr<TypeBuilder::LayerTree::Layer> buildObjectForLayer(GraphicsLay er* graphicsLayer, int nodeId)
77 { 107 {
78 blink::WebLayer* webLayer = graphicsLayer->platformLayer(); 108 blink::WebLayer* webLayer = graphicsLayer->platformLayer();
79 RefPtr<TypeBuilder::LayerTree::Layer> layerObject = TypeBuilder::LayerTree:: Layer::create() 109 RefPtr<TypeBuilder::LayerTree::Layer> layerObject = TypeBuilder::LayerTree:: Layer::create()
80 .setLayerId(idForLayer(graphicsLayer)) 110 .setLayerId(idForLayer(graphicsLayer))
81 .setOffsetX(webLayer->position().x) 111 .setOffsetX(webLayer->position().x)
82 .setOffsetY(webLayer->position().y) 112 .setOffsetY(webLayer->position().y)
83 .setWidth(webLayer->bounds().width) 113 .setWidth(webLayer->bounds().width)
84 .setHeight(webLayer->bounds().height) 114 .setHeight(webLayer->bounds().height)
85 .setPaintCount(graphicsLayer->paintCount()); 115 .setPaintCount(graphicsLayer->paintCount());
(...skipping 14 matching lines...) Expand all
100 transform.toColumnMajorFloatArray(flattenedMatrix); 130 transform.toColumnMajorFloatArray(flattenedMatrix);
101 RefPtr<TypeBuilder::Array<double> > transformArray = TypeBuilder::Array< double>::create(); 131 RefPtr<TypeBuilder::Array<double> > transformArray = TypeBuilder::Array< double>::create();
102 for (size_t i = 0; i < WTF_ARRAY_LENGTH(flattenedMatrix); ++i) 132 for (size_t i = 0; i < WTF_ARRAY_LENGTH(flattenedMatrix); ++i)
103 transformArray->addItem(flattenedMatrix[i]); 133 transformArray->addItem(flattenedMatrix[i]);
104 layerObject->setTransform(transformArray); 134 layerObject->setTransform(transformArray);
105 const FloatPoint3D& anchor = graphicsLayer->anchorPoint(); 135 const FloatPoint3D& anchor = graphicsLayer->anchorPoint();
106 layerObject->setAnchorX(anchor.x()); 136 layerObject->setAnchorX(anchor.x());
107 layerObject->setAnchorY(anchor.y()); 137 layerObject->setAnchorY(anchor.y());
108 layerObject->setAnchorZ(anchor.z()); 138 layerObject->setAnchorZ(anchor.z());
109 } 139 }
140 RefPtr<TypeBuilder::Array<TypeBuilder::LayerTree::ScrollRect> > scrollRects =
141 buildScrollRectsForLayer(graphicsLayer);
caseq 2014/03/11 12:04:09 nit: please don't wrap here, it's well within reas
malch 2014/03/11 12:48:49 Done.
142 if (scrollRects)
143 layerObject->setScrollRects(scrollRects.release());
110 return layerObject; 144 return layerObject;
111 } 145 }
112 146
113 InspectorLayerTreeAgent::InspectorLayerTreeAgent(InspectorDOMAgent* domAgent, Pa ge* page) 147 InspectorLayerTreeAgent::InspectorLayerTreeAgent(InspectorDOMAgent* domAgent, Pa ge* page)
114 : InspectorBaseAgent<InspectorLayerTreeAgent>("LayerTree") 148 : InspectorBaseAgent<InspectorLayerTreeAgent>("LayerTree")
115 , m_frontend(0) 149 , m_frontend(0)
116 , m_page(page) 150 , m_page(page)
117 , m_domAgent(domAgent) 151 , m_domAgent(domAgent)
118 { 152 {
119 } 153 }
(...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after
353 void InspectorLayerTreeAgent::didRemovePageOverlay(const GraphicsLayer* layer) 387 void InspectorLayerTreeAgent::didRemovePageOverlay(const GraphicsLayer* layer)
354 { 388 {
355 size_t index = m_pageOverlayLayerIds.find(layer->platformLayer()->id()); 389 size_t index = m_pageOverlayLayerIds.find(layer->platformLayer()->id());
356 if (index == WTF::kNotFound) 390 if (index == WTF::kNotFound)
357 return; 391 return;
358 m_pageOverlayLayerIds.remove(index); 392 m_pageOverlayLayerIds.remove(index);
359 } 393 }
360 394
361 395
362 } // namespace WebCore 396 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698