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

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/network/NetworkLogView.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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2007, 2008 Apple Inc. All rights reserved. 2 * Copyright (C) 2007, 2008 Apple Inc. All rights reserved.
3 * Copyright (C) 2008, 2009 Anthony Ricaud <rik@webkit.org> 3 * Copyright (C) 2008, 2009 Anthony Ricaud <rik@webkit.org>
4 * Copyright (C) 2011 Google Inc. All rights reserved. 4 * Copyright (C) 2011 Google Inc. All rights reserved.
5 * 5 *
6 * Redistribution and use in source and binary forms, with or without 6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions 7 * modification, are permitted provided that the following conditions
8 * are met: 8 * are met:
9 * 9 *
10 * 1. Redistributions of source code must retain the above copyright 10 * 1. Redistributions of source code must retain the above copyright
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 /** @type {number} */ 66 /** @type {number} */
67 this._rowHeight = !!this._networkLogLargeRowsSetting.get() ? 41 : 21; 67 this._rowHeight = !!this._networkLogLargeRowsSetting.get() ? 41 : 21;
68 } 68 }
69 updateRowHeight.call(this); 69 updateRowHeight.call(this);
70 70
71 this._columns = new Network.NetworkLogViewColumns( 71 this._columns = new Network.NetworkLogViewColumns(
72 this, this._timeCalculator, this._durationCalculator, networkLogLargeRow sSetting); 72 this, this._timeCalculator, this._durationCalculator, networkLogLargeRow sSetting);
73 73
74 /** @type {!Map.<string, !Network.NetworkDataGridNode>} */ 74 /** @type {!Map.<string, !Network.NetworkDataGridNode>} */
75 this._nodesByRequestId = new Map(); 75 this._nodesByRequestId = new Map();
76 /** @type {!Map.<string, !Network.NetworkDataGridParentNode>} */
dgozman 2016/12/15 03:04:41 NetworkDataGridGroupNode
allada 2016/12/19 22:44:28 Done.
77 this._nodeGroups = new Map();
76 /** @type {!Object.<string, boolean>} */ 78 /** @type {!Object.<string, boolean>} */
77 this._staleRequestIds = {}; 79 this._staleRequestIds = {};
78 /** @type {number} */ 80 /** @type {number} */
79 this._mainRequestLoadTime = -1; 81 this._mainRequestLoadTime = -1;
80 /** @type {number} */ 82 /** @type {number} */
81 this._mainRequestDOMContentLoadedTime = -1; 83 this._mainRequestDOMContentLoadedTime = -1;
82 this._matchedRequestCount = 0; 84 this._matchedRequestCount = 0;
83 this._highlightedSubstringChanges = []; 85 this._highlightedSubstringChanges = [];
84 86
85 /** @type {!Array.<!Network.NetworkLogView.Filter>} */ 87 /** @type {!Array.<!Network.NetworkLogView.Filter>} */
(...skipping 689 matching lines...) Expand 10 before | Expand all | Expand 10 after
775 } 777 }
776 778
777 /** 779 /**
778 * @override 780 * @override
779 */ 781 */
780 willHide() { 782 willHide() {
781 this._columns.willHide(); 783 this._columns.willHide();
782 } 784 }
783 785
784 /** 786 /**
785 * @return {!Array<!Network.NetworkDataGridNode>} 787 * @return {!Array<!Network.NetworkDataGridNodeInterface>}
786 */ 788 */
787 flatNodesList() { 789 flatNodesList() {
788 return this._dataGrid.rootNode().flatChildren(); 790 return this._dataGrid.rootNode().flatChildren();
789 } 791 }
790 792
791 _refresh() { 793 _refresh() {
792 this._needsRefresh = false; 794 this._needsRefresh = false;
793 795
794 if (this._refreshRequestId) { 796 if (this._refreshRequestId) {
795 this.element.window().cancelAnimationFrame(this._refreshRequestId); 797 this.element.window().cancelAnimationFrame(this._refreshRequestId);
796 delete this._refreshRequestId; 798 delete this._refreshRequestId;
797 } 799 }
798 800
799 this.removeAllNodeHighlights(); 801 this.removeAllNodeHighlights();
800 802
801 var oldBoundary = this.calculator().boundary(); 803 var oldBoundary = this.calculator().boundary();
802 this._timeCalculator.updateBoundariesForEventTime(this._mainRequestLoadTime) ; 804 this._timeCalculator.updateBoundariesForEventTime(this._mainRequestLoadTime) ;
803 this._durationCalculator.updateBoundariesForEventTime(this._mainRequestLoadT ime); 805 this._durationCalculator.updateBoundariesForEventTime(this._mainRequestLoadT ime);
804 this._timeCalculator.updateBoundariesForEventTime(this._mainRequestDOMConten tLoadedTime); 806 this._timeCalculator.updateBoundariesForEventTime(this._mainRequestDOMConten tLoadedTime);
805 this._durationCalculator.updateBoundariesForEventTime(this._mainRequestDOMCo ntentLoadedTime); 807 this._durationCalculator.updateBoundariesForEventTime(this._mainRequestDOMCo ntentLoadedTime);
806 808
809 var groupRequests = Runtime.experiments.isEnabled('networkGroupingRequests') ;
dgozman 2016/12/15 03:04:41 Unused.
allada 2016/12/19 22:44:29 Done.
810
807 var dataGrid = this._dataGrid; 811 var dataGrid = this._dataGrid;
808 var rootNode = dataGrid.rootNode(); 812 var rootNode = dataGrid.rootNode();
809 /** @type {!Array<!Network.NetworkDataGridNode> } */ 813 /** @type {!Array<!Network.NetworkDataGridNode> } */
810 var nodesToInsert = []; 814 var nodesToInsert = [];
811 /** @type {!Array<!Network.NetworkDataGridNode> } */ 815 /** @type {!Array<!Network.NetworkDataGridNode> } */
812 var nodesToRefresh = []; 816 var nodesToRefresh = [];
813 for (var requestId in this._staleRequestIds) { 817 for (var requestId in this._staleRequestIds) {
814 var node = this._nodesByRequestId.get(requestId); 818 var node = this._nodesByRequestId.get(requestId);
815 if (!node) 819 if (!node)
816 continue; 820 continue;
817 var isFilteredOut = !this._applyFilter(node); 821 var isFilteredOut = !this._applyFilter(node);
818 if (isFilteredOut && node === this._hoveredNode) 822 if (isFilteredOut && node === this._hoveredNode)
819 this._setHoveredNode(null); 823 this._setHoveredNode(null);
820 if (node[Network.NetworkLogView._isFilteredOutSymbol] !== isFilteredOut) { 824 if (node[Network.NetworkLogView._isFilteredOutSymbol] !== isFilteredOut) {
821 if (!node[Network.NetworkLogView._isFilteredOutSymbol]) 825 if (!node[Network.NetworkLogView._isFilteredOutSymbol])
822 rootNode.removeChild(node); 826 node.parent.removeChild(node);
823 827
824 node[Network.NetworkLogView._isFilteredOutSymbol] = isFilteredOut; 828 node[Network.NetworkLogView._isFilteredOutSymbol] = isFilteredOut;
825 829
826 if (!node[Network.NetworkLogView._isFilteredOutSymbol]) 830 if (!node[Network.NetworkLogView._isFilteredOutSymbol])
827 nodesToInsert.push(node); 831 nodesToInsert.push(node);
828 } 832 }
829 if (!isFilteredOut) 833 if (!isFilteredOut)
830 nodesToRefresh.push(node); 834 nodesToRefresh.push(node);
831 var request = node.request(); 835 var request = node.request();
832 this._timeCalculator.updateBoundaries(request); 836 this._timeCalculator.updateBoundaries(request);
833 this._durationCalculator.updateBoundaries(request); 837 this._durationCalculator.updateBoundaries(request);
834 } 838 }
835 839
836 for (var i = 0; i < nodesToInsert.length; ++i) { 840 for (var i = 0; i < nodesToInsert.length; ++i) {
837 var node = nodesToInsert[i]; 841 var node = nodesToInsert[i];
838 var request = node.request(); 842 var request = node.request();
839 dataGrid.insertChild(node);
840 node[Network.NetworkLogView._isMatchingSearchQuerySymbol] = this._matchReq uest(request); 843 node[Network.NetworkLogView._isMatchingSearchQuerySymbol] = this._matchReq uest(request);
844 var parent = this._parentNodeForInsert(node);
845 parent.appendChild(node);
841 } 846 }
842 847
843 for (var node of nodesToRefresh) 848 for (var node of nodesToRefresh)
844 node.refresh(); 849 node.refresh();
845 850
846 this._highlightNthMatchedRequestForSearch( 851 this._highlightNthMatchedRequestForSearch(
847 this._updateMatchCountAndFindMatchIndex(this._currentMatchedRequestNode) , false); 852 this._updateMatchCountAndFindMatchIndex(this._currentMatchedRequestNode) , false);
848 853
849 this._staleRequestIds = {}; 854 this._staleRequestIds = {};
850 this._updateSummaryBar(); 855 this._updateSummaryBar();
851 856
852 this._columns.dataChanged(); 857 this._columns.dataChanged();
853 } 858 }
854 859
860 _parentNodeForInsert(node) {
dgozman 2016/12/15 03:04:41 JSDoc
allada 2016/12/19 22:44:28 Done.
861 if (!Runtime.experiments.isEnabled('networkGroupingRequests'))
862 return this._dataGrid.rootNode();
863
864 var request = node.request();
865 // TODO(allada) Make this dynamic and allow multiple grouping types.
866 var groupKey = request.domain;
867 var group = this._nodeGroups.get(groupKey);
868 if (group)
869 return group;
870 group = new Network.NetworkDataGridParentNode(this, groupKey);
871 this._nodeGroups.set(groupKey, group);
872 this._dataGrid.rootNode().appendChild(group);
873 return group;
874 }
875
855 reset() { 876 reset() {
856 this._requestWithHighlightedInitiators = null; 877 this._requestWithHighlightedInitiators = null;
857 this.dispatchEventToListeners(Network.NetworkLogView.Events.RequestSelected, null); 878 this.dispatchEventToListeners(Network.NetworkLogView.Events.RequestSelected, null);
858 879
859 this._clearSearchMatchedList(); 880 this._clearSearchMatchedList();
860 881
861 this._setHoveredNode(null); 882 this._setHoveredNode(null);
862 this._columns.reset(); 883 this._columns.reset();
863 884
864 this._timeFilter = null; 885 this._timeFilter = null;
865 this._calculator.reset(); 886 this._calculator.reset();
866 887
867 this._timeCalculator.setWindow(null); 888 this._timeCalculator.setWindow(null);
868 889
869 var nodes = this._nodesByRequestId.valuesArray(); 890 var nodes = this._nodesByRequestId.valuesArray();
870 for (var i = 0; i < nodes.length; ++i) 891 for (var i = 0; i < nodes.length; ++i)
871 nodes[i].dispose(); 892 nodes[i].dispose();
872 893
894 this._nodeGroups.clear();
873 this._nodesByRequestId.clear(); 895 this._nodesByRequestId.clear();
874 this._staleRequestIds = {}; 896 this._staleRequestIds = {};
875 this._resetSuggestionBuilder(); 897 this._resetSuggestionBuilder();
876 898
877 this._mainRequestLoadTime = -1; 899 this._mainRequestLoadTime = -1;
878 this._mainRequestDOMContentLoadedTime = -1; 900 this._mainRequestDOMContentLoadedTime = -1;
879 901
880 if (this._dataGrid) { 902 if (this._dataGrid) {
881 this._dataGrid.rootNode().removeChildren(); 903 this._dataGrid.rootNode().removeChildren();
882 this._updateSummaryBar(); 904 this._updateSummaryBar();
(...skipping 832 matching lines...) Expand 10 before | Expand all | Expand 10 after
1715 Running: 'running', 1737 Running: 'running',
1716 FromCache: 'from-cache' 1738 FromCache: 'from-cache'
1717 }; 1739 };
1718 1740
1719 /** @type {!Array<string>} */ 1741 /** @type {!Array<string>} */
1720 Network.NetworkLogView._searchKeys = 1742 Network.NetworkLogView._searchKeys =
1721 Object.keys(Network.NetworkLogView.FilterType).map(key => Network.NetworkLog View.FilterType[key]); 1743 Object.keys(Network.NetworkLogView.FilterType).map(key => Network.NetworkLog View.FilterType[key]);
1722 1744
1723 /** @typedef {function(!SDK.NetworkRequest): boolean} */ 1745 /** @typedef {function(!SDK.NetworkRequest): boolean} */
1724 Network.NetworkLogView.Filter; 1746 Network.NetworkLogView.Filter;
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698