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

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/network/NetworkLogViewColumns.js

Issue 2623743002: DevTools: extract modules (non-extensions) (Closed)
Patch Set: rebaseline Created 3 years, 11 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
OLDNEW
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 28 matching lines...) Expand all
39 this._calculatorsMap = new Map(); 39 this._calculatorsMap = new Map();
40 this._calculatorsMap.set(Network.NetworkLogViewColumns._calculatorTypes.Time , timeCalculator); 40 this._calculatorsMap.set(Network.NetworkLogViewColumns._calculatorTypes.Time , timeCalculator);
41 this._calculatorsMap.set(Network.NetworkLogViewColumns._calculatorTypes.Dura tion, durationCalculator); 41 this._calculatorsMap.set(Network.NetworkLogViewColumns._calculatorTypes.Dura tion, durationCalculator);
42 42
43 this._setupDataGrid(); 43 this._setupDataGrid();
44 this._setupWaterfall(); 44 this._setupWaterfall();
45 } 45 }
46 46
47 /** 47 /**
48 * @param {!Network.NetworkLogViewColumns.Descriptor} columnConfig 48 * @param {!Network.NetworkLogViewColumns.Descriptor} columnConfig
49 * @return {!UI.DataGrid.ColumnDescriptor} 49 * @return {!DataGrid.DataGrid.ColumnDescriptor}
50 */ 50 */
51 static _convertToDataGridDescriptor(columnConfig) { 51 static _convertToDataGridDescriptor(columnConfig) {
52 return /** @type {!UI.DataGrid.ColumnDescriptor} */ ({ 52 return /** @type {!DataGrid.DataGrid.ColumnDescriptor} */ ({
53 id: columnConfig.id, 53 id: columnConfig.id,
54 title: columnConfig.title, 54 title: columnConfig.title,
55 sortable: columnConfig.sortable, 55 sortable: columnConfig.sortable,
56 align: columnConfig.align, 56 align: columnConfig.align,
57 nonSelectable: columnConfig.nonSelectable, 57 nonSelectable: columnConfig.nonSelectable,
58 weight: columnConfig.weight 58 weight: columnConfig.weight
59 }); 59 });
60 } 60 }
61 61
62 wasShown() { 62 wasShown() {
(...skipping 22 matching lines...) Expand all
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._loadColumns();
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 94
95 /** @type {!UI.SortableDataGrid<!Network.NetworkNode>} */ 95 /** @type {!DataGrid.SortableDataGrid<!Network.NetworkNode>} */
96 this._dataGrid = 96 this._dataGrid =
97 new UI.SortableDataGrid(this._columns.map(Network.NetworkLogViewColumns. _convertToDataGridDescriptor)); 97 new DataGrid.SortableDataGrid(this._columns.map(Network.NetworkLogViewCo lumns._convertToDataGridDescriptor));
98 this._dataGrid.element.addEventListener('mousedown', event => { 98 this._dataGrid.element.addEventListener('mousedown', event => {
99 if (!this._dataGrid.selectedNode && event.button) 99 if (!this._dataGrid.selectedNode && event.button)
100 event.consume(); 100 event.consume();
101 }, true); 101 }, true);
102 102
103 this._dataGridScroller = this._dataGrid.scrollContainer; 103 this._dataGridScroller = this._dataGrid.scrollContainer;
104 104
105 this._updateColumns(); 105 this._updateColumns();
106 this._dataGrid.addEventListener(UI.DataGrid.Events.SortingChanged, this._sor tHandler, this); 106 this._dataGrid.addEventListener(DataGrid.DataGrid.Events.SortingChanged, thi s._sortHandler, this);
107 this._dataGrid.setHeaderContextMenuCallback(this._innerHeaderContextMenu.bin d(this)); 107 this._dataGrid.setHeaderContextMenuCallback(this._innerHeaderContextMenu.bin d(this));
108 108
109 this._activeWaterfallSortId = Network.NetworkLogViewColumns.WaterfallSortIds .StartTime; 109 this._activeWaterfallSortId = Network.NetworkLogViewColumns.WaterfallSortIds .StartTime;
110 this._dataGrid.markColumnAsSortedBy(Network.NetworkLogViewColumns._initialSo rtColumn, UI.DataGrid.Order.Ascending); 110 this._dataGrid.markColumnAsSortedBy(
111 Network.NetworkLogViewColumns._initialSortColumn, DataGrid.DataGrid.Orde r.Ascending);
111 112
112 this._splitWidget = new UI.SplitWidget(true, true, 'networkPanelSplitViewWat erfall', 200); 113 this._splitWidget = new UI.SplitWidget(true, true, 'networkPanelSplitViewWat erfall', 200);
113 var widget = this._dataGrid.asWidget(); 114 var widget = this._dataGrid.asWidget();
114 widget.setMinimumSize(150, 0); 115 widget.setMinimumSize(150, 0);
115 this._splitWidget.setMainWidget(widget); 116 this._splitWidget.setMainWidget(widget);
116 } 117 }
117 118
118 _setupWaterfall() { 119 _setupWaterfall() {
119 this._waterfallColumn = 120 this._waterfallColumn =
120 new Network.NetworkWaterfallColumn(this._networkLogView.rowHeight(), thi s._networkLogView.calculator()); 121 new Network.NetworkWaterfallColumn(this._networkLogView.rowHeight(), thi s._networkLogView.calculator());
121 122
122 this._waterfallColumn.element.addEventListener('contextmenu', handleContextM enu.bind(this)); 123 this._waterfallColumn.element.addEventListener('contextmenu', handleContextM enu.bind(this));
123 this._waterfallColumn.element.addEventListener('mousewheel', this._onMouseWh eel.bind(this, false), {passive: true}); 124 this._waterfallColumn.element.addEventListener('mousewheel', this._onMouseWh eel.bind(this, false), {passive: true});
124 this._dataGridScroller.addEventListener('mousewheel', this._onMouseWheel.bin d(this, true), true); 125 this._dataGridScroller.addEventListener('mousewheel', this._onMouseWheel.bin d(this, true), true);
125 126
126 this._waterfallScroller = this._waterfallColumn.contentElement.createChild(' div', 'network-waterfall-v-scroll'); 127 this._waterfallScroller = this._waterfallColumn.contentElement.createChild(' div', 'network-waterfall-v-scroll');
127 this._waterfallScroller.addEventListener('scroll', this._syncScrollers.bind( this), {passive: true}); 128 this._waterfallScroller.addEventListener('scroll', this._syncScrollers.bind( this), {passive: true});
128 this._waterfallScrollerContent = this._waterfallScroller.createChild('div', 'network-waterfall-v-scroll-content'); 129 this._waterfallScrollerContent = this._waterfallScroller.createChild('div', 'network-waterfall-v-scroll-content');
129 130
130 this._dataGrid.addEventListener(UI.DataGrid.Events.PaddingChanged, () => { 131 this._dataGrid.addEventListener(DataGrid.DataGrid.Events.PaddingChanged, () => {
131 this._waterfallScrollerWidthIsStale = true; 132 this._waterfallScrollerWidthIsStale = true;
132 this._syncScrollers(); 133 this._syncScrollers();
133 }); 134 });
134 this._dataGrid.addEventListener( 135 this._dataGrid.addEventListener(
135 UI.ViewportDataGrid.Events.ViewportCalculated, this._redrawWaterfallColu mn.bind(this)); 136 DataGrid.ViewportDataGrid.Events.ViewportCalculated, this._redrawWaterfa llColumn.bind(this));
136 137
137 this._createWaterfallHeader(); 138 this._createWaterfallHeader();
138 this._waterfallColumn.contentElement.classList.add('network-waterfall-view') ; 139 this._waterfallColumn.contentElement.classList.add('network-waterfall-view') ;
139 140
140 this._waterfallColumn.setMinimumSize(100, 0); 141 this._waterfallColumn.setMinimumSize(100, 0);
141 this._splitWidget.setSidebarWidget(this._waterfallColumn); 142 this._splitWidget.setSidebarWidget(this._waterfallColumn);
142 143
143 this.switchViewMode(false); 144 this.switchViewMode(false);
144 145
145 /** 146 /**
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
201 'contextmenu', event => this._innerHeaderContextMenu(new UI.ContextMenu( event))); 202 'contextmenu', event => this._innerHeaderContextMenu(new UI.ContextMenu( event)));
202 var innerElement = this._waterfallHeaderElement.createChild('div'); 203 var innerElement = this._waterfallHeaderElement.createChild('div');
203 innerElement.textContent = Common.UIString('Waterfall'); 204 innerElement.textContent = Common.UIString('Waterfall');
204 this._waterfallColumnSortIcon = this._waterfallHeaderElement.createChild('di v', 'sort-order-icon-container') 205 this._waterfallColumnSortIcon = this._waterfallHeaderElement.createChild('di v', 'sort-order-icon-container')
205 .createChild('div', 'sort-order-icon'); 206 .createChild('div', 'sort-order-icon');
206 207
207 /** 208 /**
208 * @this {Network.NetworkLogViewColumns} 209 * @this {Network.NetworkLogViewColumns}
209 */ 210 */
210 function waterfallHeaderClicked() { 211 function waterfallHeaderClicked() {
211 var sortOrders = UI.DataGrid.Order; 212 var sortOrders = DataGrid.DataGrid.Order;
212 var sortOrder = 213 var sortOrder =
213 this._dataGrid.sortOrder() === sortOrders.Ascending ? sortOrders.Desce nding : sortOrders.Ascending; 214 this._dataGrid.sortOrder() === sortOrders.Ascending ? sortOrders.Desce nding : sortOrders.Ascending;
214 this._dataGrid.markColumnAsSortedBy('waterfall', sortOrder); 215 this._dataGrid.markColumnAsSortedBy('waterfall', sortOrder);
215 this._sortHandler(); 216 this._sortHandler();
216 } 217 }
217 } 218 }
218 219
219 /** 220 /**
220 * @param {!Network.NetworkTimeCalculator} x 221 * @param {!Network.NetworkTimeCalculator} x
221 */ 222 */
(...skipping 22 matching lines...) Expand all
244 } 245 }
245 246
246 /** 247 /**
247 * @param {!Element} element 248 * @param {!Element} element
248 */ 249 */
249 show(element) { 250 show(element) {
250 this._splitWidget.show(element); 251 this._splitWidget.show(element);
251 } 252 }
252 253
253 /** 254 /**
254 * @return {!UI.SortableDataGrid<!Network.NetworkNode>} dataGrid 255 * @return {!DataGrid.SortableDataGrid<!Network.NetworkNode>} dataGrid
255 */ 256 */
256 dataGrid() { 257 dataGrid() {
257 return this._dataGrid; 258 return this._dataGrid;
258 } 259 }
259 260
260 sortByCurrentColumn() { 261 sortByCurrentColumn() {
261 this._sortHandler(); 262 this._sortHandler();
262 } 263 }
263 264
264 _sortHandler() { 265 _sortHandler() {
265 var columnId = this._dataGrid.sortColumnId(); 266 var columnId = this._dataGrid.sortColumnId();
266 this._networkLogView.removeAllNodeHighlights(); 267 this._networkLogView.removeAllNodeHighlights();
267 if (columnId === 'waterfall') { 268 if (columnId === 'waterfall') {
268 this._waterfallColumnSortIcon.classList.remove('sort-ascending', 'sort-des cending'); 269 this._waterfallColumnSortIcon.classList.remove('sort-ascending', 'sort-des cending');
269 270
270 if (this._dataGrid.sortOrder() === UI.DataGrid.Order.Ascending) 271 if (this._dataGrid.sortOrder() === DataGrid.DataGrid.Order.Ascending)
271 this._waterfallColumnSortIcon.classList.add('sort-ascending'); 272 this._waterfallColumnSortIcon.classList.add('sort-ascending');
272 else 273 else
273 this._waterfallColumnSortIcon.classList.add('sort-descending'); 274 this._waterfallColumnSortIcon.classList.add('sort-descending');
274 275
275 this._waterfallRequestsAreStale = true; 276 this._waterfallRequestsAreStale = true;
276 var sortFunction = Network.NetworkRequestNode.RequestPropertyComparator.bi nd(null, this._activeWaterfallSortId); 277 var sortFunction = Network.NetworkRequestNode.RequestPropertyComparator.bi nd(null, this._activeWaterfallSortId);
277 this._dataGrid.sortNodes(sortFunction, !this._dataGrid.isSortOrderAscendin g()); 278 this._dataGrid.sortNodes(sortFunction, !this._dataGrid.isSortOrderAscendin g());
278 this._networkLogView.dataGridSorted(); 279 this._networkLogView.dataGridSorted();
279 return; 280 return;
280 } 281 }
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
422 * @this {Network.NetworkLogViewColumns} 423 * @this {Network.NetworkLogViewColumns}
423 */ 424 */
424 function setWaterfallMode(sortId) { 425 function setWaterfallMode(sortId) {
425 var calculator = this._calculatorsMap.get(Network.NetworkLogViewColumns._c alculatorTypes.Time); 426 var calculator = this._calculatorsMap.get(Network.NetworkLogViewColumns._c alculatorTypes.Time);
426 var waterfallSortIds = Network.NetworkLogViewColumns.WaterfallSortIds; 427 var waterfallSortIds = Network.NetworkLogViewColumns.WaterfallSortIds;
427 if (sortId === waterfallSortIds.Duration || sortId === waterfallSortIds.La tency) 428 if (sortId === waterfallSortIds.Duration || sortId === waterfallSortIds.La tency)
428 calculator = this._calculatorsMap.get(Network.NetworkLogViewColumns._cal culatorTypes.Duration); 429 calculator = this._calculatorsMap.get(Network.NetworkLogViewColumns._cal culatorTypes.Duration);
429 this._networkLogView.setCalculator(calculator); 430 this._networkLogView.setCalculator(calculator);
430 431
431 this._activeWaterfallSortId = sortId; 432 this._activeWaterfallSortId = sortId;
432 this._dataGrid.markColumnAsSortedBy('waterfall', UI.DataGrid.Order.Ascendi ng); 433 this._dataGrid.markColumnAsSortedBy('waterfall', DataGrid.DataGrid.Order.A scending);
433 this._sortHandler(); 434 this._sortHandler();
434 } 435 }
435 } 436 }
436 437
437 _manageCustomHeaderDialog() { 438 _manageCustomHeaderDialog() {
438 var customHeaders = []; 439 var customHeaders = [];
439 for (var columnConfig of this._columns) { 440 for (var columnConfig of this._columns) {
440 if (columnConfig.isResponseHeader) 441 if (columnConfig.isResponseHeader)
441 customHeaders.push({title: columnConfig.title, editable: columnConfig.is CustomHeader}); 442 customHeaders.push({title: columnConfig.title, editable: columnConfig.is CustomHeader});
442 } 443 }
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
605 * @typedef {{ 606 * @typedef {{
606 * id: string, 607 * id: string,
607 * title: string, 608 * title: string,
608 * titleDOMFragment: (!DocumentFragment|undefined), 609 * titleDOMFragment: (!DocumentFragment|undefined),
609 * subtitle: (string|null), 610 * subtitle: (string|null),
610 * visible: boolean, 611 * visible: boolean,
611 * weight: number, 612 * weight: number,
612 * hideable: boolean, 613 * hideable: boolean,
613 * nonSelectable: boolean, 614 * nonSelectable: boolean,
614 * sortable: boolean, 615 * sortable: boolean,
615 * align: (?UI.DataGrid.Align|undefined), 616 * align: (?DataGrid.DataGrid.Align|undefined),
616 * isResponseHeader: boolean, 617 * isResponseHeader: boolean,
617 * sortingFunction: (!function(!Network.NetworkNode, !Network.NetworkNode):n umber|undefined), 618 * sortingFunction: (!function(!Network.NetworkNode, !Network.NetworkNode):n umber|undefined),
618 * isCustomHeader: boolean 619 * isCustomHeader: boolean
619 * }} 620 * }}
620 */ 621 */
621 Network.NetworkLogViewColumns.Descriptor; 622 Network.NetworkLogViewColumns.Descriptor;
622 623
623 /** @enum {string} */ 624 /** @enum {string} */
624 Network.NetworkLogViewColumns._calculatorTypes = { 625 Network.NetworkLogViewColumns._calculatorTypes = {
625 Duration: 'Duration', 626 Duration: 'Duration',
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
680 }, 681 },
681 { 682 {
682 id: 'domain', 683 id: 'domain',
683 title: Common.UIString('Domain'), 684 title: Common.UIString('Domain'),
684 sortingFunction: Network.NetworkRequestNode.RequestPropertyComparator.bind(n ull, 'domain') 685 sortingFunction: Network.NetworkRequestNode.RequestPropertyComparator.bind(n ull, 'domain')
685 }, 686 },
686 { 687 {
687 id: 'remoteaddress', 688 id: 'remoteaddress',
688 title: Common.UIString('Remote Address'), 689 title: Common.UIString('Remote Address'),
689 weight: 10, 690 weight: 10,
690 align: UI.DataGrid.Align.Right, 691 align: DataGrid.DataGrid.Align.Right,
691 sortingFunction: Network.NetworkRequestNode.RemoteAddressComparator 692 sortingFunction: Network.NetworkRequestNode.RemoteAddressComparator
692 }, 693 },
693 { 694 {
694 id: 'type', 695 id: 'type',
695 title: Common.UIString('Type'), 696 title: Common.UIString('Type'),
696 visible: true, 697 visible: true,
697 sortingFunction: Network.NetworkRequestNode.TypeComparator 698 sortingFunction: Network.NetworkRequestNode.TypeComparator
698 }, 699 },
699 { 700 {
700 id: 'initiator', 701 id: 'initiator',
701 title: Common.UIString('Initiator'), 702 title: Common.UIString('Initiator'),
702 visible: true, 703 visible: true,
703 weight: 10, 704 weight: 10,
704 sortingFunction: Network.NetworkRequestNode.InitiatorComparator 705 sortingFunction: Network.NetworkRequestNode.InitiatorComparator
705 }, 706 },
706 { 707 {
707 id: 'cookies', 708 id: 'cookies',
708 title: Common.UIString('Cookies'), 709 title: Common.UIString('Cookies'),
709 align: UI.DataGrid.Align.Right, 710 align: DataGrid.DataGrid.Align.Right,
710 sortingFunction: Network.NetworkRequestNode.RequestCookiesCountComparator 711 sortingFunction: Network.NetworkRequestNode.RequestCookiesCountComparator
711 }, 712 },
712 { 713 {
713 id: 'setcookies', 714 id: 'setcookies',
714 title: Common.UIString('Set Cookies'), 715 title: Common.UIString('Set Cookies'),
715 align: UI.DataGrid.Align.Right, 716 align: DataGrid.DataGrid.Align.Right,
716 sortingFunction: Network.NetworkRequestNode.ResponseCookiesCountComparator 717 sortingFunction: Network.NetworkRequestNode.ResponseCookiesCountComparator
717 }, 718 },
718 { 719 {
719 id: 'size', 720 id: 'size',
720 title: Common.UIString('Size'), 721 title: Common.UIString('Size'),
721 visible: true, 722 visible: true,
722 subtitle: Common.UIString('Content'), 723 subtitle: Common.UIString('Content'),
723 align: UI.DataGrid.Align.Right, 724 align: DataGrid.DataGrid.Align.Right,
724 sortingFunction: Network.NetworkRequestNode.SizeComparator 725 sortingFunction: Network.NetworkRequestNode.SizeComparator
725 }, 726 },
726 { 727 {
727 id: 'time', 728 id: 'time',
728 title: Common.UIString('Time'), 729 title: Common.UIString('Time'),
729 visible: true, 730 visible: true,
730 subtitle: Common.UIString('Latency'), 731 subtitle: Common.UIString('Latency'),
731 align: UI.DataGrid.Align.Right, 732 align: DataGrid.DataGrid.Align.Right,
732 sortingFunction: Network.NetworkRequestNode.RequestPropertyComparator.bind(n ull, 'duration') 733 sortingFunction: Network.NetworkRequestNode.RequestPropertyComparator.bind(n ull, 'duration')
733 }, 734 },
734 { 735 {
735 id: 'priority', 736 id: 'priority',
736 title: Common.UIString('Priority'), 737 title: Common.UIString('Priority'),
737 sortingFunction: Network.NetworkRequestNode.InitialPriorityComparator 738 sortingFunction: Network.NetworkRequestNode.InitialPriorityComparator
738 }, 739 },
739 { 740 {
740 id: 'connectionid', 741 id: 'connectionid',
741 title: Common.UIString('Connection ID'), 742 title: Common.UIString('Connection ID'),
(...skipping 14 matching lines...) Expand all
756 { 757 {
757 id: 'content-encoding', 758 id: 'content-encoding',
758 isResponseHeader: true, 759 isResponseHeader: true,
759 title: Common.UIString('Content-Encoding'), 760 title: Common.UIString('Content-Encoding'),
760 sortingFunction: Network.NetworkRequestNode.ResponseHeaderStringComparator.b ind(null, 'content-encoding') 761 sortingFunction: Network.NetworkRequestNode.ResponseHeaderStringComparator.b ind(null, 'content-encoding')
761 }, 762 },
762 { 763 {
763 id: 'content-length', 764 id: 'content-length',
764 isResponseHeader: true, 765 isResponseHeader: true,
765 title: Common.UIString('Content-Length'), 766 title: Common.UIString('Content-Length'),
766 align: UI.DataGrid.Align.Right, 767 align: DataGrid.DataGrid.Align.Right,
767 sortingFunction: Network.NetworkRequestNode.ResponseHeaderNumberComparator.b ind(null, 'content-length') 768 sortingFunction: Network.NetworkRequestNode.ResponseHeaderNumberComparator.b ind(null, 'content-length')
768 }, 769 },
769 { 770 {
770 id: 'etag', 771 id: 'etag',
771 isResponseHeader: true, 772 isResponseHeader: true,
772 title: Common.UIString('ETag'), 773 title: Common.UIString('ETag'),
773 sortingFunction: Network.NetworkRequestNode.ResponseHeaderStringComparator.b ind(null, 'etag') 774 sortingFunction: Network.NetworkRequestNode.ResponseHeaderStringComparator.b ind(null, 'etag')
774 }, 775 },
775 { 776 {
776 id: 'keep-alive', 777 id: 'keep-alive',
(...skipping 28 matching lines...) Expand all
805 /** 806 /**
806 * @enum {string} 807 * @enum {string}
807 */ 808 */
808 Network.NetworkLogViewColumns.WaterfallSortIds = { 809 Network.NetworkLogViewColumns.WaterfallSortIds = {
809 StartTime: 'startTime', 810 StartTime: 'startTime',
810 ResponseTime: 'responseReceivedTime', 811 ResponseTime: 'responseReceivedTime',
811 EndTime: 'endTime', 812 EndTime: 'endTime',
812 Duration: 'duration', 813 Duration: 'duration',
813 Latency: 'latency' 814 Latency: 'latency'
814 }; 815 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698