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

Unified Diff: Source/core/inspector/InspectorTraceEvents.cpp

Issue 561413002: [Invalidation tracking] Add trace events for layout invalidations (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Constification Created 6 years, 3 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/inspector/InspectorTraceEvents.h ('k') | Source/core/rendering/RenderImage.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/inspector/InspectorTraceEvents.cpp
diff --git a/Source/core/inspector/InspectorTraceEvents.cpp b/Source/core/inspector/InspectorTraceEvents.cpp
index 2fd955c2b74ecf3b5bfb45d8aa165dcf85aba0cf..62c174d918812673a9622b48f6ec05168a14b9b2 100644
--- a/Source/core/inspector/InspectorTraceEvents.cpp
+++ b/Source/core/inspector/InspectorTraceEvents.cpp
@@ -30,6 +30,8 @@
namespace blink {
+static const unsigned maxInvalidationTrackingCallstackSize = 5;
+
namespace {
class JSCallStack : public TraceEvent::ConvertableToTraceFormat {
@@ -48,7 +50,7 @@ private:
String m_serialized;
};
-String toHexString(void* p)
+String toHexString(const void* p)
{
return String::format("0x%" PRIx64, static_cast<uint64>(reinterpret_cast<intptr_t>(p)));
}
@@ -110,6 +112,21 @@ PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorLayoutEvent::endData(R
return value;
}
+PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorLayoutInvalidationTrackingEvent::data(const RenderObject* renderer)
+{
+ ASSERT(renderer);
+ RefPtr<TracedValue> value = TracedValue::create();
+ value->setString("frame", toHexString(renderer->frame()));
+ value->setString("rendererId", toHexString(renderer));
+ if (Node* generatingNode = renderer->generatingNode()) {
+ value->setString("nodeName", generatingNode->debugName());
+ value->setInteger("nodeId", InspectorNodeIds::idForNode(generatingNode));
+ }
+ RefPtr<ScriptCallStack> callstack = createScriptCallStack(maxInvalidationTrackingCallstackSize, true);
+ value->setString("callstack", callstack ? callstack->buildInspectorArray()->toJSONString() : "[]");
+ return value;
+}
+
PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorSendRequestEvent::data(unsigned long identifier, LocalFrame* frame, const ResourceRequest& request)
{
String requestId = IdentifiersFactory::requestId(identifier);
« no previous file with comments | « Source/core/inspector/InspectorTraceEvents.h ('k') | Source/core/rendering/RenderImage.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698