chore: remove dedicated console channel (#27234)
This commit is contained in:
parent
4bf5af6d86
commit
287d720b8e
|
|
@ -96,8 +96,8 @@ export class BrowserContext extends ChannelOwner<channels.BrowserContextChannel>
|
||||||
this._serviceWorkers.add(serviceWorker);
|
this._serviceWorkers.add(serviceWorker);
|
||||||
this.emit(Events.BrowserContext.ServiceWorker, serviceWorker);
|
this.emit(Events.BrowserContext.ServiceWorker, serviceWorker);
|
||||||
});
|
});
|
||||||
this._channel.on('console', ({ message }) => {
|
this._channel.on('console', event => {
|
||||||
const consoleMessage = ConsoleMessage.from(message);
|
const consoleMessage = new ConsoleMessage(event);
|
||||||
this.emit(Events.BrowserContext.Console, consoleMessage);
|
this.emit(Events.BrowserContext.Console, consoleMessage);
|
||||||
const page = consoleMessage.page();
|
const page = consoleMessage.page();
|
||||||
if (page)
|
if (page)
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,6 @@ import { JSHandle } from './jsHandle';
|
||||||
import { Request, Response, Route, WebSocket } from './network';
|
import { Request, Response, Route, WebSocket } from './network';
|
||||||
import { Page, BindingCall } from './page';
|
import { Page, BindingCall } from './page';
|
||||||
import { Worker } from './worker';
|
import { Worker } from './worker';
|
||||||
import { ConsoleMessage } from './consoleMessage';
|
|
||||||
import { Dialog } from './dialog';
|
import { Dialog } from './dialog';
|
||||||
import { parseError } from '../protocol/serializers';
|
import { parseError } from '../protocol/serializers';
|
||||||
import { CDPSession } from './cdpSession';
|
import { CDPSession } from './cdpSession';
|
||||||
|
|
@ -240,9 +239,6 @@ export class Connection extends EventEmitter {
|
||||||
case 'CDPSession':
|
case 'CDPSession':
|
||||||
result = new CDPSession(parent, type, guid, initializer);
|
result = new CDPSession(parent, type, guid, initializer);
|
||||||
break;
|
break;
|
||||||
case 'ConsoleMessage':
|
|
||||||
result = new ConsoleMessage(parent, type, guid, initializer);
|
|
||||||
break;
|
|
||||||
case 'Dialog':
|
case 'Dialog':
|
||||||
result = new Dialog(parent, type, guid, initializer);
|
result = new Dialog(parent, type, guid, initializer);
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
|
|
@ -17,25 +17,19 @@
|
||||||
import * as util from 'util';
|
import * as util from 'util';
|
||||||
import { JSHandle } from './jsHandle';
|
import { JSHandle } from './jsHandle';
|
||||||
import type * as channels from '@protocol/channels';
|
import type * as channels from '@protocol/channels';
|
||||||
import { ChannelOwner } from './channelOwner';
|
|
||||||
import type * as api from '../../types/types';
|
import type * as api from '../../types/types';
|
||||||
import { Page } from './page';
|
import { Page } from './page';
|
||||||
|
|
||||||
type ConsoleMessageLocation = channels.ConsoleMessageInitializer['location'];
|
type ConsoleMessageLocation = channels.BrowserContextConsoleEvent['location'];
|
||||||
|
|
||||||
export class ConsoleMessage extends ChannelOwner<channels.ConsoleMessageChannel> implements api.ConsoleMessage {
|
export class ConsoleMessage implements api.ConsoleMessage {
|
||||||
static from(message: channels.ConsoleMessageChannel): ConsoleMessage {
|
|
||||||
return (message as any)._object;
|
|
||||||
}
|
|
||||||
|
|
||||||
private _page: Page | null;
|
private _page: Page | null;
|
||||||
|
private _event: channels.BrowserContextConsoleEvent;
|
||||||
|
|
||||||
constructor(parent: ChannelOwner, type: string, guid: string, initializer: channels.ConsoleMessageInitializer) {
|
constructor(event: channels.BrowserContextConsoleEvent) {
|
||||||
super(parent, type, guid, initializer);
|
this._page = event.page ? Page.from(event.page) : null;
|
||||||
// Note: currently, we only report console messages for pages and they always have a page.
|
this._event = event;
|
||||||
// However, in the future we might report console messages for service workers or something else,
|
|
||||||
// where page() would be null.
|
|
||||||
this._page = Page.fromNullable(initializer.page);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
page() {
|
page() {
|
||||||
|
|
@ -43,19 +37,19 @@ export class ConsoleMessage extends ChannelOwner<channels.ConsoleMessageChannel>
|
||||||
}
|
}
|
||||||
|
|
||||||
type(): string {
|
type(): string {
|
||||||
return this._initializer.type;
|
return this._event.type;
|
||||||
}
|
}
|
||||||
|
|
||||||
text(): string {
|
text(): string {
|
||||||
return this._initializer.text;
|
return this._event.text;
|
||||||
}
|
}
|
||||||
|
|
||||||
args(): JSHandle[] {
|
args(): JSHandle[] {
|
||||||
return this._initializer.args.map(JSHandle.from);
|
return this._event.args.map(JSHandle.from);
|
||||||
}
|
}
|
||||||
|
|
||||||
location(): ConsoleMessageLocation {
|
location(): ConsoleMessageLocation {
|
||||||
return this._initializer.location;
|
return this._event.location;
|
||||||
}
|
}
|
||||||
|
|
||||||
[util.inspect.custom]() {
|
[util.inspect.custom]() {
|
||||||
|
|
|
||||||
|
|
@ -761,7 +761,15 @@ scheme.BrowserContextBindingCallEvent = tObject({
|
||||||
binding: tChannel(['BindingCall']),
|
binding: tChannel(['BindingCall']),
|
||||||
});
|
});
|
||||||
scheme.BrowserContextConsoleEvent = tObject({
|
scheme.BrowserContextConsoleEvent = tObject({
|
||||||
message: tChannel(['ConsoleMessage']),
|
page: tChannel(['Page']),
|
||||||
|
type: tString,
|
||||||
|
text: tString,
|
||||||
|
args: tArray(tChannel(['ElementHandle', 'JSHandle'])),
|
||||||
|
location: tObject({
|
||||||
|
url: tString,
|
||||||
|
lineNumber: tNumber,
|
||||||
|
columnNumber: tNumber,
|
||||||
|
}),
|
||||||
});
|
});
|
||||||
scheme.BrowserContextCloseEvent = tOptional(tObject({}));
|
scheme.BrowserContextCloseEvent = tOptional(tObject({}));
|
||||||
scheme.BrowserContextDialogEvent = tObject({
|
scheme.BrowserContextDialogEvent = tObject({
|
||||||
|
|
@ -2088,17 +2096,6 @@ scheme.WebSocketSocketErrorEvent = tObject({
|
||||||
error: tString,
|
error: tString,
|
||||||
});
|
});
|
||||||
scheme.WebSocketCloseEvent = tOptional(tObject({}));
|
scheme.WebSocketCloseEvent = tOptional(tObject({}));
|
||||||
scheme.ConsoleMessageInitializer = tObject({
|
|
||||||
page: tChannel(['Page']),
|
|
||||||
type: tString,
|
|
||||||
text: tString,
|
|
||||||
args: tArray(tChannel(['ElementHandle', 'JSHandle'])),
|
|
||||||
location: tObject({
|
|
||||||
url: tString,
|
|
||||||
lineNumber: tNumber,
|
|
||||||
columnNumber: tNumber,
|
|
||||||
}),
|
|
||||||
});
|
|
||||||
scheme.BindingCallInitializer = tObject({
|
scheme.BindingCallInitializer = tObject({
|
||||||
frame: tChannel(['Frame']),
|
frame: tChannel(['Frame']),
|
||||||
name: tString,
|
name: tString,
|
||||||
|
|
|
||||||
|
|
@ -33,12 +33,12 @@ import * as fs from 'fs';
|
||||||
import * as path from 'path';
|
import * as path from 'path';
|
||||||
import { createGuid, urlMatches } from '../../utils';
|
import { createGuid, urlMatches } from '../../utils';
|
||||||
import { WritableStreamDispatcher } from './writableStreamDispatcher';
|
import { WritableStreamDispatcher } from './writableStreamDispatcher';
|
||||||
import { ConsoleMessageDispatcher } from './consoleMessageDispatcher';
|
|
||||||
import { DialogDispatcher } from './dialogDispatcher';
|
import { DialogDispatcher } from './dialogDispatcher';
|
||||||
import type { Page } from '../page';
|
import type { Page } from '../page';
|
||||||
import type { Dialog } from '../dialog';
|
import type { Dialog } from '../dialog';
|
||||||
import type { ConsoleMessage } from '../console';
|
import type { ConsoleMessage } from '../console';
|
||||||
import { serializeError } from '../../protocol/serializers';
|
import { serializeError } from '../../protocol/serializers';
|
||||||
|
import { ElementHandleDispatcher } from './elementHandlerDispatcher';
|
||||||
|
|
||||||
export class BrowserContextDispatcher extends Dispatcher<BrowserContext, channels.BrowserContextChannel, DispatcherScope> implements channels.BrowserContextChannel {
|
export class BrowserContextDispatcher extends Dispatcher<BrowserContext, channels.BrowserContextChannel, DispatcherScope> implements channels.BrowserContextChannel {
|
||||||
_type_EventTarget = true;
|
_type_EventTarget = true;
|
||||||
|
|
@ -89,8 +89,16 @@ export class BrowserContextDispatcher extends Dispatcher<BrowserContext, channel
|
||||||
this._dispatchEvent('pageError', { error: serializeError(error), page: PageDispatcher.from(this, page) });
|
this._dispatchEvent('pageError', { error: serializeError(error), page: PageDispatcher.from(this, page) });
|
||||||
});
|
});
|
||||||
this.addObjectListener(BrowserContext.Events.Console, (message: ConsoleMessage) => {
|
this.addObjectListener(BrowserContext.Events.Console, (message: ConsoleMessage) => {
|
||||||
if (this._shouldDispatchEvent(message.page(), 'console'))
|
if (this._shouldDispatchEvent(message.page(), 'console')) {
|
||||||
this._dispatchEvent('console', { message: new ConsoleMessageDispatcher(PageDispatcher.from(this, message.page()), message) });
|
const pageDispatcher = PageDispatcher.from(this, message.page());
|
||||||
|
this._dispatchEvent('console', {
|
||||||
|
page: pageDispatcher,
|
||||||
|
type: message.type(),
|
||||||
|
text: message.text(),
|
||||||
|
args: message.args().map(a => ElementHandleDispatcher.fromJSHandle(pageDispatcher, a)),
|
||||||
|
location: message.location(),
|
||||||
|
});
|
||||||
|
}
|
||||||
});
|
});
|
||||||
this.addObjectListener(BrowserContext.Events.Dialog, (dialog: Dialog) => {
|
this.addObjectListener(BrowserContext.Events.Dialog, (dialog: Dialog) => {
|
||||||
if (this._shouldDispatchEvent(dialog.page(), 'dialog'))
|
if (this._shouldDispatchEvent(dialog.page(), 'dialog'))
|
||||||
|
|
|
||||||
|
|
@ -1,35 +0,0 @@
|
||||||
/**
|
|
||||||
* Copyright (c) Microsoft Corporation.
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the 'License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import type { ConsoleMessage } from '../console';
|
|
||||||
import type * as channels from '@protocol/channels';
|
|
||||||
import type { PageDispatcher } from './pageDispatcher';
|
|
||||||
import { Dispatcher } from './dispatcher';
|
|
||||||
import { ElementHandleDispatcher } from './elementHandlerDispatcher';
|
|
||||||
|
|
||||||
export class ConsoleMessageDispatcher extends Dispatcher<ConsoleMessage, channels.ConsoleMessageChannel, PageDispatcher> implements channels.ConsoleMessageChannel {
|
|
||||||
_type_ConsoleMessage = true;
|
|
||||||
|
|
||||||
constructor(page: PageDispatcher, message: ConsoleMessage) {
|
|
||||||
super(page, message, 'ConsoleMessage', {
|
|
||||||
type: message.type(),
|
|
||||||
text: message.text(),
|
|
||||||
args: message.args().map(a => ElementHandleDispatcher.fromJSHandle(page, a)),
|
|
||||||
location: message.location(),
|
|
||||||
page,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -38,7 +38,6 @@ export type InitializerTraits<T> =
|
||||||
T extends TracingChannel ? TracingInitializer :
|
T extends TracingChannel ? TracingInitializer :
|
||||||
T extends DialogChannel ? DialogInitializer :
|
T extends DialogChannel ? DialogInitializer :
|
||||||
T extends BindingCallChannel ? BindingCallInitializer :
|
T extends BindingCallChannel ? BindingCallInitializer :
|
||||||
T extends ConsoleMessageChannel ? ConsoleMessageInitializer :
|
|
||||||
T extends WebSocketChannel ? WebSocketInitializer :
|
T extends WebSocketChannel ? WebSocketInitializer :
|
||||||
T extends ResponseChannel ? ResponseInitializer :
|
T extends ResponseChannel ? ResponseInitializer :
|
||||||
T extends RouteChannel ? RouteInitializer :
|
T extends RouteChannel ? RouteInitializer :
|
||||||
|
|
@ -76,7 +75,6 @@ export type EventsTraits<T> =
|
||||||
T extends TracingChannel ? TracingEvents :
|
T extends TracingChannel ? TracingEvents :
|
||||||
T extends DialogChannel ? DialogEvents :
|
T extends DialogChannel ? DialogEvents :
|
||||||
T extends BindingCallChannel ? BindingCallEvents :
|
T extends BindingCallChannel ? BindingCallEvents :
|
||||||
T extends ConsoleMessageChannel ? ConsoleMessageEvents :
|
|
||||||
T extends WebSocketChannel ? WebSocketEvents :
|
T extends WebSocketChannel ? WebSocketEvents :
|
||||||
T extends ResponseChannel ? ResponseEvents :
|
T extends ResponseChannel ? ResponseEvents :
|
||||||
T extends RouteChannel ? RouteEvents :
|
T extends RouteChannel ? RouteEvents :
|
||||||
|
|
@ -114,7 +112,6 @@ export type EventTargetTraits<T> =
|
||||||
T extends TracingChannel ? TracingEventTarget :
|
T extends TracingChannel ? TracingEventTarget :
|
||||||
T extends DialogChannel ? DialogEventTarget :
|
T extends DialogChannel ? DialogEventTarget :
|
||||||
T extends BindingCallChannel ? BindingCallEventTarget :
|
T extends BindingCallChannel ? BindingCallEventTarget :
|
||||||
T extends ConsoleMessageChannel ? ConsoleMessageEventTarget :
|
|
||||||
T extends WebSocketChannel ? WebSocketEventTarget :
|
T extends WebSocketChannel ? WebSocketEventTarget :
|
||||||
T extends ResponseChannel ? ResponseEventTarget :
|
T extends ResponseChannel ? ResponseEventTarget :
|
||||||
T extends RouteChannel ? RouteEventTarget :
|
T extends RouteChannel ? RouteEventTarget :
|
||||||
|
|
@ -1445,7 +1442,15 @@ export type BrowserContextBindingCallEvent = {
|
||||||
binding: BindingCallChannel,
|
binding: BindingCallChannel,
|
||||||
};
|
};
|
||||||
export type BrowserContextConsoleEvent = {
|
export type BrowserContextConsoleEvent = {
|
||||||
message: ConsoleMessageChannel,
|
page: PageChannel,
|
||||||
|
type: string,
|
||||||
|
text: string,
|
||||||
|
args: JSHandleChannel[],
|
||||||
|
location: {
|
||||||
|
url: string,
|
||||||
|
lineNumber: number,
|
||||||
|
columnNumber: number,
|
||||||
|
},
|
||||||
};
|
};
|
||||||
export type BrowserContextCloseEvent = {};
|
export type BrowserContextCloseEvent = {};
|
||||||
export type BrowserContextDialogEvent = {
|
export type BrowserContextDialogEvent = {
|
||||||
|
|
@ -3707,27 +3712,6 @@ export interface WebSocketEvents {
|
||||||
'close': WebSocketCloseEvent;
|
'close': WebSocketCloseEvent;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ----------- ConsoleMessage -----------
|
|
||||||
export type ConsoleMessageInitializer = {
|
|
||||||
page: PageChannel,
|
|
||||||
type: string,
|
|
||||||
text: string,
|
|
||||||
args: JSHandleChannel[],
|
|
||||||
location: {
|
|
||||||
url: string,
|
|
||||||
lineNumber: number,
|
|
||||||
columnNumber: number,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
export interface ConsoleMessageEventTarget {
|
|
||||||
}
|
|
||||||
export interface ConsoleMessageChannel extends ConsoleMessageEventTarget, Channel {
|
|
||||||
_type_ConsoleMessage: boolean;
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface ConsoleMessageEvents {
|
|
||||||
}
|
|
||||||
|
|
||||||
// ----------- BindingCall -----------
|
// ----------- BindingCall -----------
|
||||||
export type BindingCallInitializer = {
|
export type BindingCallInitializer = {
|
||||||
frame: FrameChannel,
|
frame: FrameChannel,
|
||||||
|
|
|
||||||
|
|
@ -1176,7 +1176,18 @@ BrowserContext:
|
||||||
|
|
||||||
console:
|
console:
|
||||||
parameters:
|
parameters:
|
||||||
message: ConsoleMessage
|
page: Page
|
||||||
|
type: string
|
||||||
|
text: string
|
||||||
|
args:
|
||||||
|
type: array
|
||||||
|
items: JSHandle
|
||||||
|
location:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
url: string
|
||||||
|
lineNumber: number
|
||||||
|
columnNumber: number
|
||||||
|
|
||||||
close:
|
close:
|
||||||
|
|
||||||
|
|
@ -2944,25 +2955,6 @@ WebSocket:
|
||||||
close:
|
close:
|
||||||
|
|
||||||
|
|
||||||
ConsoleMessage:
|
|
||||||
type: interface
|
|
||||||
|
|
||||||
initializer:
|
|
||||||
page: Page
|
|
||||||
type: string
|
|
||||||
text: string
|
|
||||||
args:
|
|
||||||
type: array
|
|
||||||
items: JSHandle
|
|
||||||
location:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
url: string
|
|
||||||
lineNumber: number
|
|
||||||
columnNumber: number
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
BindingCall:
|
BindingCall:
|
||||||
type: interface
|
type: interface
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue