Skip to content

Commit

Permalink
fix(api): remove remoteAddress from api (#601)
Browse files Browse the repository at this point in the history
  • Loading branch information
dgozman authored Jan 23, 2020
1 parent 23a668e commit a5019ea
Show file tree
Hide file tree
Showing 6 changed files with 5 additions and 30 deletions.
6 changes: 0 additions & 6 deletions docs/api.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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.

Expand Down
3 changes: 1 addition & 2 deletions src/chromium/crNetworkManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down
3 changes: 1 addition & 2 deletions src/firefox/ffNetworkManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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);
}

Expand Down
13 changes: 1 addition & 12 deletions src/network.ts
Original file line number Diff line number Diff line change
Expand Up @@ -218,32 +218,25 @@ export class Request {
}
}

export type RemoteAddress = {
ip: string,
port: number,
};

type GetResponseBodyCallback = () => Promise<platform.BufferType>;

export class Response {
private _request: Request;
private _contentPromise: Promise<platform.BufferType> | null = null;
_finishedPromise: Promise<Error | null>;
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;
Expand All @@ -255,10 +248,6 @@ export class Response {
this._finishedPromiseCallback.call(null, error);
}

remoteAddress(): RemoteAddress {
return this._remoteAddress;
}

url(): string {
return this._url;
}
Expand Down
3 changes: 1 addition & 2 deletions src/webkit/wkInterceptableRequest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
}

Expand Down
7 changes: 1 addition & 6 deletions test/network.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand All @@ -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}) => {
Expand Down

0 comments on commit a5019ea

Please sign in to comment.