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

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

Issue 2483853004: [Devtools] Renamed Network's Timeline to Waterfall (Closed)
Patch Set: [Devtools] Renamed Network's Timeline to Waterfall Created 4 years, 1 month 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 WebInspector.NetworkLogViewColumns = class { 7 WebInspector.NetworkLogViewColumns = class {
8 /** 8 /**
9 * @param {!WebInspector.NetworkLogView} networkLogView 9 * @param {!WebInspector.NetworkLogView} networkLogView
10 * @param {!WebInspector.NetworkTransferTimeCalculator} timeCalculator 10 * @param {!WebInspector.NetworkTransferTimeCalculator} timeCalculator
(...skipping 11 matching lines...) Expand all
22 22
23 /** @type {!Map<string, !Array<number>>} */ 23 /** @type {!Map<string, !Array<number>>} */
24 this._eventDividers = new Map(); 24 this._eventDividers = new Map();
25 this._eventDividersShown = false; 25 this._eventDividersShown = false;
26 26
27 this._gridMode = true; 27 this._gridMode = true;
28 28
29 /** @type {!Array.<!WebInspector.NetworkLogViewColumns.Descriptor>} */ 29 /** @type {!Array.<!WebInspector.NetworkLogViewColumns.Descriptor>} */
30 this._columns = []; 30 this._columns = [];
31 31
32 this._timelineRequestsAreStale = false; 32 this._waterfallRequestsAreStale = false;
33 this._timelineScrollerWidthIsStale = true; 33 this._waterfallScrollerWidthIsStale = true;
34 34
35 /** @type {!WebInspector.Linkifier} */ 35 /** @type {!WebInspector.Linkifier} */
36 this._popupLinkifier = new WebInspector.Linkifier(); 36 this._popupLinkifier = new WebInspector.Linkifier();
37 37
38 /** @type {!Map<string, !WebInspector.NetworkTimeCalculator>} */ 38 /** @type {!Map<string, !WebInspector.NetworkTimeCalculator>} */
39 this._calculatorsMap = new Map(); 39 this._calculatorsMap = new Map();
40 this._calculatorsMap.set(WebInspector.NetworkLogViewColumns._calculatorTypes .Time, timeCalculator); 40 this._calculatorsMap.set(WebInspector.NetworkLogViewColumns._calculatorTypes .Time, timeCalculator);
41 this._calculatorsMap.set(WebInspector.NetworkLogViewColumns._calculatorTypes .Duration, durationCalculator); 41 this._calculatorsMap.set(WebInspector.NetworkLogViewColumns._calculatorTypes .Duration, durationCalculator);
42 42
43 this._setupDataGrid(); 43 this._setupDataGrid();
44 this._setupTimeline(); 44 this._setupWaterfall();
45 } 45 }
46 46
47 /** 47 /**
48 * @param {!WebInspector.NetworkLogViewColumns.Descriptor} columnConfig 48 * @param {!WebInspector.NetworkLogViewColumns.Descriptor} columnConfig
49 * @return {!WebInspector.DataGrid.ColumnDescriptor} 49 * @return {!WebInspector.DataGrid.ColumnDescriptor}
50 */ 50 */
51 static _convertToDataGridDescriptor(columnConfig) { 51 static _convertToDataGridDescriptor(columnConfig) {
52 return /** @type {!WebInspector.DataGrid.ColumnDescriptor} */ ({ 52 return /** @type {!WebInspector.DataGrid.ColumnDescriptor} */ ({
53 id: columnConfig.id, 53 id: columnConfig.id,
54 title: columnConfig.title, 54 title: columnConfig.title,
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
98 if ((!this._dataGrid.selectedNode && event.button) || event.target.enclosi ngNodeOrSelfWithNodeName('a')) 98 if ((!this._dataGrid.selectedNode && event.button) || event.target.enclosi ngNodeOrSelfWithNodeName('a'))
99 event.consume(); 99 event.consume();
100 }, true); 100 }, true);
101 101
102 this._dataGridScroller = this._dataGrid.scrollContainer; 102 this._dataGridScroller = this._dataGrid.scrollContainer;
103 103
104 this._updateColumns(); 104 this._updateColumns();
105 this._dataGrid.addEventListener(WebInspector.DataGrid.Events.SortingChanged, this._sortHandler, this); 105 this._dataGrid.addEventListener(WebInspector.DataGrid.Events.SortingChanged, this._sortHandler, this);
106 this._dataGrid.setHeaderContextMenuCallback(this._innerHeaderContextMenu.bin d(this)); 106 this._dataGrid.setHeaderContextMenuCallback(this._innerHeaderContextMenu.bin d(this));
107 107
108 this._activeTimelineSortId = WebInspector.NetworkLogViewColumns.TimelineSort Ids.StartTime; 108 this._activeWaterfallSortId = WebInspector.NetworkLogViewColumns.WaterfallSo rtIds.StartTime;
109 this._dataGrid.markColumnAsSortedBy( 109 this._dataGrid.markColumnAsSortedBy(
110 WebInspector.NetworkLogViewColumns._initialSortColumn, WebInspector.Data Grid.Order.Ascending); 110 WebInspector.NetworkLogViewColumns._initialSortColumn, WebInspector.Data Grid.Order.Ascending);
111 111
112 this._splitWidget = new WebInspector.SplitWidget(true, true, 'networkPanelSp litViewTimeline', 200); 112 this._splitWidget = new WebInspector.SplitWidget(true, true, 'networkPanelSp litViewWaterfall', 200);
113 var widget = this._dataGrid.asWidget(); 113 var widget = this._dataGrid.asWidget();
114 widget.setMinimumSize(150, 0); 114 widget.setMinimumSize(150, 0);
115 this._splitWidget.setMainWidget(widget); 115 this._splitWidget.setMainWidget(widget);
116 } 116 }
117 117
118 _setupTimeline() { 118 _setupWaterfall() {
119 this._timelineColumn = 119 this._waterfallColumn =
120 new WebInspector.NetworkTimelineColumn(this._networkLogView.rowHeight(), this._networkLogView.calculator()); 120 new WebInspector.NetworkWaterfallColumn(this._networkLogView.rowHeight() , this._networkLogView.calculator());
121 121
122 this._timelineColumn.element.addEventListener('contextmenu', handleContextMe nu.bind(this)); 122 this._waterfallColumn.element.addEventListener('contextmenu', handleContextM enu.bind(this));
123 this._timelineColumn.element.addEventListener('mousewheel', this._onMouseWhe el.bind(this, false), {passive: true}); 123 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); 124 this._dataGridScroller.addEventListener('mousewheel', this._onMouseWheel.bin d(this, true), true);
125 125
126 this._timelineColumn.element.addEventListener( 126 this._waterfallColumn.element.addEventListener(
127 'mousemove', 127 'mousemove',
128 event => this._networkLogView.setHoveredRequest( 128 event => this._networkLogView.setHoveredRequest(
129 this._timelineColumn.getRequestFromPoint(event.offsetX, event.offset Y + event.target.offsetTop), 129 this._waterfallColumn.getRequestFromPoint(event.offsetX, event.offse tY + event.target.offsetTop),
130 event.shiftKey), 130 event.shiftKey),
131 true); 131 true);
132 this._timelineColumn.element.addEventListener( 132 this._waterfallColumn.element.addEventListener(
133 'mouseleave', this._networkLogView.setHoveredRequest.bind(this._networkL ogView, null, false), true); 133 'mouseleave', this._networkLogView.setHoveredRequest.bind(this._networkL ogView, null, false), true);
134 134
135 this._timelineScroller = this._timelineColumn.contentElement.createChild('di v', 'network-timeline-v-scroll'); 135 this._waterfallScroller = this._waterfallColumn.contentElement.createChild(' div', 'network-waterfall-v-scroll');
136 this._timelineScroller.addEventListener('scroll', this._syncScrollers.bind(t his), {passive: true}); 136 this._waterfallScroller.addEventListener('scroll', this._syncScrollers.bind( this), {passive: true});
137 this._timelineScrollerContent = this._timelineScroller.createChild('div', 'n etwork-timeline-v-scroll-content'); 137 this._waterfallScrollerContent = this._waterfallScroller.createChild('div', 'network-waterfall-v-scroll-content');
138 138
139 this._dataGrid.addEventListener(WebInspector.DataGrid.Events.PaddingChanged, () => { 139 this._dataGrid.addEventListener(WebInspector.DataGrid.Events.PaddingChanged, () => {
140 this._timelineScrollerWidthIsStale = true; 140 this._waterfallScrollerWidthIsStale = true;
141 this._syncScrollers(); 141 this._syncScrollers();
142 }); 142 });
143 this._dataGrid.addEventListener( 143 this._dataGrid.addEventListener(
144 WebInspector.ViewportDataGrid.Events.ViewportCalculated, this._redrawTim elineColumn.bind(this)); 144 WebInspector.ViewportDataGrid.Events.ViewportCalculated, this._redrawWat erfallColumn.bind(this));
145 145
146 this._createTimelineHeader(); 146 this._createWaterfallHeader();
147 this._timelineColumn.contentElement.classList.add('network-timeline-view'); 147 this._waterfallColumn.contentElement.classList.add('network-waterfall-view') ;
148 148
149 this._timelineColumn.setMinimumSize(100, 0); 149 this._waterfallColumn.setMinimumSize(100, 0);
150 this._splitWidget.setSidebarWidget(this._timelineColumn); 150 this._splitWidget.setSidebarWidget(this._waterfallColumn);
151 151
152 this.switchViewMode(false); 152 this.switchViewMode(false);
153 153
154 /** 154 /**
155 * @param {!Event} event 155 * @param {!Event} event
156 * @this {WebInspector.NetworkLogViewColumns} 156 * @this {WebInspector.NetworkLogViewColumns}
157 */ 157 */
158 function handleContextMenu(event) { 158 function handleContextMenu(event) {
159 var request = this._timelineColumn.getRequestFromPoint(event.offsetX, even t.offsetY); 159 var request = this._waterfallColumn.getRequestFromPoint(event.offsetX, eve nt.offsetY);
160 if (!request) 160 if (!request)
161 return; 161 return;
162 var contextMenu = new WebInspector.ContextMenu(event); 162 var contextMenu = new WebInspector.ContextMenu(event);
163 this._networkLogView.handleContextMenuForRequest(contextMenu, request); 163 this._networkLogView.handleContextMenuForRequest(contextMenu, request);
164 contextMenu.show(); 164 contextMenu.show();
165 } 165 }
166 } 166 }
167 167
168 /** 168 /**
169 * @param {boolean} shouldConsume 169 * @param {boolean} shouldConsume
170 * @param {!Event} event 170 * @param {!Event} event
171 */ 171 */
172 _onMouseWheel(shouldConsume, event) { 172 _onMouseWheel(shouldConsume, event) {
173 if (shouldConsume) 173 if (shouldConsume)
174 event.consume(true); 174 event.consume(true);
175 this._activeScroller.scrollTop -= event.wheelDeltaY; 175 this._activeScroller.scrollTop -= event.wheelDeltaY;
176 this._syncScrollers(); 176 this._syncScrollers();
177 this._networkLogView.setHoveredRequest( 177 this._networkLogView.setHoveredRequest(
178 this._timelineColumn.getRequestFromPoint(event.offsetX, event.offsetY), event.shiftKey); 178 this._waterfallColumn.getRequestFromPoint(event.offsetX, event.offsetY), event.shiftKey);
179 } 179 }
180 180
181 _syncScrollers() { 181 _syncScrollers() {
182 if (!this._timelineColumn.isShowing()) 182 if (!this._waterfallColumn.isShowing())
183 return; 183 return;
184 this._timelineScrollerContent.style.height = this._dataGridScroller.scrollHe ight + 'px'; 184 this._waterfallScrollerContent.style.height = this._dataGridScroller.scrollH eight + 'px';
185 this._updateScrollerWidthIfNeeded(); 185 this._updateScrollerWidthIfNeeded();
186 this._dataGridScroller.scrollTop = this._timelineScroller.scrollTop; 186 this._dataGridScroller.scrollTop = this._waterfallScroller.scrollTop;
187 } 187 }
188 188
189 _updateScrollerWidthIfNeeded() { 189 _updateScrollerWidthIfNeeded() {
190 if (this._timelineScrollerWidthIsStale) { 190 if (this._waterfallScrollerWidthIsStale) {
191 this._timelineScrollerWidthIsStale = false; 191 this._waterfallScrollerWidthIsStale = false;
192 this._timelineColumn.setRightPadding( 192 this._waterfallColumn.setRightPadding(
193 this._timelineScroller.offsetWidth - this._timelineScrollerContent.off setWidth); 193 this._waterfallScroller.offsetWidth - this._waterfallScrollerContent.o ffsetWidth);
194 } 194 }
195 } 195 }
196 196
197 _redrawTimelineColumn() { 197 _redrawWaterfallColumn() {
198 if (!this._timelineRequestsAreStale) { 198 if (!this._waterfallRequestsAreStale) {
199 this._updateScrollerWidthIfNeeded(); 199 this._updateScrollerWidthIfNeeded();
200 this._timelineColumn.update( 200 this._waterfallColumn.update(
201 this._activeScroller.scrollTop, this._eventDividersShown ? this._event Dividers : undefined); 201 this._activeScroller.scrollTop, this._eventDividersShown ? this._event Dividers : undefined);
202 return; 202 return;
203 } 203 }
204 var currentNode = this._dataGrid.rootNode(); 204 var currentNode = this._dataGrid.rootNode();
205 /** @type {!WebInspector.NetworkTimelineColumn.RequestData} */ 205 /** @type {!WebInspector.NetworkWaterfallColumn.RequestData} */
206 var requestData = {requests: [], navigationRequest: null}; 206 var requestData = {requests: [], navigationRequest: null};
207 while (currentNode = currentNode.traverseNextNode(true)) { 207 while (currentNode = currentNode.traverseNextNode(true)) {
208 if (currentNode.isNavigationRequest()) 208 if (currentNode.isNavigationRequest())
209 requestData.navigationRequest = currentNode.request(); 209 requestData.navigationRequest = currentNode.request();
210 requestData.requests.push(currentNode.request()); 210 requestData.requests.push(currentNode.request());
211 } 211 }
212 this._timelineColumn.update(this._activeScroller.scrollTop, this._eventDivid ers, requestData); 212 this._waterfallColumn.update(this._activeScroller.scrollTop, this._eventDivi ders, requestData);
213 } 213 }
214 214
215 /** 215 /**
216 * @param {?WebInspector.NetworkRequest} request 216 * @param {?WebInspector.NetworkRequest} request
217 * @param {boolean} highlightInitiatorChain 217 * @param {boolean} highlightInitiatorChain
218 */ 218 */
219 setHoveredRequest(request, highlightInitiatorChain) { 219 setHoveredRequest(request, highlightInitiatorChain) {
220 this._timelineColumn.setHoveredRequest(request, highlightInitiatorChain); 220 this._waterfallColumn.setHoveredRequest(request, highlightInitiatorChain);
221 } 221 }
222 222
223 _createTimelineHeader() { 223 _createWaterfallHeader() {
224 this._timelineHeaderElement = this._timelineColumn.contentElement.createChil d('div', 'network-timeline-header'); 224 this._waterfallHeaderElement = this._waterfallColumn.contentElement.createCh ild('div', 'network-waterfall-header');
225 this._timelineHeaderElement.addEventListener('click', timelineHeaderClicked. bind(this)); 225 this._waterfallHeaderElement.addEventListener('click', waterfallHeaderClicke d.bind(this));
226 this._timelineHeaderElement.addEventListener( 226 this._waterfallHeaderElement.addEventListener(
227 'contextmenu', event => this._innerHeaderContextMenu(new WebInspector.Co ntextMenu(event))); 227 'contextmenu', event => this._innerHeaderContextMenu(new WebInspector.Co ntextMenu(event)));
228 var innerElement = this._timelineHeaderElement.createChild('div'); 228 var innerElement = this._waterfallHeaderElement.createChild('div');
229 innerElement.textContent = WebInspector.UIString('Waterfall'); 229 innerElement.textContent = WebInspector.UIString('Waterfall');
230 this._timelineColumnSortIcon = this._timelineHeaderElement.createChild('div' , 'sort-order-icon-container') 230 this._waterfallColumnSortIcon = this._waterfallHeaderElement.createChild('di v', 'sort-order-icon-container')
231 .createChild('div', 'sort-order-icon'); 231 .createChild('div', 'sort-order-icon');
232 232
233 /** 233 /**
234 * @this {WebInspector.NetworkLogViewColumns} 234 * @this {WebInspector.NetworkLogViewColumns}
235 */ 235 */
236 function timelineHeaderClicked() { 236 function waterfallHeaderClicked() {
237 var sortOrders = WebInspector.DataGrid.Order; 237 var sortOrders = WebInspector.DataGrid.Order;
238 var sortOrder = 238 var sortOrder =
239 this._dataGrid.sortOrder() === sortOrders.Ascending ? sortOrders.Desce nding : sortOrders.Ascending; 239 this._dataGrid.sortOrder() === sortOrders.Ascending ? sortOrders.Desce nding : sortOrders.Ascending;
240 this._dataGrid.markColumnAsSortedBy('timeline', sortOrder); 240 this._dataGrid.markColumnAsSortedBy('waterfall', sortOrder);
241 this._sortHandler(); 241 this._sortHandler();
242 } 242 }
243 } 243 }
244 244
245 /** 245 /**
246 * @param {!WebInspector.NetworkTimeCalculator} x 246 * @param {!WebInspector.NetworkTimeCalculator} x
247 */ 247 */
248 setCalculator(x) { 248 setCalculator(x) {
249 this._timelineColumn.setCalculator(x); 249 this._waterfallColumn.setCalculator(x);
250 } 250 }
251 251
252 dataChanged() { 252 dataChanged() {
253 this._timelineRequestsAreStale = true; 253 this._waterfallRequestsAreStale = true;
254 } 254 }
255 255
256 _updateRowsSize() { 256 _updateRowsSize() {
257 var largeRows = !!this._networkLogLargeRowsSetting.get(); 257 var largeRows = !!this._networkLogLargeRowsSetting.get();
258 this._dataGrid.element.classList.toggle('small', !largeRows); 258 this._dataGrid.element.classList.toggle('small', !largeRows);
259 this._dataGrid.scheduleUpdate(); 259 this._dataGrid.scheduleUpdate();
260 260
261 this._timelineScrollerWidthIsStale = true; 261 this._waterfallScrollerWidthIsStale = true;
262 this._timelineColumn.setRowHeight(this._networkLogView.rowHeight()); 262 this._waterfallColumn.setRowHeight(this._networkLogView.rowHeight());
263 this._timelineScroller.classList.toggle('small', !largeRows); 263 this._waterfallScroller.classList.toggle('small', !largeRows);
264 this._timelineHeaderElement.classList.toggle('small', !largeRows); 264 this._waterfallHeaderElement.classList.toggle('small', !largeRows);
265 this._timelineColumn.setHeaderHeight(this._timelineScroller.offsetTop); 265 this._waterfallColumn.setHeaderHeight(this._waterfallScroller.offsetTop);
266 } 266 }
267 267
268 /** 268 /**
269 * @param {!Element} element 269 * @param {!Element} element
270 */ 270 */
271 show(element) { 271 show(element) {
272 this._splitWidget.show(element); 272 this._splitWidget.show(element);
273 } 273 }
274 274
275 /** 275 /**
276 * @return {!WebInspector.SortableDataGrid} dataGrid 276 * @return {!WebInspector.SortableDataGrid} dataGrid
277 */ 277 */
278 dataGrid() { 278 dataGrid() {
279 return this._dataGrid; 279 return this._dataGrid;
280 } 280 }
281 281
282 sortByCurrentColumn() { 282 sortByCurrentColumn() {
283 this._sortHandler(); 283 this._sortHandler();
284 } 284 }
285 285
286 _sortHandler() { 286 _sortHandler() {
287 var columnId = this._dataGrid.sortColumnId(); 287 var columnId = this._dataGrid.sortColumnId();
288 this._networkLogView.removeAllNodeHighlights(); 288 this._networkLogView.removeAllNodeHighlights();
289 if (columnId === 'timeline') { 289 if (columnId === 'waterfall') {
290 this._timelineColumnSortIcon.classList.remove('sort-ascending', 'sort-desc ending'); 290 this._waterfallColumnSortIcon.classList.remove('sort-ascending', 'sort-des cending');
291 291
292 if (this._dataGrid.sortOrder() === WebInspector.DataGrid.Order.Ascending) 292 if (this._dataGrid.sortOrder() === WebInspector.DataGrid.Order.Ascending)
293 this._timelineColumnSortIcon.classList.add('sort-ascending'); 293 this._waterfallColumnSortIcon.classList.add('sort-ascending');
294 else 294 else
295 this._timelineColumnSortIcon.classList.add('sort-descending'); 295 this._waterfallColumnSortIcon.classList.add('sort-descending');
296 296
297 this._timelineRequestsAreStale = true; 297 this._waterfallRequestsAreStale = true;
298 var sortFunction = 298 var sortFunction =
299 WebInspector.NetworkDataGridNode.RequestPropertyComparator.bind(null, this._activeTimelineSortId); 299 WebInspector.NetworkDataGridNode.RequestPropertyComparator.bind(null, this._activeWaterfallSortId);
300 this._dataGrid.sortNodes(sortFunction, !this._dataGrid.isSortOrderAscendin g()); 300 this._dataGrid.sortNodes(sortFunction, !this._dataGrid.isSortOrderAscendin g());
301 return; 301 return;
302 } 302 }
303 303
304 var columnConfig = this._columns.find(columnConfig => columnConfig.id === co lumnId); 304 var columnConfig = this._columns.find(columnConfig => columnConfig.id === co lumnId);
305 if (!columnConfig || !columnConfig.sortingFunction) 305 if (!columnConfig || !columnConfig.sortingFunction)
306 return; 306 return;
307 307
308 this._dataGrid.sortNodes(columnConfig.sortingFunction, !this._dataGrid.isSor tOrderAscending()); 308 this._dataGrid.sortNodes(columnConfig.sortingFunction, !this._dataGrid.isSor tOrderAscending());
309 this._networkLogView.dataGridSorted(); 309 this._networkLogView.dataGridSorted();
(...skipping 17 matching lines...) Expand all
327 */ 327 */
328 switchViewMode(gridMode) { 328 switchViewMode(gridMode) {
329 if (this._gridMode === gridMode) 329 if (this._gridMode === gridMode)
330 return; 330 return;
331 this._gridMode = gridMode; 331 this._gridMode = gridMode;
332 332
333 if (gridMode) { 333 if (gridMode) {
334 if (this._dataGrid.selectedNode) 334 if (this._dataGrid.selectedNode)
335 this._dataGrid.selectedNode.selected = false; 335 this._dataGrid.selectedNode.selected = false;
336 this._splitWidget.showBoth(); 336 this._splitWidget.showBoth();
337 this._activeScroller = this._timelineScroller; 337 this._activeScroller = this._waterfallScroller;
338 this._timelineScroller.scrollTop = this._dataGridScroller.scrollTop; 338 this._waterfallScroller.scrollTop = this._dataGridScroller.scrollTop;
339 this._dataGrid.setScrollContainer(this._timelineScroller); 339 this._dataGrid.setScrollContainer(this._waterfallScroller);
340 } else { 340 } else {
341 this._networkLogView.removeAllNodeHighlights(); 341 this._networkLogView.removeAllNodeHighlights();
342 this._splitWidget.hideSidebar(); 342 this._splitWidget.hideSidebar();
343 this._activeScroller = this._dataGridScroller; 343 this._activeScroller = this._dataGridScroller;
344 this._dataGrid.setScrollContainer(this._dataGridScroller); 344 this._dataGrid.setScrollContainer(this._dataGridScroller);
345 } 345 }
346 this._networkLogView.element.classList.toggle('brief-mode', !gridMode); 346 this._networkLogView.element.classList.toggle('brief-mode', !gridMode);
347 this._updateColumns(); 347 this._updateColumns();
348 } 348 }
349 349
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
412 responseSubMenu.appendCheckboxItem( 412 responseSubMenu.appendCheckboxItem(
413 columnConfig.title, this._toggleColumnVisibility.bind(this, columnConf ig), columnConfig.visible); 413 columnConfig.title, this._toggleColumnVisibility.bind(this, columnConf ig), columnConfig.visible);
414 } 414 }
415 415
416 responseSubMenu.appendSeparator(); 416 responseSubMenu.appendSeparator();
417 responseSubMenu.appendItem( 417 responseSubMenu.appendItem(
418 WebInspector.UIString('Manage Header Columns\u2026'), this._manageCustom HeaderDialog.bind(this)); 418 WebInspector.UIString('Manage Header Columns\u2026'), this._manageCustom HeaderDialog.bind(this));
419 419
420 contextMenu.appendSeparator(); 420 contextMenu.appendSeparator();
421 421
422 var timelineSortIds = WebInspector.NetworkLogViewColumns.TimelineSortIds; 422 var waterfallSortIds = WebInspector.NetworkLogViewColumns.WaterfallSortIds;
423 var timelineSubMenu = contextMenu.appendSubMenuItem(WebInspector.UIString('W aterfall')); 423 var waterfallSubMenu = contextMenu.appendSubMenuItem(WebInspector.UIString(' Waterfall'));
424 timelineSubMenu.appendCheckboxItem( 424 waterfallSubMenu.appendCheckboxItem(
425 WebInspector.UIString('Start Time'), setTimelineMode.bind(this, timeline SortIds.StartTime), 425 WebInspector.UIString('Start Time'), setWaterfallMode.bind(this, waterfa llSortIds.StartTime),
426 this._activeTimelineSortId === timelineSortIds.StartTime); 426 this._activeWaterfallSortId === waterfallSortIds.StartTime);
427 timelineSubMenu.appendCheckboxItem( 427 waterfallSubMenu.appendCheckboxItem(
428 WebInspector.UIString('Response Time'), setTimelineMode.bind(this, timel ineSortIds.ResponseTime), 428 WebInspector.UIString('Response Time'), setWaterfallMode.bind(this, wate rfallSortIds.ResponseTime),
429 this._activeTimelineSortId === timelineSortIds.ResponseTime); 429 this._activeWaterfallSortId === waterfallSortIds.ResponseTime);
430 timelineSubMenu.appendCheckboxItem( 430 waterfallSubMenu.appendCheckboxItem(
431 WebInspector.UIString('End Time'), setTimelineMode.bind(this, timelineSo rtIds.EndTime), 431 WebInspector.UIString('End Time'), setWaterfallMode.bind(this, waterfall SortIds.EndTime),
432 this._activeTimelineSortId === timelineSortIds.EndTime); 432 this._activeWaterfallSortId === waterfallSortIds.EndTime);
433 timelineSubMenu.appendCheckboxItem( 433 waterfallSubMenu.appendCheckboxItem(
434 WebInspector.UIString('Total Duration'), setTimelineMode.bind(this, time lineSortIds.Duration), 434 WebInspector.UIString('Total Duration'), setWaterfallMode.bind(this, wat erfallSortIds.Duration),
435 this._activeTimelineSortId === timelineSortIds.Duration); 435 this._activeWaterfallSortId === waterfallSortIds.Duration);
436 timelineSubMenu.appendCheckboxItem( 436 waterfallSubMenu.appendCheckboxItem(
437 WebInspector.UIString('Latency'), setTimelineMode.bind(this, timelineSor tIds.Latency), 437 WebInspector.UIString('Latency'), setWaterfallMode.bind(this, waterfallS ortIds.Latency),
438 this._activeTimelineSortId === timelineSortIds.Latency); 438 this._activeWaterfallSortId === waterfallSortIds.Latency);
439 439
440 contextMenu.show(); 440 contextMenu.show();
441 441
442 /** 442 /**
443 * @param {!WebInspector.NetworkLogViewColumns.TimelineSortIds} sortId 443 * @param {!WebInspector.NetworkLogViewColumns.WaterfallSortIds} sortId
444 * @this {WebInspector.NetworkLogViewColumns} 444 * @this {WebInspector.NetworkLogViewColumns}
445 */ 445 */
446 function setTimelineMode(sortId) { 446 function setWaterfallMode(sortId) {
447 var calculator = this._calculatorsMap.get(WebInspector.NetworkLogViewColum ns._calculatorTypes.Time); 447 var calculator = this._calculatorsMap.get(WebInspector.NetworkLogViewColum ns._calculatorTypes.Time);
448 var timelineSortIds = WebInspector.NetworkLogViewColumns.TimelineSortIds; 448 var waterfallSortIds = WebInspector.NetworkLogViewColumns.WaterfallSortIds ;
449 if (sortId === timelineSortIds.Duration || sortId === timelineSortIds.Late ncy) 449 if (sortId === waterfallSortIds.Duration || sortId === waterfallSortIds.La tency)
450 calculator = this._calculatorsMap.get(WebInspector.NetworkLogViewColumns ._calculatorTypes.Duration); 450 calculator = this._calculatorsMap.get(WebInspector.NetworkLogViewColumns ._calculatorTypes.Duration);
451 this._networkLogView.setCalculator(calculator); 451 this._networkLogView.setCalculator(calculator);
452 452
453 this._activeTimelineSortId = sortId; 453 this._activeWaterfallSortId = sortId;
454 this._dataGrid.markColumnAsSortedBy('timeline', WebInspector.DataGrid.Orde r.Ascending); 454 this._dataGrid.markColumnAsSortedBy('waterfall', WebInspector.DataGrid.Ord er.Ascending);
455 this._sortHandler(); 455 this._sortHandler();
456 } 456 }
457 } 457 }
458 458
459 _manageCustomHeaderDialog() { 459 _manageCustomHeaderDialog() {
460 var customHeaders = []; 460 var customHeaders = [];
461 for (var columnConfig of this._columns) { 461 for (var columnConfig of this._columns) {
462 if (columnConfig.isResponseHeader) 462 if (columnConfig.isResponseHeader)
463 customHeaders.push({title: columnConfig.title, editable: columnConfig.is CustomHeader}); 463 customHeaders.push({title: columnConfig.title, editable: columnConfig.is CustomHeader});
464 } 464 }
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
592 default: 592 default:
593 return; 593 return;
594 } 594 }
595 var currentTimes = this._eventDividers.get(color) || []; 595 var currentTimes = this._eventDividers.get(color) || [];
596 this._eventDividers.set(color, currentTimes.concat(times)); 596 this._eventDividers.set(color, currentTimes.concat(times));
597 this._networkLogView.scheduleRefresh(); 597 this._networkLogView.scheduleRefresh();
598 } 598 }
599 599
600 hideEventDividers() { 600 hideEventDividers() {
601 this._eventDividersShown = true; 601 this._eventDividersShown = true;
602 this._redrawTimelineColumn(); 602 this._redrawWaterfallColumn();
603 } 603 }
604 604
605 showEventDividers() { 605 showEventDividers() {
606 this._eventDividersShown = false; 606 this._eventDividersShown = false;
607 this._redrawTimelineColumn(); 607 this._redrawWaterfallColumn();
608 } 608 }
609 609
610 /** 610 /**
611 * @param {number} time 611 * @param {number} time
612 */ 612 */
613 selectFilmStripFrame(time) { 613 selectFilmStripFrame(time) {
614 this._eventDividers.set(WebInspector.NetworkLogViewColumns._filmStripDivider Color, [time]); 614 this._eventDividers.set(WebInspector.NetworkLogViewColumns._filmStripDivider Color, [time]);
615 this._redrawTimelineColumn(); 615 this._redrawWaterfallColumn();
616 } 616 }
617 617
618 clearFilmStripFrame() { 618 clearFilmStripFrame() {
619 this._eventDividers.delete(WebInspector.NetworkLogViewColumns._filmStripDivi derColor); 619 this._eventDividers.delete(WebInspector.NetworkLogViewColumns._filmStripDivi derColor);
620 this._redrawTimelineColumn(); 620 this._redrawWaterfallColumn();
621 } 621 }
622 }; 622 };
623 623
624 WebInspector.NetworkLogViewColumns._initialSortColumn = 'timeline'; 624 WebInspector.NetworkLogViewColumns._initialSortColumn = 'waterfall';
625 625
626 /** 626 /**
627 * @typedef {{ 627 * @typedef {{
628 * id: string, 628 * id: string,
629 * title: string, 629 * title: string,
630 * titleDOMFragment: (!DocumentFragment|undefined), 630 * titleDOMFragment: (!DocumentFragment|undefined),
631 * subtitle: (string|null), 631 * subtitle: (string|null),
632 * visible: boolean, 632 * visible: boolean,
633 * weight: number, 633 * weight: number,
634 * hideable: boolean, 634 * hideable: boolean,
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
812 title: WebInspector.UIString('Server'), 812 title: WebInspector.UIString('Server'),
813 sortingFunction: WebInspector.NetworkDataGridNode.ResponseHeaderStringCompar ator.bind(null, 'server') 813 sortingFunction: WebInspector.NetworkDataGridNode.ResponseHeaderStringCompar ator.bind(null, 'server')
814 }, 814 },
815 { 815 {
816 id: 'vary', 816 id: 'vary',
817 isResponseHeader: true, 817 isResponseHeader: true,
818 title: WebInspector.UIString('Vary'), 818 title: WebInspector.UIString('Vary'),
819 sortingFunction: WebInspector.NetworkDataGridNode.ResponseHeaderStringCompar ator.bind(null, 'vary') 819 sortingFunction: WebInspector.NetworkDataGridNode.ResponseHeaderStringCompar ator.bind(null, 'vary')
820 }, 820 },
821 // This header is a placeholder to let datagrid know that it can be sorted by this column, but never shown. 821 // This header is a placeholder to let datagrid know that it can be sorted by this column, but never shown.
822 {id: 'timeline', title: '', visible: false, hideable: false} 822 {id: 'waterfall', title: '', visible: false, hideable: false}
823 ]; 823 ];
824 824
825 WebInspector.NetworkLogViewColumns._filmStripDividerColor = '#fccc49'; 825 WebInspector.NetworkLogViewColumns._filmStripDividerColor = '#fccc49';
826 826
827 /** 827 /**
828 * @enum {string} 828 * @enum {string}
829 */ 829 */
830 WebInspector.NetworkLogViewColumns.TimelineSortIds = { 830 WebInspector.NetworkLogViewColumns.WaterfallSortIds = {
831 StartTime: 'startTime', 831 StartTime: 'startTime',
832 ResponseTime: 'responseReceivedTime', 832 ResponseTime: 'responseReceivedTime',
833 EndTime: 'endTime', 833 EndTime: 'endTime',
834 Duration: 'duration', 834 Duration: 'duration',
835 Latency: 'latency' 835 Latency: 'latency'
836 }; 836 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698