| cdp_new_tab_background |
function |
go |
browser |
1.0.0 |
impure |
func CdpNewTabBackground(host string, port int, startURL string) (CdpTab, error) |
Abre una pestaña nueva via CDP Target.createTarget con background:true, sin activarla ni elevar la ventana del navegador (no roba el foco del WM). Drop-in sin-foco de CdpNewTab: misma firma y mismo CdpTab de retorno, pero usando el comando CDP browser-level en lugar del endpoint HTTP /json/new (que SI roba foco). |
| browser |
| cdp |
| tabs |
| spawn |
| background |
| no-focus |
|
|
|
|
false |
error_go_core |
|
tab, err := browser.CdpNewTabBackground("localhost", 9333, "https://example.com")
if err == nil {
fmt.Println("nueva tab en segundo plano id=", tab.ID)
}
|
true |
| TestCdpNewTabBackground_closedPort |
| TestCdpNewTabBackground_emptyStartURLClosedPort |
|
functions/browser/cdp_new_tab_background_test.go |
functions/browser/cdp_new_tab_background.go |
- Usa los helpers privados del paquete: cdpGetWSURL (browser-level WS),
cdpConnectWS, (*CDPConn).sendCDP y CdpListTabs. No reescribe el transporte CDP.
- El cierre del WebSocket se hace con CdpDisconnect (solo suelta la sesion, deja
el navegador vivo).
- Resuelve el CdpTab completo via CdpListTabs buscando por targetId; si hay
carrera y aun no aparece, devuelve un CdpTab minimo (id, type, url) como fallback.
|
Alternativa a CdpNewTab cuando NO quieres que la ventana del navegador robe el
foco del window manager — por ejemplo, mientras el usuario escribe en otra
ventana. El endpoint HTTP /json/new no admite el parametro background, asi que
CdpNewTab siempre eleva la ventana; esta funcion usa Target.createTarget con
"background": true para crear la pestaña en segundo plano.
|
| name |
desc |
| host |
Host CDP donde escucha el navegador (vacio = localhost). |
|
| name |
desc |
| port |
Puerto remote-debugging de Chrome/Chromium (ej. 9333). |
|
| name |
desc |
| startURL |
URL inicial de la pestaña. Vacio = about:blank. |
|
|
CdpTab del target recien creado (id, webSocketDebuggerUrl, title, url, ...). Error si /json/version o el comando CDP fallan. |