Aller au contenu

browser.*

Les méthodes browser.* opèrent sur un panneau navigateur. La plupart prennent { surfaceId: string, … } — omettez surfaceId pour cibler la surface navigateur ayant le focus (ou HT_SURFACE).

MéthodeParamsRésultat
browser.list{}{ browsers: Array<{ surfaceId, url, title, … }> }
browser.open{ url: string, surfaceId?: string }{ surfaceId }
browser.open_split{ url: string, direction?: "left"|"right"|"up"|"down" }{ surfaceId }
browser.close{ surfaceId?: string }{ ok: true }
browser.identify{ surfaceId?: string }{ surfaceId, url, title }
MéthodeParamsRésultat
browser.navigate{ surfaceId?: string, url: string }{ ok: true }
browser.back{ surfaceId?: string }{ ok: true }
browser.forward{ surfaceId?: string }{ ok: true }
browser.reload{ surfaceId?: string }{ ok: true }
browser.url{ surfaceId?: string }{ url }

browser.navigate accepte les URLs http:// / https:// (y compris localhost / les serveurs de dev en LAN), about: (par ex. about:blank), data: et chrome-extension://. Les URLs file:// sont volontairement rejetées pour des raisons de sécurité — elles permettraient à un panneau de navigateur de lire des fichiers locaux arbitraires via le socket.

MéthodeParamsRésultat
browser.wait{ surfaceId?: string, selector?: string, text?: string, loadState?: "domcontentloaded"|"load"|"complete", timeoutMs?: number }{ ok: true }

Fournissez au plus un seul de selector, text, loadState. Timeout par défaut 30 000 ms.

MéthodeParamsRésultat
browser.click{ surfaceId?: string, selector: string }{ ok: true }
browser.dblclick{ surfaceId?: string, selector: string }{ ok: true }
browser.hover{ surfaceId?: string, selector: string }{ ok: true }
browser.focus{ surfaceId?: string, selector: string }{ ok: true }
browser.check / browser.uncheck{ surfaceId?: string, selector: string }{ ok: true }
browser.scroll_into_view{ surfaceId?: string, selector: string }{ ok: true }
browser.type{ surfaceId?: string, selector: string, text: string }{ ok: true }
browser.fill{ surfaceId?: string, selector: string, value: string }{ ok: true }
browser.press{ surfaceId?: string, key: string }{ ok: true }
browser.select{ surfaceId?: string, selector: string, value: string }{ ok: true }
browser.scroll{ surfaceId?: string, x?: number, y?: number }{ ok: true }
browser.highlight{ surfaceId?: string, selector: string, durationMs?: number }{ ok: true }
MéthodeParamsRésultat
browser.snapshot{ surfaceId?: string }{ accessibilityTree: object }
browser.get{ surfaceId?: string, what: "title"|"url"|"text"|"value"|"html", selector?: string }{ value: string }
browser.is{ surfaceId?: string, what: "visible"|"enabled"|"checked"|"focused", selector: string }{ value: boolean }
browser.eval{ surfaceId?: string, expression: string }{ result: any }
MéthodeParamsRésultat
browser.addscript{ surfaceId?: string, source: string }{ ok: true }
browser.addstyle{ surfaceId?: string, source: string }{ ok: true }

browser.eval, browser.addscript et browser.addstyle rejettent les charges utiles supérieures à 256 KiB — cela ne concerne que les scripts ou feuilles de style anormalement volumineux.

MéthodeParamsRésultat
browser.find{ surfaceId?: string, query: string }{ ok: true }
browser.stop_find{ surfaceId?: string }{ ok: true }
browser.devtools{ surfaceId?: string }{ ok: true }
MéthodeParamsRésultat
browser.console_list{ surfaceId?: string, follow?: boolean }{ entries: Array<{ level, text, ts }> }
browser.console_clear{ surfaceId?: string }{ ok: true }
browser.errors_list{ surfaceId?: string, follow?: boolean }{ entries: Array<{ message, source, ts }> }
browser.errors_clear{ surfaceId?: string }{ ok: true }
browser.history{ search?: string, limit?: number }{ entries: Array<{ url, title, visits, lastAt }> }
browser.clear_history{}{ ok: true }

follow: true ouvre un flux — les événements supplémentaires arrivent sous forme de trames { id, event: { … } } jusqu’à annulation.

Mappé 1:1 par ht browser.

Un pot à cookies persistant partagé avec les panneaux navigateur (partitionné selon browserPartitionMode).

MéthodeParamsRésultat
browser.cookie_list{ domain? }cookies stockés, filtrés par domaine
browser.cookie_get{ url }cookies envoyés pour cette URL
browser.cookie_set{ name, value, domain, path?, secure?, http_only?, expires? }"OK"
browser.cookie_delete{ domain, name }"OK"
browser.cookie_clear{ domain? }"OK" — tout, ou un domaine
browser.cookie_import{ path, format? }nombre importé (json ou netscape)
browser.cookie_export{ format? }pot sérialisé (json par défaut)
browser.cookie_capture{ surface_id? }cookies récoltés sur la page courante

Les cookies sont des identifiants — traitez un export comme un fichier de mots de passe. Voir ht browser-cookie-*.