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

Unified Diff: third_party/WebKit/Source/devtools/front_end/network/RequestTimingView.js

Issue 1794783006: Add Server-Timing support to devtools (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix line-endings again Created 4 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
« no previous file with comments | « no previous file | third_party/WebKit/Source/devtools/front_end/network/networkPanel.css » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/Source/devtools/front_end/network/RequestTimingView.js
diff --git a/third_party/WebKit/Source/devtools/front_end/network/RequestTimingView.js b/third_party/WebKit/Source/devtools/front_end/network/RequestTimingView.js
index 5cda0448706dfde3c273e649cd3f6615c1a1df6c..59dbc6245341eec9c84012b9166a204084802eed 100644
--- a/third_party/WebKit/Source/devtools/front_end/network/RequestTimingView.js
+++ b/third_party/WebKit/Source/devtools/front_end/network/RequestTimingView.js
@@ -284,8 +284,57 @@ WebInspector.RequestTimingView.createTimingTable = function(request, navigationS
note.appendChild(WebInspector.linkifyDocumentationURLAsNode("profile/network-performance/resource-loading#view-network-timing-details-for-a-specific-resource", WebInspector.UIString("Explanation")));
footer.createChild("td").createTextChild(Number.secondsToString(totalDuration, true));
+ var serverTimings = request.serverTimings;
+ if (!serverTimings)
+ return tableElement;
+
+ var lastTimingRightEdge = right === undefined ? 100 : right;
+
+ var breakElement = tableElement.createChild("tr", "network-timing-table-header").createChild("td");
+ breakElement.colSpan = 3;
+ breakElement.createChild("hr", "break");
+
+ var serverHeader = tableElement.createChild("tr", "network-timing-table-header");
+ serverHeader.createChild("td").createTextChild(WebInspector.UIString("Server Timing"));
+ serverHeader.createChild("td");
+ serverHeader.createChild("td").createTextChild(WebInspector.UIString("TIME"));
+
+ serverTimings.filter(item => item.metric.toLowerCase() !== "total").forEach(item => addTiming(item, lastTimingRightEdge));
+ serverTimings.filter(item => item.metric.toLowerCase() === "total").forEach(item => addTiming(item, lastTimingRightEdge));
+
return tableElement;
+
+ /**
+ * @param {!WebInspector.ServerTiming} serverTiming
+ * @param {number} right
+ */
+ function addTiming(serverTiming, right)
+ {
+ var colorGenerator = new WebInspector.FlameChart.ColorGenerator(
+ { min: 0, max: 360, count:36 },
+ { min: 50, max: 80 },
+ 80
+ );
+ var isTotal = serverTiming.metric.toLowerCase() === "total";
+ var tr = tableElement.createChild("tr", isTotal ? "network-timing-footer" : "");
+ var metric = tr.createChild("td", "network-timing-metric");
+ metric.createTextChild(serverTiming.description || serverTiming.metric);
+ var row = tr.createChild("td").createChild("div", "network-timing-row");
+ var left = scale * (endTime - startTime - serverTiming.value);
+ if (serverTiming.value && left >= 0) { // don't chart values too big or too small
+ var bar = row.createChild("span", "network-timing-bar server-timing");
+ bar.style.left = left + "%";
+ bar.style.right = right + "%";
+ bar.textContent = "\u200B"; // Important for 0-time items to have 0 width.
+ if (!isTotal)
+ bar.style.backgroundColor = colorGenerator.colorForID(serverTiming.metric);
+ }
+ var label = tr.createChild("td").createChild("div", "network-timing-bar-title");
+ if (typeof serverTiming.value === "number") // a metric timing value is optional
+ label.textContent = Number.secondsToString(serverTiming.value, true);
+ }
+
/**
* param {string} title
*/
« no previous file with comments | « no previous file | third_party/WebKit/Source/devtools/front_end/network/networkPanel.css » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698