Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(246)

Side by Side Diff: Source/devtools/front_end/timeline/TimelinePanel.js

Issue 397313003: DevTools: Remove target function from TimelineModel (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2012 Google Inc. All rights reserved. 2 * Copyright (C) 2012 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 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 importScript("TracingModel.js"); 54 importScript("TracingModel.js");
55 importScript("TracingTimelineUIUtils.js"); 55 importScript("TracingTimelineUIUtils.js");
56 importScript("TransformController.js"); 56 importScript("TransformController.js");
57 importScript("PaintProfilerView.js"); 57 importScript("PaintProfilerView.js");
58 58
59 /** 59 /**
60 * @constructor 60 * @constructor
61 * @extends {WebInspector.Panel} 61 * @extends {WebInspector.Panel}
62 * @implements {WebInspector.TimelineModeViewDelegate} 62 * @implements {WebInspector.TimelineModeViewDelegate}
63 * @implements {WebInspector.Searchable} 63 * @implements {WebInspector.Searchable}
64 * @implements {WebInspector.TargetManager.Observer}
64 */ 65 */
65 WebInspector.TimelinePanel = function() 66 WebInspector.TimelinePanel = function()
66 { 67 {
67 WebInspector.Panel.call(this, "timeline"); 68 WebInspector.Panel.call(this, "timeline");
68 this.registerRequiredCSS("timelinePanel.css"); 69 this.registerRequiredCSS("timelinePanel.css");
69 this.registerRequiredCSS("layersPanel.css"); 70 this.registerRequiredCSS("layersPanel.css");
70 this.registerRequiredCSS("filter.css"); 71 this.registerRequiredCSS("filter.css");
71 this.element.addEventListener("contextmenu", this._contextMenu.bind(this), f alse); 72 this.element.addEventListener("contextmenu", this._contextMenu.bind(this), f alse);
72 73
73 this._detailsLinkifier = new WebInspector.Linkifier(); 74 this._detailsLinkifier = new WebInspector.Linkifier();
(...skipping 14 matching lines...) Expand all
88 this._model = new WebInspector.TimelineModelImpl(WebInspector.timelineMa nager); 89 this._model = new WebInspector.TimelineModelImpl(WebInspector.timelineMa nager);
89 } 90 }
90 91
91 this._model.addEventListener(WebInspector.TimelineModel.Events.RecordingStar ted, this._onRecordingStarted, this); 92 this._model.addEventListener(WebInspector.TimelineModel.Events.RecordingStar ted, this._onRecordingStarted, this);
92 this._model.addEventListener(WebInspector.TimelineModel.Events.RecordingStop ped, this._onRecordingStopped, this); 93 this._model.addEventListener(WebInspector.TimelineModel.Events.RecordingStop ped, this._onRecordingStopped, this);
93 this._model.addEventListener(WebInspector.TimelineModel.Events.RecordsCleare d, this._onRecordsCleared, this); 94 this._model.addEventListener(WebInspector.TimelineModel.Events.RecordsCleare d, this._onRecordsCleared, this);
94 this._model.addEventListener(WebInspector.TimelineModel.Events.RecordingProg ress, this._onRecordingProgress, this); 95 this._model.addEventListener(WebInspector.TimelineModel.Events.RecordingProg ress, this._onRecordingProgress, this);
95 this._model.addEventListener(WebInspector.TimelineModel.Events.RecordFilterC hanged, this._refreshViews, this); 96 this._model.addEventListener(WebInspector.TimelineModel.Events.RecordFilterC hanged, this._refreshViews, this);
96 this._model.addEventListener(WebInspector.TimelineModel.Events.RecordAdded, this._onRecordAdded, this); 97 this._model.addEventListener(WebInspector.TimelineModel.Events.RecordAdded, this._onRecordAdded, this);
97 98
98 this._model.target().profilingLock.addEventListener(WebInspector.Lock.Events .StateChanged, this._onProfilingStateChanged, this);
99
100 this._categoryFilter = new WebInspector.TimelineCategoryFilter(this._uiUtils ); 99 this._categoryFilter = new WebInspector.TimelineCategoryFilter(this._uiUtils );
101 this._durationFilter = new WebInspector.TimelineIsLongFilter(); 100 this._durationFilter = new WebInspector.TimelineIsLongFilter();
102 this._textFilter = new WebInspector.TimelineTextFilter(this._uiUtils); 101 this._textFilter = new WebInspector.TimelineTextFilter(this._uiUtils);
103 102
104 var hiddenEmptyRecordsFilter = this._uiUtils.hiddenEmptyRecordsFilter(); 103 var hiddenEmptyRecordsFilter = this._uiUtils.hiddenEmptyRecordsFilter();
105 if (hiddenEmptyRecordsFilter) 104 if (hiddenEmptyRecordsFilter)
106 this._model.addFilter(hiddenEmptyRecordsFilter); 105 this._model.addFilter(hiddenEmptyRecordsFilter);
107 this._model.addFilter(this._uiUtils.hiddenRecordsFilter()); 106 this._model.addFilter(this._uiUtils.hiddenRecordsFilter());
108 this._model.addFilter(this._categoryFilter); 107 this._model.addFilter(this._categoryFilter);
109 this._model.addFilter(this._durationFilter); 108 this._model.addFilter(this._durationFilter);
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
165 }; 164 };
166 165
167 // Define row and header height, should be in sync with styles for timeline grap hs. 166 // Define row and header height, should be in sync with styles for timeline grap hs.
168 WebInspector.TimelinePanel.rowHeight = 18; 167 WebInspector.TimelinePanel.rowHeight = 18;
169 WebInspector.TimelinePanel.headerHeight = 20; 168 WebInspector.TimelinePanel.headerHeight = 20;
170 169
171 WebInspector.TimelinePanel.durationFilterPresetsMs = [0, 1, 15]; 170 WebInspector.TimelinePanel.durationFilterPresetsMs = [0, 1, 15];
172 171
173 WebInspector.TimelinePanel.prototype = { 172 WebInspector.TimelinePanel.prototype = {
174 /** 173 /**
174 * @param {!WebInspector.Target} target
175 */
176 targetAdded: function(target)
177 {
178 target.profilingLock.addEventListener(WebInspector.Lock.Events.StateChan ged, this._onProfilingStateChanged, this);
179 },
180
181 /**
182 * @param {!WebInspector.Target} target
183 */
184 targetRemoved: function(target)
185 {
186 target.profilingLock.removeEventListener(WebInspector.Lock.Events.StateC hanged, this._onProfilingStateChanged, this);
187 },
188
189 /**
175 * @return {?WebInspector.SearchableView} 190 * @return {?WebInspector.SearchableView}
176 */ 191 */
177 searchableView: function() 192 searchableView: function()
178 { 193 {
179 return this._searchableView; 194 return this._searchableView;
180 }, 195 },
181 196
182 wasShown: function() 197 wasShown: function()
183 { 198 {
184 if (!WebInspector.TimelinePanel._categoryStylesInitialized) { 199 if (!WebInspector.TimelinePanel._categoryStylesInitialized) {
(...skipping 546 matching lines...) Expand 10 before | Expand all | Expand 10 after
731 _onProfilingStateChanged: function() 746 _onProfilingStateChanged: function()
732 { 747 {
733 this._updateToggleTimelineButton(this.toggleTimelineButton.toggled); 748 this._updateToggleTimelineButton(this.toggleTimelineButton.toggled);
734 }, 749 },
735 750
736 /** 751 /**
737 * @param {boolean} toggled 752 * @param {boolean} toggled
738 */ 753 */
739 _updateToggleTimelineButton: function(toggled) 754 _updateToggleTimelineButton: function(toggled)
740 { 755 {
756 var isAcquiredInSomeTarget = WebInspector.targetManager.targets().some(f unction(target) { return target.profilingLock.isAcquired(); });
741 this.toggleTimelineButton.toggled = toggled; 757 this.toggleTimelineButton.toggled = toggled;
742 if (toggled) { 758 if (toggled) {
743 this.toggleTimelineButton.title = WebInspector.UIString("Stop"); 759 this.toggleTimelineButton.title = WebInspector.UIString("Stop");
744 this.toggleTimelineButton.setEnabled(true); 760 this.toggleTimelineButton.setEnabled(true);
745 } else if (this._stopPending) { 761 } else if (this._stopPending) {
746 this.toggleTimelineButton.title = WebInspector.UIString("Stop pendin g"); 762 this.toggleTimelineButton.title = WebInspector.UIString("Stop pendin g");
747 this.toggleTimelineButton.setEnabled(false); 763 this.toggleTimelineButton.setEnabled(false);
748 } else if (this._model.target().profilingLock.isAcquired()) { 764 } else if (isAcquiredInSomeTarget) {
749 this.toggleTimelineButton.title = WebInspector.anotherProfilerActive Label(); 765 this.toggleTimelineButton.title = WebInspector.anotherProfilerActive Label();
750 this.toggleTimelineButton.setEnabled(false); 766 this.toggleTimelineButton.setEnabled(false);
751 } else { 767 } else {
752 this.toggleTimelineButton.title = WebInspector.UIString("Record"); 768 this.toggleTimelineButton.title = WebInspector.UIString("Record");
753 this.toggleTimelineButton.setEnabled(true); 769 this.toggleTimelineButton.setEnabled(true);
754 } 770 }
755 }, 771 },
756 772
757 /** 773 /**
758 * @return {boolean} 774 * @return {boolean}
(...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after
1033 if (this._tracingTimelineModel) { 1049 if (this._tracingTimelineModel) {
1034 var event = record.traceEvent(); 1050 var event = record.traceEvent();
1035 this._uiUtils.generateDetailsContent(record, this._model, this._ detailsLinkifier, this._appendDetailsTabsForTraceEventAndShowDetails.bind(this, event), this._model.loadedFromFile()); 1051 this._uiUtils.generateDetailsContent(record, this._model, this._ detailsLinkifier, this._appendDetailsTabsForTraceEventAndShowDetails.bind(this, event), this._model.loadedFromFile());
1036 break; 1052 break;
1037 } 1053 }
1038 var title = this._uiUtils.titleForRecord(record); 1054 var title = this._uiUtils.titleForRecord(record);
1039 this._uiUtils.generateDetailsContent(record, this._model, this._deta ilsLinkifier, this.showInDetails.bind(this, title), this._model.loadedFromFile() ); 1055 this._uiUtils.generateDetailsContent(record, this._model, this._deta ilsLinkifier, this.showInDetails.bind(this, title), this._model.loadedFromFile() );
1040 break; 1056 break;
1041 case WebInspector.TimelineSelection.Type.TraceEvent: 1057 case WebInspector.TimelineSelection.Type.TraceEvent:
1042 var event = /** @type {!WebInspector.TracingModel.Event} */ (this._s election.object()); 1058 var event = /** @type {!WebInspector.TracingModel.Event} */ (this._s election.object());
1043 WebInspector.TracingTimelineUIUtils.buildTraceEventDetails(event, th is._tracingTimelineModel, this._detailsLinkifier, this._appendDetailsTabsForTrac eEventAndShowDetails.bind(this, event), false, this._model.target()); 1059 WebInspector.TracingTimelineUIUtils.buildTraceEventDetails(event, th is._tracingTimelineModel, this._detailsLinkifier, this._appendDetailsTabsForTrac eEventAndShowDetails.bind(this, event), false);
1044 break; 1060 break;
1045 case WebInspector.TimelineSelection.Type.Frame: 1061 case WebInspector.TimelineSelection.Type.Frame:
1046 var frame = /** @type {!WebInspector.TimelineFrame} */ (this._select ion.object()); 1062 var frame = /** @type {!WebInspector.TimelineFrame} */ (this._select ion.object());
1047 this.showInDetails(WebInspector.UIString("Frame Statistics"), WebIns pector.TimelineUIUtils.generateDetailsContentForFrame(this._lazyFrameModel, fram e)); 1063 this.showInDetails(WebInspector.UIString("Frame Statistics"), WebIns pector.TimelineUIUtils.generateDetailsContentForFrame(this._lazyFrameModel, fram e));
1048 if (frame.layerTree) { 1064 if (frame.layerTree) {
1049 var layersView = this._layersView(); 1065 var layersView = this._layersView();
1050 layersView.showLayerTree(frame.layerTree, frame.paints); 1066 layersView.showLayerTree(frame.layerTree, frame.paints);
1051 this._detailsView.appendTab("layers", WebInspector.UIString("Lay ers"), layersView); 1067 this._detailsView.appendTab("layers", WebInspector.UIString("Lay ers"), layersView);
1052 } 1068 }
1053 break; 1069 break;
1054 } 1070 }
1055 }, 1071 },
1056 1072
1057 /** 1073 /**
1058 * @param {!WebInspector.TracingModel.Event} event 1074 * @param {!WebInspector.TracingModel.Event} event
1059 * @param {!Node} content 1075 * @param {!Node} content
1060 */ 1076 */
1061 _appendDetailsTabsForTraceEventAndShowDetails: function(event, content) 1077 _appendDetailsTabsForTraceEventAndShowDetails: function(event, content)
1062 { 1078 {
1063 var title = WebInspector.TracingTimelineUIUtils.styleForTraceEvent(event .name).title; 1079 var title = WebInspector.TracingTimelineUIUtils.styleForTraceEvent(event .name).title;
1064 this.showInDetails(title, content); 1080 this.showInDetails(title, content);
1065 if (event.picture) { 1081 if (event.picture) {
1066 var paintProfilerView = this._paintProfilerView(); 1082 var paintProfilerView = this._paintProfilerView();
1067 paintProfilerView.setPicture(this._model.target().weakReference(), e vent.picture); 1083 paintProfilerView.setPicture(event.thread.target(), event.picture);
1068 this._detailsView.appendTab("paintProfiler", WebInspector.UIString(" Paint Profiler"), paintProfilerView); 1084 this._detailsView.appendTab("paintProfiler", WebInspector.UIString(" Paint Profiler"), paintProfilerView);
1069 } 1085 }
1070 }, 1086 },
1071 1087
1072 _updateSelectedRangeStats: function() 1088 _updateSelectedRangeStats: function()
1073 { 1089 {
1074 if (this._selection) 1090 if (this._selection)
1075 return; 1091 return;
1076 1092
1077 var startTime = this._windowStartTime; 1093 var startTime = this._windowStartTime;
(...skipping 399 matching lines...) Expand 10 before | Expand all | Expand 10 after
1477 * @param {!WebInspector.TimelineModel.Record} record 1493 * @param {!WebInspector.TimelineModel.Record} record
1478 * @return {boolean} 1494 * @return {boolean}
1479 */ 1495 */
1480 accept: function(record) 1496 accept: function(record)
1481 { 1497 {
1482 return !this._regex || this._uiUtils.testContentMatching(record, this._r egex); 1498 return !this._regex || this._uiUtils.testContentMatching(record, this._r egex);
1483 }, 1499 },
1484 1500
1485 __proto__: WebInspector.TimelineModel.Filter.prototype 1501 __proto__: WebInspector.TimelineModel.Filter.prototype
1486 } 1502 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698