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

Unified Diff: third_party/WebKit/Source/devtools/front_end/network/NetworkDataGridNode.js

Issue 2756583002: [Devtools] Added ability to add extension columns to network (Closed)
Patch Set: changes Created 3 years, 9 months 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | third_party/WebKit/Source/devtools/front_end/network/NetworkLogView.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 a584c6edda243766f2016ab2bdffedcda8f33d3f..496c91d0be00385267925157bb51b142c3cf13c7 100644
--- a/third_party/WebKit/Source/devtools/front_end/network/NetworkDataGridNode.js
+++ b/third_party/WebKit/Source/devtools/front_end/network/NetworkDataGridNode.js
@@ -38,6 +38,8 @@ 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} */
@@ -74,6 +76,13 @@ Network.NetworkNode = class extends DataGrid.SortableDataGridNode {
}
/**
+ * @param {!Map<string, ?Network.NetworkColumnExtensionInterface>} columnExtensions
+ */
+ setColumnExtensions(columnExtensions) {
+ this._columnExtensions = columnExtensions;
+ }
+
+ /**
* @param {boolean} hovered
* @param {boolean} showInitiatorChain
*/
@@ -464,6 +473,24 @@ 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() {
@@ -604,6 +631,14 @@ Network.NetworkRequestNode = class extends Network.NetworkNode {
*/
createCell(columnIdentifier) {
var cell = this.createTD(columnIdentifier);
+ // 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);
@@ -954,6 +989,8 @@ 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);
« no previous file with comments | « no previous file | third_party/WebKit/Source/devtools/front_end/network/NetworkLogView.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698