| /** |
| * @license |
| * Copyright 2024 Google Inc. |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| |
| import type {CdpFrame} from './Frame.js'; |
| |
| /** |
| * @internal |
| */ |
| export class CdpPreloadScript { |
| /** |
| * This is the ID of the preload script returned by |
| * Page.addScriptToEvaluateOnNewDocument in the main frame. |
| * |
| * Sub-frames would get a different CDP ID because |
| * addScriptToEvaluateOnNewDocument is called for each subframe. But |
| * users only see this ID and subframe IDs are internal to Puppeteer. |
| */ |
| #id: string; |
| #source: string; |
| #frameToId = new WeakMap<CdpFrame, string>(); |
| |
| constructor(mainFrame: CdpFrame, id: string, source: string) { |
| this.#id = id; |
| this.#source = source; |
| this.#frameToId.set(mainFrame, id); |
| } |
| |
| get id(): string { |
| return this.#id; |
| } |
| |
| get source(): string { |
| return this.#source; |
| } |
| |
| getIdForFrame(frame: CdpFrame): string | undefined { |
| return this.#frameToId.get(frame); |
| } |
| |
| setIdForFrame(frame: CdpFrame, identifier: string): void { |
| this.#frameToId.set(frame, identifier); |
| } |
| } |