Chromium Code Reviews| 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(); |