MCPcopy
hub / github.com/remotion-dev/remotion / FrameManager

Class FrameManager

packages/renderer/src/browser/FrameManager.ts:64–536  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

62};
63
64export class FrameManager extends EventEmitter {
65 #page: Page;
66 #networkManager: NetworkManager;
67 #frames = new Map<string, Frame>();
68 #contextIdToContext = new Map<string, ExecutionContext>();
69 #isolatedWorlds = new Set<string>();
70 #mainFrame?: Frame;
71 #client: CDPSession;
72
73 get _client(): CDPSession {
74 return this.#client;
75 }
76
77 constructor(
78 client: CDPSession,
79 page: Page,
80 indent: boolean,
81 logLevel: LogLevel,
82 ) {
83 super();
84 this.#client = client;
85 this.#page = page;
86 this.#networkManager = new NetworkManager(client, this, indent, logLevel);
87 this.setupEventListeners(this.#client);
88 }
89
90 private setupEventListeners(session: CDPSession) {
91 session.on('Page.frameAttached', (event) => {
92 this.#onFrameAttached(session, event.frameId, event.parentFrameId);
93 });
94 session.on('Page.frameNavigated', (event) => {
95 this.#onFrameNavigated(event.frame);
96 });
97 session.on('Page.navigatedWithinDocument', (event) => {
98 this.#onFrameNavigatedWithinDocument(event.frameId, event.url);
99 });
100 session.on('Page.frameDetached', (event: FrameDetachedEvent) => {
101 this.#onFrameDetached(
102 event.frameId,
103 event.reason as FrameDetachedEventReason,
104 );
105 });
106 session.on('Page.frameStartedLoading', (event) => {
107 this.#onFrameStartedLoading(event.frameId);
108 });
109 session.on('Page.frameStoppedLoading', (event) => {
110 this.#onFrameStoppedLoading(event.frameId);
111 });
112 session.on('Runtime.executionContextCreated', (event) => {
113 this.#onExecutionContextCreated(event.context, session);
114 });
115 session.on('Runtime.executionContextDestroyed', (event) => {
116 this.#onExecutionContextDestroyed(event.executionContextId, session);
117 });
118 session.on('Runtime.executionContextsCleared', () => {
119 this.#onExecutionContextsCleared(session);
120 });
121 session.on('Page.lifecycleEvent', (event) => {

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…