| Index: third_party/WebKit/Source/devtools/front_end/network_log/NetworkLog.js
|
| diff --git a/third_party/WebKit/Source/devtools/front_end/network_log/NetworkLog.js b/third_party/WebKit/Source/devtools/front_end/network_log/NetworkLog.js
|
| index 96edf0421fd3486132dffa8184e96b66ab764f75..55d223b3a10a3d7e79c488d5f28344849cf474bd 100644
|
| --- a/third_party/WebKit/Source/devtools/front_end/network_log/NetworkLog.js
|
| +++ b/third_party/WebKit/Source/devtools/front_end/network_log/NetworkLog.js
|
| @@ -38,10 +38,8 @@ NetworkLog.NetworkLog = class extends Common.Object {
|
| this._requests = [];
|
| /** @type {!Set<!SDK.NetworkRequest>} */
|
| this._requestsSet = new Set();
|
| - /** @type {!Map<!SDK.NetworkManager, !Map<string, !SDK.NetworkRequest>>} */
|
| - this._requestsByManagerAndId = new Map();
|
| /** @type {!Map<!SDK.NetworkManager, !NetworkLog.PageLoad>} */
|
| - this._currentPageLoad = new Map();
|
| + this._pageLoadForManager = new Map();
|
| this._isRecording = true;
|
| SDK.targetManager.observeModels(SDK.NetworkManager, this);
|
| }
|
| @@ -73,7 +71,6 @@ NetworkLog.NetworkLog = class extends Common.Object {
|
| }
|
|
|
| networkManager[NetworkLog.NetworkLog._events] = eventListeners;
|
| - this._requestsByManagerAndId.set(networkManager, new Map());
|
| }
|
|
|
| /**
|
| @@ -81,7 +78,6 @@ NetworkLog.NetworkLog = class extends Common.Object {
|
| * @param {!SDK.NetworkManager} networkManager
|
| */
|
| modelRemoved(networkManager) {
|
| - this._requestsByManagerAndId.delete(networkManager);
|
| Common.EventTarget.removeEventListeners(networkManager[NetworkLog.NetworkLog._events]);
|
| }
|
|
|
| @@ -113,11 +109,17 @@ NetworkLog.NetworkLog = class extends Common.Object {
|
|
|
| /**
|
| * @param {!SDK.NetworkManager} networkManager
|
| - * @return {!Array<!SDK.NetworkRequest>}
|
| + * @param {!Protocol.Network.RequestId} requestId
|
| + * @return {?SDK.NetworkRequest}
|
| */
|
| - requestsForManager(networkManager) {
|
| - var map = this._requestsByManagerAndId.get(networkManager);
|
| - return map ? Array.from(map.values()) : [];
|
| + requestByManagerAndId(networkManager, requestId) {
|
| + // We itterate backwards because the last item will likely be the one needed for console network request lookups.
|
| + for (var i = this._requests.length - 1; i >= 0; i--) {
|
| + var request = this._requests[i];
|
| + if (requestId === request.requestId() && networkManager === SDK.NetworkManager.managerForRequest(request))
|
| + return request;
|
| + }
|
| + return null;
|
| }
|
|
|
| /**
|
| @@ -126,11 +128,8 @@ NetworkLog.NetworkLog = class extends Common.Object {
|
| * @return {?SDK.NetworkRequest}
|
| */
|
| _requestByManagerAndURL(networkManager, url) {
|
| - var map = this._requestsByManagerAndId.get(networkManager);
|
| - if (!map)
|
| - return null;
|
| - for (var request of map.values()) {
|
| - if (request.url() === url)
|
| + for (var request of this._requests) {
|
| + if (url === request.url() && networkManager === SDK.NetworkManager.managerForRequest(request))
|
| return request;
|
| }
|
| return null;
|
| @@ -204,12 +203,11 @@ NetworkLog.NetworkLog = class extends Common.Object {
|
| initiatorGraphForRequest(request) {
|
| /** @type {!Set<!SDK.NetworkRequest>} */
|
| var initiated = new Set();
|
| - var map = this._requestsByManagerAndId.get(request.networkManager());
|
| - if (map) {
|
| - for (var otherRequest of map.values()) {
|
| - if (this._initiatorChain(otherRequest).has(request))
|
| - initiated.add(otherRequest);
|
| - }
|
| + var networkManager = SDK.NetworkManager.managerForRequest(request);
|
| + for (var otherRequest of this._requests) {
|
| + var otherRequestManager = SDK.NetworkManager.managerForRequest(request);
|
| + if (networkManager === otherRequestManager && this._initiatorChain(otherRequest).has(request))
|
| + initiated.add(otherRequest);
|
| }
|
| return {initiators: this._initiatorChain(request), initiated: initiated};
|
| }
|
| @@ -245,8 +243,9 @@ NetworkLog.NetworkLog = class extends Common.Object {
|
| if (request[NetworkLog.NetworkLog._initiatorDataSymbol].request !== undefined)
|
| return request[NetworkLog.NetworkLog._initiatorDataSymbol].request;
|
| var url = this.initiatorInfoForRequest(request).url;
|
| + var networkManager = SDK.NetworkManager.managerForRequest(request);
|
| request[NetworkLog.NetworkLog._initiatorDataSymbol].request =
|
| - this._requestByManagerAndURL(request.networkManager(), url);
|
| + networkManager ? this._requestByManagerAndURL(networkManager, url) : null;
|
| return request[NetworkLog.NetworkLog._initiatorDataSymbol].request;
|
| }
|
|
|
| @@ -270,16 +269,16 @@ NetworkLog.NetworkLog = class extends Common.Object {
|
| if (!this._isRecording)
|
| return;
|
| var mainFrame = /** @type {!SDK.ResourceTreeFrame} */ (event.data);
|
| - var networkManager = mainFrame.resourceTreeModel().target().model(SDK.NetworkManager);
|
| - if (!networkManager)
|
| + var manager = mainFrame.resourceTreeModel().target().model(SDK.NetworkManager);
|
| + if (!manager)
|
| return;
|
|
|
| - var oldRequests = this.requestsForManager(networkManager);
|
| + var oldRequests = this._requests;
|
| if (!Common.moduleSetting('network_log.preserve-log').get()) {
|
| var filteredRequests = [];
|
| var removedRequests = [];
|
| for (var request of this._requests) {
|
| - if (request.networkManager() !== networkManager)
|
| + if (SDK.NetworkManager.managerForRequest(request) !== manager)
|
| filteredRequests.push(request);
|
| else
|
| removedRequests.push(request);
|
| @@ -289,25 +288,21 @@ NetworkLog.NetworkLog = class extends Common.Object {
|
| for (var request of removedRequests)
|
| this.dispatchEventToListeners(NetworkLog.NetworkLog.Events.RequestRemoved, request);
|
| }
|
| - var idMap = new Map();
|
| - this._requestsByManagerAndId.set(networkManager, idMap);
|
|
|
| // Preserve requests from the new session.
|
| var currentPageLoad = null;
|
| - for (var i = 0; i < oldRequests.length; ++i) {
|
| - var request = oldRequests[i];
|
| - if (request.loaderId === mainFrame.loaderId) {
|
| - if (!currentPageLoad)
|
| - currentPageLoad = new NetworkLog.PageLoad(request);
|
| - this._requests.push(request);
|
| - this._requestsSet.add(request);
|
| - this.dispatchEventToListeners(NetworkLog.NetworkLog.Events.RequestAdded, request);
|
| - idMap.set(request.requestId(), request);
|
| - request[NetworkLog.NetworkLog._pageLoadForRequestSymbol] = currentPageLoad;
|
| - }
|
| + for (var request of oldRequests) {
|
| + if (request.loaderId !== mainFrame.loaderId)
|
| + continue;
|
| + if (!currentPageLoad)
|
| + currentPageLoad = new NetworkLog.PageLoad(request);
|
| + this._requests.push(request);
|
| + this._requestsSet.add(request);
|
| + this.dispatchEventToListeners(NetworkLog.NetworkLog.Events.RequestAdded, request);
|
| + request[NetworkLog.NetworkLog._pageLoadForRequestSymbol] = currentPageLoad;
|
| }
|
| if (currentPageLoad)
|
| - this._currentPageLoad.set(networkManager, currentPageLoad);
|
| + this._pageLoadForManager.set(manager, currentPageLoad);
|
| }
|
|
|
| /**
|
| @@ -319,8 +314,9 @@ NetworkLog.NetworkLog = class extends Common.Object {
|
| var request = /** @type {!SDK.NetworkRequest} */ (event.data);
|
| this._requests.push(request);
|
| this._requestsSet.add(request);
|
| - this._requestsByManagerAndId.get(request.networkManager()).set(request.requestId(), request);
|
| - request[NetworkLog.NetworkLog._pageLoadForRequestSymbol] = this._currentPageLoad.get(request.networkManager());
|
| + var manager = SDK.NetworkManager.managerForRequest(request);
|
| + if (manager)
|
| + request[NetworkLog.NetworkLog._pageLoadForRequestSymbol] = this._pageLoadForManager.get(manager);
|
| this.dispatchEventToListeners(NetworkLog.NetworkLog.Events.RequestAdded, request);
|
| }
|
|
|
| @@ -353,8 +349,8 @@ NetworkLog.NetworkLog = class extends Common.Object {
|
| _onDOMContentLoaded(resourceTreeModel, event) {
|
| if (!this._isRecording)
|
| return;
|
| - var networkManager = resourceTreeModel.target().model(SDK.NetworkManager);
|
| - var pageLoad = networkManager ? this._currentPageLoad.get(networkManager) : null;
|
| + var manager = resourceTreeModel.target().model(SDK.NetworkManager);
|
| + var pageLoad = manager ? this._pageLoadForManager.get(manager) : null;
|
| if (pageLoad)
|
| pageLoad.contentLoadTime = /** @type {number} */ (event.data);
|
| }
|
| @@ -365,30 +361,18 @@ NetworkLog.NetworkLog = class extends Common.Object {
|
| _onLoad(event) {
|
| if (!this._isRecording)
|
| return;
|
| - var networkManager = event.data.resourceTreeModel.target().model(SDK.NetworkManager);
|
| - var pageLoad = networkManager ? this._currentPageLoad.get(networkManager) : null;
|
| + var pageLoad = this._pageLoadForManager.get(event.data.resourceTreeModel.target().model(SDK.NetworkManager));
|
| if (pageLoad)
|
| pageLoad.loadTime = /** @type {number} */ (event.data.loadTime);
|
| }
|
|
|
| - /**
|
| - * @param {!SDK.NetworkManager} networkManager
|
| - * @param {!Protocol.Network.RequestId} requestId
|
| - * @return {?SDK.NetworkRequest}
|
| - */
|
| - requestForId(networkManager, requestId) {
|
| - var map = this._requestsByManagerAndId.get(networkManager);
|
| - return map ? (map.get(requestId) || null) : null;
|
| - }
|
| -
|
| reset() {
|
| this._requests = [];
|
| this._requestsSet.clear();
|
| - this._requestsByManagerAndId.forEach(map => map.clear());
|
| - var networkManagers = new Set(SDK.targetManager.models(SDK.NetworkManager));
|
| - for (var networkManager of this._currentPageLoad.keys()) {
|
| - if (!networkManagers.has(networkManager))
|
| - this._currentPageLoad.delete(networkManager);
|
| + var managers = new Set(SDK.targetManager.models(SDK.NetworkManager));
|
| + for (var manager of this._pageLoadForManager.keys()) {
|
| + if (!managers.has(manager))
|
| + this._pageLoadForManager.delete(manager);
|
| }
|
|
|
| this.dispatchEventToListeners(NetworkLog.NetworkLog.Events.Reset);
|
|
|