@auvious/cobrowser / MirrorPage
Class: MirrorPage
Hierarchy
-
PageBase↳
MirrorPage
Implements
IRootPage
Table of contents
Constructors
Properties
- absoluteLeft
- absoluteTop
- attachments
- canUpdate
- cleared
- cursor
- defaultView
- docs
- documentId
- documentOverride
- ecounter
- eventOptions
- frames
- handlers
- highlighter
- idp
- iframeLoading
- iframeOriginsFilter
- ignoreTags
- input
- isLive
- isOwner
- lastSync
- localTimeInit
- location
- options
- parent
- pendingDialogNodes
- pendingFilteredNodes
- pendingHighlightUpdate
- pendingInserts
- pendingScrollUpdates
- pendingSheetUpdates
- pendingStyleSheetUpdates
- postProcessMovedNodes
- postSheetUrlRewrite
- queue
- remoteTimeInit
- root
- scroll
- serviceWorkerProxyEnabled
- sheet
- sheetIds
- stagedCommit
- stagedReady
- stagedShadowRoots
- target
- url
- user
- users
- SyncRequestPeriod
Accessors
Methods
- appendQueue
- bindTargetDocument
- buildProxyUrl
- buildSubresourceUrl
- cleanIdp
- cleanup
- commitStagedDocument
- commitStagedShadowRoots
- compatibilityTransformV1
- compatibilityTransformV2
- createDocumentBase
- createFragment
- createNodeTree
- createNodeV3
- createStagedDocument
- event
- flush
- flushPendingLiveUpdates
- forEachFrame
- getCobrowseUser
- getDocument
- getDocumentFragmentNodeType
- getPageByFrame
- getRootOrigin
- getTime
- getWindow
- handleCanvasImage
- handleDocument
- handleMutationList
- handleMutations
- handleRemoteBatch
- handleRemoteCursor
- handleRemoteInput
- handleRemoteNavigation
- handleRemoteResize
- handleRemoteScroll
- handleStyleSheet
- insertFragment
- insertPendingFrags
- isCustomerUser
- isEventV2
- isEventV3
- isIframeOriginFiltered
- isLiveDocumentReady
- isLiveOnlyStyleSheet
- isSpecialUrl
- mergeEvents
- oldPostRender
- popAttachment
- postRender
- removeDocument
- render
- renderV1
- renderV2
- renderV3
- replaceAttributeUrl
- replaceSrcsetUrls
- replaceStyleUrls
- requestAbsolutePosition
- resetAbsolutePosition
- resolveUrl
- retrackEvents
- scheduleStagedCommit
- setDocumentBase
- setDocumentOverride
- setEvents
- setIframeCrossOrigin
- setIframeFilter
- setIframeSrc
- shouldSkipInitialAttribute
- trackFrame
- transformAttributeValue
- transformAttributes
- transformObserver
- transformTreeInstance
- untrackFrame
- useStagedDocument
- waitForTargetDocument
- waitIframeOnload
- create
Constructors
constructor
• new MirrorPage(options, parent?, handlers?, root?): MirrorPage
Parameters
| Name | Type | Default value |
|---|---|---|
options | IRendererOptions | undefined |
parent | MirrorPage | null |
handlers | IPageEventHandlers | {} |
root? | MirrorPage | undefined |
Returns
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
| Name | Type |
|---|---|
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
| Name | Type |
|---|---|
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
| Name | Type |
|---|---|
targetUrl | string |
Returns
string
buildSubresourceUrl
▸ buildSubresourceUrl(targetUrl): string
Parameters
| Name | Type |
|---|---|
targetUrl | string |
Returns
string
cleanIdp
▸ cleanIdp(): void
clean everything related to an id
Returns
void
Inherited from
PageBase.cleanIdp
cleanup
▸ cleanup(shallow?): void
Parameters
| Name | Type | Default value |
|---|---|---|
shallow | boolean | false |
Returns
void
Inherited from
PageBase.cleanup
commitStagedDocument
▸ commitStagedDocument(): void
Returns
void
commitStagedShadowRoots
▸ commitStagedShadowRoots(): void
Returns
void
compatibilityTransformV1
▸ compatibilityTransformV1(event): PageUpdateV3[]
Parameters
| Name | Type |
|---|---|
event | PageUpdateV1 |
Returns
PageUpdateV3[]
compatibilityTransformV2
▸ compatibilityTransformV2(event): PageUpdateV3[]
Parameters
| Name | Type |
|---|---|
event | PageUpdateV2 |
Returns
PageUpdateV3[]
createDocumentBase
▸ createDocumentBase(): HTMLBaseElement
Returns
HTMLBaseElement
createFragment
▸ createFragment(frag, exclude?): [Node, DocumentFragment, number]
Parameters
| Name | Type |
|---|---|
frag | IFragment |
exclude? | Set<number> |
Returns
[Node, DocumentFragment, number]
createNodeTree
▸ createNodeTree(tree, nodes, parent, exclude?): Node
Parameters
| Name | Type |
|---|---|
tree | INodeTree |
nodes | Record<number, INodeV3> |
parent | Node |
exclude? | Set<number> |
Returns
Node
createNodeV3
▸ createNodeV3(data, parent): HTMLElement | DocumentFragment | Comment
Parameters
| Name | Type |
|---|---|
data | INodeV3 |
parent | Node |
Returns
HTMLElement | DocumentFragment | Comment
createStagedDocument
▸ createStagedDocument(): Document
Returns
Document
event
▸ event<T>(type, payload?, document?): T
Type parameters
| Name | Type |
|---|---|
T | extends PageUpdateV3 |
Parameters
| Name | Type |
|---|---|
type | T["type"] |
payload? | T["payload"] |
document | number |
Returns
T
Inherited from
PageBase.event
flush
▸ flush(lite?): Promise<PageUpdateV3[]>
Parameters
| Name | Type | Default value |
|---|---|---|
lite | boolean | false |
Returns
Promise<PageUpdateV3[]>
flushPendingLiveUpdates
▸ flushPendingLiveUpdates(): Promise<void>
Returns
Promise<void>
forEachFrame
▸ forEachFrame(callback): void
Parameters
| Name | Type |
|---|---|
callback | (pg: PageBase) => void |
Returns
void
Inherited from
PageBase.forEachFrame
getCobrowseUser
▸ getCobrowseUser(user): User
Parameters
| Name | Type |
|---|---|
user | User |
Returns
User
getDocument
▸ getDocument(): Document
Returns
Document
Inherited from
PageBase.getDocument
getDocumentFragmentNodeType
▸ getDocumentFragmentNodeType(): 11
Returns
11
getPageByFrame
▸ getPageByFrame(iframe): PageBase
Parameters
| Name | Type |
|---|---|
iframe | HTMLIFrameElement |
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
| Name | Type |
|---|---|
event | ICanvasImage |
Returns
Promise<void>
handleDocument
▸ handleDocument(event): Promise<MirrorPage>
Parameters
| Name | Type |
|---|---|
event | IDocument |
Returns
Promise<MirrorPage>
handleMutationList
▸ handleMutationList(event): void
Parameters
| Name | Type |
|---|---|
event | IMutationList |
Returns
void
handleMutations
▸ handleMutations(event): void
Parameters
| Name | Type |
|---|---|
event | IMutations |
Returns
void
handleRemoteBatch
▸ handleRemoteBatch(«destructured»): Promise<void>
Parameters
| Name | Type |
|---|---|
«destructured» | IBatch |
Returns
Promise<void>
handleRemoteCursor
▸ handleRemoteCursor(ev): void
Parameters
| Name | Type |
|---|---|
ev | ICursorUpdate |
Returns
void
Inherited from
PageBase.handleRemoteCursor
handleRemoteInput
▸ handleRemoteInput(event): void
Parameters
| Name | Type |
|---|---|
event | IInputUpdate |
Returns
void
Inherited from
PageBase.handleRemoteInput
handleRemoteNavigation
▸ handleRemoteNavigation(ev): void
Parameters
| Name | Type |
|---|---|
ev | INavigation |
Returns
void
handleRemoteResize
▸ handleRemoteResize(ev): void
Parameters
| Name | Type |
|---|---|
ev | IResizeUpdate |
Returns
void
handleRemoteScroll
▸ handleRemoteScroll(ev): void
Parameters
| Name | Type |
|---|---|
ev | IScrollUpdate |
Returns
void
Overrides
PageBase.handleRemoteScroll
handleStyleSheet
▸ handleStyleSheet(event): Promise<void>
Parameters
| Name | Type |
|---|---|
event | IStyle |
Returns
Promise<void>
insertFragment
▸ insertFragment(parent, fragment, next): void
Parameters
| Name | Type |
|---|---|
parent | Node |
fragment | DocumentFragment |
next | number |
Returns
void
insertPendingFrags
▸ insertPendingFrags(): void
Returns
void
isCustomerUser
▸ isCustomerUser(user): boolean
Parameters
| Name | Type |
|---|---|
user | Pick<User, "metadata"> |
Returns
boolean
isEventV2
▸ isEventV2(ev): ev is PageUpdateV2
Parameters
| Name | Type |
|---|---|
ev | PageUpdateV1 | PageUpdateV2 |
Returns
ev is PageUpdateV2
isEventV3
▸ isEventV3(ev): ev is PageUpdateV3
Parameters
| Name | Type |
|---|---|
ev | PageUpdateV3 | PageUpdateV1 | PageUpdateV2 |
Returns
ev is PageUpdateV3
isIframeOriginFiltered
▸ isIframeOriginFiltered(elm, src?): boolean
Parameters
| Name | Type |
|---|---|
elm | HTMLElement |
src? | string |
Returns
boolean
isLiveDocumentReady
▸ isLiveDocumentReady(): boolean
Returns
boolean
isLiveOnlyStyleSheet
▸ isLiveOnlyStyleSheet(event): boolean
Parameters
| Name | Type |
|---|---|
event | IStyle |
Returns
boolean
isSpecialUrl
▸ isSpecialUrl(value): boolean
Parameters
| Name | Type |
|---|---|
value | string |
Returns
boolean
mergeEvents
▸ mergeEvents(events): Generator<any, void, unknown>
v3 merge events
Parameters
| Name | Type |
|---|---|
events | PageUpdateV3[] |
Returns
Generator<any, void, unknown>
oldPostRender
▸ oldPostRender(): void
Returns
void
popAttachment
▸ popAttachment(id): string
Parameters
| Name | Type |
|---|---|
id | string |
Returns
string
postRender
▸ postRender(): void
Returns
void
removeDocument
▸ removeDocument(id): void
Parameters
| Name | Type |
|---|---|
id | number |
Returns
void
render
▸ render(ev): Promise<void>
Parameters
| Name | Type |
|---|---|
ev | PageUpdateV3 | PageUpdateV1 | PageUpdateV2 |
Returns
Promise<void>
Implementation of
IRootPage.render
renderV1
▸ renderV1(ev): Promise<void>
Parameters
| Name | Type |
|---|---|
ev | PageUpdateV1 |
Returns
Promise<void>
renderV2
▸ renderV2(ev): Promise<void>
Parameters
| Name | Type |
|---|---|
ev | PageUpdateV2 |
Returns
Promise<void>
renderV3
▸ renderV3(ev): Promise<void>
Parameters
| Name | Type |
|---|---|
ev | PageUpdateV3 |
Returns
Promise<void>
replaceAttributeUrl
▸ replaceAttributeUrl(value): string
Parameters
| Name | Type |
|---|---|
value | string |
Returns
string
replaceSrcsetUrls
▸ replaceSrcsetUrls(value): string
Parameters
| Name | Type |
|---|---|
value | string |
Returns
string
replaceStyleUrls
▸ replaceStyleUrls(styles, href?): string
Parameters
| Name | Type |
|---|---|
styles | string |
href? | string |
Returns
string
requestAbsolutePosition
▸ requestAbsolutePosition(): void
Returns
void
Overrides
PageBase.requestAbsolutePosition
resetAbsolutePosition
▸ resetAbsolutePosition(coords): void
Parameters
| Name | Type |
|---|---|
coords | Object |
coords.left | number |
coords.top | number |
Returns
void
Overrides
PageBase.resetAbsolutePosition
resolveUrl
▸ resolveUrl(href?): string
Resolve any URL relative to the page's URL.
Parameters
| Name | Type |
|---|---|
href? | string |
Returns
string
retrackEvents
▸ retrackEvents(): void
Returns
void
scheduleStagedCommit
▸ scheduleStagedCommit(ready?): void
Parameters
| Name | Type |
|---|---|
ready? | Promise<void> |
Returns
void
setDocumentBase
▸ setDocumentBase(href?): void
Parameters
| Name | Type |
|---|---|
href? | string |
Returns
void
setDocumentOverride
▸ setDocumentOverride(document): void
Parameters
| Name | Type |
|---|---|
document | Document |
Returns
void
Inherited from
PageBase.setDocumentOverride
setEvents
▸ setEvents(events): void
Parameters
| Name | Type |
|---|---|
events | IEventOptions |
Returns
void
Inherited from
PageBase.setEvents
setIframeCrossOrigin
▸ setIframeCrossOrigin(elm, originalSrc, frameSrc): void
Parameters
| Name | Type |
|---|---|
elm | HTMLIFrameElement |
originalSrc | string |
frameSrc | string |
Returns
void
setIframeFilter
▸ setIframeFilter(elm, src?): void
Parameters
| Name | Type |
|---|---|
elm | HTMLElement |
src? | string |
Returns
void
setIframeSrc
▸ setIframeSrc(target, src): Promise<void>
Parameters
| Name | Type |
|---|---|
target | HTMLIFrameElement |
src | string |
Returns
Promise<void>
shouldSkipInitialAttribute
▸ shouldSkipInitialAttribute(nodeName, attrName): boolean
Parameters
| Name | Type |
|---|---|
nodeName | string |
attrName | string |
Returns
boolean
trackFrame
▸ trackFrame(iframe): Promise<void>
Parameters
| Name | Type |
|---|---|
iframe | HTMLIFrameElement |
Returns
Promise<void>
Overrides
PageBase.trackFrame
transformAttributeValue
▸ transformAttributeValue(nodeName, key, value): string
Parameters
| Name | Type |
|---|---|
nodeName | string |
key | string |
value | string |
Returns
string
transformAttributes
▸ transformAttributes(nodeName, attrs): void
Parameters
| Name | Type |
|---|---|
nodeName | string |
attrs | IAttributes |
Returns
void
transformObserver
▸ transformObserver(event): PageUpdateV3[]
Parameters
| Name | Type |
|---|---|
event | IObserver | IObserver |
Returns
PageUpdateV3[]
transformTreeInstance
▸ transformTreeInstance(event): PageUpdateV3[]
transform a Tree Instance event to latest version events
Parameters
| Name | Type |
|---|---|
event | ITreeInstance | ITreeInstance |
Returns
PageUpdateV3[]
untrackFrame
▸ untrackFrame(iframe): void
Parameters
| Name | Type |
|---|---|
iframe | HTMLIFrameElement |
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
| Name | Type |
|---|---|
...args | [options: IRendererOptions, parent: MirrorPage, handlers: IPageEventHandlers, root?: MirrorPage] |
Returns
Promise<MirrorPage>