UNPKG

1.78 kBPlain TextView Raw
1/**
2 * @license
3 * Copyright 2023 Google Inc.
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7import type Protocol from 'devtools-protocol';
8
9import type {EventType} from '../common/EventEmitter.js';
10
11import type {CdpFrame} from './Frame.js';
12import type {IsolatedWorld} from './IsolatedWorld.js';
13
14/**
15 * We use symbols to prevent external parties listening to these events.
16 * They are internal to Puppeteer.
17 *
18 * @internal
19 */
20// eslint-disable-next-line @typescript-eslint/no-namespace
21export namespace FrameManagerEvent {
22 export const FrameAttached = Symbol('FrameManager.FrameAttached');
23 export const FrameNavigated = Symbol('FrameManager.FrameNavigated');
24 export const FrameDetached = Symbol('FrameManager.FrameDetached');
25 export const FrameSwapped = Symbol('FrameManager.FrameSwapped');
26 export const LifecycleEvent = Symbol('FrameManager.LifecycleEvent');
27 export const FrameNavigatedWithinDocument = Symbol(
28 'FrameManager.FrameNavigatedWithinDocument',
29 );
30 export const ConsoleApiCalled = Symbol('FrameManager.ConsoleApiCalled');
31 export const BindingCalled = Symbol('FrameManager.BindingCalled');
32}
33
34/**
35 * @internal
36 */
37export interface FrameManagerEvents extends Record<EventType, unknown> {
38 [FrameManagerEvent.FrameAttached]: CdpFrame;
39 [FrameManagerEvent.FrameNavigated]: CdpFrame;
40 [FrameManagerEvent.FrameDetached]: CdpFrame;
41 [FrameManagerEvent.FrameSwapped]: CdpFrame;
42 [FrameManagerEvent.LifecycleEvent]: CdpFrame;
43 [FrameManagerEvent.FrameNavigatedWithinDocument]: CdpFrame;
44 // Emitted when a new console message is logged.
45 [FrameManagerEvent.ConsoleApiCalled]: [
46 IsolatedWorld,
47 Protocol.Runtime.ConsoleAPICalledEvent,
48 ];
49 [FrameManagerEvent.BindingCalled]: [
50 IsolatedWorld,
51 Protocol.Runtime.BindingCalledEvent,
52 ];
53}