Skip to main content

@auvious/cobrowser / MirrorPage

Class: MirrorPage

Hierarchy​

  • PageBase

    ↳ MirrorPage

Implements​

  • IRootPage

Table of contents​

Constructors​

Properties​

Accessors​

Methods​

Constructors​

constructor​

• new MirrorPage(options, parent?, handlers?, root?): MirrorPage

Parameters​

NameTypeDefault value
optionsIRendererOptionsundefined
parentMirrorPagenull
handlersIPageEventHandlers{}
root?MirrorPageundefined

Returns​

MirrorPage

Overrides​

PageBase.constructor

Properties​

absoluteLeft​

• absoluteLeft: number = 0

Inherited from​

PageBase.absoluteLeft


absoluteTop​

• absoluteTop: number = 0

Inherited from​

PageBase.absoluteTop


attachments​

• Private attachments: Record<string, string> = {}

id: base64 of binary data


canUpdate​

• canUpdate: boolean = false


cleared​

• cleared: boolean = false

Inherited from​

PageBase.cleared


cursor​

• cursor: Cursor

Inherited from​

PageBase.cursor


defaultView​

• Protected defaultView: Window & typeof globalThis

Inherited from​

PageBase.defaultView


docs​

• Private Readonly docs: Record<number, MirrorPage> = {}


documentId​

• documentId: number = 0

Inherited from​

PageBase.documentId


documentOverride​

• Protected Optional documentOverride: Document

Inherited from​

PageBase.documentOverride


ecounter​

• Protected ecounter: number = 0

Inherited from​

PageBase.ecounter


eventOptions​

• Protected eventOptions: IEventOptions = {}

Inherited from​

PageBase.eventOptions


frames​

• Protected frames: MirrorPage[] = []

Overrides​

PageBase.frames


handlers​

• Private handlers: IPageEventHandlers = {}


highlighter​

• highlighter: HighLighter

Inherited from​

PageBase.highlighter


idp​

• Readonly idp: Idp

Inherited from​

PageBase.idp


iframeLoading​

• Private iframeLoading: Promise<void>[] = []


iframeOriginsFilter​

• Private Optional iframeOriginsFilter: string


iframeSourceUrls​

• Private iframeSourceUrls: WeakMap<Element, string>


ignoreTags​

• Private ignoreTags: Set<string>

some tags that look like custom elements will have invalid name, do not define them


input​

• input: Input

Inherited from​

PageBase.input


isLive​

• isLive: boolean = true


isOwner​

• isOwner: boolean = false

Overrides​

PageBase.isOwner


lastSync​

• Protected lastSync: number

Inherited from​

PageBase.lastSync


localTimeInit​

• localTimeInit: number


location​

• location: Location

Inherited from​

PageBase.location


options​

• options: IRendererOptions


parent​

• parent: MirrorPage = null

Inherited from​

PageBase.parent


pendingDialogNodes​

• Private pendingDialogNodes: { node: HTMLDialogElement ; open: boolean }[] = []


pendingFilteredNodes​

• Private pendingFilteredNodes: HTMLElement[]


pendingHighlightUpdate​

• Private pendingHighlightUpdate: IHighLightUpdate = null


pendingInserts​

• Private pendingInserts: [Node, DocumentFragment, number][] = []


pendingScrollUpdates​

• Private pendingScrollUpdates: Record<number, IScrollUpdate> = {}


pendingSheetUpdates​

• Private pendingSheetUpdates: ISheetUpdate[] = []


pendingStyleSheetUpdates​

• Private pendingStyleSheetUpdates: IStyle[] = []


postProcessMovedNodes​

• Private postProcessMovedNodes: Node[] = []

moved nodes no longer synced, workaround for latest version


postSheetUrlRewrite​

• Private postSheetUrlRewrite: Set<{ elm: HTMLLinkElement ; href: string }>


queue​

• Protected queue: PageUpdateV3[] = []

Inherited from​

PageBase.queue


remoteTimeInit​

• remoteTimeInit: number


root​

• Private Optional root: MirrorPage


scroll​

• scroll: Scroll

Inherited from​

PageBase.scroll


serviceWorkerProxyEnabled​

• Private serviceWorkerProxyEnabled: boolean = false


sheet​

• sheet: Sheet

Inherited from​

PageBase.sheet


sheetIds​

• Protected sheetIds: Record<number, CSSStyleSheet> = {}

Inherited from​

PageBase.sheetIds


stagedCommit​

• Private Optional stagedCommit: Promise<void>


stagedReady​

• Private Optional stagedReady: Promise<void>


