| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google Inc. All rights reserved. |
| 3 * Copyright (C) 2012 Intel Inc. All rights reserved. | 3 * Copyright (C) 2012 Intel Inc. All rights reserved. |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions are | 6 * modification, are permitted provided that the following conditions are |
| 7 * met: | 7 * met: |
| 8 * | 8 * |
| 9 * * Redistributions of source code must retain the above copyright | 9 * * Redistributions of source code must retain the above copyright |
| 10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
| (...skipping 655 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 666 var frame = TimelineModel.TimelineData.forEvent(event).topFrame(); | 666 var frame = TimelineModel.TimelineData.forEvent(event).topFrame(); |
| 667 return frame ? linkifier.maybeLinkifyConsoleCallFrame(target, frame, 'time
line-details') : null; | 667 return frame ? linkifier.maybeLinkifyConsoleCallFrame(target, frame, 'time
line-details') : null; |
| 668 } | 668 } |
| 669 } | 669 } |
| 670 | 670 |
| 671 /** | 671 /** |
| 672 * @param {!SDK.TracingModel.Event} event | 672 * @param {!SDK.TracingModel.Event} event |
| 673 * @param {!TimelineModel.TimelineModel} model | 673 * @param {!TimelineModel.TimelineModel} model |
| 674 * @param {!Components.Linkifier} linkifier | 674 * @param {!Components.Linkifier} linkifier |
| 675 * @param {boolean} detailed | 675 * @param {boolean} detailed |
| 676 * @param {function(!DocumentFragment)} callback | 676 * @return {!Promise<!DocumentFragment>} |
| 677 */ | 677 */ |
| 678 static buildTraceEventDetails(event, model, linkifier, detailed, callback) { | 678 static async buildTraceEventDetails(event, model, linkifier, detailed) { |
| 679 var target = model.targetByEvent(event); | 679 var maybeTarget = model.targetByEvent(event); |
| 680 if (!target) { | 680 if (!maybeTarget) { |
| 681 callbackWrapper(); | 681 return Timeline.TimelineUIUtils._buildTraceEventDetailsSynchronously( |
| 682 return; | 682 event, model, linkifier, detailed, null); |
| 683 } | 683 } |
| 684 var relatedNodes = null; | 684 |
| 685 var target = /** @type {!SDK.Target} */ (maybeTarget); |
| 685 var barrier = new CallbackBarrier(); | 686 var barrier = new CallbackBarrier(); |
| 686 if (!event[Timeline.TimelineUIUtils._previewElementSymbol]) { | 687 if (!event[Timeline.TimelineUIUtils._previewElementSymbol]) { |
| 687 var url = TimelineModel.TimelineData.forEvent(event).url; | 688 var url = TimelineModel.TimelineData.forEvent(event).url; |
| 688 if (url) { | 689 event[Timeline.TimelineUIUtils._previewElementSymbol] = await new Promise(
fulfill => { |
| 689 Components.DOMPresentationUtils.buildImagePreviewContents( | 690 if (url) |
| 690 target, url, false, barrier.createCallback(saveImage)); | 691 Components.DOMPresentationUtils.buildImagePreviewContents(target, url,
false, fulfill); |
| 691 } else if (TimelineModel.TimelineData.forEvent(event).picture) { | 692 else if (TimelineModel.TimelineData.forEvent(event).picture) |
| 692 Timeline.TimelineUIUtils.buildPicturePreviewContent(event, target, barri
er.createCallback(saveImage)); | 693 Timeline.TimelineUIUtils.buildPicturePreviewContent(event, target, ful
fill); |
| 693 } | 694 else |
| 695 fulfill(); |
| 696 }) || null; |
| 694 } | 697 } |
| 698 |
| 695 var nodeIdsToResolve = new Set(); | 699 var nodeIdsToResolve = new Set(); |
| 696 var timelineData = TimelineModel.TimelineData.forEvent(event); | 700 var timelineData = TimelineModel.TimelineData.forEvent(event); |
| 697 if (timelineData.backendNodeId) | 701 if (timelineData.backendNodeId) |
| 698 nodeIdsToResolve.add(timelineData.backendNodeId); | 702 nodeIdsToResolve.add(timelineData.backendNodeId); |
| 699 var invalidationTrackingEvents = TimelineModel.InvalidationTracker.invalidat
ionEventsFor(event); | 703 var invalidationTrackingEvents = TimelineModel.InvalidationTracker.invalidat
ionEventsFor(event); |
| 700 if (invalidationTrackingEvents) | 704 if (invalidationTrackingEvents) |
| 701 Timeline.TimelineUIUtils._collectInvalidationNodeIds(nodeIdsToResolve, inv
alidationTrackingEvents); | 705 Timeline.TimelineUIUtils._collectInvalidationNodeIds(nodeIdsToResolve, inv
alidationTrackingEvents); |
| 706 var relatedNodes = null; |
| 702 if (nodeIdsToResolve.size) { | 707 if (nodeIdsToResolve.size) { |
| 703 var domModel = SDK.DOMModel.fromTarget(target); | 708 var domModel = SDK.DOMModel.fromTarget(target); |
| 704 if (domModel) | 709 if (domModel) { |
| 705 domModel.pushNodesByBackendIdsToFrontend(nodeIdsToResolve, barrier.creat
eCallback(setRelatedNodeMap)); | 710 relatedNodes = await new Promise(fulfill => |
| 706 } | 711 domModel.pushNodesByBackendIdsToFrontend(nodeIdsToResolve, fulfill))
; |
| 707 barrier.callWhenDone(callbackWrapper); | 712 } |
| 708 | |
| 709 /** | |
| 710 * @param {!Element=} element | |
| 711 */ | |
| 712 function saveImage(element) { | |
| 713 event[Timeline.TimelineUIUtils._previewElementSymbol] = element || null; | |
| 714 } | 713 } |
| 715 | 714 |
| 716 /** | 715 return Timeline.TimelineUIUtils._buildTraceEventDetailsSynchronously( |
| 717 * @param {?Map<number, ?SDK.DOMNode>} nodeMap | 716 event, model, linkifier, detailed, relatedNodes); |
| 718 */ | |
| 719 function setRelatedNodeMap(nodeMap) { | |
| 720 relatedNodes = nodeMap; | |
| 721 } | |
| 722 | |
| 723 function callbackWrapper() { | |
| 724 callback(Timeline.TimelineUIUtils._buildTraceEventDetailsSynchronously( | |
| 725 event, model, linkifier, detailed, relatedNodes)); | |
| 726 } | |
| 727 } | 717 } |
| 728 | 718 |
| 729 /** | 719 /** |
| 730 * @param {!SDK.TracingModel.Event} event | 720 * @param {!SDK.TracingModel.Event} event |
| 731 * @param {!TimelineModel.TimelineModel} model | 721 * @param {!TimelineModel.TimelineModel} model |
| 732 * @param {!Components.Linkifier} linkifier | 722 * @param {!Components.Linkifier} linkifier |
| 733 * @param {boolean} detailed | 723 * @param {boolean} detailed |
| 734 * @param {?Map<number, ?SDK.DOMNode>} relatedNodesMap | 724 * @param {?Map<number, ?SDK.DOMNode>} relatedNodesMap |
| 735 * @return {!DocumentFragment} | 725 * @return {!DocumentFragment} |
| 736 */ | 726 */ |
| (...skipping 1565 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2302 * @param {string=} warningType | 2292 * @param {string=} warningType |
| 2303 */ | 2293 */ |
| 2304 appendWarningRow(event, warningType) { | 2294 appendWarningRow(event, warningType) { |
| 2305 var warning = Timeline.TimelineUIUtils.eventWarning(event, warningType); | 2295 var warning = Timeline.TimelineUIUtils.eventWarning(event, warningType); |
| 2306 if (warning) | 2296 if (warning) |
| 2307 this.appendElementRow(Common.UIString('Warning'), warning, true); | 2297 this.appendElementRow(Common.UIString('Warning'), warning, true); |
| 2308 } | 2298 } |
| 2309 }; | 2299 }; |
| 2310 | 2300 |
| 2311 Timeline.TimelineUIUtils._categoryBreakdownCacheSymbol = Symbol('categoryBreakdo
wnCache'); | 2301 Timeline.TimelineUIUtils._categoryBreakdownCacheSymbol = Symbol('categoryBreakdo
wnCache'); |
| OLD | NEW |