Diff
Modified: trunk/Source/WebCore/ChangeLog (132631 => 132632)
--- trunk/Source/WebCore/ChangeLog 2012-10-26 12:25:26 UTC (rev 132631)
+++ trunk/Source/WebCore/ChangeLog 2012-10-26 12:25:27 UTC (rev 132632)
@@ -1,3 +1,31 @@
+2012-10-26 Ilya Tikhonovsky <[email protected]>
+
+ Web Inspector: NMI instrument InspectorResourceAgent. it caches resources for the front-end.
+ https://bugs.webkit.org/show_bug.cgi?id=100496
+
+ Reviewed by Yury Semikhatsky.
+
+ It is plain instrumentation for InspectorResourceAgent and NetworkResourceData which is used by the agent.
+
+ * dom/WebCoreMemoryInstrumentation.cpp:
+ (WebCore):
+ * dom/WebCoreMemoryInstrumentation.h:
+ (WebCoreMemoryTypes):
+ * inspector/InspectorResourceAgent.cpp:
+ (WebCore::InspectorResourceAgent::reportMemoryUsage):
+ (WebCore):
+ * inspector/InspectorResourceAgent.h:
+ (InspectorResourceAgent):
+ * inspector/NetworkResourcesData.cpp:
+ (WebCore::XHRReplayData::reportMemoryUsage):
+ (WebCore):
+ (WebCore::NetworkResourcesData::ResourceData::reportMemoryUsage):
+ (WebCore::NetworkResourcesData::reportMemoryUsage):
+ * inspector/NetworkResourcesData.h:
+ (XHRReplayData):
+ (ResourceData):
+ (NetworkResourcesData):
+
2012-10-26 Sheriff Bot <[email protected]>
Unreviewed, rolling out r132493.
Modified: trunk/Source/WebCore/dom/WebCoreMemoryInstrumentation.cpp (132631 => 132632)
--- trunk/Source/WebCore/dom/WebCoreMemoryInstrumentation.cpp 2012-10-26 12:25:26 UTC (rev 132631)
+++ trunk/Source/WebCore/dom/WebCoreMemoryInstrumentation.cpp 2012-10-26 12:25:27 UTC (rev 132632)
@@ -60,6 +60,7 @@
MemoryObjectType WebCoreMemoryTypes::InspectorOverlay = "WebInspector.Overlay";
MemoryObjectType WebCoreMemoryTypes::InspectorProfilerAgent = "WebInspector.ProfilerAgent";
MemoryObjectType WebCoreMemoryTypes::InspectorDebuggerAgent = "WebInspector.DebuggerAgent";
+MemoryObjectType WebCoreMemoryTypes::InspectorResourceAgent = "WebInspector.ResourceAgent";
MemoryObjectType WebCoreMemoryTypes::JSHeapUsed = "JSHeap.Used";
MemoryObjectType WebCoreMemoryTypes::JSHeapUnused = "JSHeap.Unused";
Modified: trunk/Source/WebCore/dom/WebCoreMemoryInstrumentation.h (132631 => 132632)
--- trunk/Source/WebCore/dom/WebCoreMemoryInstrumentation.h 2012-10-26 12:25:26 UTC (rev 132631)
+++ trunk/Source/WebCore/dom/WebCoreMemoryInstrumentation.h 2012-10-26 12:25:27 UTC (rev 132632)
@@ -68,6 +68,7 @@
static MemoryObjectType InspectorOverlay;
static MemoryObjectType InspectorProfilerAgent;
static MemoryObjectType InspectorDebuggerAgent;
+ static MemoryObjectType InspectorResourceAgent;
static MemoryObjectType JSHeapUsed;
static MemoryObjectType JSHeapUnused;
Modified: trunk/Source/WebCore/inspector/InspectorResourceAgent.cpp (132631 => 132632)
--- trunk/Source/WebCore/inspector/InspectorResourceAgent.cpp 2012-10-26 12:25:26 UTC (rev 132631)
+++ trunk/Source/WebCore/inspector/InspectorResourceAgent.cpp 2012-10-26 12:25:27 UTC (rev 132632)
@@ -71,6 +71,7 @@
#include <wtf/CurrentTime.h>
#include <wtf/HexNumber.h>
#include <wtf/ListHashSet.h>
+#include <wtf/MemoryInstrumentationHashMap.h>
#include <wtf/RefPtr.h>
#include <wtf/text/StringBuilder.h>
@@ -669,6 +670,19 @@
m_resourcesData->clear(m_pageAgent->loaderId(loader));
}
+void InspectorResourceAgent::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const
+{
+ MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::InspectorResourceAgent);
+ InspectorBaseAgent<InspectorResourceAgent>::reportMemoryUsage(memoryObjectInfo);
+ info.addMember(m_pageAgent);
+ info.addMember(m_client);
+ info.addWeakPointer(m_frontend);
+ info.addMember(m_userAgentOverride);
+ info.addMember(m_resourcesData);
+ info.addMember(m_pendingXHRReplayData);
+ info.addMember(m_styleRecalculationInitiator);
+}
+
InspectorResourceAgent::InspectorResourceAgent(InstrumentingAgents* instrumentingAgents, InspectorPageAgent* pageAgent, InspectorClient* client, InspectorState* state)
: InspectorBaseAgent<InspectorResourceAgent>("Network", instrumentingAgents, state)
, m_pageAgent(pageAgent)
Modified: trunk/Source/WebCore/inspector/InspectorResourceAgent.h (132631 => 132632)
--- trunk/Source/WebCore/inspector/InspectorResourceAgent.h 2012-10-26 12:25:26 UTC (rev 132631)
+++ trunk/Source/WebCore/inspector/InspectorResourceAgent.h 2012-10-26 12:25:27 UTC (rev 132632)
@@ -153,6 +153,8 @@
virtual void clearBrowserCookies(ErrorString*);
virtual void setCacheDisabled(ErrorString*, bool cacheDisabled);
+ virtual void reportMemoryUsage(MemoryObjectInfo*) const OVERRIDE;
+
private:
InspectorResourceAgent(InstrumentingAgents*, InspectorPageAgent*, InspectorClient*, InspectorState*);
Modified: trunk/Source/WebCore/inspector/NetworkResourcesData.cpp (132631 => 132632)
--- trunk/Source/WebCore/inspector/NetworkResourcesData.cpp 2012-10-26 12:25:26 UTC (rev 132631)
+++ trunk/Source/WebCore/inspector/NetworkResourcesData.cpp 2012-10-26 12:25:27 UTC (rev 132632)
@@ -35,6 +35,7 @@
#include "DOMImplementation.h"
#include "SharedBuffer.h"
#include "TextResourceDecoder.h"
+#include <wtf/MemoryInstrumentationHashMap.h>
namespace {
// 100MB
@@ -66,6 +67,15 @@
{
}
+void XHRReplayData::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const
+{
+ MemoryClassInfo info(memoryObjectInfo, this);
+ info.addMember(m_method);
+ info.addMember(m_url);
+ info.addMember(m_formData);
+ info.addMember(m_headers);
+}
+
// ResourceData
NetworkResourcesData::ResourceData::ResourceData(const String& requestId, const String& loaderId)
: m_requestId(requestId)
@@ -137,6 +147,22 @@
return contentSizeInBytes(m_content) - dataLength;
}
+void NetworkResourcesData::ResourceData::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const
+{
+ MemoryClassInfo info(memoryObjectInfo, this);
+ info.addMember(m_requestId);
+ info.addMember(m_loaderId);
+ info.addMember(m_frameId);
+ info.addMember(m_url);
+ info.addMember(m_content);
+ info.addMember(m_xhrReplayData);
+ info.addMember(m_dataBuffer);
+ info.addMember(m_textEncodingName);
+ info.addMember(m_decoder);
+ info.addMember(m_buffer);
+ info.addMember(m_cachedResource);
+}
+
// NetworkResourcesData
NetworkResourcesData::NetworkResourcesData()
: m_contentSize(0)
@@ -382,6 +408,14 @@
return true;
}
+void NetworkResourcesData::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const
+{
+ MemoryClassInfo info(memoryObjectInfo, this);
+ info.addMember(m_requestIdsDeque);
+ info.addMember(m_reusedXHRReplayDataRequestIds);
+ info.addMember(m_requestIdToResourceDataMap);
+}
+
} // namespace WebCore
#endif // ENABLE(INSPECTOR)
Modified: trunk/Source/WebCore/inspector/NetworkResourcesData.h (132631 => 132632)
--- trunk/Source/WebCore/inspector/NetworkResourcesData.h 2012-10-26 12:25:26 UTC (rev 132631)
+++ trunk/Source/WebCore/inspector/NetworkResourcesData.h 2012-10-26 12:25:27 UTC (rev 132632)
@@ -57,6 +57,7 @@
PassRefPtr<FormData> formData() const { return m_formData; }
const HTTPHeaderMap& headers() const { return m_headers; }
bool includeCredentials() const { return m_includeCredentials; }
+ void reportMemoryUsage(MemoryObjectInfo*) const;
private:
XHRReplayData(const String &method, const KURL&, bool async, PassRefPtr<FormData>, bool includeCredentials);
@@ -116,6 +117,9 @@
XHRReplayData* xhrReplayData() const { return m_xhrReplayData.get(); }
void setXHRReplayData(XHRReplayData* xhrReplayData) { m_xhrReplayData = xhrReplayData; }
+
+ void reportMemoryUsage(MemoryObjectInfo*) const;
+
private:
bool hasData() const { return m_dataBuffer; }
size_t dataLength() const;
@@ -163,6 +167,8 @@
void reuseXHRReplayData(const String& requestId, const String& reusedRequestId);
XHRReplayData* xhrReplayData(const String& requestId);
+ void reportMemoryUsage(MemoryObjectInfo*) const;
+
private:
void ensureNoDataForRequestId(const String& requestId);
bool ensureFreeSpace(size_t);