Chromium Code Reviews| Index: Source/devtools/front_end/TimelinePresentationModel.js |
| diff --git a/Source/devtools/front_end/TimelinePresentationModel.js b/Source/devtools/front_end/TimelinePresentationModel.js |
| index fd3412bced8f711e5f7a3f82dbc2ed773079c172..24208c0510cd3196f0bb60de575f38aa3c8c0eb0 100644 |
| --- a/Source/devtools/front_end/TimelinePresentationModel.js |
| +++ b/Source/devtools/front_end/TimelinePresentationModel.js |
| @@ -45,18 +45,6 @@ WebInspector.TimelinePresentationModel = function(model) |
| this.reset(); |
| } |
| -WebInspector.TimelinePresentationModel._hiddenRecords = { }; |
| -WebInspector.TimelinePresentationModel._hiddenRecords[WebInspector.TimelineModel.RecordType.MarkDOMContent] = 1; |
| -WebInspector.TimelinePresentationModel._hiddenRecords[WebInspector.TimelineModel.RecordType.MarkLoad] = 1; |
| -WebInspector.TimelinePresentationModel._hiddenRecords[WebInspector.TimelineModel.RecordType.MarkFirstPaint] = 1; |
| -WebInspector.TimelinePresentationModel._hiddenRecords[WebInspector.TimelineModel.RecordType.GPUTask] = 1; |
| -WebInspector.TimelinePresentationModel._hiddenRecords[WebInspector.TimelineModel.RecordType.ScheduleStyleRecalculation] = 1; |
| -WebInspector.TimelinePresentationModel._hiddenRecords[WebInspector.TimelineModel.RecordType.InvalidateLayout] = 1; |
| -WebInspector.TimelinePresentationModel._hiddenRecords[WebInspector.TimelineModel.RecordType.RequestMainThreadFrame] = 1; |
| -WebInspector.TimelinePresentationModel._hiddenRecords[WebInspector.TimelineModel.RecordType.ActivateLayerTree] = 1; |
| -WebInspector.TimelinePresentationModel._hiddenRecords[WebInspector.TimelineModel.RecordType.DrawFrame] = 1; |
| -WebInspector.TimelinePresentationModel._hiddenRecords[WebInspector.TimelineModel.RecordType.BeginFrame] = 1; |
| - |
| WebInspector.TimelinePresentationModel._coalescingRecords = { }; |
| WebInspector.TimelinePresentationModel._coalescingRecords[WebInspector.TimelineModel.RecordType.Layout] = 1; |
| WebInspector.TimelinePresentationModel._coalescingRecords[WebInspector.TimelineModel.RecordType.Paint] = 1; |
| @@ -75,27 +63,6 @@ WebInspector.TimelinePresentationModel.prototype = { |
| }, |
| /** |
| - * @param {!WebInspector.TimelinePresentationModel.Filter} filter |
| - */ |
| - addFilter: function(filter) |
| - { |
| - this._filters.push(filter); |
| - }, |
| - |
| - /** |
| - * @param {?WebInspector.TimelinePresentationModel.Filter} filter |
| - */ |
| - setSearchFilter: function(filter) |
| - { |
| - if (!filter) { |
| - var allRecords = this._recordToPresentationRecord.values(); |
| - for (var i = 0; i < allRecords.length; ++i) |
| - delete allRecords[i].clicked; |
| - } |
| - this._searchFilter = filter; |
| - }, |
| - |
| - /** |
| * @return {!WebInspector.TimelinePresentationModel.Record} |
| */ |
| rootRecord: function() |
| @@ -109,48 +76,8 @@ WebInspector.TimelinePresentationModel.prototype = { |
| var rootPayload = { type: WebInspector.TimelineModel.RecordType.Root }; |
| var rootRecord = new WebInspector.TimelineModel.Record(this._model, /** @type {!TimelineAgent.TimelineEvent} */ (rootPayload), null); |
| this._rootRecord = new WebInspector.TimelinePresentationModel.Record(rootRecord, null); |
| - this._eventDividerRecords = []; |
| - this._minimumRecordTime = -1; |
| /** @type {!Object.<string, !WebInspector.TimelinePresentationModel.Record>} */ |
| this._coalescingBuckets = {}; |
| - this._mergingBuffer = new WebInspector.TimelineMergingRecordBuffer(); |
| - |
| - /** @type {!Array.<!WebInspector.TimelineModel.Record>} */ |
| - this._mainThreadTasks = ([]); |
| - /** @type {!Array.<!WebInspector.TimelineModel.Record>} */ |
| - this._gpuThreadTasks = ([]); |
| - }, |
| - |
| - /** |
| - * @return {number} |
| - */ |
| - minimumRecordTime: function() |
| - { |
| - return this._minimumRecordTime; |
| - }, |
| - |
| - /** |
| - * @return {number} |
| - */ |
| - maximumRecordTime: function() |
| - { |
| - return this._maximumRecordTime; |
| - }, |
| - |
| - /** |
| - * @return {!Array.<!WebInspector.TimelineModel.Record>} |
| - */ |
| - mainThreadTasks: function() |
| - { |
| - return this._mainThreadTasks; |
| - }, |
| - |
| - /** |
| - * @return {!Array.<!WebInspector.TimelineModel.Record>} |
| - */ |
| - gpuThreadTasks: function() |
| - { |
| - return this._gpuThreadTasks; |
| }, |
| /** |
| @@ -158,18 +85,6 @@ WebInspector.TimelinePresentationModel.prototype = { |
| */ |
| addRecord: function(record) |
| { |
| - if (record.type === WebInspector.TimelineModel.RecordType.Program) |
| - this._mainThreadTasks.push(record); |
| - if (record.type === WebInspector.TimelineModel.RecordType.GPUTask) |
| - this._gpuThreadTasks.push(record); |
| - |
| - var startTime = record.startTime; |
| - var endTime = record.endTime; |
| - if (this._minimumRecordTime === -1 || startTime < this._minimumRecordTime) |
| - this._minimumRecordTime = startTime; |
| - if (this._maximumRecordTime === -1 || endTime > this._maximumRecordTime) |
| - this._maximumRecordTime = endTime; |
| - |
| var records; |
| if (record.type === WebInspector.TimelineModel.RecordType.Program) |
| records = record.children; |
| @@ -186,15 +101,6 @@ WebInspector.TimelinePresentationModel.prototype = { |
| */ |
| _innerAddRecord: function(parentRecord, record) |
| { |
| - if (WebInspector.TimelineUIUtils.isEventDivider(record)) |
| - this._eventDividerRecords.push(record); |
| - |
| - if (record.type in WebInspector.TimelinePresentationModel._hiddenRecords) |
| - return null; |
| - |
| - const recordTypes = WebInspector.TimelineModel.RecordType; |
| - |
| - var origin = parentRecord; |
| var coalescingBucket; |
| // On main thread, only coalesce if the last event is of same type. |
| @@ -300,6 +206,18 @@ WebInspector.TimelinePresentationModel.prototype = { |
| } |
| }, |
| + /** |
| + * @param {?RegExp} textFilter |
| + */ |
| + setTextFilter: function(textFilter) |
| + { |
| + if (this._textFilter === textFilter) |
| + return; |
| + this._textFilter = textFilter; |
| + for (var i = 0; this._filteredRecords && i < this._filteredRecords.length; ++i) |
| + delete this._filteredRecords[i]._expandedOrCollapsedWhileFiltered; |
| + }, |
| + |
| invalidateFilteredRecords: function() |
| { |
| delete this._filteredRecords; |
| @@ -313,9 +231,10 @@ WebInspector.TimelinePresentationModel.prototype = { |
| if (this._filteredRecords) |
| return this._filteredRecords; |
| - var recordsInWindow = []; |
| - var stack = [{children: this._rootRecord._presentationChildren, index: 0, parentIsCollapsed: false, parentRecord: {}}]; |
| - var revealedDepth = 0; |
| + var recordsInWindow = []; |
|
caseq
2014/03/04 16:38:03
indent
|
| + |
| + var stack = [{children: this._rootRecord._presentationChildren, index: 0, parentIsCollapsed: false, parentRecord: {}}]; |
| + var revealedDepth = 0; |
|
caseq
2014/03/04 16:38:03
ditto
|
| function revealRecordsInStack() { |
| for (var depth = revealedDepth + 1; depth < stack.length; ++depth) { |
| @@ -338,9 +257,9 @@ WebInspector.TimelinePresentationModel.prototype = { |
| var record = records[entry.index]; |
| ++entry.index; |
| - if (this.isVisible(record.record())) { |
| + if (this._model.isVisible(record.record())) { |
| record._presentationParent._expandable = true; |
| - if (this._searchFilter) |
| + if (this._textFilter) |
| revealRecordsInStack(); |
| if (!entry.parentIsCollapsed) { |
| recordsInWindow.push(record); |
| @@ -353,7 +272,7 @@ WebInspector.TimelinePresentationModel.prototype = { |
| stack.push({children: record._presentationChildren, |
| index: 0, |
| - parentIsCollapsed: (entry.parentIsCollapsed || (record._collapsed && (!this._searchFilter || record.clicked))), |
| + parentIsCollapsed: entry.parentIsCollapsed || (record._collapsed && (!this._textFilter || record._expandedOrCollapsedWhileFiltered)), |
| parentRecord: record, |
| windowLengthBeforeChildrenTraversal: recordsInWindow.length}); |
| } else { |
| @@ -367,27 +286,6 @@ WebInspector.TimelinePresentationModel.prototype = { |
| return recordsInWindow; |
| }, |
| - /** |
| - * @return {!Array.<!WebInspector.TimelineModel.Record>} |
| - */ |
| - eventDividerRecords: function() |
| - { |
| - return this._eventDividerRecords; |
| - }, |
| - |
| - /** |
| - * @param {!WebInspector.TimelineModel.Record} record |
| - * @return {boolean} |
| - */ |
| - isVisible: function(record) |
| - { |
| - for (var i = 0; i < this._filters.length; ++i) { |
| - if (!this._filters[i].accept(record)) |
| - return false; |
| - } |
| - return !this._searchFilter || this._searchFilter.accept(record); |
| - }, |
| - |
| __proto__: WebInspector.Object.prototype |
| } |
| @@ -428,14 +326,6 @@ WebInspector.TimelinePresentationModel.Record.prototype = { |
| }, |
| /** |
| - * @return {boolean} |
| - */ |
| - isRoot: function() |
| - { |
| - return this.type === WebInspector.TimelineModel.RecordType.Root; |
| - }, |
| - |
| - /** |
| * @return {!Array.<!WebInspector.TimelinePresentationModel.Record>} |
| */ |
| presentationChildren: function() |
| @@ -473,6 +363,7 @@ WebInspector.TimelinePresentationModel.Record.prototype = { |
| setCollapsed: function(collapsed) |
| { |
| this._collapsed = collapsed; |
| + this._expandedOrCollapsedWhileFiltered = true; |
| }, |
| /** |
| @@ -547,18 +438,3 @@ WebInspector.TimelinePresentationModel.Record.prototype = { |
| this._graphRow = graphRow; |
| } |
| } |
| - |
| -/** |
| - * @interface |
| - */ |
| -WebInspector.TimelinePresentationModel.Filter = function() |
| -{ |
| -} |
| - |
| -WebInspector.TimelinePresentationModel.Filter.prototype = { |
| - /** |
| - * @param {!WebInspector.TimelineModel.Record} record |
| - * @return {boolean} |
| - */ |
| - accept: function(record) { return false; } |
| -} |