From a5019ea69a4e94c095e2adc340494f873c8f7053 Mon Sep 17 00:00:00 2001 From: Dmitry Gozman Date: Thu, 23 Jan 2020 12:13:58 -0800 Subject: [PATCH] fix(api): remove remoteAddress from api (#601) --- docs/api.md | 6 ------ src/chromium/crNetworkManager.ts | 3 +-- src/firefox/ffNetworkManager.ts | 3 +-- src/network.ts | 13 +------------ src/webkit/wkInterceptableRequest.ts | 3 +-- test/network.spec.js | 7 +------ 6 files changed, 5 insertions(+), 30 deletions(-) diff --git a/docs/api.md b/docs/api.md index a2bc9b2c0b..b1f4d8df5f 100644 --- a/docs/api.md +++ b/docs/api.md @@ -2938,7 +2938,6 @@ ResourceType will be one of the following: `document`, `stylesheet`, `image`, `m - [response.headers()](#responseheaders) - [response.json()](#responsejson) - [response.ok()](#responseok) -- [response.remoteAddress()](#responseremoteaddress) - [response.request()](#responserequest) - [response.status()](#responsestatus) - [response.statusText()](#responsestatustext) @@ -2965,11 +2964,6 @@ This method will throw if the response body is not parsable via `JSON.parse`. Contains a boolean stating whether the response was successful (status in the range 200-299) or not. -#### response.remoteAddress() -- returns: <[Object]> - - `ip` <[string]> the IP address of the remote server - - `port` <[number]> the port used to connect to the remote server - #### response.request() - returns: <[Request]> A matching [Request] object. diff --git a/src/chromium/crNetworkManager.ts b/src/chromium/crNetworkManager.ts index 078ffd5767..2853f7c027 100644 --- a/src/chromium/crNetworkManager.ts +++ b/src/chromium/crNetworkManager.ts @@ -200,12 +200,11 @@ export class CRNetworkManager { } _createResponse(request: InterceptableRequest, responsePayload: Protocol.Network.Response): network.Response { - const remoteAddress: network.RemoteAddress = { ip: responsePayload.remoteIPAddress || '', port: responsePayload.remotePort || 0 }; const getResponseBody = async () => { const response = await this._client.send('Network.getResponseBody', { requestId: request._requestId }); return platform.Buffer.from(response.body, response.base64Encoded ? 'base64' : 'utf8'); }; - return new network.Response(request.request, responsePayload.status, responsePayload.statusText, headersObject(responsePayload.headers), remoteAddress, getResponseBody); + return new network.Response(request.request, responsePayload.status, responsePayload.statusText, headersObject(responsePayload.headers), getResponseBody); } _handleRequestRedirect(request: InterceptableRequest, responsePayload: Protocol.Network.Response) { diff --git a/src/firefox/ffNetworkManager.ts b/src/firefox/ffNetworkManager.ts index d16eb456de..c45b196af6 100644 --- a/src/firefox/ffNetworkManager.ts +++ b/src/firefox/ffNetworkManager.ts @@ -71,7 +71,6 @@ export class FFNetworkManager { const request = this._requests.get(event.requestId); if (!request) return; - const remoteAddress: network.RemoteAddress = { ip: event.remoteIPAddress || '', port: event.remotePort || 0 }; const getResponseBody = async () => { const response = await this._session.send('Network.getResponseBody', { requestId: request._id @@ -83,7 +82,7 @@ export class FFNetworkManager { const headers: network.Headers = {}; for (const {name, value} of event.headers) headers[name.toLowerCase()] = value; - const response = new network.Response(request.request, event.status, event.statusText, headers, remoteAddress, getResponseBody); + const response = new network.Response(request.request, event.status, event.statusText, headers, getResponseBody); this._page._frameManager.requestReceivedResponse(response); } diff --git a/src/network.ts b/src/network.ts index f3f553d51f..1f663dd436 100644 --- a/src/network.ts +++ b/src/network.ts @@ -218,11 +218,6 @@ export class Request { } } -export type RemoteAddress = { - ip: string, - port: number, -}; - type GetResponseBodyCallback = () => Promise; export class Response { @@ -230,20 +225,18 @@ export class Response { private _contentPromise: Promise | null = null; _finishedPromise: Promise; private _finishedPromiseCallback: any; - private _remoteAddress: RemoteAddress; private _status: number; private _statusText: string; private _url: string; private _headers: Headers; private _getResponseBodyCallback: GetResponseBodyCallback; - constructor(request: Request, status: number, statusText: string, headers: Headers, remoteAddress: RemoteAddress, getResponseBodyCallback: GetResponseBodyCallback) { + constructor(request: Request, status: number, statusText: string, headers: Headers, getResponseBodyCallback: GetResponseBodyCallback) { this._request = request; this._status = status; this._statusText = statusText; this._url = request.url(); this._headers = headers; - this._remoteAddress = remoteAddress; this._getResponseBodyCallback = getResponseBodyCallback; this._finishedPromise = new Promise(f => { this._finishedPromiseCallback = f; @@ -255,10 +248,6 @@ export class Response { this._finishedPromiseCallback.call(null, error); } - remoteAddress(): RemoteAddress { - return this._remoteAddress; - } - url(): string { return this._url; } diff --git a/src/webkit/wkInterceptableRequest.ts b/src/webkit/wkInterceptableRequest.ts index 7e279d92de..a860da39df 100644 --- a/src/webkit/wkInterceptableRequest.ts +++ b/src/webkit/wkInterceptableRequest.ts @@ -109,12 +109,11 @@ export class WKInterceptableRequest implements network.RequestDelegate { } createResponse(responsePayload: Protocol.Network.Response): network.Response { - const remoteAddress: network.RemoteAddress = { ip: '', port: 0 }; const getResponseBody = async () => { const response = await this._session.send('Network.getResponseBody', { requestId: this._requestId }); return platform.Buffer.from(response.body, response.base64Encoded ? 'base64' : 'utf8'); }; - return new network.Response(this.request, responsePayload.status, responsePayload.statusText, headersObject(responsePayload.headers), remoteAddress, getResponseBody); + return new network.Response(this.request, responsePayload.status, responsePayload.statusText, headersObject(responsePayload.headers), getResponseBody); } } diff --git a/test/network.spec.js b/test/network.spec.js index 3d5f22a9c2..544e45cc44 100644 --- a/test/network.spec.js +++ b/test/network.spec.js @@ -217,8 +217,7 @@ module.exports.describe = function({testRunner, expect, FFOX, CHROMIUM, WEBKIT}) expect(requests[0].frame() === page.mainFrame()).toBe(true); expect(requests[0].frame().url()).toBe(server.EMPTY_PAGE); }); - // FIXME: WebKit doesn't provide remoteIPAddress in the response. - it.skip(WEBKIT)('Page.Events.Response', async({page, server}) => { + it('Page.Events.Response', async({page, server}) => { const responses = []; page.on('response', response => responses.push(response)); await page.goto(server.EMPTY_PAGE); @@ -227,10 +226,6 @@ module.exports.describe = function({testRunner, expect, FFOX, CHROMIUM, WEBKIT}) expect(responses[0].status()).toBe(200); expect(responses[0].ok()).toBe(true); expect(responses[0].request()).toBeTruthy(); - const remoteAddress = responses[0].remoteAddress(); - // Either IPv6 or IPv4, depending on environment. - expect(remoteAddress.ip.includes('::1') || remoteAddress.ip === '127.0.0.1').toBe(true); - expect(remoteAddress.port).toBe(server.PORT); }); it.skip(FFOX)('Page.Events.RequestFailed', async({page, server}) => {