OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2014 Google Inc. All rights reserved. | 2 * Copyright (C) 2014 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 424 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
435 } | 435 } |
436 } | 436 } |
437 return -1; | 437 return -1; |
438 } | 438 } |
439 } | 439 } |
440 | 440 |
441 /** | 441 /** |
442 * @constructor | 442 * @constructor |
443 * @implements {WebInspector.FlameChartDataProvider} | 443 * @implements {WebInspector.FlameChartDataProvider} |
444 * @implements {WebInspector.TimelineFlameChart.SelectionProvider} | 444 * @implements {WebInspector.TimelineFlameChart.SelectionProvider} |
445 * @param {!WebInspector.TracingModel} model | 445 * @param {!WebInspector.TracingTimelineModel} model |
446 * @param {!WebInspector.TimelineTraceEventBindings} traceEventBindings | |
447 * @param {!WebInspector.TimelineFrameModel} frameModel | 446 * @param {!WebInspector.TimelineFrameModel} frameModel |
448 * @param {!WebInspector.Target} target | 447 * @param {!WebInspector.Target} target |
449 */ | 448 */ |
450 WebInspector.TracingBasedTimelineFlameChartDataProvider = function(model, traceE
ventBindings, frameModel, target) | 449 WebInspector.TracingBasedTimelineFlameChartDataProvider = function(model, frameM
odel, target) |
451 { | 450 { |
452 WebInspector.FlameChartDataProvider.call(this); | 451 WebInspector.FlameChartDataProvider.call(this); |
453 this._model = model; | 452 this._model = model; |
454 this._traceEventBindings = traceEventBindings; | |
455 this._frameModel = frameModel; | 453 this._frameModel = frameModel; |
456 this._target = target; | 454 this._target = target; |
457 this._font = "12px " + WebInspector.fontFamily(); | 455 this._font = "12px " + WebInspector.fontFamily(); |
458 this._linkifier = new WebInspector.Linkifier(); | 456 this._linkifier = new WebInspector.Linkifier(); |
459 this._palette = new WebInspector.TraceViewPalette(); | 457 this._palette = new WebInspector.TraceViewPalette(); |
460 this._entryIndexToTitle = {}; | 458 this._entryIndexToTitle = {}; |
461 } | 459 } |
462 | 460 |
463 WebInspector.TracingBasedTimelineFlameChartDataProvider.prototype = { | 461 WebInspector.TracingBasedTimelineFlameChartDataProvider.prototype = { |
464 /** | 462 /** |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
497 /** | 495 /** |
498 * @param {number} entryIndex | 496 * @param {number} entryIndex |
499 * @return {?string} | 497 * @return {?string} |
500 */ | 498 */ |
501 entryTitle: function(entryIndex) | 499 entryTitle: function(entryIndex) |
502 { | 500 { |
503 var event = this._entryEvents[entryIndex]; | 501 var event = this._entryEvents[entryIndex]; |
504 if (event) { | 502 if (event) { |
505 var name = WebInspector.TimelineUIUtils.styleForTimelineEvent(event.
name).title; | 503 var name = WebInspector.TimelineUIUtils.styleForTimelineEvent(event.
name).title; |
506 // TODO(yurys): support event dividers | 504 // TODO(yurys): support event dividers |
507 var details = WebInspector.TimelineUIUtils.buildDetailsNodeForTraceE
vent(event, this._linkifier, false, this._traceEventBindings, this._target); | 505 var details = WebInspector.TimelineUIUtils.buildDetailsNodeForTraceE
vent(event, this._linkifier, false, this._target); |
508 return details ? WebInspector.UIString("%s (%s)", name, details.text
Content) : name; | 506 return details ? WebInspector.UIString("%s (%s)", name, details.text
Content) : name; |
509 } | 507 } |
510 var title = this._entryIndexToTitle[entryIndex]; | 508 var title = this._entryIndexToTitle[entryIndex]; |
511 if (!title) { | 509 if (!title) { |
512 title = WebInspector.UIString("Unexpected entryIndex %d", entryIndex
); | 510 title = WebInspector.UIString("Unexpected entryIndex %d", entryIndex
); |
513 console.error(title); | 511 console.error(title); |
514 } | 512 } |
515 return title; | 513 return title; |
516 }, | 514 }, |
517 | 515 |
(...skipping 29 matching lines...) Expand all Loading... |
547 this._timelineData = { | 545 this._timelineData = { |
548 entryLevels: [], | 546 entryLevels: [], |
549 entryTotalTimes: [], | 547 entryTotalTimes: [], |
550 entryStartTimes: [] | 548 entryStartTimes: [] |
551 }; | 549 }; |
552 | 550 |
553 this._currentLevel = 0; | 551 this._currentLevel = 0; |
554 this._minimumBoundary = this._model.minimumRecordTime() || 0; | 552 this._minimumBoundary = this._model.minimumRecordTime() || 0; |
555 this._timeSpan = Math.max((this._model.maximumRecordTime() || 0) - this.
_minimumBoundary, 1000000); | 553 this._timeSpan = Math.max((this._model.maximumRecordTime() || 0) - this.
_minimumBoundary, 1000000); |
556 this._appendHeaderRecord("CPU"); | 554 this._appendHeaderRecord("CPU"); |
557 var events = this._traceEventBindings.mainThreadEvents(); | 555 var events = this._model.mainThreadEvents(); |
558 var maxStackDepth = 0; | 556 var maxStackDepth = 0; |
559 for (var eventIndex = 0; eventIndex < events.length; ++eventIndex) { | 557 for (var eventIndex = 0; eventIndex < events.length; ++eventIndex) { |
560 var event = events[eventIndex]; | 558 var event = events[eventIndex]; |
561 var category = event.category; | 559 var category = event.category; |
562 if (category !== "disabled-by-default-devtools.timeline" && category
!== "devtools") | 560 if (category !== "disabled-by-default-devtools.timeline" && category
!== "devtools") |
563 continue; | 561 continue; |
564 if (event.duration || event.phase === WebInspector.TracingModel.Phas
e.Instant) { | 562 if (event.duration || event.phase === WebInspector.TracingModel.Phas
e.Instant) { |
565 this._appendEvent(event); | 563 this._appendEvent(event); |
566 if (maxStackDepth < event.level) | 564 if (maxStackDepth < event.level) |
567 maxStackDepth = event.level; | 565 maxStackDepth = event.level; |
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
808 return WebInspector.TimelineFlameChartDataProvider._jsFrameColorGenerator; | 806 return WebInspector.TimelineFlameChartDataProvider._jsFrameColorGenerator; |
809 } | 807 } |
810 | 808 |
811 /** | 809 /** |
812 * @constructor | 810 * @constructor |
813 * @extends {WebInspector.VBox} | 811 * @extends {WebInspector.VBox} |
814 * @implements {WebInspector.TimelineModeView} | 812 * @implements {WebInspector.TimelineModeView} |
815 * @implements {WebInspector.FlameChartDelegate} | 813 * @implements {WebInspector.FlameChartDelegate} |
816 * @param {!WebInspector.TimelineModeViewDelegate} delegate | 814 * @param {!WebInspector.TimelineModeViewDelegate} delegate |
817 * @param {!WebInspector.TimelineModel} model | 815 * @param {!WebInspector.TimelineModel} model |
818 * @param {?WebInspector.TracingModel} tracingModel | 816 * @param {?WebInspector.TracingTimelineModel} tracingModel |
819 * @param {?WebInspector.TimelineTraceEventBindings} traceEventBindings | |
820 * @param {!WebInspector.TimelineFrameModel} frameModel | 817 * @param {!WebInspector.TimelineFrameModel} frameModel |
821 */ | 818 */ |
822 WebInspector.TimelineFlameChart = function(delegate, model, tracingModel, traceE
ventBindings, frameModel) | 819 WebInspector.TimelineFlameChart = function(delegate, model, tracingModel, frameM
odel) |
823 { | 820 { |
824 WebInspector.VBox.call(this); | 821 WebInspector.VBox.call(this); |
825 this.element.classList.add("timeline-flamechart"); | 822 this.element.classList.add("timeline-flamechart"); |
826 this.registerRequiredCSS("flameChart.css"); | 823 this.registerRequiredCSS("flameChart.css"); |
827 this._delegate = delegate; | 824 this._delegate = delegate; |
828 this._model = model; | 825 this._model = model; |
829 this._dataProvider = tracingModel && traceEventBindings | 826 this._dataProvider = tracingModel |
830 ? new WebInspector.TracingBasedTimelineFlameChartDataProvider(tracingMod
el, traceEventBindings, frameModel, model.target()) | 827 ? new WebInspector.TracingBasedTimelineFlameChartDataProvider(tracingMod
el, frameModel, model.target()) |
831 : new WebInspector.TimelineFlameChartDataProvider(model, frameModel); | 828 : new WebInspector.TimelineFlameChartDataProvider(model, frameModel); |
832 this._mainView = new WebInspector.FlameChart(this._dataProvider, this, true)
; | 829 this._mainView = new WebInspector.FlameChart(this._dataProvider, this, true)
; |
833 this._mainView.show(this.element); | 830 this._mainView.show(this.element); |
834 this._model.addEventListener(WebInspector.TimelineModel.Events.RecordingStar
ted, this._onRecordingStarted, this); | 831 this._model.addEventListener(WebInspector.TimelineModel.Events.RecordingStar
ted, this._onRecordingStarted, this); |
835 this._mainView.addEventListener(WebInspector.FlameChart.Events.EntrySelected
, this._onEntrySelected, this); | 832 this._mainView.addEventListener(WebInspector.FlameChart.Events.EntrySelected
, this._onEntrySelected, this); |
836 } | 833 } |
837 | 834 |
838 WebInspector.TimelineFlameChart.prototype = { | 835 WebInspector.TimelineFlameChart.prototype = { |
839 dispose: function() | 836 dispose: function() |
840 { | 837 { |
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
983 * @param {number} entryIndex | 980 * @param {number} entryIndex |
984 * @return {?WebInspector.TimelineSelection} | 981 * @return {?WebInspector.TimelineSelection} |
985 */ | 982 */ |
986 createSelection: function(entryIndex) { }, | 983 createSelection: function(entryIndex) { }, |
987 /** | 984 /** |
988 * @param {?WebInspector.TimelineSelection} selection | 985 * @param {?WebInspector.TimelineSelection} selection |
989 * @return {number} | 986 * @return {number} |
990 */ | 987 */ |
991 entryIndexForSelection: function(selection) { } | 988 entryIndexForSelection: function(selection) { } |
992 } | 989 } |
OLD | NEW |