| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2012 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 111 return true; | 111 return true; |
| 112 case recordTypes.MarkDOMContent: | 112 case recordTypes.MarkDOMContent: |
| 113 case recordTypes.MarkLoad: | 113 case recordTypes.MarkLoad: |
| 114 return event.args['data']['isMainFrame']; | 114 return event.args['data']['isMainFrame']; |
| 115 default: | 115 default: |
| 116 return false; | 116 return false; |
| 117 } | 117 } |
| 118 } | 118 } |
| 119 | 119 |
| 120 /** | 120 /** |
| 121 * @param {!WebInspector.TracingModel.Event} event |
| 122 * @return {string} |
| 123 */ |
| 124 static eventFrameId(event) { |
| 125 var data = event.args['data'] || event.args['beginData']; |
| 126 var frame = data && data['frame']; |
| 127 if (!frame) |
| 128 return ''; |
| 129 var processId = event.thread.process().id(); |
| 130 return `${processId}.${frame}`; |
| 131 } |
| 132 |
| 133 /** |
| 121 * @deprecated Test use only! | 134 * @deprecated Test use only! |
| 122 * @param {?function(!WebInspector.TimelineModel.Record)|?function(!WebInspect
or.TimelineModel.Record,number)} preOrderCallback | 135 * @param {?function(!WebInspector.TimelineModel.Record)|?function(!WebInspect
or.TimelineModel.Record,number)} preOrderCallback |
| 123 * @param {function(!WebInspector.TimelineModel.Record)|function(!WebInspector
.TimelineModel.Record,number)=} postOrderCallback | 136 * @param {function(!WebInspector.TimelineModel.Record)|function(!WebInspector
.TimelineModel.Record,number)=} postOrderCallback |
| 124 * @return {boolean} | 137 * @return {boolean} |
| 125 */ | 138 */ |
| 126 forAllRecords(preOrderCallback, postOrderCallback) { | 139 forAllRecords(preOrderCallback, postOrderCallback) { |
| 127 /** | 140 /** |
| 128 * @param {!Array.<!WebInspector.TimelineModel.Record>} records | 141 * @param {!Array.<!WebInspector.TimelineModel.Record>} records |
| 129 * @param {number} depth | 142 * @param {number} depth |
| 130 * @return {boolean} | 143 * @return {boolean} |
| (...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 257 * @return {!WebInspector.TimelineModel.MetadataEvents} | 270 * @return {!WebInspector.TimelineModel.MetadataEvents} |
| 258 */ | 271 */ |
| 259 _processMetadataEvents(tracingModel, produceTraceStartedInPage) { | 272 _processMetadataEvents(tracingModel, produceTraceStartedInPage) { |
| 260 var metadataEvents = tracingModel.devToolsMetadataEvents(); | 273 var metadataEvents = tracingModel.devToolsMetadataEvents(); |
| 261 | 274 |
| 262 var pageDevToolsMetadataEvents = []; | 275 var pageDevToolsMetadataEvents = []; |
| 263 var workersDevToolsMetadataEvents = []; | 276 var workersDevToolsMetadataEvents = []; |
| 264 for (var event of metadataEvents) { | 277 for (var event of metadataEvents) { |
| 265 if (event.name === WebInspector.TimelineModel.DevToolsMetadataEvent.Tracin
gStartedInPage) { | 278 if (event.name === WebInspector.TimelineModel.DevToolsMetadataEvent.Tracin
gStartedInPage) { |
| 266 pageDevToolsMetadataEvents.push(event); | 279 pageDevToolsMetadataEvents.push(event); |
| 280 var frames = (event.args['data'] && event.args['data']['frames']) || []; |
| 281 for (var frame of frames) { |
| 282 var processId = event.thread.process().id(); |
| 283 var frameId = `${processId}.${frame.frame}`; |
| 284 var frameData = { |
| 285 url: frame['url'] || '', |
| 286 name: frame['name'] || '', |
| 287 processId: processId, |
| 288 frameId: frame['frame'] |
| 289 }; |
| 290 this._pageFrames.set(frameId, frameData); |
| 291 } |
| 267 } else if (event.name === WebInspector.TimelineModel.DevToolsMetadataEvent
.TracingSessionIdForWorker) { | 292 } else if (event.name === WebInspector.TimelineModel.DevToolsMetadataEvent
.TracingSessionIdForWorker) { |
| 268 workersDevToolsMetadataEvents.push(event); | 293 workersDevToolsMetadataEvents.push(event); |
| 269 } else if (event.name === WebInspector.TimelineModel.DevToolsMetadataEvent
.TracingStartedInBrowser) { | 294 } else if (event.name === WebInspector.TimelineModel.DevToolsMetadataEvent
.TracingStartedInBrowser) { |
| 270 console.assert(!this._mainFrameNodeId, 'Multiple sessions in trace'); | 295 console.assert(!this._mainFrameNodeId, 'Multiple sessions in trace'); |
| 271 this._mainFrameNodeId = event.args['frameTreeNodeId']; | 296 this._mainFrameNodeId = event.args['frameTreeNodeId']; |
| 272 } | 297 } |
| 273 } | 298 } |
| 274 if (!pageDevToolsMetadataEvents.length) { | 299 if (!pageDevToolsMetadataEvents.length) { |
| 275 // The trace is probably coming not from DevTools. Make a mock Metadata ev
ent. | 300 // The trace is probably coming not from DevTools. Make a mock Metadata ev
ent. |
| 276 var pageMetaEvent = produceTraceStartedInPage ? this._makeMockPageMetadata
Event(tracingModel) : null; | 301 var pageMetaEvent = produceTraceStartedInPage ? this._makeMockPageMetadata
Event(tracingModel) : null; |
| (...skipping 495 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 772 break; | 797 break; |
| 773 | 798 |
| 774 case recordTypes.MarkDOMContent: | 799 case recordTypes.MarkDOMContent: |
| 775 case recordTypes.MarkLoad: | 800 case recordTypes.MarkLoad: |
| 776 var page = eventData['page']; | 801 var page = eventData['page']; |
| 777 if (page && page !== this._currentPage) | 802 if (page && page !== this._currentPage) |
| 778 return false; | 803 return false; |
| 779 break; | 804 break; |
| 780 | 805 |
| 781 case recordTypes.CommitLoad: | 806 case recordTypes.CommitLoad: |
| 807 var frameId = WebInspector.TimelineModel.eventFrameId(event); |
| 808 var pageFrame = this._pageFrames.get(frameId); |
| 809 if (pageFrame) { |
| 810 pageFrame.url = eventData.url || ''; |
| 811 pageFrame.name = eventData.name || ''; |
| 812 } else { |
| 813 var processId = event.thread.process().id(); |
| 814 this._pageFrames.set(frameId, {url: eventData.url || '', processId: pr
ocessId, frameId: eventData.frame, name: eventData.name || ''}); |
| 815 } |
| 782 var page = eventData['page']; | 816 var page = eventData['page']; |
| 783 if (page && page !== this._currentPage) | 817 if (page && page !== this._currentPage) |
| 784 return false; | 818 return false; |
| 785 if (!eventData['isMainFrame']) | 819 if (!eventData['isMainFrame']) |
| 786 break; | 820 break; |
| 787 this._hadCommitLoad = true; | 821 this._hadCommitLoad = true; |
| 788 this._firstCompositeLayers = null; | 822 this._firstCompositeLayers = null; |
| 789 break; | 823 break; |
| 790 | 824 |
| 791 case recordTypes.CompositeLayers: | 825 case recordTypes.CompositeLayers: |
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 910 /** @type {!Array<!WebInspector.TimelineModel.Record>} */ | 944 /** @type {!Array<!WebInspector.TimelineModel.Record>} */ |
| 911 this._eventDividerRecords = []; | 945 this._eventDividerRecords = []; |
| 912 /** @type {?string} */ | 946 /** @type {?string} */ |
| 913 this._sessionId = null; | 947 this._sessionId = null; |
| 914 /** @type {?number} */ | 948 /** @type {?number} */ |
| 915 this._mainFrameNodeId = null; | 949 this._mainFrameNodeId = null; |
| 916 /** @type {!Array<!WebInspector.CPUProfileDataModel>} */ | 950 /** @type {!Array<!WebInspector.CPUProfileDataModel>} */ |
| 917 this._cpuProfiles = []; | 951 this._cpuProfiles = []; |
| 918 /** @type {!WeakMap<!WebInspector.TracingModel.Thread, string>} */ | 952 /** @type {!WeakMap<!WebInspector.TracingModel.Thread, string>} */ |
| 919 this._workerIdByThread = new WeakMap(); | 953 this._workerIdByThread = new WeakMap(); |
| 954 /** @type {!Map<string, !WebInspector.TimelineModel.PageFrame>} */ |
| 955 this._pageFrames = new Map(); |
| 956 |
| 920 this._minimumRecordTime = 0; | 957 this._minimumRecordTime = 0; |
| 921 this._maximumRecordTime = 0; | 958 this._maximumRecordTime = 0; |
| 922 } | 959 } |
| 923 | 960 |
| 924 /** | 961 /** |
| 925 * @return {number} | 962 * @return {number} |
| 926 */ | 963 */ |
| 927 minimumRecordTime() { | 964 minimumRecordTime() { |
| 928 return this._minimumRecordTime; | 965 return this._minimumRecordTime; |
| 929 } | 966 } |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 992 } | 1029 } |
| 993 | 1030 |
| 994 /** | 1031 /** |
| 995 * @return {!Array.<!WebInspector.TimelineModel.Record>} | 1032 * @return {!Array.<!WebInspector.TimelineModel.Record>} |
| 996 */ | 1033 */ |
| 997 eventDividerRecords() { | 1034 eventDividerRecords() { |
| 998 return this._eventDividerRecords; | 1035 return this._eventDividerRecords; |
| 999 } | 1036 } |
| 1000 | 1037 |
| 1001 /** | 1038 /** |
| 1039 * @param {string} frameId |
| 1040 * @return {?WebInspector.TimelineModel.PageFrame} |
| 1041 */ |
| 1042 pageFrameById(frameId) { |
| 1043 return frameId ? this._pageFrames.get(frameId) || null : null; |
| 1044 } |
| 1045 |
| 1046 /** |
| 1002 * @return {!Array<!WebInspector.TimelineModel.NetworkRequest>} | 1047 * @return {!Array<!WebInspector.TimelineModel.NetworkRequest>} |
| 1003 */ | 1048 */ |
| 1004 networkRequests() { | 1049 networkRequests() { |
| 1005 /** @type {!Map<string,!WebInspector.TimelineModel.NetworkRequest>} */ | 1050 /** @type {!Map<string,!WebInspector.TimelineModel.NetworkRequest>} */ |
| 1006 var requests = new Map(); | 1051 var requests = new Map(); |
| 1007 /** @type {!Array<!WebInspector.TimelineModel.NetworkRequest>} */ | 1052 /** @type {!Array<!WebInspector.TimelineModel.NetworkRequest>} */ |
| 1008 var requestsList = []; | 1053 var requestsList = []; |
| 1009 /** @type {!Array<!WebInspector.TimelineModel.NetworkRequest>} */ | 1054 /** @type {!Array<!WebInspector.TimelineModel.NetworkRequest>} */ |
| 1010 var zeroStartRequestsList = []; | 1055 var zeroStartRequestsList = []; |
| 1011 var types = WebInspector.TimelineModel.RecordType; | 1056 var types = WebInspector.TimelineModel.RecordType; |
| (...skipping 312 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1324 this._children.push(child); | 1369 this._children.push(child); |
| 1325 child.parent = this; | 1370 child.parent = this; |
| 1326 } | 1371 } |
| 1327 }; | 1372 }; |
| 1328 | 1373 |
| 1329 | 1374 |
| 1330 /** @typedef {!{page: !Array<!WebInspector.TracingModel.Event>, workers: !Array<
!WebInspector.TracingModel.Event>}} */ | 1375 /** @typedef {!{page: !Array<!WebInspector.TracingModel.Event>, workers: !Array<
!WebInspector.TracingModel.Event>}} */ |
| 1331 WebInspector.TimelineModel.MetadataEvents; | 1376 WebInspector.TimelineModel.MetadataEvents; |
| 1332 | 1377 |
| 1333 | 1378 |
| 1379 /** @typedef {!{url: string, processId: number, frameId: string, name: string}}
*/ |
| 1380 WebInspector.TimelineModel.PageFrame; |
| 1381 |
| 1334 /** | 1382 /** |
| 1335 * @unrestricted | 1383 * @unrestricted |
| 1336 */ | 1384 */ |
| 1337 WebInspector.TimelineModel.NetworkRequest = class { | 1385 WebInspector.TimelineModel.NetworkRequest = class { |
| 1338 /** | 1386 /** |
| 1339 * @param {!WebInspector.TracingModel.Event} event | 1387 * @param {!WebInspector.TracingModel.Event} event |
| 1340 */ | 1388 */ |
| 1341 constructor(event) { | 1389 constructor(event) { |
| 1342 this.startTime = event.name === WebInspector.TimelineModel.RecordType.Resour
ceSendRequest ? event.startTime : 0; | 1390 this.startTime = event.name === WebInspector.TimelineModel.RecordType.Resour
ceSendRequest ? event.startTime : 0; |
| 1343 this.endTime = Infinity; | 1391 this.endTime = Infinity; |
| (...skipping 455 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1799 if (!id) | 1847 if (!id) |
| 1800 return; | 1848 return; |
| 1801 /** @type {!Map<string, !WebInspector.TracingModel.Event>|undefined} */ | 1849 /** @type {!Map<string, !WebInspector.TracingModel.Event>|undefined} */ |
| 1802 var initiatorMap = this._initiatorByType.get(initiatorType); | 1850 var initiatorMap = this._initiatorByType.get(initiatorType); |
| 1803 if (isInitiator) | 1851 if (isInitiator) |
| 1804 initiatorMap.set(id, event); | 1852 initiatorMap.set(id, event); |
| 1805 else | 1853 else |
| 1806 event.initiator = initiatorMap.get(id) || null; | 1854 event.initiator = initiatorMap.get(id) || null; |
| 1807 } | 1855 } |
| 1808 }; | 1856 }; |
| OLD | NEW |