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

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

Issue 2561683003: [Devtools] Add experiment for network group support (Closed)
Patch Set: fix test 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/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 45e5f03d8508ba84f8b459e3c96d04ad305a706f..72b947b5fb03901402e751f9e8ae4f04ceb5031b 100644
--- a/third_party/WebKit/Source/devtools/front_end/network/NetworkLogView.js
+++ b/third_party/WebKit/Source/devtools/front_end/network/NetworkLogView.js
@@ -69,8 +69,10 @@ Network.NetworkLogView = class extends UI.VBox {
this._columns = new Network.NetworkLogViewColumns(
this, this._timeCalculator, this._durationCalculator, networkLogLargeRowsSetting);
- /** @type {!Map.<string, !Network.NetworkDataGridNode>} */
+ /** @type {!Map.<string, !Network.NetworkRequestNode>} */
this._nodesByRequestId = new Map();
+ /** @type {!Map.<string, !Network.NetworkGroupNode>} */
+ this._nodeGroups = new Map();
/** @type {!Object.<string, boolean>} */
this._staleRequestIds = {};
/** @type {number} */
@@ -84,6 +86,7 @@ Network.NetworkLogView = class extends UI.VBox {
this._filters = [];
/** @type {?Network.NetworkLogView.Filter} */
this._timeFilter = null;
+ /** @type {?Network.NetworkNode} */
this._hoveredNode = null;
this._currentMatchedRequestNode = null;
@@ -519,8 +522,8 @@ Network.NetworkLogView = class extends UI.VBox {
* @param {!Event} event
*/
_dataGridMouseMove(event) {
- var node = /** @type {?Network.NetworkDataGridNode} */ (
- this._dataGrid.dataGridNodeFromNode(/** @type {!Node} */ (event.target)));
+ var node =
+ /** @type {?Network.NetworkNode} */ (this._dataGrid.dataGridNodeFromNode(/** @type {!Node} */ (event.target)));
var highlightInitiatorChain = event.shiftKey;
this._setHoveredNode(node, highlightInitiatorChain);
this._highlightInitiatorChain((highlightInitiatorChain && node) ? node.request() : null);
@@ -532,7 +535,7 @@ Network.NetworkLogView = class extends UI.VBox {
}
/**
- * @param {?Network.NetworkDataGridNode} node
+ * @param {?Network.NetworkNode} node
* @param {boolean} highlightInitiatorChain
*/
setHoveredNode(node, highlightInitiatorChain) {
@@ -541,7 +544,7 @@ Network.NetworkLogView = class extends UI.VBox {
}
/**
- * @param {?Network.NetworkDataGridNode} node
+ * @param {?Network.NetworkNode} node
* @param {boolean=} highlightInitiatorChain
*/
_setHoveredNode(node, highlightInitiatorChain) {
@@ -780,7 +783,7 @@ Network.NetworkLogView = class extends UI.VBox {
}
/**
- * @return {!Array<!Network.NetworkDataGridNode>}
+ * @return {!Array<!Network.NetworkNode>}
*/
flatNodesList() {
return this._dataGrid.rootNode().flatChildren();
@@ -801,11 +804,9 @@ Network.NetworkLogView = class extends UI.VBox {
this._timeCalculator.updateBoundariesForEventTime(this._mainRequestDOMContentLoadedTime);
this._durationCalculator.updateBoundariesForEventTime(this._mainRequestDOMContentLoadedTime);
- var dataGrid = this._dataGrid;
- var rootNode = dataGrid.rootNode();
- /** @type {!Array<!Network.NetworkDataGridNode> } */
+ /** @type {!Array<!Network.NetworkRequestNode> } */
var nodesToInsert = [];
- /** @type {!Array<!Network.NetworkDataGridNode> } */
+ /** @type {!Array<!Network.NetworkRequestNode> } */
var nodesToRefresh = [];
for (var requestId in this._staleRequestIds) {
var node = this._nodesByRequestId.get(requestId);
@@ -816,7 +817,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;
@@ -833,8 +834,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)
@@ -849,6 +851,26 @@ Network.NetworkLogView = class extends UI.VBox {
this._columns.dataChanged();
}
+ /**
+ * @param {!Network.NetworkRequestNode} node
+ * @return {!Network.NetworkNode}
+ */
+ _parentNodeForInsert(node) {
+ if (!Runtime.experiments.isEnabled('networkGroupingRequests'))
+ return /** @type {!Network.NetworkNode} */ (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.NetworkGroupNode(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);
@@ -867,6 +889,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();
@@ -904,7 +927,7 @@ Network.NetworkLogView = class extends UI.VBox {
* @param {!SDK.NetworkRequest} request
*/
_appendRequest(request) {
- var node = new Network.NetworkDataGridNode(this, request);
+ var node = new Network.NetworkRequestNode(this, request);
node[Network.NetworkLogView._isFilteredOutSymbol] = true;
node[Network.NetworkLogView._isMatchingSearchQuerySymbol] = false;
@@ -1234,7 +1257,7 @@ Network.NetworkLogView = class extends UI.VBox {
_highlightNthMatchedRequestForSearch(n, reveal) {
this._removeAllHighlights();
- /** @type {!Array.<!Network.NetworkDataGridNode>} */
+ /** @type {!Array.<!Network.NetworkRequestNode>} */
var nodes = this._dataGrid.rootNode().children;
var matchCount = 0;
var node = null;
@@ -1275,7 +1298,7 @@ Network.NetworkLogView = class extends UI.VBox {
this._clearSearchMatchedList();
this._searchRegex = createPlainTextSearchRegex(query, 'i');
- /** @type {!Array.<!Network.NetworkDataGridNode>} */
+ /** @type {!Array.<!Network.NetworkRequestNode>} */
var nodes = this._dataGrid.rootNode().children;
for (var i = 0; i < nodes.length; ++i)
nodes[i][Network.NetworkLogView._isMatchingSearchQuerySymbol] = this._matchRequest(nodes[i].request());
@@ -1302,11 +1325,11 @@ Network.NetworkLogView = class extends UI.VBox {
}
/**
- * @param {?Network.NetworkDataGridNode} node
+ * @param {?Network.NetworkRequestNode} node
* @return {number}
*/
_updateMatchCountAndFindMatchIndex(node) {
- /** @type {!Array.<!Network.NetworkDataGridNode>} */
+ /** @type {!Array.<!Network.NetworkRequestNode>} */
var nodes = this._dataGrid.rootNode().children;
var matchCount = 0;
var matchIndex = 0;
@@ -1333,7 +1356,7 @@ Network.NetworkLogView = class extends UI.VBox {
}
/**
- * @param {!Network.NetworkDataGridNode} node
+ * @param {!Network.NetworkRequestNode} node
* @return {boolean}
*/
_applyFilter(node) {
@@ -1536,7 +1559,7 @@ Network.NetworkLogView = class extends UI.VBox {
}
/**
- * @param {!Network.NetworkDataGridNode} node
+ * @param {!Network.NetworkRequestNode} node
*/
_highlightNode(node) {
UI.runCSSAnimationOnce(node.element(), 'highlighted-row');

Powered by Google App Engine
This is Rietveld 408576698