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 |