stagedShadowRoots​

• Private stagedShadowRoots: { fragment: DocumentFragment ; host: HTMLElement ; id: number }[] = []


target​

• Readonly target: HTMLElement

Inherited from​

PageBase.target


url​

• url: Object = {}

Type declaration​

NameType
base?string
href?string

user​

• user: IUser

Inherited from​

PageBase.user


users​

• users: Users


SyncRequestPeriod​

▪ Static SyncRequestPeriod: number = 5000

Inherited from​

PageBase.SyncRequestPeriod

Accessors​

closed​

• get closed(): boolean

Returns​

boolean

Inherited from​

PageBase.closed


isRoot​

• get isRoot(): boolean

Returns​

boolean

Inherited from​

PageBase.isRoot


isStaged​

• get isStaged(): boolean

Returns​

boolean


useServiceWorkerProxy​

• get useServiceWorkerProxy(): boolean

Returns​

boolean

Methods​

appendQueue​

▸ appendQueue(type, payload?): void

Parameters​

NameType
type"ScrollUpdate" | "HighLight" | "StyleSheet" | "SheetUpdate" | "Batch" | "InputUpdate" | "Cursor" | "ResizeUpdate" | "PageMetadata" | "SyncRequest" | "FrameClosed" | "Navigation" | "Document" | "Mutations" | "MutationList" | "CanvasImage" | "Attachment"
payload?any

Returns​

void


bindTargetDocument​

▸ bindTargetDocument(): void

Returns​

void

Inherited from​

PageBase.bindTargetDocument


buildProxyUrl​

▸ buildProxyUrl(targetUrl): string

Parameters​

NameType
targetUrlstring

Returns​

string


buildSubresourceUrl​

▸ buildSubresourceUrl(targetUrl): string

Parameters​

NameType
targetUrlstring

Returns​

string


cleanIdp​

▸ cleanIdp(): void

clean everything related to an id

Returns​

void

Inherited from​

PageBase.cleanIdp


cleanup​

▸ cleanup(shallow?): void

Parameters​

NameTypeDefault value
shallowbooleanfalse

Returns​

void

Inherited from​

PageBase.cleanup


commitStagedDocument​

▸ commitStagedDocument(): void

Returns​

void


commitStagedShadowRoots​

▸ commitStagedShadowRoots(): void

Returns​

void


compatibilityTransformV1​

▸ compatibilityTransformV1(event): PageUpdateV3[]

Parameters​

NameType
eventPageUpdateV1

Returns​

PageUpdateV3[]


compatibilityTransformV2​

▸ compatibilityTransformV2(event): PageUpdateV3[]

Parameters​

NameType
eventPageUpdateV2

Returns​

PageUpdateV3[]


createDocumentBase​

▸ createDocumentBase(): HTMLBaseElement

Returns​

HTMLBaseElement


createFragment​

▸ createFragment(frag, exclude?): [Node, DocumentFragment, number]

Parameters​

NameType
fragIFragment
exclude?Set<number>

Returns​

[Node, DocumentFragment, number]


createNodeTree​

▸ createNodeTree(tree, nodes, parent, exclude?): Node

Parameters​

NameType
treeINodeTree
nodesRecord<number, INodeV3>
parentNode
exclude?Set<number>

Returns​

Node


createNodeV3​

▸ createNodeV3(data, parent): HTMLElement | DocumentFragment | Comment

Parameters​

NameType
dataINodeV3
parentNode

Returns​

HTMLElement | DocumentFragment | Comment


createStagedDocument​

▸ createStagedDocument(): Document

Returns​

Document


event​

▸ event<T>(type, payload?, document?): T

Type parameters​

NameType
Textends PageUpdateV3

Parameters​

NameType
typeT["type"]
payload?T["payload"]
documentnumber

Returns​

T

Inherited from​

PageBase.event


flush​

▸ flush(lite?): Promise<PageUpdateV3[]>

Parameters​

NameTypeDefault value
litebooleanfalse

Returns​

Promise<PageUpdateV3[]>


flushPendingLiveUpdates​

▸ flushPendingLiveUpdates(): Promise<void>

Returns​

Promise<void>


forEachFrame​

▸ forEachFrame(callback): void

Parameters​

NameType
callback(pg: PageBase) => void

Returns​

void

Inherited from​

PageBase.forEachFrame


getAdoptedStyleRoot​

▸ getAdoptedStyleRoot(elm): Document | ShadowRoot

Parameters​

NameType
elmElement | ShadowRoot

Returns​

Document | ShadowRoot


getCobrowseUser​

