| Index: third_party/WebKit/Source/devtools/front_end/network/NetworkLogViewColumns.js
|
| diff --git a/third_party/WebKit/Source/devtools/front_end/network/NetworkLogViewColumns.js b/third_party/WebKit/Source/devtools/front_end/network/NetworkLogViewColumns.js
|
| index 59b3a7814baaf12076723bbe80d3bd4b235e8194..6035d31a7ec863ffcc3a1041329a9c784ef6a1a6 100644
|
| --- a/third_party/WebKit/Source/devtools/front_end/network/NetworkLogViewColumns.js
|
| +++ b/third_party/WebKit/Source/devtools/front_end/network/NetworkLogViewColumns.js
|
| @@ -12,29 +12,16 @@ WebInspector.NetworkLogViewColumns = class {
|
| * @param {!WebInspector.Setting} networkLogLargeRowsSetting
|
| */
|
| constructor(networkLogView, timeCalculator, durationCalculator, networkLogLargeRowsSetting) {
|
| - if (Runtime.experiments.isEnabled('canvasNetworkTimeline')) {
|
| - var timelineColumn =
|
| - WebInspector.NetworkLogViewColumns._defaultColumns.find(columnConfig => columnConfig.id === 'timeline');
|
| - timelineColumn.visible = false;
|
| - timelineColumn.hideable = false;
|
| - }
|
| -
|
| this._networkLogView = networkLogView;
|
|
|
| /** @type {!WebInspector.Setting} */
|
| this._persistantSettings = WebInspector.settings.createSetting('networkLogColumns', {});
|
|
|
| - /** @type {!Array<!Element>} */
|
| - this._dropDownColumnSelectors = [];
|
| -
|
| this._networkLogLargeRowsSetting = networkLogLargeRowsSetting;
|
| this._networkLogLargeRowsSetting.addChangeListener(this._updateRowsSize, this);
|
|
|
| - /** @type {!Array<{time: number, element: !Element}>} */
|
| - this._eventDividers = [];
|
| -
|
| /** @type {!Map<string, !Array<number>>} */
|
| - this._shownEventDividers = new Map();
|
| + this._eventDividers = new Map();
|
| this._eventDividersShown = false;
|
|
|
| this._gridMode = true;
|
| @@ -42,9 +29,6 @@ WebInspector.NetworkLogViewColumns = class {
|
| /** @type {!Array.<!WebInspector.NetworkLogViewColumns.Descriptor>} */
|
| this._columns = [];
|
|
|
| - /** @type {?WebInspector.TimelineGrid} */
|
| - this._timelineGrid = null;
|
| - this._timelineHeaderElement = null;
|
| this._timelineRequestsAreStale = false;
|
| this._timelineScrollerWidthIsStale = true;
|
|
|
| @@ -57,8 +41,7 @@ WebInspector.NetworkLogViewColumns = class {
|
| this._calculatorsMap.set(WebInspector.NetworkLogViewColumns._calculatorTypes.Duration, durationCalculator);
|
|
|
| this._setupDataGrid();
|
| - if (Runtime.experiments.isEnabled('canvasNetworkTimeline'))
|
| - this._setupTimeline();
|
| + this._setupTimeline();
|
| }
|
|
|
| /**
|
| @@ -87,9 +70,7 @@ WebInspector.NetworkLogViewColumns = class {
|
| reset() {
|
| if (this._popoverHelper)
|
| this._popoverHelper.hidePopover();
|
| - this._timelineGrid.removeEventDividers();
|
| - this._shownEventDividers.clear();
|
| - this.updateDividersIfNeeded();
|
| + this._eventDividers.clear();
|
| }
|
|
|
| _setupDataGrid() {
|
| @@ -122,26 +103,16 @@ WebInspector.NetworkLogViewColumns = class {
|
|
|
| this._updateColumns();
|
| this._dataGrid.addEventListener(WebInspector.DataGrid.Events.SortingChanged, this._sortHandler, this);
|
| - this._dataGrid.addEventListener(WebInspector.DataGrid.Events.ColumnsResized, this.updateDividersIfNeeded, this);
|
| this._dataGrid.setHeaderContextMenuCallback(this._innerHeaderContextMenu.bind(this));
|
|
|
| - this._timelineGrid = new WebInspector.TimelineGrid();
|
| - this._timelineGrid.element.classList.add('network-timeline-grid');
|
| - if (!Runtime.experiments.isEnabled('canvasNetworkTimeline'))
|
| - this._dataGrid.element.appendChild(this._timelineGrid.element);
|
| -
|
| - this._setupDropdownColumns();
|
| -
|
| this._activeTimelineSortId = WebInspector.NetworkLogViewColumns.TimelineSortIds.StartTime;
|
| this._dataGrid.markColumnAsSortedBy(
|
| WebInspector.NetworkLogViewColumns._initialSortColumn, WebInspector.DataGrid.Order.Ascending);
|
|
|
| - if (Runtime.experiments.isEnabled('canvasNetworkTimeline')) {
|
| - this._splitWidget = new WebInspector.SplitWidget(true, true, 'networkPanelSplitViewTimeline', 200);
|
| - var widget = this._dataGrid.asWidget();
|
| - widget.setMinimumSize(150, 0);
|
| - this._splitWidget.setMainWidget(widget);
|
| - }
|
| + this._splitWidget = new WebInspector.SplitWidget(true, true, 'networkPanelSplitViewTimeline', 200);
|
| + var widget = this._dataGrid.asWidget();
|
| + widget.setMinimumSize(150, 0);
|
| + this._splitWidget.setMainWidget(widget);
|
| }
|
|
|
| _setupTimeline() {
|
| @@ -227,7 +198,7 @@ WebInspector.NetworkLogViewColumns = class {
|
| if (!this._timelineRequestsAreStale) {
|
| this._updateScrollerWidthIfNeeded();
|
| this._timelineColumn.update(
|
| - this._activeScroller.scrollTop, this._eventDividersShown ? this._shownEventDividers : undefined);
|
| + this._activeScroller.scrollTop, this._eventDividersShown ? this._eventDividers : undefined);
|
| return;
|
| }
|
| var currentNode = this._dataGrid.rootNode();
|
| @@ -238,7 +209,7 @@ WebInspector.NetworkLogViewColumns = class {
|
| requestData.navigationRequest = currentNode.request();
|
| requestData.requests.push(currentNode.request());
|
| }
|
| - this._timelineColumn.update(this._activeScroller.scrollTop, this._shownEventDividers, requestData);
|
| + this._timelineColumn.update(this._activeScroller.scrollTop, this._eventDividers, requestData);
|
| }
|
|
|
| /**
|
| @@ -246,8 +217,7 @@ WebInspector.NetworkLogViewColumns = class {
|
| * @param {boolean} highlightInitiatorChain
|
| */
|
| setHoveredRequest(request, highlightInitiatorChain) {
|
| - if (Runtime.experiments.isEnabled('canvasNetworkTimeline'))
|
| - this._timelineColumn.setHoveredRequest(request, highlightInitiatorChain);
|
| + this._timelineColumn.setHoveredRequest(request, highlightInitiatorChain);
|
| }
|
|
|
| _createTimelineHeader() {
|
| @@ -258,7 +228,7 @@ WebInspector.NetworkLogViewColumns = class {
|
| var innerElement = this._timelineHeaderElement.createChild('div');
|
| innerElement.textContent = WebInspector.UIString('Waterfall');
|
| this._timelineColumnSortIcon = this._timelineHeaderElement.createChild('div', 'sort-order-icon-container')
|
| - .createChild('div', 'sort-order-icon');
|
| + .createChild('div', 'sort-order-icon');
|
|
|
| /**
|
| * @this {WebInspector.NetworkLogViewColumns}
|
| @@ -276,13 +246,11 @@ WebInspector.NetworkLogViewColumns = class {
|
| * @param {!WebInspector.NetworkTimeCalculator} x
|
| */
|
| setCalculator(x) {
|
| - if (Runtime.experiments.isEnabled('canvasNetworkTimeline'))
|
| - this._timelineColumn.setCalculator(x);
|
| + this._timelineColumn.setCalculator(x);
|
| }
|
|
|
| dataChanged() {
|
| - if (Runtime.experiments.isEnabled('canvasNetworkTimeline'))
|
| - this._timelineRequestsAreStale = true;
|
| + this._timelineRequestsAreStale = true;
|
| }
|
|
|
| _updateRowsSize() {
|
| @@ -290,13 +258,10 @@ WebInspector.NetworkLogViewColumns = class {
|
| this._dataGrid.element.classList.toggle('small', !largeRows);
|
| this._dataGrid.scheduleUpdate();
|
|
|
| - if (!Runtime.experiments.isEnabled('canvasNetworkTimeline'))
|
| - return;
|
| this._timelineScrollerWidthIsStale = true;
|
| this._timelineColumn.setRowHeight(this._networkLogView.rowHeight());
|
| this._timelineScroller.classList.toggle('small', !largeRows);
|
| this._timelineHeaderElement.classList.toggle('small', !largeRows);
|
| - this._timelineGrid.element.classList.toggle('small', !this._networkLogLargeRowsSetting.get());
|
| this._timelineColumn.setHeaderHeight(this._timelineScroller.offsetTop);
|
| }
|
|
|
| @@ -304,10 +269,7 @@ WebInspector.NetworkLogViewColumns = class {
|
| * @param {!Element} element
|
| */
|
| show(element) {
|
| - if (Runtime.experiments.isEnabled('canvasNetworkTimeline'))
|
| - this._splitWidget.show(element);
|
| - else
|
| - this._dataGrid.asWidget().show(element);
|
| + this._splitWidget.show(element);
|
| }
|
|
|
| /**
|
| @@ -317,28 +279,6 @@ WebInspector.NetworkLogViewColumns = class {
|
| return this._dataGrid;
|
| }
|
|
|
| - _setupDropdownColumns() {
|
| - for (var columnConfig of this._columns) {
|
| - if (!columnConfig.sortConfig || !columnConfig.sortConfig.entries)
|
| - continue;
|
| - var select = createElement('select');
|
| - var placeHolderOption = select.createChild('option');
|
| - placeHolderOption.classList.add('hidden');
|
| - for (var entry of columnConfig.sortConfig.entries) {
|
| - var option = select.createChild('option');
|
| - option.value = entry.id;
|
| - option.label = entry.title;
|
| - select.appendChild(option);
|
| - }
|
| - var header = this._dataGrid.headerTableHeader(columnConfig.id);
|
| - header.replaceChild(select, header.firstChild);
|
| - header.createChild('div', 'sort-order-icon-container').createChild('div', 'sort-order-icon');
|
| - columnConfig.selectBox = select;
|
| - select.addEventListener('change', this._sortByDropdownItem.bind(this, columnConfig), false);
|
| - this._dropDownColumnSelectors.push(select);
|
| - }
|
| - }
|
| -
|
| sortByCurrentColumn() {
|
| this._sortHandler();
|
| }
|
| @@ -346,7 +286,7 @@ WebInspector.NetworkLogViewColumns = class {
|
| _sortHandler() {
|
| var columnId = this._dataGrid.sortColumnId();
|
| this._networkLogView.removeAllNodeHighlights();
|
| - if (Runtime.experiments.isEnabled('canvasNetworkTimeline') && columnId === 'timeline') {
|
| + if (columnId === 'timeline') {
|
| this._timelineColumnSortIcon.classList.remove('sort-ascending', 'sort-descending');
|
|
|
| if (this._dataGrid.sortOrder() === WebInspector.DataGrid.Order.Ascending)
|
| @@ -362,38 +302,10 @@ WebInspector.NetworkLogViewColumns = class {
|
| }
|
|
|
| var columnConfig = this._columns.find(columnConfig => columnConfig.id === columnId);
|
| - if (!columnConfig)
|
| - return;
|
| - if (columnConfig.sortConfig && columnConfig.sortConfig.entries) {
|
| - this._sortByDropdownItem(columnConfig);
|
| - return;
|
| - }
|
| - if (!columnConfig.sortConfig.sortingFunction)
|
| + if (!columnConfig || !columnConfig.sortingFunction)
|
| return;
|
|
|
| - this._dataGrid.sortNodes(columnConfig.sortConfig.sortingFunction, !this._dataGrid.isSortOrderAscending());
|
| - this._networkLogView.dataGridSorted();
|
| - }
|
| -
|
| - /**
|
| - * @param {!WebInspector.NetworkLogViewColumns.Descriptor} columnConfig
|
| - */
|
| - _sortByDropdownItem(columnConfig) {
|
| - this._networkLogView.removeAllNodeHighlights();
|
| - var selectedIndex = columnConfig.selectBox.selectedIndex;
|
| - if (!selectedIndex)
|
| - selectedIndex = 1; // Sort by first item by default.
|
| - var selectedItemConfig = columnConfig.sortConfig.entries[selectedIndex - 1]; // -1 because of placeholder.
|
| - var selectedOption = columnConfig.selectBox[selectedIndex];
|
| - var value = selectedOption.value;
|
| -
|
| - this._dataGrid.sortNodes(selectedItemConfig.sortingFunction);
|
| - this._dataGrid.markColumnAsSortedBy(
|
| - columnConfig.id, /** @type {!WebInspector.DataGrid.Order} */ (selectedItemConfig.sort));
|
| - if (selectedItemConfig.calculator)
|
| - this._networkLogView.setCalculator(this._calculatorsMap.get(selectedItemConfig.calculator));
|
| - columnConfig.selectBox.options[0].label = selectedItemConfig.title;
|
| - columnConfig.selectBox.selectedIndex = 0;
|
| + this._dataGrid.sortNodes(columnConfig.sortingFunction, !this._dataGrid.isSortOrderAscending());
|
| this._networkLogView.dataGridSorted();
|
| }
|
|
|
| @@ -421,29 +333,18 @@ WebInspector.NetworkLogViewColumns = class {
|
| if (gridMode) {
|
| if (this._dataGrid.selectedNode)
|
| this._dataGrid.selectedNode.selected = false;
|
| - } else {
|
| - this._networkLogView.removeAllNodeHighlights();
|
| - this._popoverHelper.hidePopover();
|
| - }
|
| -
|
| - this._networkLogView.element.classList.toggle('brief-mode', !gridMode);
|
| - this._updateColumns();
|
| -
|
| - if (!Runtime.experiments.isEnabled('canvasNetworkTimeline'))
|
| - return;
|
| - // TODO(allada) Move this code into the code above.
|
| - if (gridMode) {
|
| this._splitWidget.showBoth();
|
| this._activeScroller = this._timelineScroller;
|
| this._timelineScroller.scrollTop = this._dataGridScroller.scrollTop;
|
| - this._dataGridScroller.style.overflow = 'hidden';
|
| this._dataGrid.setScrollContainer(this._timelineScroller);
|
| } else {
|
| + this._networkLogView.removeAllNodeHighlights();
|
| this._splitWidget.hideSidebar();
|
| this._activeScroller = this._dataGridScroller;
|
| - this._dataGridScroller.style.overflow = 'overlay';
|
| this._dataGrid.setScrollContainer(this._dataGridScroller);
|
| }
|
| + this._networkLogView.element.classList.toggle('brief-mode', !gridMode);
|
| + this._updateColumns();
|
| }
|
|
|
| /**
|
| @@ -498,42 +399,43 @@ WebInspector.NetworkLogViewColumns = class {
|
| _innerHeaderContextMenu(contextMenu) {
|
| var columnConfigs = this._columns.filter(columnConfig => columnConfig.hideable);
|
| var nonResponseHeaders = columnConfigs.filter(columnConfig => !columnConfig.isResponseHeader);
|
| - for (var columnConfig of nonResponseHeaders)
|
| + for (var columnConfig of nonResponseHeaders) {
|
| contextMenu.appendCheckboxItem(
|
| columnConfig.title, this._toggleColumnVisibility.bind(this, columnConfig), columnConfig.visible);
|
| + }
|
|
|
| contextMenu.appendSeparator();
|
|
|
| var responseSubMenu = contextMenu.appendSubMenuItem(WebInspector.UIString('Response Headers'));
|
| var responseHeaders = columnConfigs.filter(columnConfig => columnConfig.isResponseHeader);
|
| - for (var columnConfig of responseHeaders)
|
| + for (var columnConfig of responseHeaders) {
|
| responseSubMenu.appendCheckboxItem(
|
| columnConfig.title, this._toggleColumnVisibility.bind(this, columnConfig), columnConfig.visible);
|
| + }
|
|
|
| responseSubMenu.appendSeparator();
|
| responseSubMenu.appendItem(
|
| WebInspector.UIString('Manage Header Columns\u2026'), this._manageCustomHeaderDialog.bind(this));
|
|
|
| - if (Runtime.experiments.isEnabled('canvasNetworkTimeline')) {
|
| - contextMenu.appendSeparator();
|
| - var timelineSortIds = WebInspector.NetworkLogViewColumns.TimelineSortIds;
|
| - var timelineSubMenu = contextMenu.appendSubMenuItem(WebInspector.UIString('Waterfall'));
|
| - timelineSubMenu.appendCheckboxItem(
|
| - WebInspector.UIString('Start Time'), setTimelineMode.bind(this, timelineSortIds.StartTime),
|
| - this._activeTimelineSortId === timelineSortIds.StartTime);
|
| - timelineSubMenu.appendCheckboxItem(
|
| - WebInspector.UIString('Response Time'), setTimelineMode.bind(this, timelineSortIds.ResponseTime),
|
| - this._activeTimelineSortId === timelineSortIds.ResponseTime);
|
| - timelineSubMenu.appendCheckboxItem(
|
| - WebInspector.UIString('End Time'), setTimelineMode.bind(this, timelineSortIds.EndTime),
|
| - this._activeTimelineSortId === timelineSortIds.EndTime);
|
| - timelineSubMenu.appendCheckboxItem(
|
| - WebInspector.UIString('Total Duration'), setTimelineMode.bind(this, timelineSortIds.Duration),
|
| - this._activeTimelineSortId === timelineSortIds.Duration);
|
| - timelineSubMenu.appendCheckboxItem(
|
| - WebInspector.UIString('Latency'), setTimelineMode.bind(this, timelineSortIds.Latency),
|
| - this._activeTimelineSortId === timelineSortIds.Latency);
|
| - }
|
| + contextMenu.appendSeparator();
|
| +
|
| + var timelineSortIds = WebInspector.NetworkLogViewColumns.TimelineSortIds;
|
| + var timelineSubMenu = contextMenu.appendSubMenuItem(WebInspector.UIString('Waterfall'));
|
| + timelineSubMenu.appendCheckboxItem(
|
| + WebInspector.UIString('Start Time'), setTimelineMode.bind(this, timelineSortIds.StartTime),
|
| + this._activeTimelineSortId === timelineSortIds.StartTime);
|
| + timelineSubMenu.appendCheckboxItem(
|
| + WebInspector.UIString('Response Time'), setTimelineMode.bind(this, timelineSortIds.ResponseTime),
|
| + this._activeTimelineSortId === timelineSortIds.ResponseTime);
|
| + timelineSubMenu.appendCheckboxItem(
|
| + WebInspector.UIString('End Time'), setTimelineMode.bind(this, timelineSortIds.EndTime),
|
| + this._activeTimelineSortId === timelineSortIds.EndTime);
|
| + timelineSubMenu.appendCheckboxItem(
|
| + WebInspector.UIString('Total Duration'), setTimelineMode.bind(this, timelineSortIds.Duration),
|
| + this._activeTimelineSortId === timelineSortIds.Duration);
|
| + timelineSubMenu.appendCheckboxItem(
|
| + WebInspector.UIString('Latency'), setTimelineMode.bind(this, timelineSortIds.Latency),
|
| + this._activeTimelineSortId === timelineSortIds.Latency);
|
|
|
| contextMenu.show();
|
|
|
| @@ -608,9 +510,7 @@ WebInspector.NetworkLogViewColumns = class {
|
| isResponseHeader: true,
|
| isCustomHeader: true,
|
| visible: true,
|
| - sortConfig: {
|
| - sortingFunction: WebInspector.NetworkDataGridNode.ResponseHeaderStringComparator.bind(null, headerId)
|
| - }
|
| + sortingFunction: WebInspector.NetworkDataGridNode.ResponseHeaderStringComparator.bind(null, headerId)
|
| }));
|
| this._columns.splice(index, 0, columnConfig);
|
| if (this._dataGrid)
|
| @@ -642,34 +542,6 @@ WebInspector.NetworkLogViewColumns = class {
|
| return true;
|
| }
|
|
|
| - updateDividersIfNeeded() {
|
| - // TODO(allada) Remove this code out when timeline canvas experiment is over.
|
| - if (Runtime.experiments.isEnabled('canvasNetworkTimeline'))
|
| - return;
|
| - if (!this._networkLogView.isShowing()) {
|
| - this._networkLogView.scheduleRefresh();
|
| - return;
|
| - }
|
| -
|
| - var timelineOffset = this._dataGrid.columnOffset('timeline');
|
| - // Position timline grid location.
|
| - if (timelineOffset)
|
| - this._timelineGrid.element.style.left = timelineOffset + 'px';
|
| -
|
| - var calculator = this._calculatorsMap.get(WebInspector.NetworkLogViewColumns._calculatorTypes.Time);
|
| - calculator.setDisplayWindow(this._timelineGrid.dividersElement.clientWidth);
|
| - this._timelineGrid.updateDividers(calculator, 75);
|
| -
|
| - if (calculator.startAtZero) {
|
| - // If our current sorting method starts at zero, that means it shows all
|
| - // requests starting at the same point, and so onLoad event and DOMContent
|
| - // event lines really wouldn't make much sense here, so don't render them.
|
| - return;
|
| - }
|
| -
|
| - this._updateEventDividers();
|
| - }
|
| -
|
| /**
|
| * @param {!Element} element
|
| * @param {!Event} event
|
| @@ -678,11 +550,7 @@ WebInspector.NetworkLogViewColumns = class {
|
| _getPopoverAnchor(element, event) {
|
| if (!this._gridMode)
|
| return;
|
| - var anchor = element.enclosingNodeOrSelfWithClass('network-graph-bar') ||
|
| - element.enclosingNodeOrSelfWithClass('network-graph-label');
|
| - if (anchor && anchor.parentElement.request && anchor.parentElement.request.timing)
|
| - return anchor;
|
| - anchor = element.enclosingNodeOrSelfWithClass('network-script-initiated');
|
| + var anchor = element.enclosingNodeOrSelfWithClass('network-script-initiated');
|
| if (anchor && anchor.request) {
|
| var initiator = /** @type {!WebInspector.NetworkRequest} */ (anchor.request).initiator();
|
| if (initiator && initiator.stack)
|
| @@ -695,18 +563,11 @@ WebInspector.NetworkLogViewColumns = class {
|
| * @param {!WebInspector.Popover} popover
|
| */
|
| _showPopover(anchor, popover) {
|
| - var content;
|
| - if (anchor.classList.contains('network-script-initiated')) {
|
| - var request = /** @type {!WebInspector.NetworkRequest} */ (anchor.request);
|
| - var initiator = /** @type {!Protocol.Network.Initiator} */ (request.initiator());
|
| - content = WebInspector.DOMPresentationUtils.buildStackTracePreviewContents(
|
| - request.target(), this._popupLinkifier, initiator.stack);
|
| - popover.setCanShrink(true);
|
| - } else {
|
| - content = WebInspector.RequestTimingView.createTimingTable(
|
| - anchor.parentElement.request, this._networkLogView.timeCalculator().minimumBoundary());
|
| - popover.setCanShrink(false);
|
| - }
|
| + var request = /** @type {!WebInspector.NetworkRequest} */ (anchor.request);
|
| + var initiator = /** @type {!Protocol.Network.Initiator} */ (request.initiator());
|
| + var content = WebInspector.DOMPresentationUtils.buildStackTracePreviewContents(
|
| + request.target(), this._popupLinkifier, initiator.stack);
|
| + popover.setCanShrink(true);
|
| popover.showForAnchor(content, anchor);
|
| }
|
|
|
| @@ -719,87 +580,44 @@ WebInspector.NetworkLogViewColumns = class {
|
| * @param {string} className
|
| */
|
| addEventDividers(times, className) {
|
| - if (Runtime.experiments.isEnabled('canvasNetworkTimeline')) {
|
| - // TODO(allada) When we remove old timeline remove this and pass in the color.
|
| - var color = 'transparent';
|
| - switch (className) {
|
| - case 'network-blue-divider':
|
| - color = 'hsla(240, 100%, 80%, 0.7)';
|
| - break;
|
| - case 'network-red-divider':
|
| - color = 'rgba(255, 0, 0, 0.5)';
|
| - break;
|
| - default:
|
| - return;
|
| - }
|
| - var currentTimes = this._shownEventDividers.get(color) || [];
|
| - this._shownEventDividers.set(color, currentTimes.concat(times));
|
| -
|
| - this._networkLogView.scheduleRefresh();
|
| - return;
|
| - }
|
| -
|
| - for (var i = 0; i < times.length; ++i) {
|
| - var element = createElementWithClass('div', 'network-event-divider ' + className);
|
| - this._timelineGrid.addEventDivider(element);
|
| - this._eventDividers.push({time: times[i], element: element});
|
| + // TODO(allada) Remove this and pass in the color.
|
| + var color = 'transparent';
|
| + switch (className) {
|
| + case 'network-blue-divider':
|
| + color = 'hsla(240, 100%, 80%, 0.7)';
|
| + break;
|
| + case 'network-red-divider':
|
| + color = 'rgba(255, 0, 0, 0.5)';
|
| + break;
|
| + default:
|
| + return;
|
| }
|
| - // Update event dividers immediately
|
| - this._updateEventDividers();
|
| - // Schedule refresh in case dividers change the calculator span.
|
| + var currentTimes = this._eventDividers.get(color) || [];
|
| + this._eventDividers.set(color, currentTimes.concat(times));
|
| this._networkLogView.scheduleRefresh();
|
| }
|
|
|
| - _updateEventDividers() {
|
| - if (Runtime.experiments.isEnabled('canvasNetworkTimeline'))
|
| - return;
|
| - var calculator = this._calculatorsMap.get(WebInspector.NetworkLogViewColumns._calculatorTypes.Time);
|
| - for (var divider of this._eventDividers) {
|
| - var timePercent = calculator.computePercentageFromEventTime(divider.time);
|
| - divider.element.classList.toggle('invisible', timePercent < 0);
|
| - divider.element.style.left = timePercent + '%';
|
| - }
|
| - }
|
| -
|
| hideEventDividers() {
|
| this._eventDividersShown = true;
|
| - if (Runtime.experiments.isEnabled('canvasNetworkTimeline')) {
|
| - this._redrawTimelineColumn();
|
| - return;
|
| - }
|
| - this._timelineGrid.hideEventDividers();
|
| + this._redrawTimelineColumn();
|
| }
|
|
|
| showEventDividers() {
|
| this._eventDividersShown = false;
|
| - if (Runtime.experiments.isEnabled('canvasNetworkTimeline')) {
|
| - this._redrawTimelineColumn();
|
| - return;
|
| - }
|
| - this._timelineGrid.showEventDividers();
|
| + this._redrawTimelineColumn();
|
| }
|
|
|
| /**
|
| * @param {number} time
|
| */
|
| selectFilmStripFrame(time) {
|
| - if (Runtime.experiments.isEnabled('canvasNetworkTimeline')) {
|
| - this._shownEventDividers.set(WebInspector.NetworkLogViewColumns._filmStripDividerColor, [time]);
|
| - this._redrawTimelineColumn();
|
| - return;
|
| - }
|
| - for (var divider of this._eventDividers)
|
| - divider.element.classList.toggle('network-frame-divider-selected', divider.time === time);
|
| + this._eventDividers.set(WebInspector.NetworkLogViewColumns._filmStripDividerColor, [time]);
|
| + this._redrawTimelineColumn();
|
| }
|
|
|
| clearFilmStripFrame() {
|
| - if (Runtime.experiments.isEnabled('canvasNetworkTimeline')) {
|
| - this._shownEventDividers.delete(WebInspector.NetworkLogViewColumns._filmStripDividerColor);
|
| - this._redrawTimelineColumn();
|
| - return;
|
| - }
|
| - for (var divider of this._eventDividers)
|
| - divider.element.classList.toggle('network-frame-divider-selected', false);
|
| + this._eventDividers.delete(WebInspector.NetworkLogViewColumns._filmStripDividerColor);
|
| + this._redrawTimelineColumn();
|
| }
|
| };
|
|
|
| @@ -818,20 +636,12 @@ WebInspector.NetworkLogViewColumns._initialSortColumn = 'timeline';
|
| * sortable: boolean,
|
| * align: (?WebInspector.DataGrid.Align|undefined),
|
| * isResponseHeader: boolean,
|
| - * sortConfig: !WebInspector.NetworkLogViewColumns.SortConfig,
|
| + * sortingFunction: (!function(!WebInspector.NetworkDataGridNode, !WebInspector.NetworkDataGridNode):number|undefined),
|
| * isCustomHeader: boolean
|
| * }}
|
| */
|
| WebInspector.NetworkLogViewColumns.Descriptor;
|
|
|
| -/**
|
| - * @typedef {{
|
| - * sortingFunction: (!function(!WebInspector.NetworkDataGridNode, !WebInspector.NetworkDataGridNode):number|undefined),
|
| - * entries: (!Array.<!WebInspector.DataGrid.ColumnDescriptor>|undefined)
|
| - * }}
|
| - */
|
| -WebInspector.NetworkLogViewColumns.SortConfig;
|
| -
|
| /** @enum {string} */
|
| WebInspector.NetworkLogViewColumns._calculatorTypes = {
|
| Duration: 'Duration',
|
| @@ -866,67 +676,66 @@ WebInspector.NetworkLogViewColumns._defaultColumns = [
|
| hideable: false,
|
| nonSelectable: false,
|
| alwaysVisible: true,
|
| - sortConfig: {sortingFunction: WebInspector.NetworkDataGridNode.NameComparator}
|
| + sortingFunction: WebInspector.NetworkDataGridNode.NameComparator
|
| },
|
| {
|
| id: 'method',
|
| title: WebInspector.UIString('Method'),
|
| - sortConfig:
|
| - {sortingFunction: WebInspector.NetworkDataGridNode.RequestPropertyComparator.bind(null, 'requestMethod')}
|
| + sortingFunction: WebInspector.NetworkDataGridNode.RequestPropertyComparator.bind(null, 'requestMethod')
|
| },
|
| {
|
| id: 'status',
|
| title: WebInspector.UIString('Status'),
|
| visible: true,
|
| subtitle: WebInspector.UIString('Text'),
|
| - sortConfig: {sortingFunction: WebInspector.NetworkDataGridNode.RequestPropertyComparator.bind(null, 'statusCode')}
|
| + sortingFunction: WebInspector.NetworkDataGridNode.RequestPropertyComparator.bind(null, 'statusCode')
|
| },
|
| {
|
| id: 'protocol',
|
| title: WebInspector.UIString('Protocol'),
|
| - sortConfig: {sortingFunction: WebInspector.NetworkDataGridNode.RequestPropertyComparator.bind(null, 'protocol')}
|
| + sortingFunction: WebInspector.NetworkDataGridNode.RequestPropertyComparator.bind(null, 'protocol')
|
| },
|
| {
|
| id: 'scheme',
|
| title: WebInspector.UIString('Scheme'),
|
| - sortConfig: {sortingFunction: WebInspector.NetworkDataGridNode.RequestPropertyComparator.bind(null, 'scheme')}
|
| + sortingFunction: WebInspector.NetworkDataGridNode.RequestPropertyComparator.bind(null, 'scheme')
|
| },
|
| {
|
| id: 'domain',
|
| title: WebInspector.UIString('Domain'),
|
| - sortConfig: {sortingFunction: WebInspector.NetworkDataGridNode.RequestPropertyComparator.bind(null, 'domain')}
|
| + sortingFunction: WebInspector.NetworkDataGridNode.RequestPropertyComparator.bind(null, 'domain')
|
| },
|
| {
|
| id: 'remoteaddress',
|
| title: WebInspector.UIString('Remote Address'),
|
| weight: 10,
|
| align: WebInspector.DataGrid.Align.Right,
|
| - sortConfig: {sortingFunction: WebInspector.NetworkDataGridNode.RemoteAddressComparator}
|
| + sortingFunction: WebInspector.NetworkDataGridNode.RemoteAddressComparator
|
| },
|
| {
|
| id: 'type',
|
| title: WebInspector.UIString('Type'),
|
| visible: true,
|
| - sortConfig: {sortingFunction: WebInspector.NetworkDataGridNode.TypeComparator}
|
| + sortingFunction: WebInspector.NetworkDataGridNode.TypeComparator
|
| },
|
| {
|
| id: 'initiator',
|
| title: WebInspector.UIString('Initiator'),
|
| visible: true,
|
| weight: 10,
|
| - sortConfig: {sortingFunction: WebInspector.NetworkDataGridNode.InitiatorComparator}
|
| + sortingFunction: WebInspector.NetworkDataGridNode.InitiatorComparator
|
| },
|
| {
|
| id: 'cookies',
|
| title: WebInspector.UIString('Cookies'),
|
| align: WebInspector.DataGrid.Align.Right,
|
| - sortConfig: {sortingFunction: WebInspector.NetworkDataGridNode.RequestCookiesCountComparator}
|
| + sortingFunction: WebInspector.NetworkDataGridNode.RequestCookiesCountComparator
|
| },
|
| {
|
| id: 'setcookies',
|
| title: WebInspector.UIString('Set Cookies'),
|
| align: WebInspector.DataGrid.Align.Right,
|
| - sortConfig: {sortingFunction: WebInspector.NetworkDataGridNode.ResponseCookiesCountComparator}
|
| + sortingFunction: WebInspector.NetworkDataGridNode.ResponseCookiesCountComparator
|
| },
|
| {
|
| id: 'size',
|
| @@ -934,7 +743,7 @@ WebInspector.NetworkLogViewColumns._defaultColumns = [
|
| visible: true,
|
| subtitle: WebInspector.UIString('Content'),
|
| align: WebInspector.DataGrid.Align.Right,
|
| - sortConfig: {sortingFunction: WebInspector.NetworkDataGridNode.SizeComparator}
|
| + sortingFunction: WebInspector.NetworkDataGridNode.SizeComparator
|
| },
|
| {
|
| id: 'time',
|
| @@ -942,131 +751,75 @@ WebInspector.NetworkLogViewColumns._defaultColumns = [
|
| visible: true,
|
| subtitle: WebInspector.UIString('Latency'),
|
| align: WebInspector.DataGrid.Align.Right,
|
| - sortConfig: {sortingFunction: WebInspector.NetworkDataGridNode.RequestPropertyComparator.bind(null, 'duration')}
|
| + sortingFunction: WebInspector.NetworkDataGridNode.RequestPropertyComparator.bind(null, 'duration')
|
| },
|
| {
|
| id: 'priority',
|
| title: WebInspector.UIString('Priority'),
|
| - sortConfig: {sortingFunction: WebInspector.NetworkDataGridNode.InitialPriorityComparator}
|
| + sortingFunction: WebInspector.NetworkDataGridNode.InitialPriorityComparator
|
| },
|
| {
|
| id: 'connectionid',
|
| title: WebInspector.UIString('Connection ID'),
|
| - sortConfig:
|
| - {sortingFunction: WebInspector.NetworkDataGridNode.RequestPropertyComparator.bind(null, 'connectionId')}
|
| + sortingFunction: WebInspector.NetworkDataGridNode.RequestPropertyComparator.bind(null, 'connectionId')
|
| },
|
| {
|
| id: 'cache-control',
|
| isResponseHeader: true,
|
| title: WebInspector.UIString('Cache-Control'),
|
| - sortConfig:
|
| - {sortingFunction: WebInspector.NetworkDataGridNode.ResponseHeaderStringComparator.bind(null, 'cache-control')}
|
| + sortingFunction: WebInspector.NetworkDataGridNode.ResponseHeaderStringComparator.bind(null, 'cache-control')
|
| },
|
| {
|
| id: 'connection',
|
| isResponseHeader: true,
|
| title: WebInspector.UIString('Connection'),
|
| - sortConfig:
|
| - {sortingFunction: WebInspector.NetworkDataGridNode.ResponseHeaderStringComparator.bind(null, 'connection')}
|
| + sortingFunction: WebInspector.NetworkDataGridNode.ResponseHeaderStringComparator.bind(null, 'connection')
|
| },
|
| {
|
| id: 'content-encoding',
|
| isResponseHeader: true,
|
| title: WebInspector.UIString('Content-Encoding'),
|
| - sortConfig: {
|
| - sortingFunction: WebInspector.NetworkDataGridNode.ResponseHeaderStringComparator.bind(null, 'content-encoding')
|
| - }
|
| + sortingFunction: WebInspector.NetworkDataGridNode.ResponseHeaderStringComparator.bind(null, 'content-encoding')
|
| },
|
| {
|
| id: 'content-length',
|
| isResponseHeader: true,
|
| title: WebInspector.UIString('Content-Length'),
|
| align: WebInspector.DataGrid.Align.Right,
|
| - sortConfig: {
|
| - sortingFunction: WebInspector.NetworkDataGridNode.ResponseHeaderNumberComparator.bind(null, 'content-length')
|
| - }
|
| + sortingFunction: WebInspector.NetworkDataGridNode.ResponseHeaderNumberComparator.bind(null, 'content-length')
|
| },
|
| {
|
| id: 'etag',
|
| isResponseHeader: true,
|
| title: WebInspector.UIString('ETag'),
|
| - sortConfig: {sortingFunction: WebInspector.NetworkDataGridNode.ResponseHeaderStringComparator.bind(null, 'etag')}
|
| + sortingFunction: WebInspector.NetworkDataGridNode.ResponseHeaderStringComparator.bind(null, 'etag')
|
| },
|
| {
|
| id: 'keep-alive',
|
| isResponseHeader: true,
|
| title: WebInspector.UIString('Keep-Alive'),
|
| - sortConfig:
|
| - {sortingFunction: WebInspector.NetworkDataGridNode.ResponseHeaderStringComparator.bind(null, 'keep-alive')}
|
| + sortingFunction: WebInspector.NetworkDataGridNode.ResponseHeaderStringComparator.bind(null, 'keep-alive')
|
| },
|
| {
|
| id: 'last-modified',
|
| isResponseHeader: true,
|
| title: WebInspector.UIString('Last-Modified'),
|
| - sortConfig:
|
| - {sortingFunction: WebInspector.NetworkDataGridNode.ResponseHeaderDateComparator.bind(null, 'last-modified')}
|
| + sortingFunction: WebInspector.NetworkDataGridNode.ResponseHeaderDateComparator.bind(null, 'last-modified')
|
| },
|
| {
|
| id: 'server',
|
| isResponseHeader: true,
|
| title: WebInspector.UIString('Server'),
|
| - sortConfig:
|
| - {sortingFunction: WebInspector.NetworkDataGridNode.ResponseHeaderStringComparator.bind(null, 'server')}
|
| + sortingFunction: WebInspector.NetworkDataGridNode.ResponseHeaderStringComparator.bind(null, 'server')
|
| },
|
| {
|
| id: 'vary',
|
| isResponseHeader: true,
|
| title: WebInspector.UIString('Vary'),
|
| - sortConfig: {sortingFunction: WebInspector.NetworkDataGridNode.ResponseHeaderStringComparator.bind(null, 'vary')}
|
| + sortingFunction: WebInspector.NetworkDataGridNode.ResponseHeaderStringComparator.bind(null, 'vary')
|
| },
|
| - {
|
| - id: 'timeline',
|
| - title: WebInspector.UIString('Waterfall'),
|
| - visible: true,
|
| - weight: 40,
|
| - sortable: false,
|
| - hideable: false,
|
| - sortConfig: {
|
| - entries: [
|
| - {
|
| - id: 'starttime',
|
| - title: WebInspector.UIString('Waterfall \u2013 Start Time'),
|
| - sort: WebInspector.DataGrid.Order.Ascending,
|
| - sortingFunction: WebInspector.NetworkDataGridNode.RequestPropertyComparator.bind(null, 'startTime'),
|
| - calculator: WebInspector.NetworkLogViewColumns._calculatorTypes.Time
|
| - },
|
| - {
|
| - id: 'responsetime',
|
| - title: WebInspector.UIString('Waterfall \u2013 Response Time'),
|
| - sort: WebInspector.DataGrid.Order.Ascending,
|
| - sortingFunction:
|
| - WebInspector.NetworkDataGridNode.RequestPropertyComparator.bind(null, 'responseReceivedTime'),
|
| - calculator: WebInspector.NetworkLogViewColumns._calculatorTypes.Time
|
| - },
|
| - {
|
| - id: 'endtime',
|
| - title: WebInspector.UIString('Waterfall \u2013 End Time'),
|
| - sort: WebInspector.DataGrid.Order.Ascending,
|
| - sortingFunction: WebInspector.NetworkDataGridNode.RequestPropertyComparator.bind(null, 'endTime'),
|
| - calculator: WebInspector.NetworkLogViewColumns._calculatorTypes.Time
|
| - },
|
| - {
|
| - id: 'duration',
|
| - title: WebInspector.UIString('Waterfall \u2013 Total Duration'),
|
| - sort: WebInspector.DataGrid.Order.Descending,
|
| - sortingFunction: WebInspector.NetworkDataGridNode.RequestPropertyComparator.bind(null, 'duration'),
|
| - calculator: WebInspector.NetworkLogViewColumns._calculatorTypes.Duration
|
| - },
|
| - {
|
| - id: 'latency',
|
| - title: WebInspector.UIString('Waterfall \u2013 Latency'),
|
| - sort: WebInspector.DataGrid.Order.Descending,
|
| - sortingFunction: WebInspector.NetworkDataGridNode.RequestPropertyComparator.bind(null, 'latency'),
|
| - calculator: WebInspector.NetworkLogViewColumns._calculatorTypes.Duration
|
| - }
|
| - ]
|
| - }
|
| - }
|
| + // This header is a placeholder to let datagrid know that it can be sorted by this column, but never shown.
|
| + {id: 'timeline', title: '', visible: false, hideable: false}
|
| ];
|
|
|
| WebInspector.NetworkLogViewColumns._filmStripDividerColor = '#fccc49';
|
|
|