| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 * @unrestricted | 5 * @unrestricted |
| 6 */ | 6 */ |
| 7 Network.NetworkLogViewColumns = class { | 7 Network.NetworkLogViewColumns = class { |
| 8 /** | 8 /** |
| 9 * @param {!Network.NetworkLogView} networkLogView | 9 * @param {!Network.NetworkLogView} networkLogView |
| 10 * @param {!Network.NetworkTransferTimeCalculator} timeCalculator | 10 * @param {!Network.NetworkTransferTimeCalculator} timeCalculator |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 79 | 79 |
| 80 this._columns = /** @type {!Array<!Network.NetworkLogViewColumns.Descriptor>
} */ ([]); | 80 this._columns = /** @type {!Array<!Network.NetworkLogViewColumns.Descriptor>
} */ ([]); |
| 81 for (var currentConfigColumn of defaultColumns) { | 81 for (var currentConfigColumn of defaultColumns) { |
| 82 var columnConfig = /** @type {!Network.NetworkLogViewColumns.Descriptor} *
/ ( | 82 var columnConfig = /** @type {!Network.NetworkLogViewColumns.Descriptor} *
/ ( |
| 83 Object.assign(/** @type {!Object} */ ({}), defaultColumnConfig, curren
tConfigColumn)); | 83 Object.assign(/** @type {!Object} */ ({}), defaultColumnConfig, curren
tConfigColumn)); |
| 84 columnConfig.id = columnConfig.id; | 84 columnConfig.id = columnConfig.id; |
| 85 if (columnConfig.subtitle) | 85 if (columnConfig.subtitle) |
| 86 columnConfig.titleDOMFragment = this._makeHeaderFragment(columnConfig.ti
tle, columnConfig.subtitle); | 86 columnConfig.titleDOMFragment = this._makeHeaderFragment(columnConfig.ti
tle, columnConfig.subtitle); |
| 87 this._columns.push(columnConfig); | 87 this._columns.push(columnConfig); |
| 88 } | 88 } |
| 89 this._loadColumns(); | 89 this._loadCustomColumnsAndSettings(); |
| 90 | 90 |
| 91 this._popoverHelper = new UI.PopoverHelper(this._networkLogView.element); | 91 this._popoverHelper = new UI.PopoverHelper(this._networkLogView.element); |
| 92 this._popoverHelper.initializeCallbacks( | 92 this._popoverHelper.initializeCallbacks( |
| 93 this._getPopoverAnchor.bind(this), this._showPopover.bind(this), this._o
nHidePopover.bind(this)); | 93 this._getPopoverAnchor.bind(this), this._showPopover.bind(this), this._o
nHidePopover.bind(this)); |
| 94 this._popoverHelper.setHasPadding(true); | 94 this._popoverHelper.setHasPadding(true); |
| 95 | 95 |
| 96 /** @type {!DataGrid.SortableDataGrid<!Network.NetworkNode>} */ | 96 /** @type {!DataGrid.SortableDataGrid<!Network.NetworkNode>} */ |
| 97 this._dataGrid = | 97 this._dataGrid = |
| 98 new DataGrid.SortableDataGrid(this._columns.map(Network.NetworkLogViewCo
lumns._convertToDataGridDescriptor)); | 98 new DataGrid.SortableDataGrid(this._columns.map(Network.NetworkLogViewCo
lumns._convertToDataGridDescriptor)); |
| 99 this._dataGrid.element.addEventListener('mousedown', event => { | 99 this._dataGrid.element.addEventListener('mousedown', event => { |
| (...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 323 this._dataGrid.setScrollContainer(this._dataGridScroller); | 323 this._dataGrid.setScrollContainer(this._dataGridScroller); |
| 324 } | 324 } |
| 325 this._networkLogView.element.classList.toggle('brief-mode', !gridMode); | 325 this._networkLogView.element.classList.toggle('brief-mode', !gridMode); |
| 326 this._updateColumns(); | 326 this._updateColumns(); |
| 327 } | 327 } |
| 328 | 328 |
| 329 /** | 329 /** |
| 330 * @param {!Network.NetworkLogViewColumns.Descriptor} columnConfig | 330 * @param {!Network.NetworkLogViewColumns.Descriptor} columnConfig |
| 331 */ | 331 */ |
| 332 _toggleColumnVisibility(columnConfig) { | 332 _toggleColumnVisibility(columnConfig) { |
| 333 this._loadColumns(); | 333 this._loadCustomColumnsAndSettings(); |
| 334 columnConfig.visible = !columnConfig.visible; | 334 columnConfig.visible = !columnConfig.visible; |
| 335 this._saveColumns(); | 335 this._saveColumnsSettings(); |
| 336 this._updateColumns(); | 336 this._updateColumns(); |
| 337 } | 337 } |
| 338 | 338 |
| 339 _saveColumns() { | 339 _saveColumnsSettings() { |
| 340 var saveableSettings = {}; | 340 var saveableSettings = {}; |
| 341 for (var columnConfig of this._columns) | 341 for (var columnConfig of this._columns) |
| 342 saveableSettings[columnConfig.id] = {visible: columnConfig.visible, title:
columnConfig.title}; | 342 saveableSettings[columnConfig.id] = {visible: columnConfig.visible, title:
columnConfig.title}; |
| 343 | 343 |
| 344 this._persistantSettings.set(saveableSettings); | 344 this._persistantSettings.set(saveableSettings); |
| 345 } | 345 } |
| 346 | 346 |
| 347 _loadColumns() { | 347 _loadCustomColumnsAndSettings() { |
| 348 var savedSettings = this._persistantSettings.get(); | 348 var savedSettings = this._persistantSettings.get(); |
| 349 var columnIds = Object.keys(savedSettings); | 349 var columnIds = Object.keys(savedSettings); |
| 350 for (var columnId of columnIds) { | 350 for (var columnId of columnIds) { |
| 351 var setting = savedSettings[columnId]; | 351 var setting = savedSettings[columnId]; |
| 352 var columnConfig = this._columns.find(columnConfig => columnConfig.id ===
columnId); | 352 var columnConfig = this._columns.find(columnConfig => columnConfig.id ===
columnId); |
| 353 if (!columnConfig) | 353 if (!columnConfig) |
| 354 columnConfig = this._addCustomHeader(setting.title, columnId); | 354 columnConfig = this._addCustomHeader(setting.title, columnId); |
| 355 if (columnConfig.hideable && typeof setting.visible === 'boolean') | 355 if (columnConfig.hideable && typeof setting.visible === 'boolean') |
| 356 columnConfig.visible = !!setting.visible; | 356 columnConfig.visible = !!setting.visible; |
| 357 if (typeof setting.title === 'string') | 357 if (typeof setting.title === 'string') |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 454 * @param {string} headerId | 454 * @param {string} headerId |
| 455 * @return {boolean} | 455 * @return {boolean} |
| 456 */ | 456 */ |
| 457 _removeCustomHeader(headerId) { | 457 _removeCustomHeader(headerId) { |
| 458 headerId = headerId.toLowerCase(); | 458 headerId = headerId.toLowerCase(); |
| 459 var index = this._columns.findIndex(columnConfig => columnConfig.id === head
erId); | 459 var index = this._columns.findIndex(columnConfig => columnConfig.id === head
erId); |
| 460 if (index === -1) | 460 if (index === -1) |
| 461 return false; | 461 return false; |
| 462 this._columns.splice(index, 1); | 462 this._columns.splice(index, 1); |
| 463 this._dataGrid.removeColumn(headerId); | 463 this._dataGrid.removeColumn(headerId); |
| 464 this._saveColumns(); | 464 this._saveColumnsSettings(); |
| 465 this._updateColumns(); | 465 this._updateColumns(); |
| 466 return true; | 466 return true; |
| 467 } | 467 } |
| 468 | 468 |
| 469 /** | 469 /** |
| 470 * @param {string} headerTitle | 470 * @param {string} headerTitle |
| 471 * @param {string=} headerId | 471 * @param {string=} headerId |
| 472 * @param {number=} index | 472 * @param {number=} index |
| 473 * @return {?Network.NetworkLogViewColumns.Descriptor} | 473 * @return {?Network.NetworkLogViewColumns.Descriptor} |
| 474 */ | 474 */ |
| (...skipping 12 matching lines...) Expand all Loading... |
| 487 id: headerId, | 487 id: headerId, |
| 488 title: headerTitle, | 488 title: headerTitle, |
| 489 isResponseHeader: true, | 489 isResponseHeader: true, |
| 490 isCustomHeader: true, | 490 isCustomHeader: true, |
| 491 visible: true, | 491 visible: true, |
| 492 sortingFunction: Network.NetworkRequestNode.ResponseHeaderStringCompar
ator.bind(null, headerId) | 492 sortingFunction: Network.NetworkRequestNode.ResponseHeaderStringCompar
ator.bind(null, headerId) |
| 493 })); | 493 })); |
| 494 this._columns.splice(index, 0, columnConfig); | 494 this._columns.splice(index, 0, columnConfig); |
| 495 if (this._dataGrid) | 495 if (this._dataGrid) |
| 496 this._dataGrid.addColumn(Network.NetworkLogViewColumns._convertToDataGridD
escriptor(columnConfig), index); | 496 this._dataGrid.addColumn(Network.NetworkLogViewColumns._convertToDataGridD
escriptor(columnConfig), index); |
| 497 this._saveColumns(); | 497 this._saveColumnsSettings(); |
| 498 this._updateColumns(); | 498 this._updateColumns(); |
| 499 return columnConfig; | 499 return columnConfig; |
| 500 } | 500 } |
| 501 | 501 |
| 502 /** | 502 /** |
| 503 * @param {string} oldHeaderId | 503 * @param {string} oldHeaderId |
| 504 * @param {string} newHeaderTitle | 504 * @param {string} newHeaderTitle |
| 505 * @param {string=} newHeaderId | 505 * @param {string=} newHeaderId |
| 506 * @return {boolean} | 506 * @return {boolean} |
| 507 */ | 507 */ |
| (...skipping 299 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 807 /** | 807 /** |
| 808 * @enum {string} | 808 * @enum {string} |
| 809 */ | 809 */ |
| 810 Network.NetworkLogViewColumns.WaterfallSortIds = { | 810 Network.NetworkLogViewColumns.WaterfallSortIds = { |
| 811 StartTime: 'startTime', | 811 StartTime: 'startTime', |
| 812 ResponseTime: 'responseReceivedTime', | 812 ResponseTime: 'responseReceivedTime', |
| 813 EndTime: 'endTime', | 813 EndTime: 'endTime', |
| 814 Duration: 'duration', | 814 Duration: 'duration', |
| 815 Latency: 'latency' | 815 Latency: 'latency' |
| 816 }; | 816 }; |
| OLD | NEW |