▸ getCobrowseUser(user): User

Parameters​

NameType
userUser

Returns​

User


getDocument​

▸ getDocument(): Document

Returns​

Document

Inherited from​

PageBase.getDocument


getDocumentFragmentNodeType​

▸ getDocumentFragmentNodeType(): 11

Returns​

11


getPageByFrame​

▸ getPageByFrame(iframe): PageBase

Parameters​

NameType
iframeHTMLIFrameElement

Returns​

PageBase

Inherited from​

PageBase.getPageByFrame


getRootOrigin​

▸ getRootOrigin(): string

Returns​

string


getTime​

▸ getTime(): number

Returns​

number

Overrides​

PageBase.getTime


getWindow​

▸ getWindow(): Window & typeof globalThis

Returns​

Window & typeof globalThis

Inherited from​

PageBase.getWindow


handleCanvasImage​

▸ handleCanvasImage(event): Promise<void>

Parameters​

NameType
eventICanvasImage

Returns​

Promise<void>


handleDocument​

▸ handleDocument(event): Promise<MirrorPage>

Parameters​

NameType
eventIDocument

Returns​

Promise<MirrorPage>


handleMutationList​

▸ handleMutationList(event): void

Parameters​

NameType
eventIMutationList

Returns​

void


handleMutations​

▸ handleMutations(event): void

Parameters​

NameType
eventIMutations

Returns​

void


handleRemoteBatch​

▸ handleRemoteBatch(«destructured»): Promise<void>

Parameters​

NameType
«destructured»IBatch

Returns​

Promise<void>


handleRemoteCursor​

▸ handleRemoteCursor(ev): void

Parameters​

NameType
evICursorUpdate

Returns​

void

Inherited from​

PageBase.handleRemoteCursor


handleRemoteInput​

▸ handleRemoteInput(event): void

Parameters​

NameType
eventIInputUpdate

Returns​

void

Inherited from​

PageBase.handleRemoteInput


handleRemoteNavigation​

▸ handleRemoteNavigation(ev): void

Parameters​

NameType
evINavigation

Returns​

void


handleRemoteResize​

▸ handleRemoteResize(ev): void

Parameters​

NameType
evIResizeUpdate

Returns​

void


handleRemoteScroll​

▸ handleRemoteScroll(ev): void

Parameters​

NameType
evIScrollUpdate

Returns​

void

Overrides​

PageBase.handleRemoteScroll


handleStyleSheet​

▸ handleStyleSheet(event): Promise<void>

Parameters​

NameType
eventIStyle

Returns​

Promise<void>


insertFragment​

▸ insertFragment(parent, fragment, next): void

Parameters​

NameType
parentNode
fragmentDocumentFragment
nextnumber

Returns​

void


insertPendingFrags​

▸ insertPendingFrags(): void

Returns​

void


isCustomerUser​

▸ isCustomerUser(user): boolean

Parameters​

NameType
userPick<User, "metadata">

Returns​

boolean


isEventV2​

▸ isEventV2(ev): ev is PageUpdateV2

Parameters​

NameType
evPageUpdateV1 | PageUpdateV2

Returns​

ev is PageUpdateV2


isEventV3​

▸ isEventV3(ev): ev is PageUpdateV3

Parameters​

NameType
evPageUpdateV3 | PageUpdateV1 | PageUpdateV2

Returns​

ev is PageUpdateV3


isIframeOriginFiltered​

▸ isIframeOriginFiltered(elm, src?): boolean

Parameters​

NameType
elmHTMLElement
src?string

Returns​

boolean


isLiveDocumentReady​

▸ isLiveDocumentReady(): boolean

Returns​

boolean


isLiveOnlyStyleSheet​

▸ isLiveOnlyStyleSheet(event): boolean

Parameters​

NameType
eventIStyle

Returns​

boolean


isSpecialUrl​

▸ isSpecialUrl(value): boolean

Parameters​

NameType
valuestring

Returns​

boolean


mergeEvents​

▸ mergeEvents(events): Generator<any, void, unknown>

v3 merge events

Parameters​

NameType
eventsPageUpdateV3[]

Returns​

Generator<any, void, unknown>


oldPostRender​

▸ oldPostRender(): void

Returns​

void


popAttachment​

▸ popAttachment(id): string

Parameters​

NameType
idstring

Returns​

string


postRender​

▸ postRender(): void

Returns​

void


removeDocument​

▸ removeDocument(id): void

Parameters​

NameType
idnumber

Returns​

void


render​

▸ render(ev): Promise<void>

Parameters​

