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

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

Issue 2443683002: [Devtools] Move NetworkTimelineColumn into NetworkLogViewColumns P1 (Closed)
Patch Set: changes 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 /** 5 /**
6 * @constructor 6 * @constructor
7 * @param {!WebInspector.NetworkLogView} networkLogView 7 * @param {!WebInspector.NetworkLogView} networkLogView
8 * @param {!WebInspector.NetworkTransferTimeCalculator} timeCalculator
9 * @param {!WebInspector.NetworkTransferDurationCalculator} durationCalculator
8 * @param {!WebInspector.Setting} networkLogLargeRowsSetting 10 * @param {!WebInspector.Setting} networkLogLargeRowsSetting
9 */ 11 */
10 WebInspector.NetworkLogViewColumns = function(networkLogView, networkLogLargeRow sSetting) 12 WebInspector.NetworkLogViewColumns = function(networkLogView, timeCalculator, du rationCalculator, networkLogLargeRowsSetting)
11 { 13 {
12 if (Runtime.experiments.isEnabled("canvasNetworkTimeline")) { 14 if (Runtime.experiments.isEnabled("canvasNetworkTimeline")) {
13 var timelineColumn = WebInspector.NetworkLogViewColumns._defaultColumns. find(columnConfig => columnConfig.id === "timeline"); 15 var timelineColumn = WebInspector.NetworkLogViewColumns._defaultColumns. find(columnConfig => columnConfig.id === "timeline");
14 timelineColumn.visible = false; 16 timelineColumn.visible = false;
15 timelineColumn.hideable = true; 17 timelineColumn.hideable = true;
16 timelineColumn.sortConfig = { 18 timelineColumn.sortConfig = {
17 sortingFunction: WebInspector.NetworkDataGridNode.RequestPropertyCom parator.bind(null, "startTime") 19 sortingFunction: WebInspector.NetworkDataGridNode.RequestPropertyCom parator.bind(null, "startTime")
18 }; 20 };
19 } 21 }
20 22
21 this._networkLogView = networkLogView; 23 this._networkLogView = networkLogView;
22 24
23 /** @type {!WebInspector.Setting} */ 25 /** @type {!WebInspector.Setting} */
24 this._persistantSettings = WebInspector.settings.createSetting("networkLogCo lumns", {}); 26 this._persistantSettings = WebInspector.settings.createSetting("networkLogCo lumns", {});
25 27
26 /** @type {!Array<!Element>} */ 28 /** @type {!Array<!Element>} */
27 this._dropDownColumnSelectors = []; 29 this._dropDownColumnSelectors = [];
28 30
29 this._networkLogLargeRowsSetting = networkLogLargeRowsSetting; 31 this._networkLogLargeRowsSetting = networkLogLargeRowsSetting;
30 this._networkLogLargeRowsSetting.addChangeListener(this._updateRowsSize, thi s); 32 this._networkLogLargeRowsSetting.addChangeListener(this._updateRowsSize, thi s);
31 33
32 /** @type {!Array<{time: number, element: !Element}>} */ 34 /** @type {!Array<{time: number, element: !Element}>} */
33 this._eventDividers = []; 35 this._eventDividers = [];
34 36
35 this._gridMode = true; 37 this._gridMode = true;
36 38
37 /** @type {?WebInspector.DataGrid} */
38 this._dataGrid = null;
39 /** @type {!Array.<!WebInspector.NetworkLogViewColumns.Descriptor>} */ 39 /** @type {!Array.<!WebInspector.NetworkLogViewColumns.Descriptor>} */
40 this._columns = []; 40 this._columns = [];
41 41
42 /** @type {?WebInspector.TimelineGrid} */ 42 /** @type {?WebInspector.TimelineGrid} */
43 this._timelineGrid = null; 43 this._timelineGrid = null;
44 44
45 /** @type {!WebInspector.Linkifier} */ 45 /** @type {!WebInspector.Linkifier} */
46 this._popupLinkifier = new WebInspector.Linkifier(); 46 this._popupLinkifier = new WebInspector.Linkifier();
47
48 /** @type {!Map<string, !WebInspector.NetworkTimeCalculator>} */
49 this._calculatorsMap = new Map();
50 this._calculatorsMap.set(WebInspector.NetworkLogViewColumns._calculatorTypes .Time, timeCalculator);
51 this._calculatorsMap.set(WebInspector.NetworkLogViewColumns._calculatorTypes .Duration, durationCalculator);
52
53 this._setupDataGrid();
47 }; 54 };
48 WebInspector.NetworkLogViewColumns._initialSortColumn = "timeline"; 55 WebInspector.NetworkLogViewColumns._initialSortColumn = "timeline";
49 56
50 /** 57 /**
51 * @typedef {{ 58 * @typedef {{
52 * id: string, 59 * id: string,
53 * title: string, 60 * title: string,
54 * titleDOMFragment: (!DocumentFragment|undefined), 61 * titleDOMFragment: (!DocumentFragment|undefined),
55 * subtitle: (string|null), 62 * subtitle: (string|null),
56 * visible: boolean, 63 * visible: boolean,
(...skipping 313 matching lines...) Expand 10 before | Expand all | Expand 10 after
370 }, 377 },
371 378
372 reset: function() 379 reset: function()
373 { 380 {
374 if (this._popoverHelper) 381 if (this._popoverHelper)
375 this._popoverHelper.hidePopover(); 382 this._popoverHelper.hidePopover();
376 this._timelineGrid.removeEventDividers(); 383 this._timelineGrid.removeEventDividers();
377 this.updateDividersIfNeeded(); 384 this.updateDividersIfNeeded();
378 }, 385 },
379 386
380 /** 387 _setupDataGrid: function()
381 * @param {!WebInspector.NetworkTransferTimeCalculator} timeCalculator
382 * @param {!WebInspector.NetworkTransferDurationCalculator} durationCalculat or
383 * @return {!WebInspector.SortableDataGrid} dataGrid
384 */
385 createGrid: function(timeCalculator, durationCalculator)
386 { 388 {
387 var defaultColumns = WebInspector.NetworkLogViewColumns._defaultColumns; 389 var defaultColumns = WebInspector.NetworkLogViewColumns._defaultColumns;
388 var defaultColumnConfig = WebInspector.NetworkLogViewColumns._defaultCol umnConfig; 390 var defaultColumnConfig = WebInspector.NetworkLogViewColumns._defaultCol umnConfig;
389 391
390 this._columns = /** @type {!Array<!WebInspector.NetworkLogViewColumns.De scriptor>} */ ([]); 392 this._columns = /** @type {!Array<!WebInspector.NetworkLogViewColumns.De scriptor>} */ ([]);
391 for (var currentConfigColumn of defaultColumns) { 393 for (var currentConfigColumn of defaultColumns) {
392 var columnConfig = /** @type {!WebInspector.NetworkLogViewColumns.De scriptor} */ (Object.assign(/** @type {!Object} */ ({}), defaultColumnConfig, cu rrentConfigColumn)); 394 var columnConfig = /** @type {!WebInspector.NetworkLogViewColumns.De scriptor} */ (Object.assign(/** @type {!Object} */ ({}), defaultColumnConfig, cu rrentConfigColumn));
393 columnConfig.id = columnConfig.id; 395 columnConfig.id = columnConfig.id;
394 if (columnConfig.subtitle) 396 if (columnConfig.subtitle)
395 columnConfig.titleDOMFragment = this._makeHeaderFragment(columnC onfig.title, columnConfig.subtitle); 397 columnConfig.titleDOMFragment = this._makeHeaderFragment(columnC onfig.title, columnConfig.subtitle);
396 this._columns.push(columnConfig); 398 this._columns.push(columnConfig);
397 } 399 }
398 this._loadColumns(); 400 this._loadColumns();
399 401
400 /** @type {!Map<string, !WebInspector.NetworkTimeCalculator>} */
401 this._calculatorsMap = new Map();
402 this._calculatorsMap.set(WebInspector.NetworkLogViewColumns._calculatorT ypes.Time, timeCalculator);
403 this._calculatorsMap.set(WebInspector.NetworkLogViewColumns._calculatorT ypes.Duration, durationCalculator);
404
405 this._popoverHelper = new WebInspector.PopoverHelper(this._networkLogVie w.element); 402 this._popoverHelper = new WebInspector.PopoverHelper(this._networkLogVie w.element);
406 this._popoverHelper.initializeCallbacks(this._getPopoverAnchor.bind(this ), this._showPopover.bind(this), this._onHidePopover.bind(this)); 403 this._popoverHelper.initializeCallbacks(this._getPopoverAnchor.bind(this ), this._showPopover.bind(this), this._onHidePopover.bind(this));
404
407 this._dataGrid = new WebInspector.SortableDataGrid(this._columns.map(Web Inspector.NetworkLogViewColumns._convertToDataGridDescriptor)); 405 this._dataGrid = new WebInspector.SortableDataGrid(this._columns.map(Web Inspector.NetworkLogViewColumns._convertToDataGridDescriptor));
408 406
409 this._updateColumns(); 407 this._updateColumns();
410 this._dataGrid.addEventListener(WebInspector.DataGrid.Events.SortingChan ged, this._sortHandler, this); 408 this._dataGrid.addEventListener(WebInspector.DataGrid.Events.SortingChan ged, this._sortHandler, this);
411 this._dataGrid.addEventListener(WebInspector.DataGrid.Events.ColumnsResi zed, this.updateDividersIfNeeded, this); 409 this._dataGrid.addEventListener(WebInspector.DataGrid.Events.ColumnsResi zed, this.updateDividersIfNeeded, this);
412 this._dataGrid.setHeaderContextMenuCallback(this._innerHeaderContextMenu .bind(this)); 410 this._dataGrid.setHeaderContextMenuCallback(this._innerHeaderContextMenu .bind(this));
413 411
414 this._timelineGrid = new WebInspector.TimelineGrid(); 412 this._timelineGrid = new WebInspector.TimelineGrid();
415 this._timelineGrid.element.classList.add("network-timeline-grid"); 413 this._timelineGrid.element.classList.add("network-timeline-grid");
416 if (!Runtime.experiments.isEnabled("canvasNetworkTimeline")) 414 if (!Runtime.experiments.isEnabled("canvasNetworkTimeline"))
417 this._dataGrid.element.appendChild(this._timelineGrid.element); 415 this._dataGrid.element.appendChild(this._timelineGrid.element);
418 416
419 this._setupDropdownColumns(); 417 this._setupDropdownColumns();
420 418
421 this._dataGrid.markColumnAsSortedBy(WebInspector.NetworkLogViewColumns._ initialSortColumn, WebInspector.DataGrid.Order.Ascending); 419 this._dataGrid.markColumnAsSortedBy(WebInspector.NetworkLogViewColumns._ initialSortColumn, WebInspector.DataGrid.Order.Ascending);
422 420
423 this._updateRowsSize(); 421 this._updateRowsSize();
424 422
423 if (Runtime.experiments.isEnabled("canvasNetworkTimeline")) {
424 this._splitWidget = new WebInspector.SplitWidget(true, false, "netwo rkPanelSplitViewTimeline");
425 this._splitWidget.setSidebarWidget(this._dataGrid.asWidget());
426 }
427 },
428
429 /**
430 * @param {!Element} element
431 */
432 show: function(element)
433 {
434 if (Runtime.experiments.isEnabled("canvasNetworkTimeline"))
435 this._splitWidget.show(element);
436 else
437 this._dataGrid.asWidget().show(element);
438 },
439
440 /**
441 * @return {!WebInspector.SplitWidget}
442 */
443 splitWidget: function()
444 {
445 // This is a temporary function used until the move of timelinecolumn in to NetworkLogViewColumns is done.
446 return this._splitWidget;
447 },
448
449 /**
450 * @return {!WebInspector.SortableDataGrid} dataGrid
451 */
452 dataGrid: function()
453 {
425 return this._dataGrid; 454 return this._dataGrid;
426 }, 455 },
427 456
428 _setupDropdownColumns: function() 457 _setupDropdownColumns: function()
429 { 458 {
430 for (var columnConfig of this._columns) { 459 for (var columnConfig of this._columns) {
431 if (!columnConfig.sortConfig || !columnConfig.sortConfig.entries) 460 if (!columnConfig.sortConfig || !columnConfig.sortConfig.entries)
432 continue; 461 continue;
433 var select = createElement("select"); 462 var select = createElement("select");
434 var placeHolderOption = select.createChild("option"); 463 var placeHolderOption = select.createChild("option");
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
519 if (gridMode) { 548 if (gridMode) {
520 if (this._dataGrid.selectedNode) 549 if (this._dataGrid.selectedNode)
521 this._dataGrid.selectedNode.selected = false; 550 this._dataGrid.selectedNode.selected = false;
522 } else { 551 } else {
523 this._networkLogView.removeAllNodeHighlights(); 552 this._networkLogView.removeAllNodeHighlights();
524 this._popoverHelper.hidePopover(); 553 this._popoverHelper.hidePopover();
525 } 554 }
526 555
527 this._networkLogView.element.classList.toggle("brief-mode", !gridMode); 556 this._networkLogView.element.classList.toggle("brief-mode", !gridMode);
528 this._updateColumns(); 557 this._updateColumns();
558
559
560 if (!Runtime.experiments.isEnabled("canvasNetworkTimeline"))
561 return;
562 // TODO(allada) Move this code into the code above.
563 if (gridMode)
564 this._splitWidget.showBoth();
565 else
566 this._splitWidget.hideMain();
529 }, 567 },
530 568
531 /** 569 /**
532 * @param {!WebInspector.NetworkLogViewColumns.Descriptor} columnConfig 570 * @param {!WebInspector.NetworkLogViewColumns.Descriptor} columnConfig
533 */ 571 */
534 _toggleColumnVisibility: function(columnConfig) 572 _toggleColumnVisibility: function(columnConfig)
535 { 573 {
536 this._loadColumns(); 574 this._loadColumns();
537 columnConfig.visible = !columnConfig.visible; 575 columnConfig.visible = !columnConfig.visible;
538 this._saveColumns(); 576 this._saveColumns();
(...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after
834 for (var divider of this._eventDividers) 872 for (var divider of this._eventDividers)
835 divider.element.classList.toggle("network-frame-divider-selected", f alse); 873 divider.element.classList.toggle("network-frame-divider-selected", f alse);
836 }, 874 },
837 875
838 _updateRowsSize: function() 876 _updateRowsSize: function()
839 { 877 {
840 if (Runtime.experiments.isEnabled("canvasNetworkTimeline")) 878 if (Runtime.experiments.isEnabled("canvasNetworkTimeline"))
841 return; 879 return;
842 this._timelineGrid.element.classList.toggle("small", !this._networkLogLa rgeRowsSetting.get()); 880 this._timelineGrid.element.classList.toggle("small", !this._networkLogLa rgeRowsSetting.get());
843 } 881 }
844 }; 882 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698