| /** |
| * @license |
| * Copyright 2023 Google Inc. |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| |
| import type Protocol from 'devtools-protocol'; |
| |
| import type {EventType} from '../common/EventEmitter.js'; |
| |
| import type {CdpFrame} from './Frame.js'; |
| import type {IsolatedWorld} from './IsolatedWorld.js'; |
| |
| /** |
| * We use symbols to prevent external parties listening to these events. |
| * They are internal to Puppeteer. |
| * |
| * @internal |
| */ |
| // eslint-disable-next-line @typescript-eslint/no-namespace |
| export namespace FrameManagerEvent { |
| export const FrameAttached = Symbol('FrameManager.FrameAttached'); |
| export const FrameNavigated = Symbol('FrameManager.FrameNavigated'); |
| export const FrameDetached = Symbol('FrameManager.FrameDetached'); |
| export const FrameSwapped = Symbol('FrameManager.FrameSwapped'); |
| export const LifecycleEvent = Symbol('FrameManager.LifecycleEvent'); |
| export const FrameNavigatedWithinDocument = Symbol( |
| 'FrameManager.FrameNavigatedWithinDocument', |
| ); |
| export const ConsoleApiCalled = Symbol('FrameManager.ConsoleApiCalled'); |
| export const BindingCalled = Symbol('FrameManager.BindingCalled'); |
| } |
| |
| /** |
| * @internal |
| */ |
| export interface FrameManagerEvents extends Record<EventType, unknown> { |
| [FrameManagerEvent.FrameAttached]: CdpFrame; |
| [FrameManagerEvent.FrameNavigated]: CdpFrame; |
| [FrameManagerEvent.FrameDetached]: CdpFrame; |
| [FrameManagerEvent.FrameSwapped]: CdpFrame; |
| [FrameManagerEvent.LifecycleEvent]: CdpFrame; |
| [FrameManagerEvent.FrameNavigatedWithinDocument]: CdpFrame; |
| // Emitted when a new console message is logged. |
| [FrameManagerEvent.ConsoleApiCalled]: [ |
| IsolatedWorld, |
| Protocol.Runtime.ConsoleAPICalledEvent, |
| ]; |
| [FrameManagerEvent.BindingCalled]: [ |
| IsolatedWorld, |
| Protocol.Runtime.BindingCalledEvent, |
| ]; |
| } |