| OLD | NEW |
| 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 26 matching lines...) Expand all Loading... |
| 37 * @param {!WebInspector.Setting} coulmnsVisibilitySetting | 37 * @param {!WebInspector.Setting} coulmnsVisibilitySetting |
| 38 */ | 38 */ |
| 39 WebInspector.NetworkLogView = function(filterBar, coulmnsVisibilitySetting) | 39 WebInspector.NetworkLogView = function(filterBar, coulmnsVisibilitySetting) |
| 40 { | 40 { |
| 41 WebInspector.VBox.call(this); | 41 WebInspector.VBox.call(this); |
| 42 this.registerRequiredCSS("network/networkLogView.css"); | 42 this.registerRequiredCSS("network/networkLogView.css"); |
| 43 this.registerRequiredCSS("ui/filter.css"); | 43 this.registerRequiredCSS("ui/filter.css"); |
| 44 | 44 |
| 45 this._filterBar = filterBar; | 45 this._filterBar = filterBar; |
| 46 this._coulmnsVisibilitySetting = coulmnsVisibilitySetting; | 46 this._coulmnsVisibilitySetting = coulmnsVisibilitySetting; |
| 47 this._allowRequestSelection = false; | |
| 48 /** @type {!Map.<string, !WebInspector.NetworkDataGridNode>} */ | 47 /** @type {!Map.<string, !WebInspector.NetworkDataGridNode>} */ |
| 49 this._nodesByRequestId = new Map(); | 48 this._nodesByRequestId = new Map(); |
| 50 /** @type {!Object.<string, boolean>} */ | 49 /** @type {!Object.<string, boolean>} */ |
| 51 this._staleRequestIds = {}; | 50 this._staleRequestIds = {}; |
| 52 /** @type {number} */ | 51 /** @type {number} */ |
| 53 this._mainRequestLoadTime = -1; | 52 this._mainRequestLoadTime = -1; |
| 54 /** @type {number} */ | 53 /** @type {number} */ |
| 55 this._mainRequestDOMContentLoadedTime = -1; | 54 this._mainRequestDOMContentLoadedTime = -1; |
| 56 this._matchedRequestCount = 0; | 55 this._matchedRequestCount = 0; |
| 57 this._highlightedSubstringChanges = []; | 56 this._highlightedSubstringChanges = []; |
| 58 | 57 |
| 59 /** @type {!Array.<!WebInspector.NetworkLogView.Filter>} */ | 58 /** @type {!Array.<!WebInspector.NetworkLogView.Filter>} */ |
| 60 this._filters = []; | 59 this._filters = []; |
| 61 | 60 |
| 62 this._currentMatchedRequestNode = null; | 61 this._currentMatchedRequestNode = null; |
| 63 this._currentMatchedRequestIndex = -1; | 62 this._currentMatchedRequestIndex = -1; |
| 64 | 63 |
| 65 this._createStatusbarButtons(); | 64 this._createStatusbarButtons(); |
| 66 this._createStatusBarItems(); | 65 this._createStatusBarItems(); |
| 67 this._linkifier = new WebInspector.Linkifier(); | 66 this._linkifier = new WebInspector.Linkifier(); |
| 68 | 67 |
| 69 this._allowPopover = true; | 68 this._gridMode = true; |
| 70 | 69 |
| 71 /** @type {number} */ | 70 /** @type {number} */ |
| 72 this._rowHeight = 0; | 71 this._rowHeight = 0; |
| 73 | 72 |
| 74 this._addFilters(); | 73 this._addFilters(); |
| 75 this._resetSuggestionBuilder(); | 74 this._resetSuggestionBuilder(); |
| 76 this._initializeView(); | 75 this._initializeView(); |
| 77 this._toggleRecordButton(true); | 76 this._toggleRecordButton(true); |
| 78 | 77 |
| 79 WebInspector.targetManager.observeTargets(this); | 78 WebInspector.targetManager.observeTargets(this); |
| 80 WebInspector.targetManager.addModelListener(WebInspector.NetworkManager, Web
Inspector.NetworkManager.EventTypes.RequestStarted, this._onRequestStarted, this
); | 79 WebInspector.targetManager.addModelListener(WebInspector.NetworkManager, Web
Inspector.NetworkManager.EventTypes.RequestStarted, this._onRequestStarted, this
); |
| 81 WebInspector.targetManager.addModelListener(WebInspector.NetworkManager, Web
Inspector.NetworkManager.EventTypes.RequestUpdated, this._onRequestUpdated, this
); | 80 WebInspector.targetManager.addModelListener(WebInspector.NetworkManager, Web
Inspector.NetworkManager.EventTypes.RequestUpdated, this._onRequestUpdated, this
); |
| 82 WebInspector.targetManager.addModelListener(WebInspector.NetworkManager, Web
Inspector.NetworkManager.EventTypes.RequestFinished, this._onRequestUpdated, thi
s); | 81 WebInspector.targetManager.addModelListener(WebInspector.NetworkManager, Web
Inspector.NetworkManager.EventTypes.RequestFinished, this._onRequestUpdated, thi
s); |
| 83 | 82 |
| 84 WebInspector.targetManager.addModelListener(WebInspector.ResourceTreeModel,
WebInspector.ResourceTreeModel.EventTypes.WillReloadPage, this._willReloadPage,
this); | 83 WebInspector.targetManager.addModelListener(WebInspector.ResourceTreeModel,
WebInspector.ResourceTreeModel.EventTypes.WillReloadPage, this._willReloadPage,
this); |
| 85 WebInspector.targetManager.addModelListener(WebInspector.ResourceTreeModel,
WebInspector.ResourceTreeModel.EventTypes.MainFrameNavigated, this._mainFrameNav
igated, this); | 84 WebInspector.targetManager.addModelListener(WebInspector.ResourceTreeModel,
WebInspector.ResourceTreeModel.EventTypes.MainFrameNavigated, this._mainFrameNav
igated, this); |
| 86 WebInspector.targetManager.addModelListener(WebInspector.ResourceTreeModel,
WebInspector.ResourceTreeModel.EventTypes.Load, this._loadEventFired, this); | 85 WebInspector.targetManager.addModelListener(WebInspector.ResourceTreeModel,
WebInspector.ResourceTreeModel.EventTypes.Load, this._loadEventFired, this); |
| 87 WebInspector.targetManager.addModelListener(WebInspector.ResourceTreeModel,
WebInspector.ResourceTreeModel.EventTypes.DOMContentLoaded, this._domContentLoad
edEventFired, this); | 86 WebInspector.targetManager.addModelListener(WebInspector.ResourceTreeModel,
WebInspector.ResourceTreeModel.EventTypes.DOMContentLoaded, this._domContentLoad
edEventFired, this); |
| 88 } | 87 } |
| 89 | 88 |
| 89 WebInspector.NetworkLogView._isFilteredOutSymbol = Symbol("isFilteredOut"); |
| 90 WebInspector.NetworkLogView._isMatchingSearchQuerySymbol = Symbol("isMatchingSea
rchQuery"); |
| 91 |
| 90 WebInspector.NetworkLogView.HTTPSchemas = {"http": true, "https": true, "ws": tr
ue, "wss": true}; | 92 WebInspector.NetworkLogView.HTTPSchemas = {"http": true, "https": true, "ws": tr
ue, "wss": true}; |
| 91 WebInspector.NetworkLogView._responseHeaderColumns = ["Cache-Control", "Connecti
on", "Content-Encoding", "Content-Length", "ETag", "Keep-Alive", "Last-Modified"
, "Server", "Vary"]; | 93 WebInspector.NetworkLogView._responseHeaderColumns = ["Cache-Control", "Connecti
on", "Content-Encoding", "Content-Length", "ETag", "Keep-Alive", "Last-Modified"
, "Server", "Vary"]; |
| 92 WebInspector.NetworkLogView.defaultColumnsVisibility = { | 94 WebInspector.NetworkLogView.defaultColumnsVisibility = { |
| 93 method: true, status: true, scheme: false, domain: false, remoteAddress: fal
se, type: true, initiator: true, cookies: false, setCookies: false, size: true,
time: true, connectionId: false, | 95 method: true, status: true, scheme: false, domain: false, remoteAddress: fal
se, type: true, initiator: true, cookies: false, setCookies: false, size: true,
time: true, connectionId: false, |
| 94 "Cache-Control": false, "Connection": false, "Content-Encoding": false, "Con
tent-Length": false, "ETag": false, "Keep-Alive": false, "Last-Modified": false,
"Server": false, "Vary": false | 96 "Cache-Control": false, "Connection": false, "Content-Encoding": false, "Con
tent-Length": false, "ETag": false, "Keep-Alive": false, "Last-Modified": false,
"Server": false, "Vary": false |
| 95 }; | 97 }; |
| 96 WebInspector.NetworkLogView._defaultRefreshDelay = 500; | 98 WebInspector.NetworkLogView._defaultRefreshDelay = 500; |
| 97 | 99 |
| 98 /** @enum {string} */ | 100 /** @enum {string} */ |
| 99 WebInspector.NetworkLogView.FilterType = { | 101 WebInspector.NetworkLogView.FilterType = { |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 160 */ | 162 */ |
| 161 targetRemoved: function(target) | 163 targetRemoved: function(target) |
| 162 { | 164 { |
| 163 }, | 165 }, |
| 164 | 166 |
| 165 /** | 167 /** |
| 166 * @return {boolean} | 168 * @return {boolean} |
| 167 */ | 169 */ |
| 168 allowRequestSelection: function() | 170 allowRequestSelection: function() |
| 169 { | 171 { |
| 170 return this._allowRequestSelection; | 172 return !this._gridMode; |
| 171 }, | 173 }, |
| 172 | 174 |
| 173 _addFilters: function() | 175 _addFilters: function() |
| 174 { | 176 { |
| 175 this._textFilterUI = new WebInspector.TextFilterUI(); | 177 this._textFilterUI = new WebInspector.TextFilterUI(); |
| 176 this._textFilterUI.addEventListener(WebInspector.FilterUI.Events.FilterC
hanged, this._filterChanged, this); | 178 this._textFilterUI.addEventListener(WebInspector.FilterUI.Events.FilterC
hanged, this._filterChanged, this); |
| 177 this._filterBar.addFilter(this._textFilterUI); | 179 this._filterBar.addFilter(this._textFilterUI); |
| 178 | 180 |
| 179 var types = []; | 181 var types = []; |
| 180 for (var typeId in WebInspector.resourceTypes) { | 182 for (var typeId in WebInspector.resourceTypes) { |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 246 | 248 |
| 247 /** | 249 /** |
| 248 * @return {boolean} | 250 * @return {boolean} |
| 249 */ | 251 */ |
| 250 usesLargeRows: function() | 252 usesLargeRows: function() |
| 251 { | 253 { |
| 252 return !!WebInspector.settings.resourcesLargeRows.get(); | 254 return !!WebInspector.settings.resourcesLargeRows.get(); |
| 253 }, | 255 }, |
| 254 | 256 |
| 255 /** | 257 /** |
| 256 * @param {boolean} flag | |
| 257 */ | |
| 258 setAllowPopover: function(flag) | |
| 259 { | |
| 260 this._allowPopover = flag; | |
| 261 }, | |
| 262 | |
| 263 /** | |
| 264 * @return {!Array.<!Element>} | 258 * @return {!Array.<!Element>} |
| 265 */ | 259 */ |
| 266 elementsToRestoreScrollPositionsFor: function() | 260 elementsToRestoreScrollPositionsFor: function() |
| 267 { | 261 { |
| 268 if (!this._dataGrid) // Not initialized yet. | 262 if (!this._dataGrid) // Not initialized yet. |
| 269 return []; | 263 return []; |
| 270 return [this._dataGrid.scrollContainer]; | 264 return [this._dataGrid.scrollContainer]; |
| 271 }, | 265 }, |
| 272 | 266 |
| 273 _createTimelineGrid: function() | 267 _createTimelineGrid: function() |
| (...skipping 310 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 584 var transferSize = 0; | 578 var transferSize = 0; |
| 585 var selectedRequestsNumber = 0; | 579 var selectedRequestsNumber = 0; |
| 586 var selectedTransferSize = 0; | 580 var selectedTransferSize = 0; |
| 587 var baseTime = -1; | 581 var baseTime = -1; |
| 588 var maxTime = -1; | 582 var maxTime = -1; |
| 589 var nodes = this._nodesByRequestId.valuesArray(); | 583 var nodes = this._nodesByRequestId.valuesArray(); |
| 590 for (var i = 0; i < nodes.length; ++i) { | 584 for (var i = 0; i < nodes.length; ++i) { |
| 591 var request = nodes[i].request(); | 585 var request = nodes[i].request(); |
| 592 var requestTransferSize = request.transferSize; | 586 var requestTransferSize = request.transferSize; |
| 593 transferSize += requestTransferSize; | 587 transferSize += requestTransferSize; |
| 594 if (!nodes[i]._isFilteredOut) { | 588 if (!nodes[i][WebInspector.NetworkLogView._isFilteredOutSymbol]) { |
| 595 selectedRequestsNumber++; | 589 selectedRequestsNumber++; |
| 596 selectedTransferSize += requestTransferSize; | 590 selectedTransferSize += requestTransferSize; |
| 597 } | 591 } |
| 598 if (request.url === request.target().resourceTreeModel.inspectedPage
URL()) | 592 if (request.url === request.target().resourceTreeModel.inspectedPage
URL()) |
| 599 baseTime = request.startTime; | 593 baseTime = request.startTime; |
| 600 if (request.endTime > maxTime) | 594 if (request.endTime > maxTime) |
| 601 maxTime = request.endTime; | 595 maxTime = request.endTime; |
| 602 } | 596 } |
| 603 var text = ""; | 597 var text = ""; |
| 604 if (selectedRequestsNumber !== requestsNumber) { | 598 if (selectedRequestsNumber !== requestsNumber) { |
| (...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 789 boundariesChanged = calculator.updateBoundariesForEventTime(this._ma
inRequestDOMContentLoadedTime) || boundariesChanged; | 783 boundariesChanged = calculator.updateBoundariesForEventTime(this._ma
inRequestDOMContentLoadedTime) || boundariesChanged; |
| 790 } | 784 } |
| 791 | 785 |
| 792 var dataGrid = this._dataGrid; | 786 var dataGrid = this._dataGrid; |
| 793 var rootNode = dataGrid.rootNode(); | 787 var rootNode = dataGrid.rootNode(); |
| 794 var nodesToInsert = []; | 788 var nodesToInsert = []; |
| 795 for (var requestId in this._staleRequestIds) { | 789 for (var requestId in this._staleRequestIds) { |
| 796 var node = this._nodesByRequestId.get(requestId); | 790 var node = this._nodesByRequestId.get(requestId); |
| 797 if (!node) | 791 if (!node) |
| 798 continue; | 792 continue; |
| 799 if (!node._isFilteredOut) | 793 if (!node[WebInspector.NetworkLogView._isFilteredOutSymbol]) |
| 800 rootNode.removeChild(node); | 794 rootNode.removeChild(node); |
| 801 node._isFilteredOut = !this._applyFilter(node); | 795 node[WebInspector.NetworkLogView._isFilteredOutSymbol] = !this._appl
yFilter(node); |
| 802 if (!node._isFilteredOut) | 796 if (!node[WebInspector.NetworkLogView._isFilteredOutSymbol]) |
| 803 nodesToInsert.push(node); | 797 nodesToInsert.push(node); |
| 804 } | 798 } |
| 805 | 799 |
| 806 for (var i = 0; i < nodesToInsert.length; ++i) { | 800 for (var i = 0; i < nodesToInsert.length; ++i) { |
| 807 var node = nodesToInsert[i]; | 801 var node = nodesToInsert[i]; |
| 808 var request = node.request(); | 802 var request = node.request(); |
| 809 node.refresh(); | 803 node.refresh(); |
| 810 dataGrid.insertChild(node); | 804 dataGrid.insertChild(node); |
| 811 node._isMatchingSearchQuery = this._matchRequest(request); | 805 node[WebInspector.NetworkLogView._isMatchingSearchQuerySymbol] = thi
s._matchRequest(request); |
| 812 if (calculator.updateBoundaries(request)) | 806 if (calculator.updateBoundaries(request)) |
| 813 boundariesChanged = true; | 807 boundariesChanged = true; |
| 814 } | 808 } |
| 815 | 809 |
| 816 this._highlightNthMatchedRequestForSearch(this._updateMatchCountAndFindM
atchIndex(this._currentMatchedRequestNode), false); | 810 this._highlightNthMatchedRequestForSearch(this._updateMatchCountAndFindM
atchIndex(this._currentMatchedRequestNode), false); |
| 817 | 811 |
| 818 if (boundariesChanged) { | 812 if (boundariesChanged) { |
| 819 // The boundaries changed, so all item graphs are stale. | 813 // The boundaries changed, so all item graphs are stale. |
| 820 this._updateDividersIfNeeded(); | 814 this._updateDividersIfNeeded(); |
| 821 var nodes = this._nodesByRequestId.valuesArray(); | 815 var nodes = this._nodesByRequestId.valuesArray(); |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 882 this._appendRequest(request); | 876 this._appendRequest(request); |
| 883 } | 877 } |
| 884 }, | 878 }, |
| 885 | 879 |
| 886 /** | 880 /** |
| 887 * @param {!WebInspector.NetworkRequest} request | 881 * @param {!WebInspector.NetworkRequest} request |
| 888 */ | 882 */ |
| 889 _appendRequest: function(request) | 883 _appendRequest: function(request) |
| 890 { | 884 { |
| 891 var node = new WebInspector.NetworkDataGridNode(this, request); | 885 var node = new WebInspector.NetworkDataGridNode(this, request); |
| 886 node[WebInspector.NetworkLogView._isFilteredOutSymbol] = true; |
| 887 node[WebInspector.NetworkLogView._isMatchingSearchQuerySymbol] = false; |
| 892 | 888 |
| 893 // In case of redirect request id is reassigned to a redirected | 889 // In case of redirect request id is reassigned to a redirected |
| 894 // request and we need to update _nodesByRequestId and search results. | 890 // request and we need to update _nodesByRequestId and search results. |
| 895 var originalRequestNode = this._nodesByRequestId.get(request.requestId); | 891 var originalRequestNode = this._nodesByRequestId.get(request.requestId); |
| 896 if (originalRequestNode) | 892 if (originalRequestNode) |
| 897 this._nodesByRequestId.set(originalRequestNode.request().requestId,
originalRequestNode); | 893 this._nodesByRequestId.set(originalRequestNode.request().requestId,
originalRequestNode); |
| 898 this._nodesByRequestId.set(request.requestId, node); | 894 this._nodesByRequestId.set(request.requestId, node); |
| 899 | 895 |
| 900 // Pull all the redirects of the main request upon commit load. | 896 // Pull all the redirects of the main request upon commit load. |
| 901 if (request.redirects) { | 897 if (request.redirects) { |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 974 requestsToPick.push(request); | 970 requestsToPick.push(request); |
| 975 } | 971 } |
| 976 | 972 |
| 977 this._reset(); | 973 this._reset(); |
| 978 | 974 |
| 979 for (var i = 0; i < requestsToPick.length; ++i) | 975 for (var i = 0; i < requestsToPick.length; ++i) |
| 980 this._appendRequest(requestsToPick[i]); | 976 this._appendRequest(requestsToPick[i]); |
| 981 }, | 977 }, |
| 982 | 978 |
| 983 /** | 979 /** |
| 984 * @param {boolean} detailed | 980 * @param {boolean} gridMode |
| 985 */ | 981 */ |
| 986 switchViewMode: function(detailed) | 982 switchViewMode: function(gridMode) |
| 987 { | 983 { |
| 988 if (this._detailedMode === detailed) | 984 if (this._gridMode === gridMode) |
| 989 return; | 985 return; |
| 990 this._detailedMode = detailed; | 986 this._gridMode = gridMode; |
| 991 | 987 |
| 992 if (detailed) { | 988 if (gridMode) { |
| 993 if (this._dataGrid.selectedNode) | 989 if (this._dataGrid.selectedNode) |
| 994 this._dataGrid.selectedNode.selected = false; | 990 this._dataGrid.selectedNode.selected = false; |
| 995 } else { | 991 } else { |
| 996 this._removeAllNodeHighlights(); | 992 this._removeAllNodeHighlights(); |
| 997 this._popoverHelper.hidePopover(); | 993 this._popoverHelper.hidePopover(); |
| 998 } | 994 } |
| 999 | 995 |
| 1000 this.element.classList.toggle("brief-mode", !detailed); | 996 this.element.classList.toggle("brief-mode", !gridMode); |
| 1001 this._updateColumns(); | 997 this._updateColumns(); |
| 1002 }, | 998 }, |
| 1003 | 999 |
| 1004 _toggleLargerRequests: function() | 1000 _toggleLargerRequests: function() |
| 1005 { | 1001 { |
| 1006 WebInspector.settings.resourcesLargeRows.set(!WebInspector.settings.reso
urcesLargeRows.get()); | 1002 WebInspector.settings.resourcesLargeRows.set(!WebInspector.settings.reso
urcesLargeRows.get()); |
| 1007 this._updateRowsSize(); | 1003 this._updateRowsSize(); |
| 1008 }, | 1004 }, |
| 1009 | 1005 |
| 1010 /** | 1006 /** |
| (...skipping 15 matching lines...) Expand all Loading... |
| 1026 this.dispatchEventToListeners(WebInspector.NetworkLogView.EventTypes.Row
SizeChanged, { largeRows: largeRows }); | 1022 this.dispatchEventToListeners(WebInspector.NetworkLogView.EventTypes.Row
SizeChanged, { largeRows: largeRows }); |
| 1027 }, | 1023 }, |
| 1028 | 1024 |
| 1029 /** | 1025 /** |
| 1030 * @param {!Element} element | 1026 * @param {!Element} element |
| 1031 * @param {!Event} event | 1027 * @param {!Event} event |
| 1032 * @return {!Element|!AnchorBox|undefined} | 1028 * @return {!Element|!AnchorBox|undefined} |
| 1033 */ | 1029 */ |
| 1034 _getPopoverAnchor: function(element, event) | 1030 _getPopoverAnchor: function(element, event) |
| 1035 { | 1031 { |
| 1036 if (!this._allowPopover) | 1032 if (!this._gridMode) |
| 1037 return; | 1033 return; |
| 1038 var anchor = element.enclosingNodeOrSelfWithClass("network-graph-bar") |
| element.enclosingNodeOrSelfWithClass("network-graph-label"); | 1034 var anchor = element.enclosingNodeOrSelfWithClass("network-graph-bar") |
| element.enclosingNodeOrSelfWithClass("network-graph-label"); |
| 1039 if (anchor && anchor.parentElement.request && anchor.parentElement.reque
st.timing) | 1035 if (anchor && anchor.parentElement.request && anchor.parentElement.reque
st.timing) |
| 1040 return anchor; | 1036 return anchor; |
| 1041 anchor = element.enclosingNodeOrSelfWithClass("network-script-initiated"
); | 1037 anchor = element.enclosingNodeOrSelfWithClass("network-script-initiated"
); |
| 1042 if (anchor && anchor.request) { | 1038 if (anchor && anchor.request) { |
| 1043 var request = /** @type {!WebInspector.NetworkRequest} */ (anchor.re
quest); | 1039 var request = /** @type {!WebInspector.NetworkRequest} */ (anchor.re
quest); |
| 1044 var initiator = anchor.request.initiator(); | 1040 var initiator = anchor.request.initiator(); |
| 1045 if (initiator && (initiator.stackTrace || initiator.asyncStackTrace)
) | 1041 if (initiator && (initiator.stackTrace || initiator.asyncStackTrace)
) |
| 1046 return anchor; | 1042 return anchor; |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1109 row.createChild("td"); | 1105 row.createChild("td"); |
| 1110 appendStackTrace.call(this, callFrames); | 1106 appendStackTrace.call(this, callFrames); |
| 1111 asyncStackTrace = asyncStackTrace.asyncStackTrace; | 1107 asyncStackTrace = asyncStackTrace.asyncStackTrace; |
| 1112 } | 1108 } |
| 1113 | 1109 |
| 1114 return framesTable; | 1110 return framesTable; |
| 1115 }, | 1111 }, |
| 1116 | 1112 |
| 1117 _updateColumns: function() | 1113 _updateColumns: function() |
| 1118 { | 1114 { |
| 1119 var detailedMode = !!this._detailedMode; | 1115 var gridMode = this._gridMode; |
| 1120 var visibleColumns = {"name": true}; | 1116 var visibleColumns = {"name": true}; |
| 1121 if (detailedMode) { | 1117 if (gridMode) { |
| 1122 visibleColumns["timeline"] = true; | 1118 visibleColumns["timeline"] = true; |
| 1123 var columnsVisibility = this._coulmnsVisibilitySetting.get(); | 1119 var columnsVisibility = this._coulmnsVisibilitySetting.get(); |
| 1124 for (var columnIdentifier in columnsVisibility) | 1120 for (var columnIdentifier in columnsVisibility) |
| 1125 visibleColumns[columnIdentifier] = columnsVisibility[columnIdent
ifier]; | 1121 visibleColumns[columnIdentifier] = columnsVisibility[columnIdent
ifier]; |
| 1126 } | 1122 } |
| 1127 | 1123 |
| 1128 this._dataGrid.setColumnsVisiblity(visibleColumns); | 1124 this._dataGrid.setColumnsVisiblity(visibleColumns); |
| 1129 }, | 1125 }, |
| 1130 | 1126 |
| 1131 /** | 1127 /** |
| (...skipping 27 matching lines...) Expand all Loading... |
| 1159 return this._configurableColumnIDs; | 1155 return this._configurableColumnIDs; |
| 1160 }, | 1156 }, |
| 1161 | 1157 |
| 1162 /** | 1158 /** |
| 1163 * @param {!Event} event | 1159 * @param {!Event} event |
| 1164 */ | 1160 */ |
| 1165 _contextMenu: function(event) | 1161 _contextMenu: function(event) |
| 1166 { | 1162 { |
| 1167 var contextMenu = new WebInspector.ContextMenu(event); | 1163 var contextMenu = new WebInspector.ContextMenu(event); |
| 1168 | 1164 |
| 1169 if (this._detailedMode && event.target.isSelfOrDescendant(this._dataGrid
.headerTableBody)) { | 1165 if (this._gridMode && event.target.isSelfOrDescendant(this._dataGrid.hea
derTableBody)) { |
| 1170 var columnsVisibility = this._coulmnsVisibilitySetting.get(); | 1166 var columnsVisibility = this._coulmnsVisibilitySetting.get(); |
| 1171 var columnIDs = this._getConfigurableColumnIDs(); | 1167 var columnIDs = this._getConfigurableColumnIDs(); |
| 1172 var columnTitles = WebInspector.NetworkLogView._columnTitles; | 1168 var columnTitles = WebInspector.NetworkLogView._columnTitles; |
| 1173 for (var i = 0; i < columnIDs.length; ++i) { | 1169 for (var i = 0; i < columnIDs.length; ++i) { |
| 1174 var columnIdentifier = columnIDs[i]; | 1170 var columnIdentifier = columnIDs[i]; |
| 1175 contextMenu.appendCheckboxItem(columnTitles[columnIdentifier], t
his._toggleColumnVisibility.bind(this, columnIdentifier), !!columnsVisibility[co
lumnIdentifier]); | 1171 contextMenu.appendCheckboxItem(columnTitles[columnIdentifier], t
his._toggleColumnVisibility.bind(this, columnIdentifier), !!columnsVisibility[co
lumnIdentifier]); |
| 1176 } | 1172 } |
| 1177 contextMenu.show(); | 1173 contextMenu.show(); |
| 1178 return; | 1174 return; |
| 1179 } | 1175 } |
| (...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1350 */ | 1346 */ |
| 1351 _highlightNthMatchedRequestForSearch: function(n, reveal) | 1347 _highlightNthMatchedRequestForSearch: function(n, reveal) |
| 1352 { | 1348 { |
| 1353 this._removeAllHighlights(); | 1349 this._removeAllHighlights(); |
| 1354 | 1350 |
| 1355 /** @type {!Array.<!WebInspector.NetworkDataGridNode>} */ | 1351 /** @type {!Array.<!WebInspector.NetworkDataGridNode>} */ |
| 1356 var nodes = this._dataGrid.rootNode().children; | 1352 var nodes = this._dataGrid.rootNode().children; |
| 1357 var matchCount = 0; | 1353 var matchCount = 0; |
| 1358 var node = null; | 1354 var node = null; |
| 1359 for (var i = 0; i < nodes.length; ++i) { | 1355 for (var i = 0; i < nodes.length; ++i) { |
| 1360 if (nodes[i]._isMatchingSearchQuery) { | 1356 if (nodes[i][WebInspector.NetworkLogView._isMatchingSearchQuerySymbo
l]) { |
| 1361 if (matchCount === n) { | 1357 if (matchCount === n) { |
| 1362 node = nodes[i]; | 1358 node = nodes[i]; |
| 1363 break; | 1359 break; |
| 1364 } | 1360 } |
| 1365 matchCount++; | 1361 matchCount++; |
| 1366 } | 1362 } |
| 1367 } | 1363 } |
| 1368 if (!node) { | 1364 if (!node) { |
| 1369 this._currentMatchedRequestNode = null; | 1365 this._currentMatchedRequestNode = null; |
| 1370 return; | 1366 return; |
| (...skipping 23 matching lines...) Expand all Loading... |
| 1394 performSearch: function(searchConfig, shouldJump, jumpBackwards) | 1390 performSearch: function(searchConfig, shouldJump, jumpBackwards) |
| 1395 { | 1391 { |
| 1396 var query = searchConfig.query; | 1392 var query = searchConfig.query; |
| 1397 var currentMatchedRequestNode = this._currentMatchedRequestNode; | 1393 var currentMatchedRequestNode = this._currentMatchedRequestNode; |
| 1398 this._clearSearchMatchedList(); | 1394 this._clearSearchMatchedList(); |
| 1399 this._searchRegExp = createPlainTextSearchRegex(query, "i"); | 1395 this._searchRegExp = createPlainTextSearchRegex(query, "i"); |
| 1400 | 1396 |
| 1401 /** @type {!Array.<!WebInspector.NetworkDataGridNode>} */ | 1397 /** @type {!Array.<!WebInspector.NetworkDataGridNode>} */ |
| 1402 var nodes = this._dataGrid.rootNode().children; | 1398 var nodes = this._dataGrid.rootNode().children; |
| 1403 for (var i = 0; i < nodes.length; ++i) | 1399 for (var i = 0; i < nodes.length; ++i) |
| 1404 nodes[i]._isMatchingSearchQuery = this._matchRequest(nodes[i].reques
t()); | 1400 nodes[i][WebInspector.NetworkLogView._isMatchingSearchQuerySymbol] =
this._matchRequest(nodes[i].request()); |
| 1405 var newMatchedRequestIndex = this._updateMatchCountAndFindMatchIndex(cur
rentMatchedRequestNode); | 1401 var newMatchedRequestIndex = this._updateMatchCountAndFindMatchIndex(cur
rentMatchedRequestNode); |
| 1406 if (!newMatchedRequestIndex && jumpBackwards) | 1402 if (!newMatchedRequestIndex && jumpBackwards) |
| 1407 newMatchedRequestIndex = this._matchedRequestCount - 1; | 1403 newMatchedRequestIndex = this._matchedRequestCount - 1; |
| 1408 this._highlightNthMatchedRequestForSearch(newMatchedRequestIndex, should
Jump); | 1404 this._highlightNthMatchedRequestForSearch(newMatchedRequestIndex, should
Jump); |
| 1409 }, | 1405 }, |
| 1410 | 1406 |
| 1411 /** | 1407 /** |
| 1412 * @return {boolean} | 1408 * @return {boolean} |
| 1413 */ | 1409 */ |
| 1414 supportsCaseSensitiveSearch: function() | 1410 supportsCaseSensitiveSearch: function() |
| (...skipping 13 matching lines...) Expand all Loading... |
| 1428 * @param {?WebInspector.NetworkDataGridNode} node | 1424 * @param {?WebInspector.NetworkDataGridNode} node |
| 1429 * @return {number} | 1425 * @return {number} |
| 1430 */ | 1426 */ |
| 1431 _updateMatchCountAndFindMatchIndex: function(node) | 1427 _updateMatchCountAndFindMatchIndex: function(node) |
| 1432 { | 1428 { |
| 1433 /** @type {!Array.<!WebInspector.NetworkDataGridNode>} */ | 1429 /** @type {!Array.<!WebInspector.NetworkDataGridNode>} */ |
| 1434 var nodes = this._dataGrid.rootNode().children; | 1430 var nodes = this._dataGrid.rootNode().children; |
| 1435 var matchCount = 0; | 1431 var matchCount = 0; |
| 1436 var matchIndex = 0; | 1432 var matchIndex = 0; |
| 1437 for (var i = 0; i < nodes.length; ++i) { | 1433 for (var i = 0; i < nodes.length; ++i) { |
| 1438 if (!nodes[i]._isMatchingSearchQuery) | 1434 if (!nodes[i][WebInspector.NetworkLogView._isMatchingSearchQuerySymb
ol]) |
| 1439 continue; | 1435 continue; |
| 1440 if (node === nodes[i]) | 1436 if (node === nodes[i]) |
| 1441 matchIndex = matchCount; | 1437 matchIndex = matchCount; |
| 1442 matchCount++; | 1438 matchCount++; |
| 1443 } | 1439 } |
| 1444 if (this._matchedRequestCount !== matchCount) { | 1440 if (this._matchedRequestCount !== matchCount) { |
| 1445 this._matchedRequestCount = matchCount; | 1441 this._matchedRequestCount = matchCount; |
| 1446 this.dispatchEventToListeners(WebInspector.NetworkLogView.EventTypes
.SearchCountUpdated, matchCount); | 1442 this.dispatchEventToListeners(WebInspector.NetworkLogView.EventTypes
.SearchCountUpdated, matchCount); |
| 1447 } | 1443 } |
| 1448 return matchIndex; | 1444 return matchIndex; |
| (...skipping 654 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2103 | 2099 |
| 2104 _toggleGridMode: function() | 2100 _toggleGridMode: function() |
| 2105 { | 2101 { |
| 2106 if (this._viewingRequestMode) { | 2102 if (this._viewingRequestMode) { |
| 2107 this._viewingRequestMode = false; | 2103 this._viewingRequestMode = false; |
| 2108 this.element.classList.remove("viewing-resource"); | 2104 this.element.classList.remove("viewing-resource"); |
| 2109 this._splitView.hideMain(); | 2105 this._splitView.hideMain(); |
| 2110 } | 2106 } |
| 2111 | 2107 |
| 2112 this._networkLogView.switchViewMode(true); | 2108 this._networkLogView.switchViewMode(true); |
| 2113 this._networkLogView.setAllowPopover(true); | |
| 2114 this._networkLogView._allowRequestSelection = false; | |
| 2115 }, | 2109 }, |
| 2116 | 2110 |
| 2117 _toggleViewingRequestMode: function() | 2111 _toggleViewingRequestMode: function() |
| 2118 { | 2112 { |
| 2119 if (this._viewingRequestMode) | 2113 if (this._viewingRequestMode) |
| 2120 return; | 2114 return; |
| 2121 this._viewingRequestMode = true; | 2115 this._viewingRequestMode = true; |
| 2122 | 2116 |
| 2123 this.element.classList.add("viewing-resource"); | 2117 this.element.classList.add("viewing-resource"); |
| 2124 this._splitView.showBoth(); | 2118 this._splitView.showBoth(); |
| 2125 this._networkLogView.setAllowPopover(false); | |
| 2126 this._networkLogView._allowRequestSelection = true; | |
| 2127 this._networkLogView.switchViewMode(false); | 2119 this._networkLogView.switchViewMode(false); |
| 2128 }, | 2120 }, |
| 2129 | 2121 |
| 2130 /** | 2122 /** |
| 2131 * @param {!WebInspector.SearchableView.SearchConfig} searchConfig | 2123 * @param {!WebInspector.SearchableView.SearchConfig} searchConfig |
| 2132 * @param {boolean} shouldJump | 2124 * @param {boolean} shouldJump |
| 2133 * @param {boolean=} jumpBackwards | 2125 * @param {boolean=} jumpBackwards |
| 2134 */ | 2126 */ |
| 2135 performSearch: function(searchConfig, shouldJump, jumpBackwards) | 2127 performSearch: function(searchConfig, shouldJump, jumpBackwards) |
| 2136 { | 2128 { |
| (...skipping 468 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2605 * @extends {WebInspector.SortableDataGridNode} | 2597 * @extends {WebInspector.SortableDataGridNode} |
| 2606 * @param {!WebInspector.NetworkLogView} parentView | 2598 * @param {!WebInspector.NetworkLogView} parentView |
| 2607 * @param {!WebInspector.NetworkRequest} request | 2599 * @param {!WebInspector.NetworkRequest} request |
| 2608 */ | 2600 */ |
| 2609 WebInspector.NetworkDataGridNode = function(parentView, request) | 2601 WebInspector.NetworkDataGridNode = function(parentView, request) |
| 2610 { | 2602 { |
| 2611 WebInspector.SortableDataGridNode.call(this, {}); | 2603 WebInspector.SortableDataGridNode.call(this, {}); |
| 2612 this._parentView = parentView; | 2604 this._parentView = parentView; |
| 2613 this._request = request; | 2605 this._request = request; |
| 2614 this._linkifier = new WebInspector.Linkifier(); | 2606 this._linkifier = new WebInspector.Linkifier(); |
| 2615 this._isFilteredOut = true; | |
| 2616 this._isMatchingSearchQuery = false; | |
| 2617 this._staleGraph = true; | 2607 this._staleGraph = true; |
| 2618 } | 2608 } |
| 2619 | 2609 |
| 2620 WebInspector.NetworkDataGridNode._hoveredRowSymbol = Symbol("hoveredRow"); | 2610 WebInspector.NetworkDataGridNode._hoveredRowSymbol = Symbol("hoveredRow"); |
| 2621 | 2611 |
| 2622 WebInspector.NetworkDataGridNode.prototype = { | 2612 WebInspector.NetworkDataGridNode.prototype = { |
| 2623 /** | 2613 /** |
| 2624 * @return {!WebInspector.NetworkRequest} | 2614 * @return {!WebInspector.NetworkRequest} |
| 2625 */ | 2615 */ |
| 2626 request: function() | 2616 request: function() |
| (...skipping 675 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3302 this._writeProgress.done(); | 3292 this._writeProgress.done(); |
| 3303 return; | 3293 return; |
| 3304 } | 3294 } |
| 3305 const chunkSize = 100000; | 3295 const chunkSize = 100000; |
| 3306 var text = this._text.substring(this._bytesWritten, this._bytesWritten +
chunkSize); | 3296 var text = this._text.substring(this._bytesWritten, this._bytesWritten +
chunkSize); |
| 3307 this._bytesWritten += text.length; | 3297 this._bytesWritten += text.length; |
| 3308 stream.write(text, this._writeNextChunk.bind(this)); | 3298 stream.write(text, this._writeNextChunk.bind(this)); |
| 3309 this._writeProgress.setWorked(this._bytesWritten); | 3299 this._writeProgress.setWorked(this._bytesWritten); |
| 3310 } | 3300 } |
| 3311 } | 3301 } |
| OLD | NEW |