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

Unified Diff: Source/core/dom/Node.cpp

Issue 465223002: [ Do not submit ] Prototype for invalidation analysis Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Cleanup Created 6 years, 4 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
Index: Source/core/dom/Node.cpp
diff --git a/Source/core/dom/Node.cpp b/Source/core/dom/Node.cpp
index cd07aa30ef859ee7d59b7dbc96a1a43bc501a7fb..a94639e76b72f9af5f34a9bb41fae2ebedb5e993 100644
--- a/Source/core/dom/Node.cpp
+++ b/Source/core/dom/Node.cpp
@@ -96,6 +96,7 @@
#include "wtf/Vector.h"
#include "wtf/text/CString.h"
#include "wtf/text/StringBuilder.h"
+#include <inttypes.h>
namespace blink {
@@ -766,6 +767,22 @@ void Node::markAncestorsWithChildNeedsStyleRecalc()
document().scheduleRenderTreeUpdateIfNeeded();
}
+PassRefPtr<TraceEvent::ConvertableToTraceFormat> jsonObjectForTracedStyleInvalidation(const Node* node, const StyleChangeType styleChangeType)
+{
+ RefPtr<TracedValue> value = TracedValue::create();
+ value->setString("root_node", node->debugName());
+ LocalFrame* frame = node->document().frame();
+ value->setString("frame", String::format("0x%" PRIx64, static_cast<uint64>(reinterpret_cast<intptr_t>(frame))));
+ switch(styleChangeType) {
+ case(NoStyleChange): value->setString("styleChange", "NoStyleChange"); break;
+ case(LocalStyleChange): value->setString("styleChange", "LocalStyleChange"); break;
+ case(SubtreeStyleChange): value->setString("styleChange", "SubtreeStyleChange"); break;
+ case(NeedsReattachStyleChange): value->setString("styleChange", "NeedsReattachStyleChange"); break;
+ default: value->setString("styleChange", "Unknown");
+ }
+ return value;
+}
+
void Node::setNeedsStyleRecalc(StyleChangeType changeType)
{
ASSERT(changeType != NoStyleChange);
@@ -777,6 +794,7 @@ void Node::setNeedsStyleRecalc(StyleChangeType changeType)
setStyleChange(changeType);
if (changeType >= SubtreeStyleChange)
traceStyleChangeIfNeeded(changeType);
+ TRACE_EVENT_INSTANT1(TRACE_DISABLED_BY_DEFAULT("devtools.timeline.invalidations"), "Invalidation", "data", jsonObjectForTracedStyleInvalidation(this, changeType));
}
if (existingChangeType == NoStyleChange)

Powered by Google App Engine
This is Rietveld 408576698