Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 /** | 5 /** |
| 6 * @constructor | 6 * @constructor |
| 7 * @extends {WebInspector.TimelineUIUtils} | 7 * @extends {WebInspector.TimelineUIUtils} |
| 8 */ | 8 */ |
| 9 WebInspector.TracingTimelineUIUtils = function() | 9 WebInspector.TracingTimelineUIUtils = function() |
| 10 { | 10 { |
| (...skipping 520 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 531 var fragment = document.createDocumentFragment(); | 531 var fragment = document.createDocumentFragment(); |
| 532 var stats = {}; | 532 var stats = {}; |
| 533 var hasChildren = WebInspector.TracingTimelineUIUtils._aggregatedStatsForTra ceEvent(stats, model, event); | 533 var hasChildren = WebInspector.TracingTimelineUIUtils._aggregatedStatsForTra ceEvent(stats, model, event); |
| 534 var pieChart = hasChildren ? | 534 var pieChart = hasChildren ? |
| 535 WebInspector.TimelineUIUtils.generatePieChart(stats, WebInspector.Tracin gTimelineUIUtils.eventStyle(event).category, event.selfTime) : | 535 WebInspector.TimelineUIUtils.generatePieChart(stats, WebInspector.Tracin gTimelineUIUtils.eventStyle(event).category, event.selfTime) : |
| 536 WebInspector.TimelineUIUtils.generatePieChart(stats); | 536 WebInspector.TimelineUIUtils.generatePieChart(stats); |
| 537 fragment.appendChild(pieChart); | 537 fragment.appendChild(pieChart); |
| 538 | 538 |
| 539 var recordTypes = WebInspector.TracingTimelineModel.RecordType; | 539 var recordTypes = WebInspector.TracingTimelineModel.RecordType; |
| 540 | 540 |
| 541 // The messages may vary per event.name; | 541 // This message may vary per event.name; |
| 542 var callSiteStackTraceLabel; | |
| 543 var callStackLabel; | |
| 544 var relatedNodeLabel; | 542 var relatedNodeLabel; |
| 545 | 543 |
| 546 var contentHelper = new WebInspector.TimelineDetailsContentHelper(event.thre ad.target(), linkifier, true); | 544 var contentHelper = new WebInspector.TimelineDetailsContentHelper(event.thre ad.target(), linkifier, true); |
| 547 contentHelper.appendTextRow(WebInspector.UIString("Self Time"), Number.milli sToString(event.selfTime, true)); | 545 contentHelper.appendTextRow(WebInspector.UIString("Self Time"), Number.milli sToString(event.selfTime, true)); |
| 548 contentHelper.appendTextRow(WebInspector.UIString("Start Time"), Number.mill isToString((event.startTime - model.minimumRecordTime()))); | 546 contentHelper.appendTextRow(WebInspector.UIString("Start Time"), Number.mill isToString((event.startTime - model.minimumRecordTime()))); |
| 549 var eventData = event.args["data"]; | 547 var eventData = event.args["data"]; |
| 550 var initiator = event.initiator; | 548 var initiator = event.initiator; |
| 551 | 549 |
| 552 switch (event.name) { | 550 switch (event.name) { |
| 553 case recordTypes.GCEvent: | 551 case recordTypes.GCEvent: |
| 554 var delta = event.args["usedHeapSizeBefore"] - event.args["usedHeapSizeA fter"]; | 552 var delta = event.args["usedHeapSizeBefore"] - event.args["usedHeapSizeA fter"]; |
| 555 contentHelper.appendTextRow(WebInspector.UIString("Collected"), Number.b ytesToString(delta)); | 553 contentHelper.appendTextRow(WebInspector.UIString("Collected"), Number.b ytesToString(delta)); |
| 556 break; | 554 break; |
| 557 case recordTypes.TimerFire: | 555 case recordTypes.TimerFire: |
| 558 callSiteStackTraceLabel = WebInspector.UIString("Timer installed"); | |
| 559 // Fall-through intended. | |
| 560 | |
| 561 case recordTypes.TimerInstall: | 556 case recordTypes.TimerInstall: |
| 562 case recordTypes.TimerRemove: | 557 case recordTypes.TimerRemove: |
| 563 contentHelper.appendTextRow(WebInspector.UIString("Timer ID"), eventData ["timerId"]); | 558 contentHelper.appendTextRow(WebInspector.UIString("Timer ID"), eventData ["timerId"]); |
| 564 if (event.name === recordTypes.TimerInstall) { | 559 if (event.name === recordTypes.TimerInstall) { |
| 565 contentHelper.appendTextRow(WebInspector.UIString("Timeout"), Number .millisToString(eventData["timeout"])); | 560 contentHelper.appendTextRow(WebInspector.UIString("Timeout"), Number .millisToString(eventData["timeout"])); |
| 566 contentHelper.appendTextRow(WebInspector.UIString("Repeats"), !event Data["singleShot"]); | 561 contentHelper.appendTextRow(WebInspector.UIString("Repeats"), !event Data["singleShot"]); |
| 567 } | 562 } |
| 568 break; | 563 break; |
| 569 case recordTypes.FireAnimationFrame: | 564 case recordTypes.FireAnimationFrame: |
| 570 callSiteStackTraceLabel = WebInspector.UIString("Animation frame request ed"); | |
| 571 contentHelper.appendTextRow(WebInspector.UIString("Callback ID"), eventD ata["id"]); | 565 contentHelper.appendTextRow(WebInspector.UIString("Callback ID"), eventD ata["id"]); |
| 572 break; | 566 break; |
| 573 case recordTypes.FunctionCall: | 567 case recordTypes.FunctionCall: |
| 574 if (eventData["scriptName"]) | 568 if (eventData["scriptName"]) |
| 575 contentHelper.appendLocationRow(WebInspector.UIString("Location"), e ventData["scriptName"], eventData["scriptLine"]); | 569 contentHelper.appendLocationRow(WebInspector.UIString("Location"), e ventData["scriptName"], eventData["scriptLine"]); |
| 576 break; | 570 break; |
| 577 case recordTypes.ResourceSendRequest: | 571 case recordTypes.ResourceSendRequest: |
| 578 case recordTypes.ResourceReceiveResponse: | 572 case recordTypes.ResourceReceiveResponse: |
| 579 case recordTypes.ResourceReceivedData: | 573 case recordTypes.ResourceReceivedData: |
| 580 case recordTypes.ResourceFinish: | 574 case recordTypes.ResourceFinish: |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 612 case recordTypes.DecodeLazyPixelRef: | 606 case recordTypes.DecodeLazyPixelRef: |
| 613 case recordTypes.DecodeImage: | 607 case recordTypes.DecodeImage: |
| 614 case recordTypes.ResizeImage: | 608 case recordTypes.ResizeImage: |
| 615 case recordTypes.DrawLazyPixelRef: | 609 case recordTypes.DrawLazyPixelRef: |
| 616 relatedNodeLabel = WebInspector.UIString("Image element"); | 610 relatedNodeLabel = WebInspector.UIString("Image element"); |
| 617 if (event.imageURL) | 611 if (event.imageURL) |
| 618 contentHelper.appendElementRow(WebInspector.UIString("Image URL"), W ebInspector.linkifyResourceAsNode(event.imageURL)); | 612 contentHelper.appendElementRow(WebInspector.UIString("Image URL"), W ebInspector.linkifyResourceAsNode(event.imageURL)); |
| 619 break; | 613 break; |
| 620 case recordTypes.RecalculateStyles: // We don't want to see default details. | 614 case recordTypes.RecalculateStyles: // We don't want to see default details. |
| 621 contentHelper.appendTextRow(WebInspector.UIString("Elements affected"), event.args["elementCount"]); | 615 contentHelper.appendTextRow(WebInspector.UIString("Elements affected"), event.args["elementCount"]); |
| 622 callStackLabel = WebInspector.UIString("Styles recalculation forced"); | |
| 623 break; | 616 break; |
| 624 case recordTypes.Layout: | 617 case recordTypes.Layout: |
| 625 var beginData = event.args["beginData"]; | 618 var beginData = event.args["beginData"]; |
| 626 contentHelper.appendTextRow(WebInspector.UIString("Nodes that need layou t"), beginData["dirtyObjects"]); | 619 contentHelper.appendTextRow(WebInspector.UIString("Nodes that need layou t"), beginData["dirtyObjects"]); |
| 627 contentHelper.appendTextRow(WebInspector.UIString("Layout tree size"), b eginData["totalObjects"]); | 620 contentHelper.appendTextRow(WebInspector.UIString("Layout tree size"), b eginData["totalObjects"]); |
| 628 contentHelper.appendTextRow(WebInspector.UIString("Layout scope"), | 621 contentHelper.appendTextRow(WebInspector.UIString("Layout scope"), |
| 629 beginData["partialLayout"] ? WebInspector.UI String("Partial") : WebInspector.UIString("Whole document")); | 622 beginData["partialLayout"] ? WebInspector.UI String("Partial") : WebInspector.UIString("Whole document")); |
| 630 callSiteStackTraceLabel = WebInspector.UIString("Layout invalidated"); | |
| 631 callStackLabel = WebInspector.UIString("Layout forced"); | |
| 632 relatedNodeLabel = WebInspector.UIString("Layout root"); | 623 relatedNodeLabel = WebInspector.UIString("Layout root"); |
| 633 break; | 624 break; |
| 634 case recordTypes.ConsoleTime: | 625 case recordTypes.ConsoleTime: |
| 635 contentHelper.appendTextRow(WebInspector.UIString("Message"), event.name ); | 626 contentHelper.appendTextRow(WebInspector.UIString("Message"), event.name ); |
| 636 break; | 627 break; |
| 637 case recordTypes.WebSocketCreate: | 628 case recordTypes.WebSocketCreate: |
| 638 case recordTypes.WebSocketSendHandshakeRequest: | 629 case recordTypes.WebSocketSendHandshakeRequest: |
| 639 case recordTypes.WebSocketReceiveHandshakeResponse: | 630 case recordTypes.WebSocketReceiveHandshakeResponse: |
| 640 case recordTypes.WebSocketDestroy: | 631 case recordTypes.WebSocketDestroy: |
| 641 var initiatorData = initiator ? initiator.args["data"] : eventData; | 632 var initiatorData = initiator ? initiator.args["data"] : eventData; |
| (...skipping 13 matching lines...) Expand all Loading... | |
| 655 contentHelper.appendElementRow(WebInspector.UIString("Details"), det ailsNode); | 646 contentHelper.appendElementRow(WebInspector.UIString("Details"), det ailsNode); |
| 656 break; | 647 break; |
| 657 } | 648 } |
| 658 | 649 |
| 659 if (relatedNode) | 650 if (relatedNode) |
| 660 contentHelper.appendElementRow(relatedNodeLabel || WebInspector.UIString ("Related node"), WebInspector.DOMPresentationUtils.linkifyNodeReference(related Node)); | 651 contentHelper.appendElementRow(relatedNodeLabel || WebInspector.UIString ("Related node"), WebInspector.DOMPresentationUtils.linkifyNodeReference(related Node)); |
| 661 | 652 |
| 662 if (eventData && eventData["scriptName"] && event.name !== recordTypes.Funct ionCall) | 653 if (eventData && eventData["scriptName"] && event.name !== recordTypes.Funct ionCall) |
| 663 contentHelper.appendLocationRow(WebInspector.UIString("Function Call"), eventData["scriptName"], eventData["scriptLine"]); | 654 contentHelper.appendLocationRow(WebInspector.UIString("Function Call"), eventData["scriptName"], eventData["scriptLine"]); |
| 664 | 655 |
| 665 if (initiator) { | |
| 666 var callSiteStackTrace = initiator.stackTrace; | |
| 667 if (callSiteStackTrace) | |
| 668 contentHelper.appendStackTrace(callSiteStackTraceLabel || WebInspect or.UIString("Call Site stack"), callSiteStackTrace); | |
| 669 } | |
| 670 var eventStackTrace = event.stackTrace; | |
| 671 if (eventStackTrace) | |
| 672 contentHelper.appendStackTrace(callStackLabel || WebInspector.UIString(" Call Stack"), eventStackTrace); | |
| 673 | |
| 674 var warning = event.warning; | 656 var warning = event.warning; |
| 675 if (warning) { | 657 if (warning) { |
| 676 var div = document.createElement("div"); | 658 var div = document.createElement("div"); |
| 677 div.textContent = warning; | 659 div.textContent = warning; |
| 678 contentHelper.appendElementRow(WebInspector.UIString("Warning"), div); | 660 contentHelper.appendElementRow(WebInspector.UIString("Warning"), div); |
| 679 } | 661 } |
| 680 if (event.previewElement) | 662 if (event.previewElement) |
| 681 contentHelper.appendElementRow(WebInspector.UIString("Preview"), event.p reviewElement); | 663 contentHelper.appendElementRow(WebInspector.UIString("Preview"), event.p reviewElement); |
| 682 fragment.appendChild(contentHelper.element); | 664 fragment.appendChild(contentHelper.element); |
| 683 return fragment; | 665 return fragment; |
| 684 } | 666 } |
| 685 | 667 |
| 686 /** | 668 /** |
| 669 * @param {!WebInspector.TracingModel.Event} event | |
| 670 * @param {!WebInspector.Linkifier} linkifier | |
| 671 * @return {!Node} | |
| 672 */ | |
| 673 WebInspector.TracingTimelineUIUtils.generateCauses = function(event, linkifier) | |
| 674 { | |
| 675 var recordTypes = WebInspector.TracingTimelineModel.RecordType; | |
| 676 var contentHelper = new WebInspector.TimelineDetailsContentHelper(event.thre ad.target(), linkifier, true); | |
| 677 | |
| 678 var callSiteStackLabel; | |
| 679 var stackLabel; | |
| 680 | |
| 681 switch (event.name) { | |
| 682 case recordTypes.TimerFire: | |
| 683 callSiteStackLabel = WebInspector.UIString("Timer installed"); | |
| 684 break; | |
| 685 case recordTypes.FireAnimationFrame: | |
| 686 callSiteStackLabel = WebInspector.UIString("Animation frame requested"); | |
| 687 break; | |
| 688 case recordTypes.RecalculateStyles: | |
| 689 stackLabel = WebInspector.UIString("Stack when style recalculation was f orced"); | |
| 690 break; | |
| 691 case recordTypes.Layout: | |
| 692 callSiteStackLabel = WebInspector.UIString("First layout invalidation"); | |
| 693 stackLabel = WebInspector.UIString("Stack when layout was forced"); | |
| 694 break; | |
| 695 default: | |
|
caseq
2014/10/07 09:50:08
Nuke default section or move the fall-back strings
pdr.
2014/10/08 06:06:20
Done.
| |
| 696 break; | |
| 697 } | |
| 698 | |
| 699 // Direct cause. | |
| 700 if (event.stackTrace) | |
| 701 contentHelper.appendStackTrace(stackLabel || WebInspector.UIString("Stac k when this event occurred"), event.stackTrace); | |
| 702 | |
| 703 // Indirect cause / invalidation. | |
| 704 var initiator = event.initiator; | |
| 705 if (initiator && initiator.stackTrace) | |
| 706 contentHelper.appendStackTrace(callSiteStackLabel || WebInspector.UIStri ng("Stack when first invalidated"), initiator.stackTrace); | |
| 707 | |
| 708 return contentHelper.element; | |
| 709 } | |
| 710 | |
| 711 /** | |
| 687 * @param {!Object} total | 712 * @param {!Object} total |
| 688 * @param {!WebInspector.TracingTimelineModel} model | 713 * @param {!WebInspector.TracingTimelineModel} model |
| 689 * @param {!WebInspector.TracingModel.Event} event | 714 * @param {!WebInspector.TracingModel.Event} event |
| 690 * @return {boolean} | 715 * @return {boolean} |
| 691 */ | 716 */ |
| 692 WebInspector.TracingTimelineUIUtils._aggregatedStatsForTraceEvent = function(tot al, model, event) | 717 WebInspector.TracingTimelineUIUtils._aggregatedStatsForTraceEvent = function(tot al, model, event) |
| 693 { | 718 { |
| 694 var events = model.inspectedTargetEvents(); | 719 var events = model.inspectedTargetEvents(); |
| 695 /** | 720 /** |
| 696 * @param {number} startTime | 721 * @param {number} startTime |
| (...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 814 return result; | 839 return result; |
| 815 } | 840 } |
| 816 | 841 |
| 817 /** | 842 /** |
| 818 * @return {!WebInspector.TracingTimelineModel.Filter} | 843 * @return {!WebInspector.TracingTimelineModel.Filter} |
| 819 */ | 844 */ |
| 820 WebInspector.TracingTimelineUIUtils.hiddenEventsFilter = function() | 845 WebInspector.TracingTimelineUIUtils.hiddenEventsFilter = function() |
| 821 { | 846 { |
| 822 return new WebInspector.TracingTimelineModel.InclusiveEventNameFilter(WebIns pector.TracingTimelineUIUtils._visibleTypes()); | 847 return new WebInspector.TracingTimelineModel.InclusiveEventNameFilter(WebIns pector.TracingTimelineUIUtils._visibleTypes()); |
| 823 } | 848 } |
| OLD | NEW |