@sentry-internal/rrweb
Version:
record and replay the web
76 lines (75 loc) • 2.54 kB
TypeScript
import { blockClass } from '@sentry-internal/rrweb-types';
import { canvasMutationCallback } from '@sentry-internal/rrweb-types';
import { DataURLOptions } from '@sentry-internal/rrweb-snapshot';
import { IWindow } from '@sentry-internal/rrweb-types';
import { Mirror } from '@sentry-internal/rrweb-snapshot';
export declare class CanvasManager implements CanvasManagerInterface {
private pendingCanvasMutations;
private rafStamps;
private options;
private mirror;
private shadowDoms;
private windowsSet;
private windows;
private mutationCb;
private restoreHandlers;
private frozen;
private locked;
private snapshotInProgressMap;
private worker;
private lastSnapshotTime;
reset(): void;
freeze(): void;
unfreeze(): void;
lock(): void;
unlock(): void;
constructor(options: CanvasManagerConstructorOptions);
addWindow(win: IWindow): void;
addShadowRoot(shadowRoot: ShadowRoot): void;
resetShadowRoots(): void;
snapshot(canvasElement?: HTMLCanvasElement, options?: SnapshotOptions): void;
private initFPSWorker;
private processMutation;
private initCanvasFPSObserver;
private initCanvasMutationObserver;
private getCanvasElements;
private takeSnapshot;
private startPendingCanvasMutationFlusher;
private startRAFTimestamping;
flushPendingCanvasMutations(): void;
flushPendingCanvasMutationFor(canvas: HTMLCanvasElement, id: number): void;
}
export declare interface CanvasManagerConstructorOptions {
recordCanvas: boolean;
enableManualSnapshot?: boolean;
mutationCb: canvasMutationCallback;
win: IWindow;
blockClass: blockClass;
blockSelector: string | null;
unblockSelector: string | null;
maxCanvasSize?: MaxCanvasSize | null;
mirror: Mirror;
dataURLOptions: DataURLOptions;
errorHandler?: ErrorHandler;
sampling?: 'all' | number;
}
declare interface CanvasManagerInterface {
reset(): void;
freeze(): void;
unfreeze(): void;
lock(): void;
unlock(): void;
snapshot(canvasElement?: HTMLCanvasElement, options?: SnapshotOptions): void;
addWindow(win: IWindow): void;
addShadowRoot(shadowRoot: ShadowRoot): void;
resetShadowRoots(): void;
}
declare type ErrorHandler = (error: unknown) => void | boolean;
declare type MaxCanvasSize = [
number,
number
];
declare type SnapshotOptions = {
skipRequestAnimationFrame?: boolean;
};
export {};