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

Unified Diff: third_party/WebKit/Source/devtools/front_end/timeline/TimelineModel.js

Issue 1410153009: DevTools: Make network events continuous on Timeline (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: addressing comments #2 Created 5 years, 1 month 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: third_party/WebKit/Source/devtools/front_end/timeline/TimelineModel.js
diff --git a/third_party/WebKit/Source/devtools/front_end/timeline/TimelineModel.js b/third_party/WebKit/Source/devtools/front_end/timeline/TimelineModel.js
index cd7212841cd566b40c4996f3f6a750a984d8683c..23c8bd4ee6eb983ae374713d76a21644c600f7a1 100644
--- a/third_party/WebKit/Source/devtools/front_end/timeline/TimelineModel.js
+++ b/third_party/WebKit/Source/devtools/front_end/timeline/TimelineModel.js
@@ -108,6 +108,11 @@ WebInspector.TimelineModel.RecordType = {
TimeStamp: "TimeStamp",
ConsoleTime: "ConsoleTime",
+ ResourceFetcherRequestResource: "ResourceFetcher::requestResource",
+ ResourceDispatcherOnReceivedData: "ResourceDispatcher::OnReceivedData",
+ ResourceDispatcherOnReceivedResponse: "ResourceDispatcher::OnReceivedResponse",
+ ResourceDispatcherOnRequestComplete: "ResourceDispatcher::OnRequestComplete",
+
ResourceSendRequest: "ResourceSendRequest",
ResourceReceiveResponse: "ResourceReceiveResponse",
ResourceReceivedData: "ResourceReceivedData",
@@ -1062,6 +1067,35 @@ WebInspector.TimelineModel.prototype = {
/**
* @param {!WebInspector.TracingModel.Event} event
+ * @param {!WebInspector.TimelineModel.RecordType} parentType
+ */
+ _processNetworkEvent: function(event, parentType)
+ {
+ /**
+ * @param {!Object} dest
+ * @param {!Object} source
+ */
+ function mergeData(dest, source)
+ {
+ for (var field in source)
+ dest[field] = dest[field] || source[field];
+ }
+ var parent = this._findAncestorEvent(parentType);
+ if (!parent)
+ return;
+ if (!parent.args["data"])
+ parent.args["data"] = {};
+ var eventData = event.args["data"];
+ mergeData(parent.args["data"], eventData);
+ parent.stackTrace = parent.stackTrace || event.stackTrace;
+ parent.initiator = parent.initiator || event.initiator;
+ var url = eventData["url"] || event.initiator && event.initiator.url;
+ event.url = url;
+ parent.url = url;
+ },
+
+ /**
+ * @param {!WebInspector.TracingModel.Event} event
* @return {boolean}
*/
_processEvent: function(event)
@@ -1086,6 +1120,21 @@ WebInspector.TimelineModel.prototype = {
event.url = event.initiator.url;
switch (event.name) {
case recordTypes.ResourceSendRequest:
+ this._processNetworkEvent(event, recordTypes.ResourceFetcherRequestResource);
+ break;
+
+ case recordTypes.ResourceReceiveResponse:
+ this._processNetworkEvent(event, recordTypes.ResourceDispatcherOnReceivedResponse);
+ break;
+
+ case recordTypes.ResourceReceivedData:
+ this._processNetworkEvent(event, recordTypes.ResourceDispatcherOnReceivedData);
+ break;
+
+ case recordTypes.ResourceFinish:
+ this._processNetworkEvent(event, recordTypes.ResourceDispatcherOnRequestComplete);
+ break;
+
case recordTypes.WebSocketCreate:
event.url = event.args["data"]["url"];
break;

Powered by Google App Engine
This is Rietveld 408576698