--- id: cdp_get_cookies_go_browser name: cdp_get_cookies kind: function lang: go domain: browser purity: impure version: 1.0.0 tested: false description: "Devuelve todas las cookies del browser via Network.getAllCookies; el caller filtra por dominio o nombre sobre el slice []CdpCookie." tags: [cdp, browser, cookie, network, navegator] signature: "func CdpGetCookies(c *CDPConn) ([]CdpCookie, error)" uses_functions: [] uses_types: [] returns: [] returns_optional: false error_type: error_go_core imports: [] file_path: "functions/browser/cdp_get_cookies.go" example: | conn, _ := CdpConnect(9222) cookies, err := CdpGetCookies(conn) if err != nil { log.Fatal(err) } for _, ck := range cookies { if ck.Domain == "app.example.com" { fmt.Printf("name=%s value=%s httpOnly=%v\n", ck.Name, ck.Value, ck.HTTPOnly) } } params: - name: c desc: "Conexion CDP activa al browser (obtenida con CdpConnect)" output: "Slice de CdpCookie con todas las cookies del browser; error si falla la comunicacion CDP." --- ## Ejemplo ```go conn, _ := CdpConnect(9222) cookies, err := CdpGetCookies(conn) if err != nil { log.Fatal(err) } for _, ck := range cookies { if ck.Domain == "app.example.com" { fmt.Printf("name=%s value=%s httpOnly=%v\n", ck.Name, ck.Value, ck.HTTPOnly) } } ``` ## Cuando usarla Usar cuando necesitas inspeccionar el estado de cookies del browser tras un login CDP, antes de propagarlas a otro contexto, o para auditar sesiones activas en tests e2e. ## Gotchas - Llama `Network.enable` internamente antes de `getAllCookies`; es idempotente pero suma latencia en la primera llamada. - `Network.getAllCookies` devuelve cookies de TODOS los dominios del browser, no solo la tab activa. Filtrar por `Domain` en el caller. - Las cookies HttpOnly son visibles via CDP aunque no lo sean desde JavaScript del browser. - `Expires == -1` indica cookie de sesion (sin fecha de expiración).