| 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;
|
|
|