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

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

Issue 2561683003: [Devtools] Add experiment for network group support (Closed)
Patch Set: changes Created 4 years 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
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 e62d3fb47c9a37582dc2be94b2989415f41c7d3a..43beba5762caae5f5ee91215d10b755b6c5fc46c 100644
--- a/third_party/WebKit/Source/devtools/front_end/network/NetworkDataGridNode.js
+++ b/third_party/WebKit/Source/devtools/front_end/network/NetworkDataGridNode.js
@@ -29,6 +29,7 @@
*/
/**
+ * @implements {Network.NetworkDataGridNodeInterface}
* @unrestricted
*/
Network.NetworkDataGridNode = class extends UI.SortableDataGridNode {
@@ -45,72 +46,98 @@ Network.NetworkDataGridNode = class extends UI.SortableDataGridNode {
}
/**
- * @param {!Network.NetworkDataGridNode} a
- * @param {!Network.NetworkDataGridNode} b
+ * @param {!Network.NetworkDataGridNodeInterface} a
+ * @param {!Network.NetworkDataGridNodeInterface} b
* @return {number}
*/
static NameComparator(a, b) {
dgozman 2016/12/15 03:04:41 We should move these to interface in next patch.
- var aFileName = a._request.name();
- var bFileName = b._request.name();
+ // TODO(allada) Handle this properly for group nodes.
+ var aRequest = a.request();
+ var bRequest = b.request();
+ if (!aRequest || !bRequest)
+ return !aRequest ? -1 : 1;
+
+ var aFileName = aRequest.name();
+ var bFileName = bRequest.name();
if (aFileName > bFileName)
return 1;
if (bFileName > aFileName)
return -1;
- return a._request.indentityCompare(b._request);
+ return aRequest.indentityCompare(bRequest);
}
/**
- * @param {!Network.NetworkDataGridNode} a
- * @param {!Network.NetworkDataGridNode} b
+ * @param {!Network.NetworkDataGridNodeInterface} a
+ * @param {!Network.NetworkDataGridNodeInterface} b
* @return {number}
*/
static RemoteAddressComparator(a, b) {
- var aRemoteAddress = a._request.remoteAddress();
- var bRemoteAddress = b._request.remoteAddress();
+ // TODO(allada) Handle this properly for group nodes.
+ var aRequest = a.request();
+ var bRequest = b.request();
+ if (!aRequest || !bRequest)
+ return !aRequest ? -1 : 1;
+ var aRemoteAddress = aRequest.remoteAddress();
+ var bRemoteAddress = bRequest.remoteAddress();
if (aRemoteAddress > bRemoteAddress)
return 1;
if (bRemoteAddress > aRemoteAddress)
return -1;
- return a._request.indentityCompare(b._request);
+ return aRequest.indentityCompare(bRequest);
}
/**
- * @param {!Network.NetworkDataGridNode} a
- * @param {!Network.NetworkDataGridNode} b
+ * @param {!Network.NetworkDataGridNodeInterface} a
+ * @param {!Network.NetworkDataGridNodeInterface} b
* @return {number}
*/
static SizeComparator(a, b) {
- if (b._request.cached() && !a._request.cached())
+ // TODO(allada) Handle this properly for group nodes.
+ var aRequest = a.request();
+ var bRequest = b.request();
+ if (!aRequest || !bRequest)
+ return !aRequest ? -1 : 1;
+ if (bRequest.cached() && !aRequest.cached())
return 1;
- if (a._request.cached() && !b._request.cached())
+ if (aRequest.cached() && !bRequest.cached())
return -1;
- return (a._request.transferSize - b._request.transferSize) || a._request.indentityCompare(b._request);
+ return (aRequest.transferSize - bRequest.transferSize) || aRequest.indentityCompare(bRequest);
}
/**
- * @param {!Network.NetworkDataGridNode} a
- * @param {!Network.NetworkDataGridNode} b
+ * @param {!Network.NetworkDataGridNodeInterface} a
+ * @param {!Network.NetworkDataGridNodeInterface} b
* @return {number}
*/
static TypeComparator(a, b) {
- var aSimpleType = a.displayType();
- var bSimpleType = b.displayType();
+ // TODO(allada) Handle this properly for group nodes.
+ var aRequest = a.request();
+ var bRequest = b.request();
+ if (!aRequest || !bRequest)
+ return !aRequest ? -1 : 1;
+ var aSimpleType = a.asDataNode().displayType();
+ var bSimpleType = b.asDataNode().displayType();
if (aSimpleType > bSimpleType)
return 1;
if (bSimpleType > aSimpleType)
return -1;
- return a._request.indentityCompare(b._request);
+ return aRequest.indentityCompare(bRequest);
}
/**
- * @param {!Network.NetworkDataGridNode} a
- * @param {!Network.NetworkDataGridNode} b
+ * @param {!Network.NetworkDataGridNodeInterface} a
+ * @param {!Network.NetworkDataGridNodeInterface} b
* @return {number}
*/
static InitiatorComparator(a, b) {
- var aInitiator = a._request.initiatorInfo();
- var bInitiator = b._request.initiatorInfo();
+ // TODO(allada) Handle this properly for group nodes.
+ var aRequest = a.request();
+ var bRequest = b.request();
+ if (!aRequest || !bRequest)
+ return !aRequest ? -1 : 1;
+ var aInitiator = aRequest.initiatorInfo();
+ var bInitiator = bRequest.initiatorInfo();
if (aInitiator.type < bInitiator.type)
return -1;
@@ -137,37 +164,52 @@ Network.NetworkDataGridNode = class extends UI.SortableDataGridNode {
if (aInitiator.columnNumber > bInitiator.columnNumber)
return 1;
- return a._request.indentityCompare(b._request);
+ return aRequest.indentityCompare(bRequest);
}
/**
- * @param {!Network.NetworkDataGridNode} a
- * @param {!Network.NetworkDataGridNode} b
+ * @param {!Network.NetworkDataGridNodeInterface} a
+ * @param {!Network.NetworkDataGridNodeInterface} b
* @return {number}
*/
static RequestCookiesCountComparator(a, b) {
- var aScore = a._request.requestCookies ? a._request.requestCookies.length : 0;
- var bScore = b._request.requestCookies ? b._request.requestCookies.length : 0;
- return (aScore - bScore) || a._request.indentityCompare(b._request);
+ // TODO(allada) Handle this properly for group nodes.
+ var aRequest = a.request();
+ var bRequest = b.request();
+ if (!aRequest || !bRequest)
+ return !aRequest ? -1 : 1;
+ var aScore = aRequest.requestCookies ? aRequest.requestCookies.length : 0;
+ var bScore = bRequest.requestCookies ? bRequest.requestCookies.length : 0;
+ return (aScore - bScore) || aRequest.indentityCompare(bRequest);
}
/**
- * @param {!Network.NetworkDataGridNode} a
- * @param {!Network.NetworkDataGridNode} b
+ * @param {!Network.NetworkDataGridNodeInterface} a
+ * @param {!Network.NetworkDataGridNodeInterface} b
* @return {number}
*/
static ResponseCookiesCountComparator(a, b) {
- var aScore = a._request.responseCookies ? a._request.responseCookies.length : 0;
- var bScore = b._request.responseCookies ? b._request.responseCookies.length : 0;
- return (aScore - bScore) || a._request.indentityCompare(b._request);
+ // TODO(allada) Handle this properly for group nodes.
+ var aRequest = a.request();
+ var bRequest = b.request();
+ if (!aRequest || !bRequest)
+ return !aRequest ? -1 : 1;
+ var aScore = aRequest.responseCookies ? aRequest.responseCookies.length : 0;
+ var bScore = bRequest.responseCookies ? bRequest.responseCookies.length : 0;
+ return (aScore - bScore) || aRequest.indentityCompare(bRequest);
}
/**
- * @param {!Network.NetworkDataGridNode} a
- * @param {!Network.NetworkDataGridNode} b
+ * @param {!Network.NetworkDataGridNodeInterface} a
+ * @param {!Network.NetworkDataGridNodeInterface} b
* @return {number}
*/
static InitialPriorityComparator(a, b) {
+ // TODO(allada) Handle this properly for group nodes.
+ var aRequest = a.request();
+ var bRequest = b.request();
+ if (!aRequest || !bRequest)
+ return !aRequest ? -1 : 1;
var priorityMap = Network.NetworkDataGridNode._symbolicToNumericPriority;
if (!priorityMap) {
Network.NetworkDataGridNode._symbolicToNumericPriority = new Map();
@@ -178,69 +220,89 @@ Network.NetworkDataGridNode = class extends UI.SortableDataGridNode {
priorityMap.set(Protocol.Network.ResourcePriority.High, 4);
priorityMap.set(Protocol.Network.ResourcePriority.VeryHigh, 5);
}
- var aScore = priorityMap.get(a._request.initialPriority()) || 0;
- var bScore = priorityMap.get(b._request.initialPriority()) || 0;
+ var aScore = priorityMap.get(aRequest.initialPriority()) || 0;
+ var bScore = priorityMap.get(bRequest.initialPriority()) || 0;
- return aScore - bScore || a._request.indentityCompare(b._request);
+ return aScore - bScore || aRequest.indentityCompare(bRequest);
}
/**
* @param {string} propertyName
- * @param {!Network.NetworkDataGridNode} a
- * @param {!Network.NetworkDataGridNode} b
+ * @param {!Network.NetworkDataGridNodeInterface} a
+ * @param {!Network.NetworkDataGridNodeInterface} b
* @return {number}
*/
static RequestPropertyComparator(propertyName, a, b) {
- var aValue = a._request[propertyName];
- var bValue = b._request[propertyName];
+ // TODO(allada) Handle this properly for group nodes.
+ var aRequest = a.request();
+ var bRequest = b.request();
+ if (!aRequest || !bRequest)
+ return !aRequest ? -1 : 1;
+ var aValue = aRequest[propertyName];
+ var bValue = bRequest[propertyName];
if (aValue === bValue)
- return a._request.indentityCompare(b._request);
+ return aRequest.indentityCompare(bRequest);
return aValue > bValue ? 1 : -1;
}
/**
* @param {string} propertyName
- * @param {!Network.NetworkDataGridNode} a
- * @param {!Network.NetworkDataGridNode} b
+ * @param {!Network.NetworkDataGridNodeInterface} a
+ * @param {!Network.NetworkDataGridNodeInterface} b
* @return {number}
*/
static ResponseHeaderStringComparator(propertyName, a, b) {
- var aValue = String(a._request.responseHeaderValue(propertyName) || '');
- var bValue = String(b._request.responseHeaderValue(propertyName) || '');
- return aValue.localeCompare(bValue) || a._request.indentityCompare(b._request);
+ // TODO(allada) Handle this properly for group nodes.
+ var aRequest = a.request();
+ var bRequest = b.request();
+ if (!aRequest || !bRequest)
+ return !aRequest ? -1 : 1;
+ var aValue = String(aRequest.responseHeaderValue(propertyName) || '');
+ var bValue = String(bRequest.responseHeaderValue(propertyName) || '');
+ return aValue.localeCompare(bValue) || aRequest.indentityCompare(bRequest);
}
/**
* @param {string} propertyName
- * @param {!Network.NetworkDataGridNode} a
- * @param {!Network.NetworkDataGridNode} b
+ * @param {!Network.NetworkDataGridNodeInterface} a
+ * @param {!Network.NetworkDataGridNodeInterface} b
* @return {number}
*/
static ResponseHeaderNumberComparator(propertyName, a, b) {
- var aValue = (a._request.responseHeaderValue(propertyName) !== undefined) ?
- parseFloat(a._request.responseHeaderValue(propertyName)) :
+ // TODO(allada) Handle this properly for group nodes.
+ var aRequest = a.request();
+ var bRequest = b.request();
+ if (!aRequest || !bRequest)
+ return !aRequest ? -1 : 1;
+ var aValue = (aRequest.responseHeaderValue(propertyName) !== undefined) ?
+ parseFloat(aRequest.responseHeaderValue(propertyName)) :
-Infinity;
- var bValue = (b._request.responseHeaderValue(propertyName) !== undefined) ?
- parseFloat(b._request.responseHeaderValue(propertyName)) :
+ var bValue = (bRequest.responseHeaderValue(propertyName) !== undefined) ?
+ parseFloat(bRequest.responseHeaderValue(propertyName)) :
-Infinity;
if (aValue === bValue)
- return a._request.indentityCompare(b._request);
+ return aRequest.indentityCompare(bRequest);
return aValue > bValue ? 1 : -1;
}
/**
* @param {string} propertyName
- * @param {!Network.NetworkDataGridNode} a
- * @param {!Network.NetworkDataGridNode} b
+ * @param {!Network.NetworkDataGridNodeInterface} a
+ * @param {!Network.NetworkDataGridNodeInterface} b
* @return {number}
*/
static ResponseHeaderDateComparator(propertyName, a, b) {
- var aHeader = a._request.responseHeaderValue(propertyName);
- var bHeader = b._request.responseHeaderValue(propertyName);
+ // TODO(allada) Handle this properly for group nodes.
+ var aRequest = a.request();
+ var bRequest = b.request();
+ if (!aRequest || !bRequest)
+ return !aRequest ? -1 : 1;
+ var aHeader = aRequest.responseHeaderValue(propertyName);
+ var bHeader = bRequest.responseHeaderValue(propertyName);
var aValue = aHeader ? new Date(aHeader).getTime() : -Infinity;
var bValue = bHeader ? new Date(bHeader).getTime() : -Infinity;
if (aValue === bValue)
- return a._request.indentityCompare(b._request);
+ return aRequest.indentityCompare(bRequest);
return aValue > bValue ? 1 : -1;
}
@@ -259,6 +321,7 @@ Network.NetworkDataGridNode = class extends UI.SortableDataGridNode {
}
/**
+ * @override
* @return {!SDK.NetworkRequest}
*/
request() {
@@ -266,6 +329,15 @@ Network.NetworkDataGridNode = class extends UI.SortableDataGridNode {
}
/**
+ * @override
+ * @return {!Network.NetworkDataGridNode}
+ */
+ asDataNode() {
+ return this;
+ }
+
+ /**
+ * @override
* @return {boolean}
*/
isNavigationRequest() {
@@ -602,3 +674,119 @@ Network.NetworkDataGridNode = class extends UI.SortableDataGridNode {
cellElement.appendChild(subtitleElement);
}
};
+
+/**
+ * @implements {Network.NetworkDataGridNodeInterface}
+ * @unrestricted
+ */
+Network.NetworkDataGridParentNode = class extends UI.SortableDataGridNode {
+ /**
+ * @param {!Network.NetworkLogView} parentView
+ * @param {string} name
+ */
+ constructor(parentView, name) {
+ super({});
+ this._parentView = parentView;
+ this._name = name;
+ }
+
+ /**
+ * @param {string} propertyName
+ * @return {string}
+ */
+ _requestProperty(propertyName) {
dgozman 2016/12/15 03:04:41 Unused.
allada 2016/12/19 22:44:28 Done.
+ if (this.hasChildren)
+ return this.children[0]._request[propertyName];
+ return '';
+ }
+
+ /**
+ * @override
+ * @return {number}
+ */
+ nodeSelfHeight() {
+ return this._parentView.rowHeight();
+ }
+
+ /**
+ * @param {!Element} element
+ * @param {string} text
+ */
+ _setTextAndTitle(element, text) {
+ element.textContent = text;
+ element.title = text;
+ }
+
+ /**
+ * @override
+ * @param {string} columnIdentifier
+ * @return {!Element}
+ */
+ createCell(columnIdentifier) {
+ var cell = this.createTD(columnIdentifier);
+ if (columnIdentifier === 'name') {
+ cell.classList.add('disclosure');
+ this._setTextAndTitle(cell, this._name);
+ }
+ return cell;
+ }
+
+ /**
+ * @override
+ * @return {null}
+ */
+ request() {
+ return null;
+ }
+
+ /**
+ * @override
+ * @return {boolean}
+ */
+ isNavigationRequest() {
+ return false;
+ }
+
+ /**
+ * @override
+ * @return {null}
+ */
+ asDataNode() {
+ return null;
+ }
+
+ /**
+ * @override
+ * @param {boolean=} supressSelectedEvent
+ */
+ select(supressSelectedEvent) {
+ if (this.expanded) {
+ this.collapse();
+ return;
+ }
+ this.expand();
+ }
+};
+
+/**
+ * @interface
+ */
+Network.NetworkDataGridNodeInterface = class {
dgozman 2016/12/15 03:04:41 Let's follow up with NetworkNode, NetworkRequestNo
allada 2016/12/19 22:44:28 Done.
+ /**
+ * @return {?SDK.NetworkRequest}
+ */
+ request() {
+ }
+
+ /**
+ * @return {boolean}
+ */
+ isNavigationRequest() {
+ }
+
+ /**
+ * @return {?Network.NetworkDataGridNode}
+ */
+ asDataNode() {
+ }
+};

Powered by Google App Engine
This is Rietveld 408576698