| 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 612 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 623 | 623 |
| 624 /** | 624 /** |
| 625 * @param {!WebInspector.TracingModel.Event} event | 625 * @param {!WebInspector.TracingModel.Event} event |
| 626 * @param {!WebInspector.TimelineModel} model | 626 * @param {!WebInspector.TimelineModel} model |
| 627 * @param {!WebInspector.Linkifier} linkifier | 627 * @param {!WebInspector.Linkifier} linkifier |
| 628 * @param {boolean} detailed | 628 * @param {boolean} detailed |
| 629 * @param {function(!DocumentFragment)} callback | 629 * @param {function(!DocumentFragment)} callback |
| 630 */ | 630 */ |
| 631 WebInspector.TimelineUIUtils.buildTraceEventDetails = function(event, model, lin
kifier, detailed, callback) | 631 WebInspector.TimelineUIUtils.buildTraceEventDetails = function(event, model, lin
kifier, detailed, callback) |
| 632 { | 632 { |
| 633 var target = model.target(); | 633 var target = model.targetByEvent(event); |
| 634 if (!target) { | 634 if (!target) { |
| 635 callbackWrapper(); | 635 callbackWrapper(); |
| 636 return; | 636 return; |
| 637 } | 637 } |
| 638 var relatedNodes = null; | 638 var relatedNodes = null; |
| 639 var barrier = new CallbackBarrier(); | 639 var barrier = new CallbackBarrier(); |
| 640 if (!event.previewElement) { | 640 if (!event.previewElement) { |
| 641 if (event.url) | 641 if (event.url) |
| 642 WebInspector.DOMPresentationUtils.buildImagePreviewContents(target,
event.url, false, barrier.createCallback(saveImage)); | 642 WebInspector.DOMPresentationUtils.buildImagePreviewContents(target,
event.url, false, barrier.createCallback(saveImage)); |
| 643 else if (event.picture) | 643 else if (event.picture) |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 686 * @return {!DocumentFragment} | 686 * @return {!DocumentFragment} |
| 687 */ | 687 */ |
| 688 WebInspector.TimelineUIUtils._buildTraceEventDetailsSynchronously = function(eve
nt, model, linkifier, detailed, relatedNodesMap) | 688 WebInspector.TimelineUIUtils._buildTraceEventDetailsSynchronously = function(eve
nt, model, linkifier, detailed, relatedNodesMap) |
| 689 { | 689 { |
| 690 var stats = {}; | 690 var stats = {}; |
| 691 var recordTypes = WebInspector.TimelineModel.RecordType; | 691 var recordTypes = WebInspector.TimelineModel.RecordType; |
| 692 | 692 |
| 693 // This message may vary per event.name; | 693 // This message may vary per event.name; |
| 694 var relatedNodeLabel; | 694 var relatedNodeLabel; |
| 695 | 695 |
| 696 var contentHelper = new WebInspector.TimelineDetailsContentHelper(model.targ
et(), linkifier); | 696 var contentHelper = new WebInspector.TimelineDetailsContentHelper(model.targ
etByEvent(event), linkifier); |
| 697 contentHelper.addSection(WebInspector.TimelineUIUtils.eventTitle(event), Web
Inspector.TimelineUIUtils.eventStyle(event).category); | 697 contentHelper.addSection(WebInspector.TimelineUIUtils.eventTitle(event), Web
Inspector.TimelineUIUtils.eventStyle(event).category); |
| 698 | 698 |
| 699 var eventData = event.args["data"]; | 699 var eventData = event.args["data"]; |
| 700 var initiator = event.initiator; | 700 var initiator = event.initiator; |
| 701 | 701 |
| 702 if (event.warning) | 702 if (event.warning) |
| 703 contentHelper.appendWarningRow(event); | 703 contentHelper.appendWarningRow(event); |
| 704 if (event.name === recordTypes.JSFrame) { | 704 if (event.name === recordTypes.JSFrame) { |
| 705 var deoptReason = eventData["deoptReason"]; | 705 var deoptReason = eventData["deoptReason"]; |
| 706 if (deoptReason && deoptReason !== "no reason") | 706 if (deoptReason && deoptReason !== "no reason") |
| 707 contentHelper.appendWarningRow(event, WebInspector.TimelineModel.War
ningType.V8Deopt); | 707 contentHelper.appendWarningRow(event, WebInspector.TimelineModel.War
ningType.V8Deopt); |
| 708 } | 708 } |
| 709 | 709 |
| 710 if (detailed) { | 710 if (detailed) { |
| 711 contentHelper.appendTextRow(WebInspector.UIString("Self Time"), Number.m
illisToString(event.selfTime, true)); | 711 contentHelper.appendTextRow(WebInspector.UIString("Self Time"), Number.m
illisToString(event.selfTime, true)); |
| 712 contentHelper.appendTextRow(WebInspector.UIString("Total Time"), Number.
millisToString(event.duration || 0, true)); | 712 contentHelper.appendTextRow(WebInspector.UIString("Total Time"), Number.
millisToString(event.duration || 0, true)); |
| 713 } | 713 } |
| 714 | 714 |
| 715 switch (event.name) { | 715 switch (event.name) { |
| 716 case recordTypes.GCEvent: | 716 case recordTypes.GCEvent: |
| 717 case recordTypes.MajorGC: | 717 case recordTypes.MajorGC: |
| 718 case recordTypes.MinorGC: | 718 case recordTypes.MinorGC: |
| 719 var delta = event.args["usedHeapSizeBefore"] - event.args["usedHeapSizeA
fter"]; | 719 var delta = event.args["usedHeapSizeBefore"] - event.args["usedHeapSizeA
fter"]; |
| 720 contentHelper.appendTextRow(WebInspector.UIString("Collected"), Number.b
ytesToString(delta)); | 720 contentHelper.appendTextRow(WebInspector.UIString("Collected"), Number.b
ytesToString(delta)); |
| 721 break; | 721 break; |
| 722 case recordTypes.JSFrame: | 722 case recordTypes.JSFrame: |
| 723 var detailsNode = WebInspector.TimelineUIUtils.buildDetailsNodeForTraceE
vent(event, model.target(), linkifier); | 723 var detailsNode = WebInspector.TimelineUIUtils.buildDetailsNodeForTraceE
vent(event, model.targetByEvent(event), linkifier); |
| 724 if (detailsNode) | 724 if (detailsNode) |
| 725 contentHelper.appendElementRow(WebInspector.UIString("Function"), de
tailsNode); | 725 contentHelper.appendElementRow(WebInspector.UIString("Function"), de
tailsNode); |
| 726 break; | 726 break; |
| 727 case recordTypes.TimerFire: | 727 case recordTypes.TimerFire: |
| 728 case recordTypes.TimerInstall: | 728 case recordTypes.TimerInstall: |
| 729 case recordTypes.TimerRemove: | 729 case recordTypes.TimerRemove: |
| 730 contentHelper.appendTextRow(WebInspector.UIString("Timer ID"), eventData
["timerId"]); | 730 contentHelper.appendTextRow(WebInspector.UIString("Timer ID"), eventData
["timerId"]); |
| 731 if (event.name === recordTypes.TimerInstall) { | 731 if (event.name === recordTypes.TimerInstall) { |
| 732 contentHelper.appendTextRow(WebInspector.UIString("Timeout"), Number
.millisToString(eventData["timeout"])); | 732 contentHelper.appendTextRow(WebInspector.UIString("Timeout"), Number
.millisToString(eventData["timeout"])); |
| 733 contentHelper.appendTextRow(WebInspector.UIString("Repeats"), !event
Data["singleShot"]); | 733 contentHelper.appendTextRow(WebInspector.UIString("Repeats"), !event
Data["singleShot"]); |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 842 | 842 |
| 843 case recordTypes.RequestIdleCallback: | 843 case recordTypes.RequestIdleCallback: |
| 844 case recordTypes.CancelIdleCallback: | 844 case recordTypes.CancelIdleCallback: |
| 845 contentHelper.appendTextRow(WebInspector.UIString("Callback ID"), eventD
ata["id"]); | 845 contentHelper.appendTextRow(WebInspector.UIString("Callback ID"), eventD
ata["id"]); |
| 846 break; | 846 break; |
| 847 case recordTypes.EventDispatch: | 847 case recordTypes.EventDispatch: |
| 848 contentHelper.appendTextRow(WebInspector.UIString("Type"), eventData["ty
pe"]); | 848 contentHelper.appendTextRow(WebInspector.UIString("Type"), eventData["ty
pe"]); |
| 849 break; | 849 break; |
| 850 | 850 |
| 851 default: | 851 default: |
| 852 var detailsNode = WebInspector.TimelineUIUtils.buildDetailsNodeForTraceE
vent(event, model.target(), linkifier); | 852 var detailsNode = WebInspector.TimelineUIUtils.buildDetailsNodeForTraceE
vent(event, model.targetByEvent(event), linkifier); |
| 853 if (detailsNode) | 853 if (detailsNode) |
| 854 contentHelper.appendElementRow(WebInspector.UIString("Details"), det
ailsNode); | 854 contentHelper.appendElementRow(WebInspector.UIString("Details"), det
ailsNode); |
| 855 break; | 855 break; |
| 856 } | 856 } |
| 857 | 857 |
| 858 if (event.timeWaitingForMainThread) | 858 if (event.timeWaitingForMainThread) |
| 859 contentHelper.appendTextRow(WebInspector.UIString("Time Waiting for Main
Thread"), Number.millisToString(event.timeWaitingForMainThread, true)); | 859 contentHelper.appendTextRow(WebInspector.UIString("Time Waiting for Main
Thread"), Number.millisToString(event.timeWaitingForMainThread, true)); |
| 860 | 860 |
| 861 var relatedNode = relatedNodesMap && relatedNodesMap.get(event.backendNodeId
); | 861 var relatedNode = relatedNodesMap && relatedNodesMap.get(event.backendNodeId
); |
| 862 if (relatedNode) | 862 if (relatedNode) |
| 863 contentHelper.appendElementRow(relatedNodeLabel || WebInspector.UIString
("Related Node"), WebInspector.DOMPresentationUtils.linkifyNodeReference(related
Node)); | 863 contentHelper.appendElementRow(relatedNodeLabel || WebInspector.UIString
("Related Node"), WebInspector.DOMPresentationUtils.linkifyNodeReference(related
Node)); |
| 864 | 864 |
| 865 if (event.previewElement) { | 865 if (event.previewElement) { |
| 866 contentHelper.addSection(WebInspector.UIString("Preview")); | 866 contentHelper.addSection(WebInspector.UIString("Preview")); |
| 867 contentHelper.appendElementRow("", event.previewElement); | 867 contentHelper.appendElementRow("", event.previewElement); |
| 868 } | 868 } |
| 869 | 869 |
| 870 if (event.stackTrace || (event.initiator && event.initiator.stackTrace) || e
vent.invalidationTrackingEvents) | 870 if (event.stackTrace || (event.initiator && event.initiator.stackTrace) || e
vent.invalidationTrackingEvents) |
| 871 WebInspector.TimelineUIUtils._generateCauses(event, model.target(), rela
tedNodesMap, contentHelper); | 871 WebInspector.TimelineUIUtils._generateCauses(event, model.targetByEvent(
event), relatedNodesMap, contentHelper); |
| 872 | 872 |
| 873 var showPieChart = detailed && WebInspector.TimelineUIUtils._aggregatedStats
ForTraceEvent(stats, model, event); | 873 var showPieChart = detailed && WebInspector.TimelineUIUtils._aggregatedStats
ForTraceEvent(stats, model, event); |
| 874 if (showPieChart) { | 874 if (showPieChart) { |
| 875 contentHelper.addSection(WebInspector.UIString("Aggregated Time")); | 875 contentHelper.addSection(WebInspector.UIString("Aggregated Time")); |
| 876 var pieChart = WebInspector.TimelineUIUtils.generatePieChart(stats, WebI
nspector.TimelineUIUtils.eventStyle(event).category, event.selfTime); | 876 var pieChart = WebInspector.TimelineUIUtils.generatePieChart(stats, WebI
nspector.TimelineUIUtils.eventStyle(event).category, event.selfTime); |
| 877 contentHelper.appendElementRow("", pieChart); | 877 contentHelper.appendElementRow("", pieChart); |
| 878 } | 878 } |
| 879 | 879 |
| 880 return contentHelper.fragment; | 880 return contentHelper.fragment; |
| 881 } | 881 } |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 965 } | 965 } |
| 966 | 966 |
| 967 /** | 967 /** |
| 968 * @param {!WebInspector.TimelineModel.NetworkRequest} request | 968 * @param {!WebInspector.TimelineModel.NetworkRequest} request |
| 969 * @param {!WebInspector.TimelineModel} model | 969 * @param {!WebInspector.TimelineModel} model |
| 970 * @param {!WebInspector.Linkifier} linkifier | 970 * @param {!WebInspector.Linkifier} linkifier |
| 971 * @return {!Promise<!DocumentFragment>} | 971 * @return {!Promise<!DocumentFragment>} |
| 972 */ | 972 */ |
| 973 WebInspector.TimelineUIUtils.buildNetworkRequestDetails = function(request, mode
l, linkifier) | 973 WebInspector.TimelineUIUtils.buildNetworkRequestDetails = function(request, mode
l, linkifier) |
| 974 { | 974 { |
| 975 var target = model.target(); | 975 var target = model.targetByEvent(request.children[0]); |
| 976 var contentHelper = new WebInspector.TimelineDetailsContentHelper(target, li
nkifier); | 976 var contentHelper = new WebInspector.TimelineDetailsContentHelper(target, li
nkifier); |
| 977 | 977 |
| 978 var duration = request.endTime - (request.startTime || -Infinity); | 978 var duration = request.endTime - (request.startTime || -Infinity); |
| 979 var items = []; | 979 var items = []; |
| 980 if (request.url) | 980 if (request.url) |
| 981 contentHelper.appendElementRow(WebInspector.UIString("URL"), WebInspecto
r.linkifyURLAsNode(request.url)); | 981 contentHelper.appendElementRow(WebInspector.UIString("URL"), WebInspecto
r.linkifyURLAsNode(request.url)); |
| 982 if (isFinite(duration)) | 982 if (isFinite(duration)) |
| 983 contentHelper.appendTextRow(WebInspector.UIString("Duration"), Number.mi
llisToString(duration, true)); | 983 contentHelper.appendTextRow(WebInspector.UIString("Duration"), Number.mi
llisToString(duration, true)); |
| 984 if (request.requestMethod) | 984 if (request.requestMethod) |
| 985 contentHelper.appendTextRow(WebInspector.UIString("Request Method"), req
uest.requestMethod); | 985 contentHelper.appendTextRow(WebInspector.UIString("Request Method"), req
uest.requestMethod); |
| (...skipping 1164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2150 case warnings.V8Deopt: | 2150 case warnings.V8Deopt: |
| 2151 span.appendChild(WebInspector.linkifyURLAsNode("https://github.com/Googl
eChrome/devtools-docs/issues/53", | 2151 span.appendChild(WebInspector.linkifyURLAsNode("https://github.com/Googl
eChrome/devtools-docs/issues/53", |
| 2152 WebInspector.UIString("Not optimized"), undefined, true)); | 2152 WebInspector.UIString("Not optimized"), undefined, true)); |
| 2153 span.createTextChild(WebInspector.UIString(": %s", eventData["deoptReaso
n"])); | 2153 span.createTextChild(WebInspector.UIString(": %s", eventData["deoptReaso
n"])); |
| 2154 break; | 2154 break; |
| 2155 default: | 2155 default: |
| 2156 console.assert(false, "Unhandled TimelineModel.WarningType"); | 2156 console.assert(false, "Unhandled TimelineModel.WarningType"); |
| 2157 } | 2157 } |
| 2158 return span; | 2158 return span; |
| 2159 } | 2159 } |
| OLD | NEW |