Files
navegator/dev/issues/012-browser-contexts-multi-sesion.md
T
Developer c165f2f788 docs: issues técnicas para nuevas funcionalidades
Agrega 19 issues técnicas documentando funcionalidades implementadas y pendientes.

Issues completadas (movidas a dev/issues/completed/):
- 001-conversor-web-markdown.md
- 002-accessibility-tree.md
- 003-gestion-cookies-perfil.md
- 004-gestion-extensiones-chrome.md
- 005-eliminar-timeouts-innecesarios.md

Issues implementadas:
- 006-manejo-tabs-ventanas.md
- 016-manejo-iframes.md
- 017-actions-api.md
- 018-file-uploads.md
- 019-expected-conditions-mejoradas.md

Issues pendientes (media prioridad):
- 007-alert-prompt-confirm-handling.md
- 008-screenshot-elementos-especificos.md
- 009-pdf-generation.md
- 010-device-emulation-completo.md
- 011-downloads-handling.md

Issues pendientes (baja prioridad / avanzado):
- 012-browser-contexts-multi-sesion.md
- 013-video-recording.md
- 014-network-mocking-avanzado.md
- 015-geolocation-permissions.md

Incluye también dev/NUEVAS_FUNCIONALIDADES.md con resumen completo.

Directorio: dev/
2026-03-25 00:49:06 +01:00

2.0 KiB

Issue #012: Browser Contexts (Multi-sesión)

Tipo: Enhancement Prioridad: Baja (Avanzado) Estado: Pendiente

Descripción

Implementar Browser Contexts para múltiples sesiones aisladas en una misma instancia de navegador.

Funcionalidad deseada

  • Crear múltiples contextos aislados
  • Cada contexto tiene su propio:
    • Storage (cookies, localStorage, sessionStorage)
    • Cache
    • Permissions
    • Geolocation
  • Compartir proceso de navegador (más eficiente que múltiples perfiles)
  • Cerrar contextos individualmente

API propuesta

type BrowserContext struct {
    id      string
    browser *Browser
    pages   []*Page
}

type ContextOptions struct {
    Cookies     []*Cookie
    Permissions []string
    Geolocation *Geolocation
    Timezone    string
    Locale      string
    UserAgent   string
}

func (b *Browser) NewContext(ctx context.Context, opts *ContextOptions) (*BrowserContext, error)
func (bc *BrowserContext) NewPage(ctx context.Context) (*Page, error)
func (bc *BrowserContext) Close(ctx context.Context) error
func (bc *BrowserContext) ClearCookies(ctx context.Context) error

Uso

// Contexto 1 - Usuario A
ctx1, _ := b.NewContext(ctx, &browser.ContextOptions{
    Cookies: cookiesUserA,
})
page1, _ := ctx1.NewPage(ctx)
page1.Navigate(ctx, "https://example.com")

// Contexto 2 - Usuario B
ctx2, _ := b.NewContext(ctx, &browser.ContextOptions{
    Cookies: cookiesUserB,
})
page2, _ := ctx2.NewPage(ctx)
page2.Navigate(ctx, "https://example.com")

// Ambos contextos están completamente aislados

CDP Methods

  • Target.createBrowserContext
  • Target.disposeBrowserContext
  • Target.createTarget con browserContextId

Ventajas

  • Más eficiente que múltiples instancias de navegador
  • Rápido para tests paralelos
  • Ideal para testing multi-usuario
  • Menor uso de memoria vs múltiples navegadores

Referencias