Chromium Code Reviews| Index: third_party/WebKit/Source/devtools/front_end/network/NetworkDataGridNode.js |
| diff --git a/third_party/WebKit/Source/devtools/front_end/network/NetworkDataGridNode.js b/third_party/WebKit/Source/devtools/front_end/network/NetworkDataGridNode.js |
| index a602a1f0462ce67c62869cefa9a9aabd56ee898b..5936f76efacc558498248eaa753e88c7cbdb6b30 100644 |
| --- a/third_party/WebKit/Source/devtools/front_end/network/NetworkDataGridNode.js |
| +++ b/third_party/WebKit/Source/devtools/front_end/network/NetworkDataGridNode.js |
| @@ -38,14 +38,10 @@ Network.NetworkNode = class extends DataGrid.SortableDataGridNode { |
| constructor(parentView) { |
| super({}); |
| this._parentView = parentView; |
| - /** @type {!Map<string, ?Network.NetworkColumnExtensionInterface>} */ |
| - this._columnExtensions = new Map(); |
| this._isHovered = false; |
| this._showingInitiatorChain = false; |
| /** @type {?SDK.NetworkRequest} */ |
| this._requestOrFirstKnownChildRequest = null; |
| - /** @type {!Map<string, !UI.Icon>} */ |
| - this._columnIcons = new Map(); |
| /** @type {?Common.Color} */ |
| this._backgroundColor = null; |
| } |
| @@ -88,14 +84,6 @@ Network.NetworkNode = class extends DataGrid.SortableDataGridNode { |
| return /** @type {string} */ (color.asString(Common.Color.Format.HEX)); |
| } |
| - /** |
| - * @param {?Common.Color} color |
| - */ |
| - setBackgroundColor(color) { |
| - this._backgroundColor = color; |
| - this._updateBackgroundColor(); |
| - } |
| - |
| _updateBackgroundColor() { |
| var element = this.existingElement(); |
| if (!element) |
| @@ -143,13 +131,6 @@ Network.NetworkNode = class extends DataGrid.SortableDataGridNode { |
| } |
| /** |
| - * @param {!Map<string, ?Network.NetworkColumnExtensionInterface>} columnExtensions |
| - */ |
| - setColumnExtensions(columnExtensions) { |
| - this._columnExtensions = columnExtensions; |
| - } |
| - |
| - /** |
| * @param {boolean} hovered |
| * @param {boolean} showInitiatorChain |
| */ |
| @@ -351,6 +332,22 @@ Network.NetworkRequestNode = class extends Network.NetworkNode { |
| } |
| /** |
| + * @param {!ProductRegistry.Registry} productRegistry |
| + * @param {!Network.NetworkNode} a |
| + * @param {!Network.NetworkNode} b |
| + * @return {number} |
| + */ |
| + static ProductComparator(productRegistry, a, b) { |
| + var aRequest = a.request(); |
| + var bRequest = b.request(); |
| + if (!aRequest || !bRequest) |
| + return !aRequest ? -1 : 1; |
| + var aName = productRegistry.nameForUrl(aRequest.parsedURL) || ''; |
| + var bName = productRegistry.nameForUrl(bRequest.parsedURL) || ''; |
| + return aName.localeCompare(bName) || aRequest.indentityCompare(bRequest); |
| + } |
| + |
| + /** |
| * @param {!Network.NetworkNode} a |
| * @param {!Network.NetworkNode} b |
| * @return {number} |
| @@ -566,24 +563,6 @@ Network.NetworkRequestNode = class extends Network.NetworkNode { |
| } |
| /** |
| - * @param {!Map<string, ?Network.NetworkColumnExtensionInterface>} extensionsMap |
| - * @param {string} extensionId |
| - * @param {!Network.NetworkNode} a |
| - * @param {!Network.NetworkNode} b |
| - * @return {number} |
| - */ |
| - static ExtensionColumnComparator(extensionsMap, extensionId, a, b) { |
| - var aRequest = a.requestOrFirstKnownChildRequest(); |
| - var bRequest = b.requestOrFirstKnownChildRequest(); |
| - if (!aRequest || !bRequest) |
| - return !aRequest ? -1 : 1; |
| - var instance = extensionsMap.get(extensionId); |
| - if (!instance) |
| - return aRequest.indentityCompare(bRequest); |
| - return instance.requestComparator(aRequest, bRequest); |
| - } |
| - |
| - /** |
| * @override |
| */ |
| showingInitiatorChainChanged() { |
| @@ -706,21 +685,11 @@ Network.NetworkRequestNode = class extends Network.NetworkNode { |
| element.classList.toggle('network-error-row', this._isFailed()); |
| element.classList.toggle('network-navigation-row', this._isNavigationRequest); |
| - for (var rowDecorator of this._parentView.rowDecorators()) |
| - rowDecorator.decorate(this); |
| super.createCells(element); |
| this._updateBackgroundColor(); |
| } |
| /** |
| - * @param {string} columnId |
| - * @param {!UI.Icon} icon |
| - */ |
| - setIconForColumn(columnId, icon) { |
| - this._columnIcons.set(columnId, icon); |
| - } |
| - |
| - /** |
| * @param {!Element} element |
| * @param {string} text |
| */ |
| @@ -736,21 +705,18 @@ Network.NetworkRequestNode = class extends Network.NetworkNode { |
| */ |
| createCell(columnIdentifier) { |
| var cell = this.createTD(columnIdentifier); |
| - var icon = this._columnIcons.get(columnIdentifier); |
| - if (icon) |
| - cell.appendChild(icon); |
| - // If the key exists but the value is null it means the extension instance has not resolved yet. |
| - // The view controller will force all rows to update when extension is resolved. |
| - if (this._columnExtensions.has(columnIdentifier)) { |
| - var instance = this._columnExtensions.get(columnIdentifier); |
| - if (instance) |
| - this._setTextAndTitle(cell, instance.lookupColumnValue(this._request)); |
| - return cell; |
| - } |
| switch (columnIdentifier) { |
| case 'name': |
| this._renderNameCell(cell); |
| break; |
| + case 'product': |
| + if (!Runtime.experiments.isEnabled('networkGroupingRequests')) { |
| + this._setTextAndTitle(cell, this._request.responseHeaderValue(columnIdentifier) || ''); |
| + break; |
| + } |
| + if (this.request()) |
| + ProductRegistry.instance().then(this._renderProductCell.bind(this, cell)); |
| + break; |
| case 'method': |
| this._setTextAndTitle(cell, this._request.requestMethod); |
| break; |
| @@ -900,6 +866,42 @@ Network.NetworkRequestNode = class extends Network.NetworkNode { |
| /** |
| * @param {!Element} cell |
| + * @param {!ProductRegistry.Registry} productRegistry |
| + */ |
| + _renderProductCell(cell, productRegistry) { |
| + var request = this.request(); |
| + if (!request) |
| + return; |
| + var entry = productRegistry.entryForUrl(request.parsedURL); |
| + if (!entry) |
| + return; |
| + this._setTextAndTitle(cell, entry.name); |
| + if (entry.type !== null) { |
| + var element = this.existingElement(); |
| + if (!element) |
|
pfeldman
2017/04/28 21:08:35
When does this happen?
allada
2017/04/28 22:21:09
It should not happen, however if I call element()
|
| + return; |
| + switch (entry.type) { |
| + case 0: |
| + this._backgroundColor = Common.Color.fromRGBA([224, 247, 250, .6]); |
| + cell.classList.add('product-ad'); |
| + break; |
| + case 1: |
| + this._backgroundColor = Common.Color.fromRGBA([255, 252, 225, .6]); |
| + cell.classList.add('product-tracking'); |
| + break; |
| + case 2: |
| + this._backgroundColor = Common.Color.fromRGBA([211, 253, 211, .6]); |
| + cell.classList.add('product-cdn'); |
| + break; |
| + default: |
| + this._backgroundColor = null; |
| + } |
| + this._updateBackgroundColor(); |
| + } |
| + } |
| + |
| + /** |
| + * @param {!Element} cell |
| */ |
| _renderStatusCell(cell) { |
| cell.classList.toggle( |
| @@ -1100,8 +1102,6 @@ Network.NetworkGroupNode = class extends Network.NetworkNode { |
| */ |
| createCell(columnIdentifier) { |
| var cell = this.createTD(columnIdentifier); |
| - if (this._columnExtensions.has(columnIdentifier)) |
| - return cell; |
| if (columnIdentifier === 'name') { |
| var leftPadding = this.leftPadding ? this.leftPadding + 'px' : ''; |
| cell.style.setProperty('padding-left', leftPadding); |