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


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


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>