package browser

import (
	"fmt"
)

// CdpNavigate navega a la URL indicada usando Page.navigate.
// NO espera a que la pagina cargue: retorna en cuanto Chrome acepta la navegacion
// (solo verifica que no haya errorText). Para esperar la carga real encadena
// despues CdpWaitLoad (document.readyState) o CdpWaitIdle (red en reposo).
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
}
