Diff
Modified: trunk/Source/WebCore/ChangeLog (137107 => 137108)
--- trunk/Source/WebCore/ChangeLog 2012-12-10 05:39:08 UTC (rev 137107)
+++ trunk/Source/WebCore/ChangeLog 2012-12-10 06:16:45 UTC (rev 137108)
@@ -1,3 +1,87 @@
+2012-12-09 Ilya Tikhonovsky <[email protected]>
+
+ Native Memory Instrumentation: instrument a part of RenderObject class tree.
+ https://bugs.webkit.org/show_bug.cgi?id=103564
+
+ Reviewed by Eric Seidel.
+
+ Many RenderObject descendants have OwnPtrs and RefPtrs members.
+ Looks like we have to instrument all the RenderObject classes and visit
+ all the render objects instead of counting entire render arena memory.
+
+ * WebCore.exp.in:
+ * dom/Node.cpp:
+ (WebCore::Node::reportMemoryUsage):
+ * dom/WebCoreMemoryInstrumentation.cpp:
+ (WebCore):
+ * inspector/InspectorMemoryAgent.cpp:
+ (WebCore::reportRenderTreeInfo):
+ (WebCore):
+ * platform/PlatformMemoryInstrumentation.cpp:
+ (WebCore):
+ * platform/PlatformMemoryInstrumentation.h:
+ (PlatformMemoryTypes):
+ * platform/graphics/GraphicsLayer.cpp:
+ (WebCore::GraphicsLayer::reportMemoryUsage):
+ (WebCore):
+ * platform/graphics/GraphicsLayer.h:
+ (GraphicsLayer):
+ * platform/graphics/chromium/GraphicsLayerChromium.cpp:
+ (WebCore::GraphicsLayerChromium::reportMemoryUsage):
+ (WebCore):
+ * platform/graphics/chromium/GraphicsLayerChromium.h:
+ (GraphicsLayerChromium):
+ * rendering/RenderBlock.cpp:
+ (WebCore::RenderBlock::reportMemoryUsage):
+ (WebCore):
+ * rendering/RenderBlock.h:
+ (RenderBlock):
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBox::reportMemoryUsage):
+ (WebCore):
+ * rendering/RenderBox.h:
+ (RenderBox):
+ * rendering/RenderInline.cpp:
+ (WebCore::RenderInline::reportMemoryUsage):
+ (WebCore):
+ * rendering/RenderInline.h:
+ (RenderInline):
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::reportMemoryUsage):
+ (WebCore):
+ * rendering/RenderLayer.h:
+ (RenderLayer):
+ * rendering/RenderLayerBacking.cpp:
+ (WebCore::RenderLayerBacking::reportMemoryUsage):
+ (WebCore):
+ * rendering/RenderLayerBacking.h:
+ (RenderLayerBacking):
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::reportMemoryUsage):
+ (WebCore):
+ * rendering/RenderLayerCompositor.h:
+ (RenderLayerCompositor):
+ * rendering/RenderLayerModelObject.cpp:
+ (WebCore::RenderLayerModelObject::reportMemoryUsage):
+ (WebCore):
+ * rendering/RenderLayerModelObject.h:
+ (RenderLayerModelObject):
+ * rendering/RenderObject.cpp:
+ (WebCore::RenderObject::reportMemoryUsage):
+ (WebCore):
+ * rendering/RenderObject.h:
+ (RenderObject):
+ * rendering/RenderText.cpp:
+ (WebCore::RenderText::reportMemoryUsage):
+ (WebCore):
+ * rendering/RenderText.h:
+ (RenderText):
+ * rendering/RenderView.cpp:
+ (WebCore::RenderView::reportMemoryUsage):
+ (WebCore):
+ * rendering/RenderView.h:
+ (RenderView):
+
2012-12-09 Ryosuke Niwa <[email protected]>
REGRESSION (r137003): failures in MicroData tests on EFL, GTK
Modified: trunk/Source/WebCore/WebCore.exp.in (137107 => 137108)
--- trunk/Source/WebCore/WebCore.exp.in 2012-12-10 05:39:08 UTC (rev 137107)
+++ trunk/Source/WebCore/WebCore.exp.in 2012-12-10 06:16:45 UTC (rev 137108)
@@ -84,6 +84,7 @@
__ZNK7WebCore10ShadowRoot17hasContentElementEv
__ZNK7WebCore10ShadowRoot18countElementShadowEv
__ZNK7WebCore10ShadowRoot23hasShadowInsertionPointEv
+__ZNK7WebCore14ScrollableArea17reportMemoryUsageEPN3WTF16MemoryObjectInfoE
__ZN7WebCore10ShadowRoot6createEPNS_7ElementERi
__ZN7WebCore10deleteFileERKN3WTF6StringE
__ZN7WebCore10setCookiesEPNS_8DocumentERKNS_4KURLERKN3WTF6StringE
@@ -1206,6 +1207,7 @@
__ZNK7WebCore13HitTestResult5imageEv
__ZNK7WebCore13HitTestResult5titleERNS_13TextDirectionE
__ZNK7WebCore13HitTestResult9imageRectEv
+__ZNK7WebCore13GraphicsLayer17reportMemoryUsageEPN3WTF16MemoryObjectInfoE
__ZNK7WebCore13ResourceError7cfErrorEv
__ZNK7WebCore13ResourceError7nsErrorEv
__ZNK7WebCore13ResourceErrorcvP7NSErrorEv
Modified: trunk/Source/WebCore/dom/Node.cpp (137107 => 137108)
--- trunk/Source/WebCore/dom/Node.cpp 2012-12-10 05:39:08 UTC (rev 137107)
+++ trunk/Source/WebCore/dom/Node.cpp 2012-12-10 06:16:45 UTC (rev 137108)
@@ -2729,8 +2729,7 @@
info.addMember(m_document);
info.addMember(m_next);
info.addMember(m_previous);
- if (RenderObject* renderer = this->renderer())
- info.addMember(renderer->style());
+ info.addMember(this->renderer());
if (hasRareData())
info.addMember(rareData());
}
Modified: trunk/Source/WebCore/inspector/InspectorMemoryAgent.cpp (137107 => 137108)
--- trunk/Source/WebCore/inspector/InspectorMemoryAgent.cpp 2012-12-10 05:39:08 UTC (rev 137107)
+++ trunk/Source/WebCore/inspector/InspectorMemoryAgent.cpp 2012-12-10 06:16:45 UTC (rev 137108)
@@ -85,6 +85,14 @@
{
m_sizesMap = m_client->sizesMap();
+ // FIXME: We filter out Rendering type because the coverage is not good enough at the moment
+ // and report RenderArena size instead.
+ for (TypeNameToSizeMap::iterator i = m_sizesMap.begin(); i != m_sizesMap.end(); ++i) {
+ if (i->key == PlatformMemoryTypes::Rendering) {
+ m_sizesMap.remove(i);
+ break;
+ }
+ }
Vector<String> objectTypes;
objectTypes.appendRange(m_sizesMap.keys().begin(), m_sizesMap.keys().end());
Modified: trunk/Source/WebCore/platform/PlatformMemoryInstrumentation.cpp (137107 => 137108)
--- trunk/Source/WebCore/platform/PlatformMemoryInstrumentation.cpp 2012-12-10 05:39:08 UTC (rev 137107)
+++ trunk/Source/WebCore/platform/PlatformMemoryInstrumentation.cpp 2012-12-10 06:16:45 UTC (rev 137108)
@@ -39,6 +39,8 @@
MemoryObjectType PlatformMemoryTypes::Image = "Page.Image";
MemoryObjectType PlatformMemoryTypes::Loader = "Page.Loader";
+MemoryObjectType PlatformMemoryTypes::Rendering = "Page.Rendering";
+MemoryObjectType PlatformMemoryTypes::Layers = "Page.Rendering.Layers";
MemoryObjectType PlatformMemoryTypes::Audio = "Page.Audio";
MemoryObjectType PlatformMemoryTypes::AudioSharedData = "Page.Audio.SharedData";
Modified: trunk/Source/WebCore/platform/PlatformMemoryInstrumentation.h (137107 => 137108)
--- trunk/Source/WebCore/platform/PlatformMemoryInstrumentation.h 2012-12-10 05:39:08 UTC (rev 137107)
+++ trunk/Source/WebCore/platform/PlatformMemoryInstrumentation.h 2012-12-10 06:16:45 UTC (rev 137108)
@@ -43,6 +43,8 @@
public:
static MemoryObjectType Image;
static MemoryObjectType Loader;
+ static MemoryObjectType Rendering;
+ static MemoryObjectType Layers;
static MemoryObjectType Audio;
static MemoryObjectType AudioSharedData;
Modified: trunk/Source/WebCore/platform/ScrollableArea.cpp (137107 => 137108)
--- trunk/Source/WebCore/platform/ScrollableArea.cpp 2012-12-10 05:39:08 UTC (rev 137107)
+++ trunk/Source/WebCore/platform/ScrollableArea.cpp 2012-12-10 06:16:45 UTC (rev 137108)
@@ -35,6 +35,7 @@
#include "GraphicsContext.h"
#include "GraphicsLayer.h"
#include "FloatPoint.h"
+#include "PlatformMemoryInstrumentation.h"
#include "PlatformWheelEvent.h"
#include "ScrollAnimator.h"
#include "ScrollbarTheme.h"
@@ -420,4 +421,10 @@
std::max(0, visibleHeight() + horizontalScrollbarHeight));
}
+void ScrollableArea::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const
+{
+ MemoryClassInfo info(memoryObjectInfo, this);
+ info.addMember(m_scrollAnimator);
+}
+
} // namespace WebCore
Modified: trunk/Source/WebCore/platform/ScrollableArea.h (137107 => 137108)
--- trunk/Source/WebCore/platform/ScrollableArea.h 2012-12-10 05:39:08 UTC (rev 137107)
+++ trunk/Source/WebCore/platform/ScrollableArea.h 2012-12-10 06:16:45 UTC (rev 137108)
@@ -174,6 +174,8 @@
virtual bool usesCompositedScrolling() const { return false; }
#endif
+ virtual void reportMemoryUsage(MemoryObjectInfo*) const;
+
protected:
ScrollableArea();
virtual ~ScrollableArea();
Modified: trunk/Source/WebCore/platform/graphics/GraphicsLayer.cpp (137107 => 137108)
--- trunk/Source/WebCore/platform/graphics/GraphicsLayer.cpp 2012-12-10 05:39:08 UTC (rev 137107)
+++ trunk/Source/WebCore/platform/graphics/GraphicsLayer.cpp 2012-12-10 06:16:45 UTC (rev 137108)
@@ -33,9 +33,11 @@
#include "FloatRect.h"
#include "GraphicsContext.h"
#include "LayoutRect.h"
+#include "PlatformMemoryInstrumentation.h"
#include "RotateTransformOperation.h"
#include "TextStream.h"
#include <wtf/HashMap.h>
+#include <wtf/MemoryInstrumentationVector.h>
#include <wtf/text/CString.h>
#include <wtf/text/StringBuilder.h>
#include <wtf/text/WTFString.h>
@@ -737,6 +739,16 @@
return ts.release();
}
+void GraphicsLayer::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const
+{
+ MemoryClassInfo info(memoryObjectInfo, this, PlatformMemoryTypes::Layers);
+ info.addMember(m_children);
+ info.addMember(m_parent);
+ info.addMember(m_maskLayer);
+ info.addMember(m_replicaLayer);
+ info.addMember(m_replicatedLayer);
+}
+
} // namespace WebCore
#ifndef NDEBUG
Modified: trunk/Source/WebCore/platform/graphics/GraphicsLayer.h (137107 => 137108)
--- trunk/Source/WebCore/platform/graphics/GraphicsLayer.h 2012-12-10 05:39:08 UTC (rev 137107)
+++ trunk/Source/WebCore/platform/graphics/GraphicsLayer.h 2012-12-10 06:16:45 UTC (rev 137108)
@@ -436,6 +436,8 @@
void updateDebugIndicators();
+ virtual void reportMemoryUsage(MemoryObjectInfo*) const;
+
protected:
// Should be called from derived class destructors. Should call willBeDestroyed() on super.
virtual void willBeDestroyed();
Modified: trunk/Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp (137107 => 137108)
--- trunk/Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp 2012-12-10 05:39:08 UTC (rev 137107)
+++ trunk/Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp 2012-12-10 06:16:45 UTC (rev 137108)
@@ -53,6 +53,7 @@
#include "Image.h"
#include "NativeImageSkia.h"
#include "PlatformContextSkia.h"
+#include "PlatformMemoryInstrumentation.h"
#include "ScrollableArea.h"
#include "SkImageFilter.h"
#include "SkMatrix44.h"
@@ -70,6 +71,7 @@
#include <public/WebTransformationMatrix.h>
#include <wtf/CurrentTime.h>
#include <wtf/HashSet.h>
+#include <wtf/MemoryInstrumentationHashMap.h>
#include <wtf/StringExtras.h>
#include <wtf/text/CString.h>
#include <wtf/text/StringHash.h>
@@ -879,6 +881,21 @@
m_scrollableArea->scrollToOffsetWithoutAnimation(IntPoint(m_layer->layer()->scrollPosition()));
}
+void GraphicsLayerChromium::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const
+{
+ MemoryClassInfo info(memoryObjectInfo, this, PlatformMemoryTypes::Layers);
+ GraphicsLayer::reportMemoryUsage(memoryObjectInfo);
+ info.addMember(m_nameBase);
+ info.addMember(m_layer);
+ info.addMember(m_transformLayer);
+ info.addMember(m_imageLayer);
+ info.addMember(m_contentsLayer);
+ info.addMember(m_linkHighlight);
+ info.addMember(m_opaqueRectTrackingContentLayerDelegate);
+ info.addMember(m_animationIdMap);
+ info.addMember(m_scrollableArea);
+}
+
} // namespace WebCore
#endif // USE(ACCELERATED_COMPOSITING)
Modified: trunk/Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.h (137107 => 137108)
--- trunk/Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.h 2012-12-10 05:39:08 UTC (rev 137107)
+++ trunk/Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.h 2012-12-10 06:16:45 UTC (rev 137108)
@@ -152,6 +152,8 @@
// Exposed for tests.
WebKit::WebLayer* contentsLayer() const { return m_contentsLayer; }
+ virtual void reportMemoryUsage(MemoryObjectInfo*) const OVERRIDE;
+
private:
void updateNames();
void updateChildList();
Modified: trunk/Source/WebCore/rendering/RenderBlock.cpp (137107 => 137108)
--- trunk/Source/WebCore/rendering/RenderBlock.cpp 2012-12-10 05:39:08 UTC (rev 137107)
+++ trunk/Source/WebCore/rendering/RenderBlock.cpp 2012-12-10 06:16:45 UTC (rev 137108)
@@ -61,6 +61,7 @@
#include "SVGTextRunRenderingContext.h"
#include "ShadowRoot.h"
#include "TransformState.h"
+#include "WebCoreMemoryInstrumentation.h"
#include <wtf/StdLibExtras.h>
#if ENABLE(CSS_EXCLUSIONS)
#include "ExclusionShapeInsideInfo.h"
@@ -7730,4 +7731,14 @@
#endif
+void RenderBlock::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const
+{
+ MemoryClassInfo info(memoryObjectInfo, this, PlatformMemoryTypes::Rendering);
+ RenderBox::reportMemoryUsage(memoryObjectInfo);
+ info.addMember(m_floatingObjects);
+ info.addMember(m_rareData);
+ info.addMember(m_children);
+ info.addMember(m_lineBoxes);
+}
+
} // namespace WebCore
Modified: trunk/Source/WebCore/rendering/RenderBlock.h (137107 => 137108)
--- trunk/Source/WebCore/rendering/RenderBlock.h 2012-12-10 05:39:08 UTC (rev 137107)
+++ trunk/Source/WebCore/rendering/RenderBlock.h 2012-12-10 06:16:45 UTC (rev 137108)
@@ -522,6 +522,8 @@
virtual void checkForPaginationLogicalHeightChange(LayoutUnit& pageLogicalHeight, bool& pageLogicalHeightChanged, bool& hasSpecifiedPageLogicalHeight);
+ virtual void reportMemoryUsage(MemoryObjectInfo*) const OVERRIDE;
+
private:
#if ENABLE(CSS_EXCLUSIONS)
void computeExclusionShapeSize();
Modified: trunk/Source/WebCore/rendering/RenderBox.cpp (137107 => 137108)
--- trunk/Source/WebCore/rendering/RenderBox.cpp 2012-12-10 05:39:08 UTC (rev 137107)
+++ trunk/Source/WebCore/rendering/RenderBox.cpp 2012-12-10 06:16:45 UTC (rev 137108)
@@ -54,6 +54,7 @@
#include "RenderView.h"
#include "ScrollbarTheme.h"
#include "TransformState.h"
+#include "WebCoreMemoryInstrumentation.h"
#include <algorithm>
#include <math.h>
@@ -4231,4 +4232,12 @@
return beforeChild;
}
+void RenderBox::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const
+{
+ MemoryClassInfo info(memoryObjectInfo, this, PlatformMemoryTypes::Rendering);
+ RenderBoxModelObject::reportMemoryUsage(memoryObjectInfo);
+ info.addWeakPointer(m_inlineBoxWrapper);
+ info.addMember(m_overflow);
+}
+
} // namespace WebCore
Modified: trunk/Source/WebCore/rendering/RenderBox.h (137107 => 137108)
--- trunk/Source/WebCore/rendering/RenderBox.h 2012-12-10 05:39:08 UTC (rev 137107)
+++ trunk/Source/WebCore/rendering/RenderBox.h 2012-12-10 06:16:45 UTC (rev 137108)
@@ -600,6 +600,8 @@
RenderObject* splitAnonymousBoxesAroundChild(RenderObject* beforeChild);
+ virtual void reportMemoryUsage(MemoryObjectInfo*) const OVERRIDE;
+
private:
bool fixedElementLaysOutRelativeToFrame(Frame*, FrameView*) const;
Modified: trunk/Source/WebCore/rendering/RenderInline.cpp (137107 => 137108)
--- trunk/Source/WebCore/rendering/RenderInline.cpp 2012-12-10 05:39:08 UTC (rev 137107)
+++ trunk/Source/WebCore/rendering/RenderInline.cpp 2012-12-10 06:16:45 UTC (rev 137108)
@@ -39,6 +39,7 @@
#include "StyleInheritedData.h"
#include "TransformState.h"
#include "VisiblePosition.h"
+#include "WebCoreMemoryInstrumentation.h"
#include <wtf/TemporaryChange.h>
@@ -1644,4 +1645,12 @@
}
#endif
+void RenderInline::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const
+{
+ MemoryClassInfo info(memoryObjectInfo, this, PlatformMemoryTypes::Rendering);
+ RenderBoxModelObject::reportMemoryUsage(memoryObjectInfo);
+ info.addMember(m_children);
+ info.addMember(m_lineBoxes);
+}
+
} // namespace WebCore
Modified: trunk/Source/WebCore/rendering/RenderInline.h (137107 => 137108)
--- trunk/Source/WebCore/rendering/RenderInline.h 2012-12-10 05:39:08 UTC (rev 137107)
+++ trunk/Source/WebCore/rendering/RenderInline.h 2012-12-10 06:16:45 UTC (rev 137108)
@@ -91,6 +91,8 @@
bool hitTestCulledInline(const HitTestRequest&, HitTestResult&, const HitTestLocation& locationInContainer, const LayoutPoint& accumulatedOffset);
+ virtual void reportMemoryUsage(MemoryObjectInfo*) const OVERRIDE;
+
protected:
virtual void willBeDestroyed();
Modified: trunk/Source/WebCore/rendering/RenderLayer.cpp (137107 => 137108)
--- trunk/Source/WebCore/rendering/RenderLayer.cpp 2012-12-10 05:39:08 UTC (rev 137107)
+++ trunk/Source/WebCore/rendering/RenderLayer.cpp 2012-12-10 06:16:45 UTC (rev 137108)
@@ -99,6 +99,8 @@
#include "TextStream.h"
#include "TransformationMatrix.h"
#include "TranslateTransformOperation.h"
+#include "WebCoreMemoryInstrumentation.h"
+#include <wtf/MemoryInstrumentationVector.h>
#include <wtf/StdLibExtras.h>
#include <wtf/UnusedParam.h>
#include <wtf/text/CString.h>
@@ -5418,6 +5420,32 @@
}
#endif
+void RenderLayer::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const
+{
+ MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::Rendering);
+ ScrollableArea::reportMemoryUsage(memoryObjectInfo);
+ info.addWeakPointer(m_renderer);
+ info.addWeakPointer(m_parent);
+ info.addWeakPointer(m_previous);
+ info.addWeakPointer(m_next);
+ info.addWeakPointer(m_first);
+ info.addWeakPointer(m_last);
+ info.addMember(m_hBar);
+ info.addMember(m_vBar);
+ info.addMember(m_posZOrderList);
+ info.addMember(m_negZOrderList);
+ info.addMember(m_normalFlowList);
+ info.addMember(m_clipRectsCache);
+ info.addMember(m_marquee);
+ info.addMember(m_transform);
+ info.addWeakPointer(m_reflection);
+ info.addWeakPointer(m_scrollCorner);
+ info.addWeakPointer(m_resizer);
+#if USE(ACCELERATED_COMPOSITING)
+ info.addMember(m_backing);
+#endif
+}
+
} // namespace WebCore
#ifndef NDEBUG
Modified: trunk/Source/WebCore/rendering/RenderLayer.h (137107 => 137108)
--- trunk/Source/WebCore/rendering/RenderLayer.h 2012-12-10 05:39:08 UTC (rev 137107)
+++ trunk/Source/WebCore/rendering/RenderLayer.h 2012-12-10 06:16:45 UTC (rev 137108)
@@ -709,6 +709,8 @@
bool isInTopLayerSubtree() const;
#endif
+ virtual void reportMemoryUsage(MemoryObjectInfo*) const OVERRIDE;
+
private:
void updateZOrderLists();
void rebuildZOrderLists();
Modified: trunk/Source/WebCore/rendering/RenderLayerBacking.cpp (137107 => 137108)
--- trunk/Source/WebCore/rendering/RenderLayerBacking.cpp 2012-12-10 05:39:08 UTC (rev 137107)
+++ trunk/Source/WebCore/rendering/RenderLayerBacking.cpp 2012-12-10 06:16:45 UTC (rev 137108)
@@ -55,6 +55,7 @@
#include "Settings.h"
#include "StyleResolver.h"
#include "TiledBacking.h"
+#include "WebCoreMemoryInstrumentation.h"
#include <wtf/CurrentTime.h>
#include <wtf/text/StringBuilder.h>
@@ -2030,6 +2031,22 @@
}
#endif
+void RenderLayerBacking::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const
+{
+ MemoryClassInfo info(memoryObjectInfo, this, PlatformMemoryTypes::Rendering);
+ info.addWeakPointer(m_owningLayer);
+ info.addMember(m_ancestorClippingLayer);
+ info.addMember(m_graphicsLayer);
+ info.addMember(m_foregroundLayer);
+ info.addMember(m_containmentLayer);
+ info.addMember(m_maskLayer);
+ info.addMember(m_layerForHorizontalScrollbar);
+ info.addMember(m_layerForVerticalScrollbar);
+ info.addMember(m_layerForScrollCorner);
+ info.addMember(m_scrollingLayer);
+ info.addMember(m_scrollingContentsLayer);
+}
+
} // namespace WebCore
#endif // USE(ACCELERATED_COMPOSITING)
Modified: trunk/Source/WebCore/rendering/RenderLayerBacking.h (137107 => 137108)
--- trunk/Source/WebCore/rendering/RenderLayerBacking.h 2012-12-10 05:39:08 UTC (rev 137107)
+++ trunk/Source/WebCore/rendering/RenderLayerBacking.h 2012-12-10 06:16:45 UTC (rev 137108)
@@ -185,6 +185,7 @@
#if ENABLE(CSS_COMPOSITING)
void setBlendMode(BlendMode);
#endif
+ void reportMemoryUsage(MemoryObjectInfo*) const;
private:
void createPrimaryGraphicsLayer();
Modified: trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp (137107 => 137108)
--- trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp 2012-12-10 05:39:08 UTC (rev 137107)
+++ trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp 2012-12-10 06:16:45 UTC (rev 137108)
@@ -58,6 +58,7 @@
#include "Settings.h"
#include "TiledBacking.h"
#include "TransformState.h"
+#include "WebCoreMemoryInstrumentation.h"
#if ENABLE(PLUGIN_PROXY_FOR_VIDEO)
#include "HTMLMediaElement.h"
@@ -2777,6 +2778,27 @@
return 0;
}
+void RenderLayerCompositor::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const
+{
+ MemoryClassInfo info(memoryObjectInfo, this, PlatformMemoryTypes::Rendering);
+ info.addWeakPointer(m_renderView);
+ info.addMember(m_rootContentLayer);
+ info.addMember(m_updateCompositingLayersTimer);
+ info.addMember(m_clipLayer);
+ info.addMember(m_scrollLayer);
+ info.addMember(m_viewportConstrainedLayers);
+ info.addMember(m_viewportConstrainedLayersNeedingUpdate);
+ info.addMember(m_overflowControlsHostLayer);
+ info.addMember(m_layerForHorizontalScrollbar);
+ info.addMember(m_layerForVerticalScrollbar);
+ info.addMember(m_layerForScrollCorner);
+#if ENABLE(RUBBER_BANDING)
+ info.addMember(m_layerForOverhangAreas);
+ info.addMember(m_contentShadowLayer);
+#endif
+ info.addMember(m_layerUpdater);
+}
+
} // namespace WebCore
#endif // USE(ACCELERATED_COMPOSITING)
Modified: trunk/Source/WebCore/rendering/RenderLayerCompositor.h (137107 => 137108)
--- trunk/Source/WebCore/rendering/RenderLayerCompositor.h 2012-12-10 05:39:08 UTC (rev 137107)
+++ trunk/Source/WebCore/rendering/RenderLayerCompositor.h 2012-12-10 06:16:45 UTC (rev 137108)
@@ -227,6 +227,8 @@
void resetTrackedRepaintRects();
void setTracksRepaints(bool);
+ void reportMemoryUsage(MemoryObjectInfo*) const;
+
private:
class OverlapMap;
Modified: trunk/Source/WebCore/rendering/RenderLayerModelObject.cpp (137107 => 137108)
--- trunk/Source/WebCore/rendering/RenderLayerModelObject.cpp 2012-12-10 05:39:08 UTC (rev 137107)
+++ trunk/Source/WebCore/rendering/RenderLayerModelObject.cpp 2012-12-10 06:16:45 UTC (rev 137108)
@@ -27,6 +27,7 @@
#include "RenderLayer.h"
#include "RenderView.h"
+#include "WebCoreMemoryInstrumentation.h"
using namespace std;
@@ -174,5 +175,12 @@
}
}
+void RenderLayerModelObject::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const
+{
+ MemoryClassInfo info(memoryObjectInfo, this, PlatformMemoryTypes::Rendering);
+ RenderObject::reportMemoryUsage(memoryObjectInfo);
+ info.addWeakPointer(m_layer);
+}
+
} // namespace WebCore
Modified: trunk/Source/WebCore/rendering/RenderLayerModelObject.h (137107 => 137108)
--- trunk/Source/WebCore/rendering/RenderLayerModelObject.h 2012-12-10 05:39:08 UTC (rev 137107)
+++ trunk/Source/WebCore/rendering/RenderLayerModelObject.h 2012-12-10 06:16:45 UTC (rev 137108)
@@ -46,6 +46,8 @@
virtual bool requiresLayer() const = 0;
+ virtual void reportMemoryUsage(MemoryObjectInfo*) const OVERRIDE;
+
protected:
void ensureLayer();
Modified: trunk/Source/WebCore/rendering/RenderObject.cpp (137107 => 137108)
--- trunk/Source/WebCore/rendering/RenderObject.cpp 2012-12-10 05:39:08 UTC (rev 137107)
+++ trunk/Source/WebCore/rendering/RenderObject.cpp 2012-12-10 06:16:45 UTC (rev 137108)
@@ -68,6 +68,7 @@
#include "Settings.h"
#include "StyleResolver.h"
#include "TransformState.h"
+#include "WebCoreMemoryInstrumentation.h"
#include "htmlediting.h"
#include <algorithm>
#include <stdio.h>
@@ -3083,6 +3084,16 @@
return true;
}
+void RenderObject::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const
+{
+ MemoryClassInfo info(memoryObjectInfo, this, PlatformMemoryTypes::Rendering);
+ info.addMember(m_style);
+ info.addWeakPointer(m_node);
+ info.addWeakPointer(m_parent);
+ info.addWeakPointer(m_previous);
+ info.addWeakPointer(m_next);
+}
+
#if ENABLE(SVG)
RenderSVGResourceContainer* RenderObject::toRenderSVGResourceContainer()
Modified: trunk/Source/WebCore/rendering/RenderObject.h (137107 => 137108)
--- trunk/Source/WebCore/rendering/RenderObject.h 2012-12-10 05:39:08 UTC (rev 137107)
+++ trunk/Source/WebCore/rendering/RenderObject.h 2012-12-10 06:16:45 UTC (rev 137108)
@@ -282,6 +282,8 @@
virtual bool createsAnonymousWrapper() const { return false; }
//////////////////////////////////////////
+ virtual void reportMemoryUsage(MemoryObjectInfo*) const;
+
protected:
//////////////////////////////////////////
// Helper functions. Dangerous to use!
Modified: trunk/Source/WebCore/rendering/RenderText.cpp (137107 => 137108)
--- trunk/Source/WebCore/rendering/RenderText.cpp 2012-12-10 05:39:08 UTC (rev 137107)
+++ trunk/Source/WebCore/rendering/RenderText.cpp 2012-12-10 06:16:45 UTC (rev 137108)
@@ -43,6 +43,7 @@
#include "TextBreakIterator.h"
#include "TextResourceDecoder.h"
#include "VisiblePosition.h"
+#include "WebCoreMemoryInstrumentation.h"
#include "break_lines.h"
#include <wtf/AlwaysInline.h>
#include <wtf/text/StringBuffer.h>
@@ -1930,4 +1931,13 @@
secureTextTimer->restartWithNewText(lastTypedCharacterOffset);
}
+void RenderText::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const
+{
+ MemoryClassInfo info(memoryObjectInfo, this, PlatformMemoryTypes::Rendering);
+ RenderObject::reportMemoryUsage(memoryObjectInfo);
+ info.addMember(m_text);
+ info.addMember(m_firstTextBox);
+ info.addMember(m_lastTextBox);
+}
+
} // namespace WebCore
Modified: trunk/Source/WebCore/rendering/RenderText.h (137107 => 137108)
--- trunk/Source/WebCore/rendering/RenderText.h 2012-12-10 05:39:08 UTC (rev 137107)
+++ trunk/Source/WebCore/rendering/RenderText.h 2012-12-10 06:16:45 UTC (rev 137108)
@@ -144,6 +144,8 @@
void removeAndDestroyTextBoxes();
+ virtual void reportMemoryUsage(MemoryObjectInfo*) const OVERRIDE;
+
protected:
virtual void willBeDestroyed();
Modified: trunk/Source/WebCore/rendering/RenderView.cpp (137107 => 137108)
--- trunk/Source/WebCore/rendering/RenderView.cpp 2012-12-10 05:39:08 UTC (rev 137107)
+++ trunk/Source/WebCore/rendering/RenderView.cpp 2012-12-10 06:16:45 UTC (rev 137108)
@@ -40,6 +40,7 @@
#include "RenderWidgetProtector.h"
#include "StyleInheritedData.h"
#include "TransformState.h"
+#include "WebCoreMemoryInstrumentation.h"
#if USE(ACCELERATED_COMPOSITING)
#include "RenderLayerCompositor.h"
@@ -1010,4 +1011,24 @@
return m_intervalArena.get();
}
+void RenderView::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const
+{
+ MemoryClassInfo info(memoryObjectInfo, this, PlatformMemoryTypes::Rendering);
+ RenderBlock::reportMemoryUsage(memoryObjectInfo);
+ info.addWeakPointer(m_frameView);
+ info.addWeakPointer(m_selectionStart);
+ info.addWeakPointer(m_selectionEnd);
+ info.addMember(m_widgets);
+ info.addMember(m_layoutState);
+#if USE(ACCELERATED_COMPOSITING)
+ info.addMember(m_compositor);
+#endif
+#if ENABLE(CSS_SHADERS) && USE(3D_GRAPHICS)
+ info.addMember(m_customFilterGlobalContext);
+#endif
+ info.addMember(m_flowThreadController);
+ info.addMember(m_intervalArena);
+ info.addWeakPointer(m_renderQuoteHead);
+}
+
} // namespace WebCore
Modified: trunk/Source/WebCore/rendering/RenderView.h (137107 => 137108)
--- trunk/Source/WebCore/rendering/RenderView.h 2012-12-10 05:39:08 UTC (rev 137107)
+++ trunk/Source/WebCore/rendering/RenderView.h 2012-12-10 06:16:45 UTC (rev 137108)
@@ -283,6 +283,8 @@
friend class LayoutStateMaintainer;
friend class LayoutStateDisabler;
+ virtual void reportMemoryUsage(MemoryObjectInfo*) const OVERRIDE;
+
protected:
FrameView* m_frameView;