Index: third_party/WebKit/Source/devtools/front_end/sdk/NetworkManager.js |
diff --git a/third_party/WebKit/Source/devtools/front_end/sdk/NetworkManager.js b/third_party/WebKit/Source/devtools/front_end/sdk/NetworkManager.js |
index c6a3587ea25edc23cbdfe1500dc8b2b15d8d381f..64bbd62e9c75247ecefe8aa3f3a8b4e667dcb122 100644 |
--- a/third_party/WebKit/Source/devtools/front_end/sdk/NetworkManager.js |
+++ b/third_party/WebKit/Source/devtools/front_end/sdk/NetworkManager.js |
@@ -57,20 +57,31 @@ SDK.NetworkManager = class extends SDK.SDKModel { |
Common.moduleSetting('cacheDisabled').addChangeListener(this._cacheDisabledSettingChanged, this); |
} |
+ /** |
+ * @param {!SDK.NetworkRequest} request |
+ * @return {?SDK.NetworkManager} |
+ */ |
+ static forRequest(request) { |
+ return request[SDK.NetworkManager._networkManagerForRequestSymbol]; |
+ } |
+ |
/** |
* @param {!SDK.NetworkRequest} request |
* @return {boolean} |
*/ |
static canReplayRequest(request) { |
- return request.resourceType() === Common.resourceTypes.XHR; |
+ return !!request[SDK.NetworkManager._networkManagerForRequestSymbol] && |
+ request.resourceType() === Common.resourceTypes.XHR; |
} |
/** |
* @param {!SDK.NetworkRequest} request |
*/ |
static replayRequest(request) { |
- // TODO(allada) networkAgent() will be removed from NetworkRequest, but in the mean time we extract it from request. |
- request.networkManager()._networkAgent.replayXHR(request.requestId()); |
+ var manager = request[SDK.NetworkManager._networkManagerForRequestSymbol]; |
+ if (!manager) |
+ return; |
+ manager._networkAgent.replayXHR(request.requestId()); |
} |
/** |
@@ -82,7 +93,9 @@ SDK.NetworkManager = class extends SDK.SDKModel { |
return {error: 'Content for WebSockets is currently not supported', content: null, encoded: false}; |
if (!request.finished) |
await request.once(SDK.NetworkRequest.Events.FinishedLoading); |
- var manager = request.networkManager(); |
+ var manager = SDK.NetworkManager.forRequest(request); |
+ if (!manager) |
+ return {error: 'No network manager for request', content: null, encoded: false}; |
var response = await manager._networkAgent.invoke_getResponseBody({requestId: request.requestId()}); |
var error = response[Protocol.Error] || null; |
return {error: error, content: error ? null : response.body, encoded: response.base64Encoded}; |
@@ -189,12 +202,16 @@ SDK.NetworkManager.OfflineConditions = { |
/** @typedef {{url: string, enabled: boolean}} */ |
SDK.NetworkManager.BlockedPattern; |
+SDK.NetworkManager._networkManagerForRequestSymbol = Symbol('NetworkManager'); |
/** |
* @implements {Protocol.NetworkDispatcher} |
* @unrestricted |
*/ |
SDK.NetworkDispatcher = class { |
+ /** |
+ * @param {!SDK.NetworkManager} manager |
+ */ |
constructor(manager) { |
this._manager = manager; |
/** @type {!Object<!Protocol.Network.RequestId, !SDK.NetworkRequest>} */ |
@@ -488,7 +505,8 @@ SDK.NetworkDispatcher = class { |
* @param {!Protocol.Network.Initiator=} initiator |
*/ |
webSocketCreated(requestId, requestURL, initiator) { |
- var networkRequest = new SDK.NetworkRequest(this._manager, requestId, requestURL, '', '', '', initiator || null); |
+ var networkRequest = new SDK.NetworkRequest(requestId, requestURL, '', '', '', initiator || null); |
+ networkRequest[SDK.NetworkManager._networkManagerForRequestSymbol] = this._manager; |
networkRequest.setResourceType(Common.resourceTypes.WebSocket); |
this._startNetworkRequest(networkRequest); |
} |
@@ -700,7 +718,9 @@ SDK.NetworkDispatcher = class { |
* @param {?Protocol.Network.Initiator} initiator |
*/ |
_createNetworkRequest(requestId, frameId, loaderId, url, documentURL, initiator) { |
- return new SDK.NetworkRequest(this._manager, requestId, url, documentURL, frameId, loaderId, initiator); |
+ var request = new SDK.NetworkRequest(requestId, url, documentURL, frameId, loaderId, initiator); |
+ request[SDK.NetworkManager._networkManagerForRequestSymbol] = this._manager; |
+ return request; |
} |
}; |