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éthode | Params | Ré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éthode | Params | Ré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éthode | Params | Ré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éthode | Params | Ré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éthode | Params | Ré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éthode | Params | Ré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éthode | Params | Résultat |
|---|
browser.find | { surfaceId?: string, query: string } | { ok: true } |
browser.stop_find | { surfaceId?: string } | { ok: true } |
browser.devtools | { surfaceId?: string } | { ok: true } |
| Méthode | Params | Ré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éthode | Params | Ré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-*.