NameType
evPageUpdateV3 | PageUpdateV1 | PageUpdateV2

Returns​

Promise<void>

Implementation of​

IRootPage.render


renderV1​

▸ renderV1(ev): Promise<void>

Parameters​

NameType
evPageUpdateV1

Returns​

Promise<void>


renderV2​

▸ renderV2(ev): Promise<void>

Parameters​

NameType
evPageUpdateV2

Returns​

Promise<void>


renderV3​

▸ renderV3(ev): Promise<void>

Parameters​

NameType
evPageUpdateV3

Returns​

Promise<void>


replaceAttributeUrl​

▸ replaceAttributeUrl(value): string

Parameters​

NameType
valuestring

Returns​

string


replaceSrcsetUrls​

▸ replaceSrcsetUrls(value): string

Parameters​

NameType
valuestring

Returns​

string


replaceStyleUrls​

▸ replaceStyleUrls(styles, href?): string

Parameters​

NameType
stylesstring
href?string

Returns​

string


requestAbsolutePosition​

▸ requestAbsolutePosition(): void

Returns​

void

Overrides​

PageBase.requestAbsolutePosition


resetAbsolutePosition​

▸ resetAbsolutePosition(coords): void

Parameters​

NameType
coordsObject
coords.leftnumber
coords.topnumber

Returns​

void

Overrides​

PageBase.resetAbsolutePosition


resolveUrl​

▸ resolveUrl(href?): string

Resolve any URL relative to the page's URL.

Parameters​

NameType
href?string

Returns​

string


retrackEvents​

▸ retrackEvents(): void

Returns​

void


scheduleStagedCommit​

▸ scheduleStagedCommit(ready?): void

Parameters​

NameType
ready?Promise<void>

Returns​

void


setDocumentBase​

▸ setDocumentBase(href?): void

Parameters​

NameType
href?string

Returns​

void


setDocumentOverride​

▸ setDocumentOverride(document): void

Parameters​

NameType
documentDocument

Returns​

void

Inherited from​

PageBase.setDocumentOverride


setEvents​

▸ setEvents(events): void

Parameters​

NameType
eventsIEventOptions

Returns​

void

Inherited from​

PageBase.setEvents


setIframeCrossOrigin​

▸ setIframeCrossOrigin(elm, originalSrc, frameSrc): void

Parameters​

NameType
elmHTMLIFrameElement
originalSrcstring
frameSrcstring

Returns​

void


setIframeFilter​

▸ setIframeFilter(elm, src?): void

Parameters​

NameType
elmHTMLElement
src?string

Returns​

void


setIframeSrc​

▸ setIframeSrc(target, src): Promise<void>

Parameters​

NameType
targetHTMLIFrameElement
srcstring

Returns​

Promise<void>


shouldSkipInitialAttribute​

▸ shouldSkipInitialAttribute(nodeName, attrName): boolean

Parameters​

NameType
nodeNamestring
attrNamestring

Returns​

boolean


trackFrame​

▸ trackFrame(iframe): Promise<void>

Parameters​

NameType
iframeHTMLIFrameElement

Returns​

Promise<void>

Overrides​

PageBase.trackFrame


transformAttributeValue​

▸ transformAttributeValue(nodeName, key, value): string

Parameters​

NameType
nodeNamestring
keystring
valuestring

Returns​

string


transformAttributes​

▸ transformAttributes(nodeName, attrs): void

Parameters​

NameType
nodeNamestring
attrsIAttributes

Returns​

void


transformObserver​

▸ transformObserver(event): PageUpdateV3[]

Parameters​

NameType
eventIObserver | IObserver

Returns​

PageUpdateV3[]


transformTreeInstance​

▸ transformTreeInstance(event): PageUpdateV3[]

transform a Tree Instance event to latest version events

Parameters​

NameType
eventITreeInstance | ITreeInstance

Returns​

PageUpdateV3[]


untrackFrame​

▸ untrackFrame(iframe): void

Parameters​

NameType
iframeHTMLIFrameElement

Returns​

void

Inherited from​

PageBase.untrackFrame


useStagedDocument​

▸ useStagedDocument(): void

Returns​

void


waitForTargetDocument​

▸ waitForTargetDocument(): Promise<void>

Returns​

Promise<void>


waitIframeOnload​

▸ waitIframeOnload(): Promise<void>

Returns​

Promise<void>


create​

▸ create(...args): Promise<MirrorPage>

Parameters​

NameType
...args[options: IRendererOptions, parent: MirrorPage, handlers: IPageEventHandlers, root?: MirrorPage]

Returns​

Promise<MirrorPage>