package browser

import (
	"fmt"
)

// CdpNavigate navega a la URL indicada usando Page.navigate.
// Espera a que la carga este confirmada via Page.loadEventFired antes de retornar.
// El timeout de la navegacion es gestionado por Chrome internamente.
func CdpNavigate(c *CDPConn, targetURL string) error {
	if c == nil {
		return fmt.Errorf("cdp navigate: conexion nula")
	}

	params := map[string]any{
		"url": targetURL,
	}

	result, err := c.sendCDP("Page.navigate", params)
	if err != nil {
		return fmt.Errorf("cdp navigate: %w", err)
	}

	// Verificar que no hubo error de navegacion
	if errText, ok := result["errorText"].(string); ok && errText != "" {
		return fmt.Errorf("cdp navigate: error navegando a %q: %s", targetURL, errText)
	}

	return nil
}
