Chromium Code Reviews| 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 656 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 667 WebInspector.TimelineUIUtils._quadHeight = function(quad) | 667 WebInspector.TimelineUIUtils._quadHeight = function(quad) |
| 668 { | 668 { |
| 669 return Math.round(Math.sqrt(Math.pow(quad[0] - quad[6], 2) + Math.pow(quad[1 ] - quad[7], 2))); | 669 return Math.round(Math.sqrt(Math.pow(quad[0] - quad[6], 2) + Math.pow(quad[1 ] - quad[7], 2))); |
| 670 } | 670 } |
| 671 | 671 |
| 672 /** | 672 /** |
| 673 * @param {!WebInspector.TimelineModel.Record} record | 673 * @param {!WebInspector.TimelineModel.Record} record |
| 674 * @param {!WebInspector.Linkifier} linkifier | 674 * @param {!WebInspector.Linkifier} linkifier |
| 675 * @return {?Node} | 675 * @return {?Node} |
| 676 */ | 676 */ |
| 677 WebInspector.TimelineUIUtils.buildDetailsNode = function(record, linkifier) | 677 WebInspector.TimelineUIUtils.buildDetailsNode = function(record, linkifier) |
|
pfeldman
2014/04/01 14:24:33
You should pass loadedFromFile as an input param i
| |
| 678 { | 678 { |
| 679 var details; | 679 var details; |
| 680 var detailsText; | 680 var detailsText; |
| 681 var model = record.model(); | |
| 681 | 682 |
| 682 switch (record.type) { | 683 switch (record.type) { |
| 683 case WebInspector.TimelineModel.RecordType.GCEvent: | 684 case WebInspector.TimelineModel.RecordType.GCEvent: |
| 684 detailsText = WebInspector.UIString("%s collected", Number.bytesToString (record.data["usedHeapSizeDelta"])); | 685 detailsText = WebInspector.UIString("%s collected", Number.bytesToString (record.data["usedHeapSizeDelta"])); |
| 685 break; | 686 break; |
| 686 case WebInspector.TimelineModel.RecordType.TimerFire: | 687 case WebInspector.TimelineModel.RecordType.TimerFire: |
| 687 detailsText = record.data["timerId"]; | 688 detailsText = record.data["timerId"]; |
| 688 break; | 689 break; |
| 689 case WebInspector.TimelineModel.RecordType.FunctionCall: | 690 case WebInspector.TimelineModel.RecordType.FunctionCall: |
| 690 if (record.scriptName) | 691 details = linkifyLocation(record.scriptId, record.scriptName, record.scr iptLine, 0); |
| 691 details = linkifyLocation(record.scriptName, record.scriptLine, 0); | |
| 692 break; | 692 break; |
| 693 case WebInspector.TimelineModel.RecordType.FireAnimationFrame: | 693 case WebInspector.TimelineModel.RecordType.FireAnimationFrame: |
| 694 detailsText = record.data["id"]; | 694 detailsText = record.data["id"]; |
| 695 break; | 695 break; |
| 696 case WebInspector.TimelineModel.RecordType.EventDispatch: | 696 case WebInspector.TimelineModel.RecordType.EventDispatch: |
| 697 detailsText = record.data ? record.data["type"] : null; | 697 detailsText = record.data ? record.data["type"] : null; |
| 698 break; | 698 break; |
| 699 case WebInspector.TimelineModel.RecordType.Paint: | 699 case WebInspector.TimelineModel.RecordType.Paint: |
| 700 var width = record.data.clip ? WebInspector.TimelineUIUtils._quadWidth(r ecord.data.clip) : record.data.width; | 700 var width = record.data.clip ? WebInspector.TimelineUIUtils._quadWidth(r ecord.data.clip) : record.data.width; |
| 701 var height = record.data.clip ? WebInspector.TimelineUIUtils._quadHeight (record.data.clip) : record.data.height; | 701 var height = record.data.clip ? WebInspector.TimelineUIUtils._quadHeight (record.data.clip) : record.data.height; |
| 702 if (width && height) | 702 if (width && height) |
| 703 detailsText = WebInspector.UIString("%d\u2009\u00d7\u2009%d", width, height); | 703 detailsText = WebInspector.UIString("%d\u2009\u00d7\u2009%d", width, height); |
| 704 break; | 704 break; |
| 705 case WebInspector.TimelineModel.RecordType.TimerInstall: | 705 case WebInspector.TimelineModel.RecordType.TimerInstall: |
| 706 case WebInspector.TimelineModel.RecordType.TimerRemove: | 706 case WebInspector.TimelineModel.RecordType.TimerRemove: |
| 707 details = linkifyTopCallFrame(); | 707 details = linkifyTopCallFrame(); |
| 708 detailsText = record.data["timerId"]; | 708 detailsText = record.data["timerId"]; |
| 709 break; | 709 break; |
| 710 case WebInspector.TimelineModel.RecordType.RequestAnimationFrame: | 710 case WebInspector.TimelineModel.RecordType.RequestAnimationFrame: |
| 711 case WebInspector.TimelineModel.RecordType.CancelAnimationFrame: | 711 case WebInspector.TimelineModel.RecordType.CancelAnimationFrame: |
| 712 details = linkifyTopCallFrame(); | 712 details = linkifyTopCallFrame(); |
| 713 detailsText = record.data["id"]; | 713 detailsText = record.data["id"]; |
| 714 break; | 714 break; |
| 715 case WebInspector.TimelineModel.RecordType.ParseHTML: | 715 case WebInspector.TimelineModel.RecordType.ParseHTML: |
| 716 case WebInspector.TimelineModel.RecordType.RecalculateStyles: | 716 case WebInspector.TimelineModel.RecordType.RecalculateStyles: |
| 717 details = linkifyTopCallFrame(); | 717 details = linkifyTopCallFrame(); |
| 718 break; | 718 break; |
| 719 case WebInspector.TimelineModel.RecordType.EvaluateScript: | 719 case WebInspector.TimelineModel.RecordType.EvaluateScript: |
| 720 details = record.url ? linkifyLocation(record.url, record.data["lineNumb er"], 0) : null; | 720 details = linkifyLocation("", record.url, record.data["lineNumber"], 0); |
| 721 break; | 721 break; |
| 722 case WebInspector.TimelineModel.RecordType.XHRReadyStateChange: | 722 case WebInspector.TimelineModel.RecordType.XHRReadyStateChange: |
| 723 case WebInspector.TimelineModel.RecordType.XHRLoad: | 723 case WebInspector.TimelineModel.RecordType.XHRLoad: |
| 724 case WebInspector.TimelineModel.RecordType.ScheduleResourceRequest: | 724 case WebInspector.TimelineModel.RecordType.ScheduleResourceRequest: |
| 725 case WebInspector.TimelineModel.RecordType.ResourceSendRequest: | 725 case WebInspector.TimelineModel.RecordType.ResourceSendRequest: |
| 726 case WebInspector.TimelineModel.RecordType.ResourceReceivedData: | 726 case WebInspector.TimelineModel.RecordType.ResourceReceivedData: |
| 727 case WebInspector.TimelineModel.RecordType.ResourceReceiveResponse: | 727 case WebInspector.TimelineModel.RecordType.ResourceReceiveResponse: |
| 728 case WebInspector.TimelineModel.RecordType.ResourceFinish: | 728 case WebInspector.TimelineModel.RecordType.ResourceFinish: |
| 729 case WebInspector.TimelineModel.RecordType.DecodeImage: | 729 case WebInspector.TimelineModel.RecordType.DecodeImage: |
| 730 case WebInspector.TimelineModel.RecordType.ResizeImage: | 730 case WebInspector.TimelineModel.RecordType.ResizeImage: |
| 731 detailsText = WebInspector.displayNameForURL(record.url); | 731 detailsText = WebInspector.displayNameForURL(record.url); |
| 732 break; | 732 break; |
| 733 case WebInspector.TimelineModel.RecordType.ConsoleTime: | 733 case WebInspector.TimelineModel.RecordType.ConsoleTime: |
| 734 detailsText = record.data["message"]; | 734 detailsText = record.data["message"]; |
| 735 break; | 735 break; |
| 736 case WebInspector.TimelineModel.RecordType.EmbedderCallback: | 736 case WebInspector.TimelineModel.RecordType.EmbedderCallback: |
| 737 detailsText = record.data["callbackName"]; | 737 detailsText = record.data["callbackName"]; |
| 738 break; | 738 break; |
| 739 default: | 739 default: |
| 740 details = record.scriptName ? linkifyLocation(record.scriptName, record. scriptLine, 0) : linkifyTopCallFrame(); | 740 details = linkifyTopCallFrame(); |
| 741 break; | 741 break; |
| 742 } | 742 } |
| 743 | 743 |
| 744 if (!details && detailsText) | 744 if (!details && detailsText) |
| 745 details = document.createTextNode(detailsText); | 745 details = document.createTextNode(detailsText); |
| 746 return details; | 746 return details; |
| 747 | 747 |
| 748 /** | 748 /** |
| 749 * @param {string} scriptId | |
| 749 * @param {string} url | 750 * @param {string} url |
| 750 * @param {number} lineNumber | 751 * @param {number} lineNumber |
| 751 * @param {number=} columnNumber | 752 * @param {number=} columnNumber |
| 752 */ | 753 */ |
| 753 function linkifyLocation(url, lineNumber, columnNumber) | 754 function linkifyLocation(scriptId, url, lineNumber, columnNumber) |
| 754 { | 755 { |
| 756 if (!model.loadedFromFile() && scriptId) { | |
| 757 var location = new WebInspector.DebuggerModel.Location(scriptId, lin eNumber, columnNumber || 0); | |
| 758 return linkifier.linkifyRawLocation(location, "timeline-details"); | |
| 759 } | |
| 760 | |
| 761 if (!url) | |
| 762 return null; | |
| 763 | |
| 755 // FIXME(62725): stack trace line/column numbers are one-based. | 764 // FIXME(62725): stack trace line/column numbers are one-based. |
| 756 columnNumber = columnNumber ? columnNumber - 1 : 0; | 765 columnNumber = columnNumber ? columnNumber - 1 : 0; |
| 757 return linkifier.linkifyLocation(url, lineNumber - 1, columnNumber, "tim eline-details"); | 766 return linkifier.linkifyLocation(url, lineNumber - 1, columnNumber, "tim eline-details"); |
| 758 } | 767 } |
| 759 | 768 |
| 760 /** | 769 /** |
| 761 * @param {!ConsoleAgent.CallFrame} callFrame | 770 * @param {!ConsoleAgent.CallFrame} callFrame |
| 762 */ | 771 */ |
| 763 function linkifyCallFrame(callFrame) | 772 function linkifyCallFrame(callFrame) |
| 764 { | 773 { |
| 765 return linkifyLocation(callFrame.url, callFrame.lineNumber, callFrame.co lumnNumber); | 774 return linkifyLocation(callFrame.scriptId, callFrame.url, callFrame.line Number, callFrame.columnNumber); |
| 766 } | 775 } |
| 767 | 776 |
| 768 /** | 777 /** |
| 769 * @return {?Element} | 778 * @return {?Element} |
| 770 */ | 779 */ |
| 771 function linkifyTopCallFrame() | 780 function linkifyTopCallFrame() |
| 772 { | 781 { |
| 773 if (record.stackTrace) | 782 if (record.stackTrace) |
| 774 return linkifyCallFrame(record.stackTrace[0]); | 783 return linkifyCallFrame(record.stackTrace[0]); |
| 775 if (record.callSiteStackTrace) | 784 if (record.callSiteStackTrace) |
| 776 return linkifyCallFrame(record.callSiteStackTrace[0]); | 785 return linkifyCallFrame(record.callSiteStackTrace[0]); |
| 777 return null; | 786 return null; |
| 778 } | 787 } |
| 779 | |
| 780 /** | |
| 781 * @return {?Element} | |
| 782 */ | |
| 783 function linkifyScriptLocation() | |
| 784 { | |
| 785 return record.scriptName ? linkifyLocation(record.scriptName, record.scr iptLine, 0) : null; | |
| 786 } | |
| 787 } | 788 } |
| 788 | 789 |
| 789 /** | 790 /** |
| 790 * @constructor | 791 * @constructor |
| 791 * @extends {WebInspector.Object} | 792 * @extends {WebInspector.Object} |
| 792 * @param {string} name | 793 * @param {string} name |
| 793 * @param {string} title | 794 * @param {string} title |
| 794 * @param {number} overviewStripGroupIndex | 795 * @param {number} overviewStripGroupIndex |
| 795 * @param {string} borderColor | 796 * @param {string} borderColor |
| 796 * @param {string} backgroundColor | 797 * @param {string} backgroundColor |
| (...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 964 for (var i = 0; i < stackTrace.length; ++i) { | 965 for (var i = 0; i < stackTrace.length; ++i) { |
| 965 var stackFrame = stackTrace[i]; | 966 var stackFrame = stackTrace[i]; |
| 966 var row = stackTraceElement.createChild("div"); | 967 var row = stackTraceElement.createChild("div"); |
| 967 row.createTextChild(stackFrame.functionName || WebInspector.UIString ("(anonymous function)")); | 968 row.createTextChild(stackFrame.functionName || WebInspector.UIString ("(anonymous function)")); |
| 968 row.createTextChild(" @ "); | 969 row.createTextChild(" @ "); |
| 969 var urlElement = this._linkifier.linkifyLocation(stackFrame.url, sta ckFrame.lineNumber - 1); | 970 var urlElement = this._linkifier.linkifyLocation(stackFrame.url, sta ckFrame.lineNumber - 1); |
| 970 row.appendChild(urlElement); | 971 row.appendChild(urlElement); |
| 971 } | 972 } |
| 972 } | 973 } |
| 973 } | 974 } |
| OLD | NEW |