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

Unified Diff: Source/devtools/front_end/timeline/TimelineUIUtils.js

Issue 731293006: Implement style invalidation tracking (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Address reviewer comments, cleanup Created 6 years 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/devtools/front_end/timeline/TimelineModel.js ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/devtools/front_end/timeline/TimelineUIUtils.js
diff --git a/Source/devtools/front_end/timeline/TimelineUIUtils.js b/Source/devtools/front_end/timeline/TimelineUIUtils.js
index 85957601719ab8b18fe1c48e34bee40cff36e8bd..3edc3947f912653536a151cfd517e860eef24ff5 100644
--- a/Source/devtools/front_end/timeline/TimelineUIUtils.js
+++ b/Source/devtools/front_end/timeline/TimelineUIUtils.js
@@ -739,9 +739,9 @@ WebInspector.TimelineUIUtils._generateInvalidationsForType = function(type, targ
for (var index = 0; index < invalidations.length; index++) {
var invalidation = invalidations[index];
var causeKey = "";
- if (invalidation.cause && invalidation.cause.reason)
+ if (invalidation.cause.reason)
causeKey += invalidation.cause.reason + ".";
- if (invalidation.cause && invalidation.cause.stackTrace) {
+ if (invalidation.cause.stackTrace) {
invalidation.cause.stackTrace.forEach(function(stackFrame) {
causeKey += stackFrame["functionName"] + ".";
causeKey += stackFrame["scriptId"] + ".";
@@ -772,8 +772,8 @@ WebInspector.TimelineUIUtils._generateInvalidationsForType = function(type, targ
});
var first = invalidations[0];
- var reason = first.cause && first.cause.reason;
- var topFrame = first.cause && first.cause.stackTrace && first.cause.stackTrace[0];
+ var reason = first.cause.reason;
+ var topFrame = first.cause.stackTrace && first.cause.stackTrace[0];
if (reason)
header.createTextChild(WebInspector.UIString("%s for ", reason));
@@ -816,11 +816,15 @@ WebInspector.TimelineUIUtils._generateInvalidationsForType = function(type, targ
function appendTruncatedNodeList(parentElement, invalidations)
{
var invalidationNodes = [];
- invalidations.forEach(function(invalidation) {
+ var invalidationNodeIdMap = {};
+ for (var i = 0; i < invalidations.length; i++) {
+ var invalidation = invalidations[i];
var invalidationNode = createInvalidationNode(invalidation, false);
- if (invalidationNode)
+ if (invalidationNode && !invalidationNodeIdMap[invalidation.nodeId]) {
invalidationNodes.push(invalidationNode);
- });
+ invalidationNodeIdMap[invalidation.nodeId] = true;
+ }
+ }
if (invalidationNodes.length === 1) {
parentElement.appendChild(invalidationNodes[0]);
@@ -837,24 +841,6 @@ WebInspector.TimelineUIUtils._generateInvalidationsForType = function(type, targ
}
/**
- * @param {!Element} parentElement
- * @param {!Array.<!WebInspector.InvalidationTrackingEvent>} invalidations
- */
- function appendNodeList(parentElement, invalidations)
- {
- var firstNode = true;
- invalidations.forEach(function(invalidation) {
- var invalidationNode = createInvalidationNode(invalidation, true);
- if (invalidationNode) {
- if (!firstNode)
- parentElement.createTextChild(WebInspector.UIString(", "));
- parentElement.appendChild(invalidationNode);
- firstNode = false;
- }
- });
- }
-
- /**
* @param {!Element} header
* @param {!Array.<!WebInspector.InvalidationTrackingEvent>} invalidations
*/
@@ -882,7 +868,7 @@ WebInspector.TimelineUIUtils._generateInvalidationsForType = function(type, targ
var content = parentElement.createChild("div", "content");
var first = invalidations[0];
- if (first.cause && first.cause.stackTrace) {
+ if (first.cause.stackTrace) {
var stack = content.createChild("div");
stack.createTextChild(WebInspector.UIString("Stack trace:"));
contentHelper.createChildStackTraceElement(stack, first.cause.stackTrace);
@@ -890,7 +876,40 @@ WebInspector.TimelineUIUtils._generateInvalidationsForType = function(type, targ
content.createTextChild(invalidations.length > 1 ? WebInspector.UIString("Nodes:") : WebInspector.UIString("Node:"));
var nodeList = content.createChild("div", "node-list timeline-details-view-row-stack-trace");
- appendNodeList(nodeList, invalidations);
+ appendDetailedNodeList(nodeList, invalidations);
+ }
+
+ /**
+ * @param {!Element} parentElement
+ * @param {!Array.<!WebInspector.InvalidationTrackingEvent>} invalidations
+ */
+ function appendDetailedNodeList(parentElement, invalidations)
+ {
+ var firstNode = true;
+ for (var i = 0; i < invalidations.length; i++) {
+ var invalidation = invalidations[i];
+ var invalidationNode = createInvalidationNode(invalidation, true);
+ if (invalidationNode) {
+ if (!firstNode)
+ parentElement.createTextChild(WebInspector.UIString(", "));
+ firstNode = false;
+
+ parentElement.appendChild(invalidationNode);
+
+ var extraData = invalidation.extraData ? ", " + invalidation.extraData : "";
+ if (invalidation.changedId) {
+ parentElement.createTextChild(WebInspector.UIString("(changed id to \"%s\"%s)", invalidation.changedId, extraData));
+ } else if (invalidation.changedClass) {
+ parentElement.createTextChild(WebInspector.UIString("(changed class to \"%s\"%s)", invalidation.changedClass, extraData));
+ } else if (invalidation.changedAttribute) {
+ parentElement.createTextChild(WebInspector.UIString("(changed attribute to \"%s\"%s)", invalidation.changedAttribute, extraData));
+ } else if (invalidation.changedPseudo) {
+ parentElement.createTextChild(WebInspector.UIString("(changed pesudo to \"%s\"%s)", invalidation.changedPseudo, extraData));
+ } else if (invalidation.selectorPart) {
+ parentElement.createTextChild(WebInspector.UIString("(changed \"%s\"%s)", invalidation.selectorPart, extraData));
+ }
+ }
+ }
}
}
« no previous file with comments | « Source/devtools/front_end/timeline/TimelineModel.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698