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 5d428ae4e70916ef2a378ce0be6a95daaff08abd..6f706f3e6f2921a97e927766e5a5ccfa4dd634d2 100644 |
--- a/third_party/WebKit/Source/devtools/front_end/network/NetworkLogView.js |
+++ b/third_party/WebKit/Source/devtools/front_end/network/NetworkLogView.js |
@@ -73,6 +73,8 @@ Network.NetworkLogView = class extends UI.VBox { |
/** @type {!Map.<string, !Network.NetworkDataGridNode>} */ |
this._nodesByRequestId = new Map(); |
+ /** @type {!Map.<string, !Network.NetworkDataGridParentNode>} */ |
dgozman
2016/12/15 03:04:41
NetworkDataGridGroupNode
allada
2016/12/19 22:44:28
Done.
|
+ this._nodeGroups = new Map(); |
/** @type {!Object.<string, boolean>} */ |
this._staleRequestIds = {}; |
/** @type {number} */ |
@@ -782,7 +784,7 @@ Network.NetworkLogView = class extends UI.VBox { |
} |
/** |
- * @return {!Array<!Network.NetworkDataGridNode>} |
+ * @return {!Array<!Network.NetworkDataGridNodeInterface>} |
*/ |
flatNodesList() { |
return this._dataGrid.rootNode().flatChildren(); |
@@ -804,6 +806,8 @@ Network.NetworkLogView = class extends UI.VBox { |
this._timeCalculator.updateBoundariesForEventTime(this._mainRequestDOMContentLoadedTime); |
this._durationCalculator.updateBoundariesForEventTime(this._mainRequestDOMContentLoadedTime); |
+ var groupRequests = Runtime.experiments.isEnabled('networkGroupingRequests'); |
dgozman
2016/12/15 03:04:41
Unused.
allada
2016/12/19 22:44:29
Done.
|
+ |
var dataGrid = this._dataGrid; |
var rootNode = dataGrid.rootNode(); |
/** @type {!Array<!Network.NetworkDataGridNode> } */ |
@@ -819,7 +823,7 @@ Network.NetworkLogView = class extends UI.VBox { |
this._setHoveredNode(null); |
if (node[Network.NetworkLogView._isFilteredOutSymbol] !== isFilteredOut) { |
if (!node[Network.NetworkLogView._isFilteredOutSymbol]) |
- rootNode.removeChild(node); |
+ node.parent.removeChild(node); |
node[Network.NetworkLogView._isFilteredOutSymbol] = isFilteredOut; |
@@ -836,8 +840,9 @@ Network.NetworkLogView = class extends UI.VBox { |
for (var i = 0; i < nodesToInsert.length; ++i) { |
var node = nodesToInsert[i]; |
var request = node.request(); |
- dataGrid.insertChild(node); |
node[Network.NetworkLogView._isMatchingSearchQuerySymbol] = this._matchRequest(request); |
+ var parent = this._parentNodeForInsert(node); |
+ parent.appendChild(node); |
} |
for (var node of nodesToRefresh) |
@@ -852,6 +857,22 @@ Network.NetworkLogView = class extends UI.VBox { |
this._columns.dataChanged(); |
} |
+ _parentNodeForInsert(node) { |
dgozman
2016/12/15 03:04:41
JSDoc
allada
2016/12/19 22:44:28
Done.
|
+ if (!Runtime.experiments.isEnabled('networkGroupingRequests')) |
+ return this._dataGrid.rootNode(); |
+ |
+ var request = node.request(); |
+ // TODO(allada) Make this dynamic and allow multiple grouping types. |
+ var groupKey = request.domain; |
+ var group = this._nodeGroups.get(groupKey); |
+ if (group) |
+ return group; |
+ group = new Network.NetworkDataGridParentNode(this, groupKey); |
+ this._nodeGroups.set(groupKey, group); |
+ this._dataGrid.rootNode().appendChild(group); |
+ return group; |
+ } |
+ |
reset() { |
this._requestWithHighlightedInitiators = null; |
this.dispatchEventToListeners(Network.NetworkLogView.Events.RequestSelected, null); |
@@ -870,6 +891,7 @@ Network.NetworkLogView = class extends UI.VBox { |
for (var i = 0; i < nodes.length; ++i) |
nodes[i].dispose(); |
+ this._nodeGroups.clear(); |
this._nodesByRequestId.clear(); |
this._staleRequestIds = {}; |
this._resetSuggestionBuilder(); |