chore: explicitly send route's requestUrl for tracing (#21940)

This commit is contained in:
Pavel Feldman 2023-03-23 14:57:03 -07:00 committed by GitHub
parent 054fcd39ba
commit d4e0ef7f1a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 16 additions and 7 deletions

View File

@ -310,7 +310,7 @@ export class Route extends ChannelOwner<channels.RouteChannel> implements api.Ro
async abort(errorCode?: string) {
this._checkNotHandled();
await this._raceWithTargetClose(this._channel.abort({ errorCode }));
await this._raceWithTargetClose(this._channel.abort({ requestUrl: this.request()._initializer.url, errorCode }));
this._reportHandled(true);
}
@ -384,6 +384,7 @@ export class Route extends ChannelOwner<channels.RouteChannel> implements api.Ro
headers['content-length'] = String(length);
await this._raceWithTargetClose(this._channel.fulfill({
requestUrl: this.request()._initializer.url,
status: statusOption || 200,
headers: headersObjectToArray(headers),
body,
@ -414,6 +415,7 @@ export class Route extends ChannelOwner<channels.RouteChannel> implements api.Ro
const options = this.request()._fallbackOverridesForContinue();
return await this._wrapApiCall(async () => {
await this._raceWithTargetClose(this._channel.continue({
requestUrl: this.request()._initializer.url,
url: options.url,
method: options.method,
headers: options.headers ? headersObjectToArray(options.headers) : undefined,

View File

@ -1974,6 +1974,7 @@ scheme.RouteRedirectNavigationRequestParams = tObject({
scheme.RouteRedirectNavigationRequestResult = tOptional(tObject({}));
scheme.RouteAbortParams = tObject({
errorCode: tOptional(tString),
requestUrl: tString,
});
scheme.RouteAbortResult = tOptional(tObject({}));
scheme.RouteContinueParams = tObject({
@ -1981,6 +1982,7 @@ scheme.RouteContinueParams = tObject({
method: tOptional(tString),
headers: tOptional(tArray(tType('NameValue'))),
postData: tOptional(tBinary),
requestUrl: tString,
});
scheme.RouteContinueResult = tOptional(tObject({}));
scheme.RouteFulfillParams = tObject({
@ -1989,6 +1991,7 @@ scheme.RouteFulfillParams = tObject({
body: tOptional(tString),
isBase64: tOptional(tBoolean),
fetchResponseUid: tOptional(tString),
requestUrl: tString,
});
scheme.RouteFulfillResult = tOptional(tObject({}));
scheme.ResourceTiming = tObject({

View File

@ -460,7 +460,7 @@ export abstract class BrowserContext extends SdkObject {
const internalMetadata = serverSideCallMetadata();
const page = await this.newPage(internalMetadata);
await page._setServerRequestInterceptor(handler => {
handler.fulfill({ body: '<html></html>' }).catch(() => {});
handler.fulfill({ body: '<html></html>', requestUrl: handler.request().url() }).catch(() => {});
return true;
});
for (const origin of this._origins) {
@ -489,7 +489,7 @@ export abstract class BrowserContext extends SdkObject {
const internalMetadata = serverSideCallMetadata();
page = page || await this.newPage(internalMetadata);
await page._setServerRequestInterceptor(handler => {
handler.fulfill({ body: '<html></html>' }).catch(() => {});
handler.fulfill({ body: '<html></html>', requestUrl: handler.request().url() }).catch(() => {});
return true;
});
@ -524,7 +524,7 @@ export abstract class BrowserContext extends SdkObject {
const internalMetadata = serverSideCallMetadata();
const page = await this.newPage(internalMetadata);
await page._setServerRequestInterceptor(handler => {
handler.fulfill({ body: '<html></html>' }).catch(() => {});
handler.fulfill({ body: '<html></html>', requestUrl: handler.request().url() }).catch(() => {});
return true;
});
for (const originState of state.origins) {

View File

@ -127,7 +127,6 @@ export class RouteDispatcher extends Dispatcher<Route, channels.RouteChannel, Re
async continue(params: channels.RouteContinueParams, metadata: CallMetadata): Promise<channels.RouteContinueResult> {
// Used to discriminate between continue in tracing.
metadata.params.requestUrl = this._object.request().url();
await this._object.continue({
url: params.url,
method: params.method,
@ -138,13 +137,11 @@ export class RouteDispatcher extends Dispatcher<Route, channels.RouteChannel, Re
async fulfill(params: channels.RouteFulfillParams, metadata: CallMetadata): Promise<void> {
// Used to discriminate between fulfills in tracing.
metadata.params.requestUrl = this._object.request().url();
await this._object.fulfill(params);
}
async abort(params: channels.RouteAbortParams, metadata: CallMetadata): Promise<void> {
// Used to discriminate between abort in tracing.
metadata.params.requestUrl = this._object.request().url();
await this._object.abort(params.errorCode || 'failed');
}

View File

@ -90,6 +90,7 @@ export class RecorderApp extends EventEmitter implements IRecorderApp {
const file = require.resolve('../../webpack/recorder/' + uri);
fs.promises.readFile(file).then(buffer => {
route.fulfill({
requestUrl: route.request().url(),
status: 200,
headers: [
{ name: 'Content-Type', value: mime.getType(path.extname(file)) || 'application/octet-stream' }

View File

@ -3519,6 +3519,7 @@ export type RouteRedirectNavigationRequestOptions = {
export type RouteRedirectNavigationRequestResult = void;
export type RouteAbortParams = {
errorCode?: string,
requestUrl: string,
};
export type RouteAbortOptions = {
errorCode?: string,
@ -3529,6 +3530,7 @@ export type RouteContinueParams = {
method?: string,
headers?: NameValue[],
postData?: Binary,
requestUrl: string,
};
export type RouteContinueOptions = {
url?: string,
@ -3543,6 +3545,7 @@ export type RouteFulfillParams = {
body?: string,
isBase64?: boolean,
fetchResponseUid?: string,
requestUrl: string,
};
export type RouteFulfillOptions = {
status?: number,

View File

@ -2740,6 +2740,7 @@ Route:
abort:
parameters:
errorCode: string?
requestUrl: string
continue:
parameters:
@ -2749,6 +2750,7 @@ Route:
type: array?
items: NameValue
postData: binary?
requestUrl: string
fulfill:
parameters:
@ -2760,6 +2762,7 @@ Route:
body: string?
isBase64: boolean?
fetchResponseUid: string?
requestUrl: string
ResourceTiming:
type: object