Diff
Modified: trunk/Source/WebCore/ChangeLog (137471 => 137472)
--- trunk/Source/WebCore/ChangeLog 2012-12-12 16:49:23 UTC (rev 137471)
+++ trunk/Source/WebCore/ChangeLog 2012-12-12 16:52:35 UTC (rev 137472)
@@ -1,5 +1,34 @@
2012-12-12 Ilya Tikhonovsky <loi...@chromium.org>
+ Web Inspector: instrument static parts of RenderBlock and RenderBox
+ https://bugs.webkit.org/show_bug.cgi?id=104660
+
+ Reviewed by Yury Semikhatsky.
+
+ Plain vanilla instrumentation.
+
+ * dom/WebCoreMemoryInstrumentation.cpp:
+ (WebCore):
+ (WebCore::WebCoreMemoryInstrumentation::reportMemoryUsage):
+ * dom/WebCoreMemoryInstrumentation.h:
+ (WebCoreMemoryTypes):
+ (WebCoreMemoryInstrumentation):
+ (WebCore):
+ * inspector/InspectorMemoryAgent.cpp:
+ (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
+ * rendering/RenderBlock.cpp:
+ (WebCore::RenderBlock::reportStaticMembersMemoryUsage):
+ (WebCore):
+ * rendering/RenderBlock.h:
+ (RenderBlock):
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBox::reportStaticMembersMemoryUsage):
+ (WebCore):
+ * rendering/RenderBox.h:
+ (RenderBox):
+
+2012-12-12 Ilya Tikhonovsky <loi...@chromium.org>
+
Web Inspector: Native Memory Instrumentation: remove fake root MemoryObjectInfo.
https://bugs.webkit.org/show_bug.cgi?id=104796
Modified: trunk/Source/WebCore/dom/WebCoreMemoryInstrumentation.cpp (137471 => 137472)
--- trunk/Source/WebCore/dom/WebCoreMemoryInstrumentation.cpp 2012-12-12 16:49:23 UTC (rev 137471)
+++ trunk/Source/WebCore/dom/WebCoreMemoryInstrumentation.cpp 2012-12-12 16:52:35 UTC (rev 137472)
@@ -31,12 +31,16 @@
#include "config.h"
#include "WebCoreMemoryInstrumentation.h"
+#include "RenderBlock.h"
+#include "RenderBox.h"
+
namespace WebCore {
MemoryObjectType WebCoreMemoryTypes::Page = "Page";
MemoryObjectType WebCoreMemoryTypes::DOM = "Page.DOM";
MemoryObjectType WebCoreMemoryTypes::CSS = "Page.CSS";
MemoryObjectType WebCoreMemoryTypes::Binding = "Page.Binding";
+MemoryObjectType WebCoreMemoryTypes::RenderingStructures = "Page.Rendering.Structures";
MemoryObjectType WebCoreMemoryTypes::MemoryCacheStructures = "MemoryCache.InternalStructures";
MemoryObjectType WebCoreMemoryTypes::CachedResource = "MemoryCache.Resource";
@@ -72,4 +76,11 @@
MemoryObjectType WebCoreMemoryTypes::ProcessPrivateMemory = "ProcessPrivateMemory";
+
+void WebCoreMemoryInstrumentation::reportStaticMembersMemoryUsage(WTF::MemoryInstrumentation* memoryInstrumentation)
+{
+ RenderBlock::reportStaticMembersMemoryUsage(memoryInstrumentation);
+ RenderBox::reportStaticMembersMemoryUsage(memoryInstrumentation);
+}
+
} // namespace WebCore
Modified: trunk/Source/WebCore/dom/WebCoreMemoryInstrumentation.h (137471 => 137472)
--- trunk/Source/WebCore/dom/WebCoreMemoryInstrumentation.h 2012-12-12 16:49:23 UTC (rev 137471)
+++ trunk/Source/WebCore/dom/WebCoreMemoryInstrumentation.h 2012-12-12 16:52:35 UTC (rev 137472)
@@ -45,6 +45,7 @@
static MemoryObjectType DOM;
static MemoryObjectType CSS;
static MemoryObjectType Binding;
+ static MemoryObjectType RenderingStructures;
static MemoryObjectType MemoryCacheStructures;
static MemoryObjectType CachedResource;
@@ -81,6 +82,12 @@
static MemoryObjectType ProcessPrivateMemory;
};
+class WebCoreMemoryInstrumentation {
+public:
+ static void reportStaticMembersMemoryUsage(WTF::MemoryInstrumentation*);
+};
+
+
} // namespace WebCore
#endif // !defined(WebCoreMemoryInstrumentation_h)
Modified: trunk/Source/WebCore/inspector/InspectorMemoryAgent.cpp (137471 => 137472)
--- trunk/Source/WebCore/inspector/InspectorMemoryAgent.cpp 2012-12-12 16:49:23 UTC (rev 137471)
+++ trunk/Source/WebCore/inspector/InspectorMemoryAgent.cpp 2012-12-12 16:52:35 UTC (rev 137472)
@@ -545,7 +545,8 @@
reportRenderTreeInfo(memoryInstrumentationClient, m_page);
collectDomTreeInfo(memoryInstrumentation, m_page); // FIXME: collect for all pages?
- PlatformMemoryInstrumentation::reportMemoryUsage(&memoryInstrumentation);
+ PlatformMemoryInstrumentation::reportStaticMembersMemoryUsage(&memoryInstrumentation);
+ WebCoreMemoryInstrumentation::reportStaticMembersMemoryUsage(&memoryInstrumentation);
RefPtr<InspectorMemoryBlocks> children = InspectorMemoryBlocks::create();
addPlatformComponentsInfo(children);
Modified: trunk/Source/WebCore/platform/PlatformMemoryInstrumentation.cpp (137471 => 137472)
--- trunk/Source/WebCore/platform/PlatformMemoryInstrumentation.cpp 2012-12-12 16:49:23 UTC (rev 137471)
+++ trunk/Source/WebCore/platform/PlatformMemoryInstrumentation.cpp 2012-12-12 16:52:35 UTC (rev 137472)
@@ -45,7 +45,7 @@
MemoryObjectType PlatformMemoryTypes::Audio = "Page.Audio";
MemoryObjectType PlatformMemoryTypes::AudioSharedData = "Page.Audio.SharedData";
-void PlatformMemoryInstrumentation::reportMemoryUsage(WTF::MemoryInstrumentation* memoryInstrumentation)
+void PlatformMemoryInstrumentation::reportStaticMembersMemoryUsage(WTF::MemoryInstrumentation* memoryInstrumentation)
{
#if ENABLE(WEB_AUDIO)
memoryInstrumentation->addRootObject(HRTFDatabaseLoader::loader());
Modified: trunk/Source/WebCore/platform/PlatformMemoryInstrumentation.h (137471 => 137472)
--- trunk/Source/WebCore/platform/PlatformMemoryInstrumentation.h 2012-12-12 16:49:23 UTC (rev 137471)
+++ trunk/Source/WebCore/platform/PlatformMemoryInstrumentation.h 2012-12-12 16:52:35 UTC (rev 137472)
@@ -52,7 +52,7 @@
class PlatformMemoryInstrumentation {
public:
- static void reportMemoryUsage(WTF::MemoryInstrumentation*);
+ static void reportStaticMembersMemoryUsage(WTF::MemoryInstrumentation*);
};
} // namespace WebCore
Modified: trunk/Source/WebCore/rendering/RenderBlock.cpp (137471 => 137472)
--- trunk/Source/WebCore/rendering/RenderBlock.cpp 2012-12-12 16:49:23 UTC (rev 137471)
+++ trunk/Source/WebCore/rendering/RenderBlock.cpp 2012-12-12 16:52:35 UTC (rev 137472)
@@ -66,6 +66,9 @@
#if ENABLE(CSS_EXCLUSIONS)
#include "ExclusionShapeInsideInfo.h"
#endif
+#include <wtf/MemoryInstrumentationHashMap.h>
+#include <wtf/MemoryInstrumentationHashSet.h>
+#include <wtf/MemoryInstrumentationListHashSet.h>
using namespace std;
using namespace WTF;
@@ -7705,4 +7708,14 @@
info.addMember(m_lineBoxes);
}
+void RenderBlock::reportStaticMembersMemoryUsage(MemoryInstrumentation* memoryInstrumentation)
+{
+ memoryInstrumentation->addRootObject(gColumnInfoMap, WebCoreMemoryTypes::RenderingStructures);
+ memoryInstrumentation->addRootObject(gPositionedDescendantsMap, WebCoreMemoryTypes::RenderingStructures);
+ memoryInstrumentation->addRootObject(gPercentHeightDescendantsMap, WebCoreMemoryTypes::RenderingStructures);
+ memoryInstrumentation->addRootObject(gPositionedContainerMap, WebCoreMemoryTypes::RenderingStructures);
+ memoryInstrumentation->addRootObject(gPercentHeightContainerMap, WebCoreMemoryTypes::RenderingStructures);
+ memoryInstrumentation->addRootObject(gDelayedUpdateScrollInfoSet, WebCoreMemoryTypes::RenderingStructures);
+}
+
} // namespace WebCore
Modified: trunk/Source/WebCore/rendering/RenderBlock.h (137471 => 137472)
--- trunk/Source/WebCore/rendering/RenderBlock.h 2012-12-12 16:49:23 UTC (rev 137471)
+++ trunk/Source/WebCore/rendering/RenderBlock.h 2012-12-12 16:52:35 UTC (rev 137472)
@@ -437,6 +437,7 @@
#endif
virtual void reportMemoryUsage(MemoryObjectInfo*) const OVERRIDE;
+ static void reportStaticMembersMemoryUsage(MemoryInstrumentation*);
protected:
virtual void willBeDestroyed();
Modified: trunk/Source/WebCore/rendering/RenderBox.cpp (137471 => 137472)
--- trunk/Source/WebCore/rendering/RenderBox.cpp 2012-12-12 16:49:23 UTC (rev 137471)
+++ trunk/Source/WebCore/rendering/RenderBox.cpp 2012-12-12 16:52:35 UTC (rev 137472)
@@ -57,9 +57,16 @@
#include "WebCoreMemoryInstrumentation.h"
#include <algorithm>
#include <math.h>
+#include <wtf/MemoryInstrumentationHashMap.h>
using namespace std;
+namespace WTF {
+template<> struct SequenceMemoryInstrumentationTraits<WebCore::LayoutUnit> {
+ template <typename I> static void reportMemoryUsage(I, I, MemoryClassInfo&) { }
+};
+}
+
namespace WebCore {
using namespace HTMLNames;
@@ -4240,4 +4247,12 @@
info.addMember(m_overflow);
}
+void RenderBox::reportStaticMembersMemoryUsage(MemoryInstrumentation* memoryInstrumentation)
+{
+ memoryInstrumentation->addRootObject(gOverrideHeightMap, WebCoreMemoryTypes::RenderingStructures);
+ memoryInstrumentation->addRootObject(gOverrideWidthMap, WebCoreMemoryTypes::RenderingStructures);
+ memoryInstrumentation->addRootObject(gOverrideContainingBlockLogicalHeightMap, WebCoreMemoryTypes::RenderingStructures);
+ memoryInstrumentation->addRootObject(gOverrideContainingBlockLogicalWidthMap, WebCoreMemoryTypes::RenderingStructures);
+}
+
} // namespace WebCore
Modified: trunk/Source/WebCore/rendering/RenderBox.h (137471 => 137472)
--- trunk/Source/WebCore/rendering/RenderBox.h 2012-12-12 16:49:23 UTC (rev 137471)
+++ trunk/Source/WebCore/rendering/RenderBox.h 2012-12-12 16:52:35 UTC (rev 137472)
@@ -567,6 +567,7 @@
bool hasSameDirectionAs(const RenderBox* object) const { return style()->direction() == object->style()->direction(); }
virtual void reportMemoryUsage(MemoryObjectInfo*) const OVERRIDE;
+ static void reportStaticMembersMemoryUsage(MemoryInstrumentation*);
protected:
virtual void willBeDestroyed();