Index: third_party/WebKit/Source/devtools/front_end/network/NetworkLogView.js |
diff --git a/third_party/WebKit/Source/devtools/front_end/network/NetworkLogView.js b/third_party/WebKit/Source/devtools/front_end/network/NetworkLogView.js |
index b408c94daa1016ebf62d75f9c10c5c399288bd46..e83ecc02250e6abeac606dcb77585a5dadacfa76 100644 |
--- a/third_party/WebKit/Source/devtools/front_end/network/NetworkLogView.js |
+++ b/third_party/WebKit/Source/devtools/front_end/network/NetworkLogView.js |
@@ -57,6 +57,9 @@ Network.NetworkLogView = class extends UI.VBox { |
this._durationCalculator = new Network.NetworkTransferDurationCalculator(); |
this._calculator = this._timeCalculator; |
+ /** @type {?Network.NetworkGroupLookupInterface} */ |
+ this._activeGroupLookup = null; |
+ |
/** |
* @this {Network.NetworkLogView} |
*/ |
@@ -345,6 +348,14 @@ Network.NetworkLogView = class extends UI.VBox { |
} |
/** |
+ * @param {?Network.NetworkGroupLookupInterface} grouping |
+ */ |
+ setGrouping(grouping) { |
+ this._activeGroupLookup = grouping; |
+ this._invalidateAllItems(); |
+ } |
+ |
+ /** |
* @param {!SDK.NetworkRequest} request |
* @return {?Network.NetworkRequestNode} |
*/ |
@@ -846,25 +857,21 @@ Network.NetworkLogView = class extends UI.VBox { |
/** |
* @param {!Network.NetworkRequestNode} node |
- * @return {!Network.NetworkNode} |
+ * @return {?Network.NetworkNode} |
*/ |
_parentNodeForInsert(node) { |
- if (!Runtime.experiments.isEnabled('networkGroupingRequests')) |
- return /** @type {!Network.NetworkNode} */ (this._dataGrid.rootNode()); |
+ if (!this._activeGroupLookup) |
+ return this._dataGrid.rootNode(); |
- var request = node.request(); |
- // TODO(allada) Make this dynamic and allow multiple grouping types. |
- var groupKey = request.connectionId; |
- var group = this._nodeGroups.get(groupKey); |
+ var groupName = this._activeGroupLookup.lookup(node.request()); |
+ if (!groupName) |
+ return this._dataGrid.rootNode(); |
+ |
+ var group = this._nodeGroups.get(groupName); |
if (group) |
return group; |
- |
- var parsedURL = request.url().asParsedURL(); |
- var host = ''; |
- if (parsedURL) |
- host = parsedURL.host; |
- group = new Network.NetworkGroupNode(this, host + ' - ' + groupKey); |
- this._nodeGroups.set(groupKey, group); |
+ group = new Network.NetworkGroupNode(this, groupName); |
+ this._nodeGroups.set(groupName, group); |
return group; |
} |
@@ -1779,3 +1786,16 @@ Network.NetworkLogView._searchKeys = |
/** @typedef {function(!SDK.NetworkRequest): boolean} */ |
Network.NetworkLogView.Filter; |
+ |
+/** |
+ * @interface |
+ */ |
+Network.NetworkGroupLookupInterface = function() {}; |
+ |
+Network.NetworkGroupLookupInterface.prototype = { |
+ /** |
+ * @param {!SDK.NetworkRequest} request |
+ * @return {?string} |
+ */ |
+ lookup(request) {} |
+}; |