| Index: Source/devtools/front_end/timeline/TimelineUIUtils.js
|
| diff --git a/Source/devtools/front_end/timeline/TimelineUIUtils.js b/Source/devtools/front_end/timeline/TimelineUIUtils.js
|
| index 4c3f5fa7b261889d5582b61f3be770749a78aadd..5380ab6ce5731a065f67236881c349e93b983816 100644
|
| --- a/Source/devtools/front_end/timeline/TimelineUIUtils.js
|
| +++ b/Source/devtools/front_end/timeline/TimelineUIUtils.js
|
| @@ -264,13 +264,13 @@ WebInspector.TimelineUIUtils.isTallMarkerEvent = function(event)
|
|
|
| /**
|
| * @param {!WebInspector.TracingModel.Event} event
|
| + * @param {?WebInspector.Target} target
|
| * @param {!WebInspector.Linkifier} linkifier
|
| * @return {?Node}
|
| */
|
| -WebInspector.TimelineUIUtils.buildDetailsNodeForTraceEvent = function(event, linkifier)
|
| +WebInspector.TimelineUIUtils.buildDetailsNodeForTraceEvent = function(event, target, linkifier)
|
| {
|
| var recordType = WebInspector.TimelineModel.RecordType;
|
| - var target = event.thread.target();
|
| var details;
|
| var detailsText;
|
| var eventData = event.args["data"];
|
| @@ -404,19 +404,23 @@ WebInspector.TimelineUIUtils.buildDetailsNodeForTraceEvent = function(event, lin
|
| */
|
| WebInspector.TimelineUIUtils.buildTraceEventDetails = function(event, model, linkifier, callback)
|
| {
|
| - var target = event.thread.target();
|
| + var target = model.target();
|
| + if (!target) {
|
| + callbackWrapper();
|
| + return;
|
| + }
|
| var relatedNode = null;
|
| var barrier = new CallbackBarrier();
|
| if (!event.previewElement) {
|
| - if (event.imageURL && target)
|
| + if (event.imageURL)
|
| WebInspector.DOMPresentationUtils.buildImagePreviewContents(target, event.imageURL, false, barrier.createCallback(saveImage));
|
| else if (event.picture)
|
| - WebInspector.TimelineUIUtils.buildPicturePreviewContent(event, barrier.createCallback(saveImage));
|
| + WebInspector.TimelineUIUtils.buildPicturePreviewContent(event, target, barrier.createCallback(saveImage));
|
| }
|
| - if (event.backendNodeId && target)
|
| + if (event.backendNodeId)
|
| target.domModel.pushNodesByBackendIdsToFrontend([event.backendNodeId], barrier.createCallback(setRelatedNode));
|
| if (event.invalidationTrackingEvents)
|
| - WebInspector.TimelineUIUtils._pushInvalidationNodeIdsToFrontend(event, barrier.createCallback(updateInvalidationNodeIds));
|
| + WebInspector.TimelineUIUtils._pushInvalidationNodeIdsToFrontend(event, target, barrier.createCallback(updateInvalidationNodeIds));
|
| barrier.callWhenDone(callbackWrapper);
|
|
|
| /**
|
| @@ -500,7 +504,7 @@ WebInspector.TimelineUIUtils._buildTraceEventDetailsSynchronously = function(eve
|
| // This message may vary per event.name;
|
| var relatedNodeLabel;
|
|
|
| - var contentHelper = new WebInspector.TimelineDetailsContentHelper(event.thread.target(), linkifier, true);
|
| + var contentHelper = new WebInspector.TimelineDetailsContentHelper(model.target(), linkifier, true);
|
| contentHelper.appendTextRow(WebInspector.UIString("Type"), WebInspector.TimelineUIUtils.eventTitle(event, model));
|
| contentHelper.appendTextRow(WebInspector.UIString("Self Time"), Number.millisToString(event.selfTime, true));
|
| contentHelper.appendTextRow(WebInspector.UIString("Start Time"), Number.millisToString((event.startTime - model.minimumRecordTime())));
|
| @@ -607,7 +611,7 @@ WebInspector.TimelineUIUtils._buildTraceEventDetailsSynchronously = function(eve
|
| contentHelper.appendTextRow(WebInspector.UIString("Callback Function"), eventData["callbackName"]);
|
| break;
|
| default:
|
| - var detailsNode = WebInspector.TimelineUIUtils.buildDetailsNodeForTraceEvent(event, linkifier);
|
| + var detailsNode = WebInspector.TimelineUIUtils.buildDetailsNodeForTraceEvent(event, model.target(), linkifier);
|
| if (detailsNode)
|
| contentHelper.appendElementRow(WebInspector.UIString("Details"), detailsNode);
|
| break;
|
| @@ -629,7 +633,7 @@ WebInspector.TimelineUIUtils._buildTraceEventDetailsSynchronously = function(eve
|
| contentHelper.appendElementRow(WebInspector.UIString("Preview"), event.previewElement);
|
|
|
| if (event.stackTrace || (event.initiator && event.initiator.stackTrace) || event.invalidationTrackingEvents)
|
| - WebInspector.TimelineUIUtils._generateCauses(event, contentHelper);
|
| + WebInspector.TimelineUIUtils._generateCauses(event, model.target(), contentHelper);
|
|
|
| fragment.appendChild(contentHelper.element);
|
|
|
| @@ -638,9 +642,10 @@ WebInspector.TimelineUIUtils._buildTraceEventDetailsSynchronously = function(eve
|
|
|
| /**
|
| * @param {!WebInspector.TracingModel.Event} event
|
| + * @param {?WebInspector.Target} target
|
| * @param {!WebInspector.TimelineDetailsContentHelper} contentHelper
|
| */
|
| -WebInspector.TimelineUIUtils._generateCauses = function(event, contentHelper)
|
| +WebInspector.TimelineUIUtils._generateCauses = function(event, target, contentHelper)
|
| {
|
| var recordTypes = WebInspector.TimelineModel.RecordType;
|
|
|
| @@ -670,7 +675,7 @@ WebInspector.TimelineUIUtils._generateCauses = function(event, contentHelper)
|
|
|
| // Indirect causes.
|
| if (event.invalidationTrackingEvents) { // Full invalidation tracking (experimental).
|
| - WebInspector.TimelineUIUtils._generateInvalidations(event, contentHelper);
|
| + WebInspector.TimelineUIUtils._generateInvalidations(event, target, contentHelper);
|
| } else if (initiator && initiator.stackTrace) { // Partial invalidation tracking.
|
| contentHelper.appendStackTrace(callSiteStackLabel || WebInspector.UIString("First invalidated"), initiator.stackTrace);
|
| }
|
| @@ -678,14 +683,14 @@ WebInspector.TimelineUIUtils._generateCauses = function(event, contentHelper)
|
|
|
| /**
|
| * @param {!WebInspector.TracingModel.Event} event
|
| + * @param {?WebInspector.Target} target
|
| * @param {!WebInspector.TimelineDetailsContentHelper} contentHelper
|
| */
|
| -WebInspector.TimelineUIUtils._generateInvalidations = function(event, contentHelper)
|
| +WebInspector.TimelineUIUtils._generateInvalidations = function(event, target, contentHelper)
|
| {
|
| if (!event.invalidationTrackingEvents)
|
| return;
|
|
|
| - var target = event.thread.target();
|
| var invalidations = {};
|
| event.invalidationTrackingEvents.forEach(function(invalidation) {
|
| if (!invalidations[invalidation.type])
|
| @@ -755,13 +760,14 @@ WebInspector.TimelineUIUtils._generateInvalidationsForType = function(type, targ
|
|
|
| /**
|
| * @param {!WebInspector.TracingModel.Event} event
|
| + * @param {!WebInspector.Target} target
|
| * @param {function(?Array.<number>, ?Array.<number>)} callback
|
| */
|
| -WebInspector.TimelineUIUtils._pushInvalidationNodeIdsToFrontend = function(event, callback)
|
| +WebInspector.TimelineUIUtils._pushInvalidationNodeIdsToFrontend = function(event, target, callback)
|
| {
|
| var backendNodeIds = [];
|
| -
|
| var dedupedNodeIds = {};
|
| +
|
| if (event.nodeId) {
|
| backendNodeIds.push(event.nodeId);
|
| dedupedNodeIds[event.nodeId] = true;
|
| @@ -773,7 +779,6 @@ WebInspector.TimelineUIUtils._pushInvalidationNodeIdsToFrontend = function(event
|
| }
|
| });
|
|
|
| - var target = event.thread.target();
|
| target.domModel.pushNodesByBackendIdsToFrontend(backendNodeIds, function(frontendNodeIds) {
|
| callback(frontendNodeIds, backendNodeIds);
|
| });
|
| @@ -840,12 +845,13 @@ WebInspector.TimelineUIUtils._aggregatedStatsForTraceEvent = function(total, mod
|
|
|
| /**
|
| * @param {!WebInspector.TracingModel.Event} event
|
| + * @param {!WebInspector.Target} target
|
| * @param {function(!Element=)} callback
|
| */
|
| -WebInspector.TimelineUIUtils.buildPicturePreviewContent = function(event, callback)
|
| +WebInspector.TimelineUIUtils.buildPicturePreviewContent = function(event, target, callback)
|
| {
|
|
|
| - new WebInspector.LayerPaintEvent(event).loadPicture(onSnapshotLoaded);
|
| + new WebInspector.LayerPaintEvent(event, target).loadPicture(onSnapshotLoaded);
|
| /**
|
| * @param {?Array.<number>} rect
|
| * @param {?WebInspector.PaintProfilerSnapshot} snapshot
|
|
|