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 barrier = new CallbackBarrier(); | 685 var target = /** @type {!SDK.Target} */ (maybeTarget); |
686 if (!event[Timeline.TimelineUIUtils._previewElementSymbol]) { | 686 if (!event[Timeline.TimelineUIUtils._previewElementSymbol]) { |
687 var url = TimelineModel.TimelineData.forEvent(event).url; | 687 var url = TimelineModel.TimelineData.forEvent(event).url; |
688 if (url) { | 688 event[Timeline.TimelineUIUtils._previewElementSymbol] = await new Promise( fulfill => { |
689 Components.DOMPresentationUtils.buildImagePreviewContents( | 689 if (url) |
690 target, url, false, barrier.createCallback(saveImage)); | 690 Components.DOMPresentationUtils.buildImagePreviewContents(target, url, false, fulfill); |
691 } else if (TimelineModel.TimelineData.forEvent(event).picture) { | 691 else if (TimelineModel.TimelineData.forEvent(event).picture) |
692 Timeline.TimelineUIUtils.buildPicturePreviewContent(event, target, barri er.createCallback(saveImage)); | 692 Timeline.TimelineUIUtils.buildPicturePreviewContent(event, target, ful fill); |
693 } | 693 else |
694 fulfill(); | |
695 }) || null; | |
694 } | 696 } |
697 | |
695 var nodeIdsToResolve = new Set(); | 698 var nodeIdsToResolve = new Set(); |
696 var timelineData = TimelineModel.TimelineData.forEvent(event); | 699 var timelineData = TimelineModel.TimelineData.forEvent(event); |
697 if (timelineData.backendNodeId) | 700 if (timelineData.backendNodeId) |
698 nodeIdsToResolve.add(timelineData.backendNodeId); | 701 nodeIdsToResolve.add(timelineData.backendNodeId); |
699 var invalidationTrackingEvents = TimelineModel.InvalidationTracker.invalidat ionEventsFor(event); | 702 var invalidationTrackingEvents = TimelineModel.InvalidationTracker.invalidat ionEventsFor(event); |
700 if (invalidationTrackingEvents) | 703 if (invalidationTrackingEvents) |
701 Timeline.TimelineUIUtils._collectInvalidationNodeIds(nodeIdsToResolve, inv alidationTrackingEvents); | 704 Timeline.TimelineUIUtils._collectInvalidationNodeIds(nodeIdsToResolve, inv alidationTrackingEvents); |
705 var relatedNodes = null; | |
702 if (nodeIdsToResolve.size) { | 706 if (nodeIdsToResolve.size) { |
703 var domModel = SDK.DOMModel.fromTarget(target); | 707 var domModel = SDK.DOMModel.fromTarget(target); |
704 if (domModel) | 708 if (domModel) { |
705 domModel.pushNodesByBackendIdsToFrontend(nodeIdsToResolve, barrier.creat eCallback(setRelatedNodeMap)); | 709 relatedNodes = await new Promise(fulfill => |
dgozman
2017/02/25 19:02:31
What? As we discussed multiple times, please talk
| |
706 } | 710 domModel.pushNodesByBackendIdsToFrontend(nodeIdsToResolve, fulfill)) ; |
707 barrier.callWhenDone(callbackWrapper); | 711 } |
708 | |
709 /** | |
710 * @param {!Element=} element | |
711 */ | |
712 function saveImage(element) { | |
713 event[Timeline.TimelineUIUtils._previewElementSymbol] = element || null; | |
714 } | 712 } |
715 | 713 |
716 /** | 714 return Timeline.TimelineUIUtils._buildTraceEventDetailsSynchronously( |
717 * @param {?Map<number, ?SDK.DOMNode>} nodeMap | 715 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 } | 716 } |
728 | 717 |
729 /** | 718 /** |
730 * @param {!SDK.TracingModel.Event} event | 719 * @param {!SDK.TracingModel.Event} event |
731 * @param {!TimelineModel.TimelineModel} model | 720 * @param {!TimelineModel.TimelineModel} model |
732 * @param {!Components.Linkifier} linkifier | 721 * @param {!Components.Linkifier} linkifier |
733 * @param {boolean} detailed | 722 * @param {boolean} detailed |
734 * @param {?Map<number, ?SDK.DOMNode>} relatedNodesMap | 723 * @param {?Map<number, ?SDK.DOMNode>} relatedNodesMap |
735 * @return {!DocumentFragment} | 724 * @return {!DocumentFragment} |
736 */ | 725 */ |
(...skipping 1565 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2302 * @param {string=} warningType | 2291 * @param {string=} warningType |
2303 */ | 2292 */ |
2304 appendWarningRow(event, warningType) { | 2293 appendWarningRow(event, warningType) { |
2305 var warning = Timeline.TimelineUIUtils.eventWarning(event, warningType); | 2294 var warning = Timeline.TimelineUIUtils.eventWarning(event, warningType); |
2306 if (warning) | 2295 if (warning) |
2307 this.appendElementRow(Common.UIString('Warning'), warning, true); | 2296 this.appendElementRow(Common.UIString('Warning'), warning, true); |
2308 } | 2297 } |
2309 }; | 2298 }; |
2310 | 2299 |
2311 Timeline.TimelineUIUtils._categoryBreakdownCacheSymbol = Symbol('categoryBreakdo wnCache'); | 2300 Timeline.TimelineUIUtils._categoryBreakdownCacheSymbol = Symbol('categoryBreakdo wnCache'); |
OLD | NEW |