JBrowser Source Docs
You are reading the documentation for JBrowser 1.5.0. The newest release is 1.5.4. Go to the latest documentation

jbrowser.models.tab

Generated from the source code of JBrowser 1.5.0.

jbrowser/models/tab.py · 118 lines

Tab state model and the asynchronous, coalescing tab-update pipeline.

Web engine signals (title, favicon, progress, audio, ...) fire at high frequency and for cards the user cannot currently see. Instead of pushing each one straight into widgets, controllers write into a Tab model; the TabUpdatePipeline batches dirty fields and flushes them at most once per frame. Views then decide whether to repaint now (visible) or merely remember that they are stale (off-screen / hidden space).

TabUpdatePipeline#

class TabUpdatePipeline(QObject)source
TabUpdatePipeline(parent: QObject | None=None)

Coalesces tab field changes and emits them once per ~frame.

Signals

Signal Arguments
flushed (dict)

Attributes

Name Value
FRAME_MS 16

TabUpdatePipeline.mark#

mark(tab: 'Tab', fields: set[str]) -> Nonesource

TabUpdatePipeline.flush#

flush() -> Nonesource

Tab#

class Tab(QObject)source
Tab(space_id: str, url: str='', title: str='', width: float=0.5, tab_id: str | None=None, parent: QObject | None=None)

Pure state for one web card. Never touches widgets or the web engine directly.

Signals

Signal Arguments
changed (object)

Tab.update#

update(**fields) -> Nonesource

Tab.touch#

touch() -> Nonesource

Tab.display_title#

display_title() -> strsource

Functions#

pipeline#

pipeline() -> TabUpdatePipelinesource