browser_live_view_url provided when you create a Kernel browser:
Query parameters
Thebrowser_live_view_url supports additional query parameters to customize the live view:
readOnly(bool): when set totrue, the view will be non-interactive.
Embedding in an iframe
The live view URL can be embedded in an iframe to integrate the browser view into your own application or dashboard. If your environment restricts outbound traffic, allow the Live View domains and ports before you embed it.Embedded third-party iframes like live view must have focus to receive keyboard events. On Safari, focus requires a user-initiated event — calling
.focus() on the iframe element within a user-initiated event handler is recommended.To enable clipboard sharing, add allow="autoplay; clipboard-read; clipboard-write" to the iframe element.If your application uses a Content Security Policy (CSP), you must add the following directives to allow the live view iframe and its WebSocket connection. See Network access for the complete firewall and CSP requirements.Parent frame events
When the live view is embedded in an iframe, the client posts messages to the parent window as the connection and playback state change, and accepts one message back. Use them to tell a working viewer apart from one that never starts.Sent to the parent
Accepted from the parent
KERNEL_CONNECTION_TIMEOUT, KERNEL_READ_ONLY_CHANGED and KERNEL_SET_READ_ONLY require a recent browser image. KERNEL_CONNECTED, KERNEL_PLAYING and KERNEL_PAUSED are available on all current images, but capabilities is sent only by recent ones — older images post { type: 'KERNEL_CONNECTED', connected: true }, so treat a missing capabilities as unknown rather than unsupported.Messages are exchanged with the parent origin derived from document.referrer. If the referrer is unavailable — for example under a restrictive Referrer-Policy — the client cannot resolve your origin and will reject KERNEL_SET_READ_ONLY.Detecting a viewer that never starts
Gate onKERNEL_PLAYING. It fires only once frames actually arrive, so it is the one signal that distinguishes a working viewer from one that is still connecting or has silently failed. Start a timer when you mount the iframe and remount if KERNEL_PLAYING has not arrived:
Typescript/Javascript
KERNEL_CONNECTION_TIMEOUT alone. The watchdog behind it is cleared once negotiation begins, so a connection that stalls after that point never emits it. Log it alongside KERNEL_PLAYING to capture the connection state at the moment things stalled.
Kiosk mode
Kiosk mode provides a fullscreen live view experience without browser UI elements like the address bar and tabs. You can enable kiosk mode when creating a browser by setting thekiosk_mode parameter to true.
Kiosk mode triggers a Chromium restart, which can take several seconds. Use browser pools to access kiosk mode browsers faster.
URL lifetime
browser_live_view_url becomes invalid once the browser is deleted manually or via timeout.