| 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)
|
| + 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);
|
|
|