Files
Mimante/Mimante/Documentation/DEBUG_COOKIE_DETECTION_LOGGING.md
Alberto Balbo 6795282993 Migliorato auto-login e gestione cookie WebView2
- Introdotto il pre-caricamento di WebView2 per ridurre i tempi di attesa.
- Implementato il pattern TaskCompletionSource per attendere l'inizializzazione di WebView2 (timeout 60s).
- Centralizzata la logica di verifica e importazione automatica dei cookie.
- Mostrate istruzioni di login solo se necessario, migliorando l'UX.
- Risolti problemi di timeout e threading durante l'inizializzazione di WebView2.
- Puliti e ottimizzati i log per maggiore chiarezza.
- Rimossa la gestione manuale dei cookie, ora automatizzata.
2025-11-25 11:33:50 +01:00

7.6 KiB

?? Debug: Cookie Detection Non Funziona

?? Problema

Dopo 60 secondi dall'avvio, rimane "Non connesso" anche se browser ha cookie valido.

? Logging Dettagliato Aggiunto

Ho aggiunto logging completo per diagnosticare il problema. Ora ogni step è tracciato.

Punti di Log Aggiunti

1. InitializeWebView2()

[DEBUG] Chiamata EnsureCoreWebView2Async...
[DEBUG] EnsureCoreWebView2Async completata
[DEBUG] CoreWebView2 disponibile, navigating...
[DEBUG] Notifica WebView pronta (TrySetResult)
[DEBUG] Inizio CheckAndImportCookieIfAvailable

2. CheckAndImportCookieIfAvailable()

[DEBUG] CheckAndImportCookieIfAvailable - inizio
[DEBUG] Delay 1000ms completato, chiamo GetCookieFromWebView
[DEBUG] GetCookieFromWebView ritornato, cookie presente: True/False
[DEBUG] Cookie già presente in sessione corrente, skip import
[DEBUG] Nessun cookie trovato nel browser

3. WaitForWebViewInitAsync()

[DEBUG] WaitForWebViewInitAsync - inizio (timeout: 60s)
[DEBUG] WebView già inizializzata, ritorno true immediato
[DEBUG] Creazione TaskCompletionSource
[DEBUG] WaitForWebViewInitAsync completato, result: true/false

4. CheckBrowserCookieAfterWebViewReady()

[DEBUG] CheckBrowserCookieAfterWebViewReady - avviato Task.Run
[DEBUG] Attesa inizializzazione WebView per verifica cookie...
[DEBUG] WaitForWebViewInitAsync completato, ready: true/false
[DEBUG] WebView pronta, procedo con verifica cookie
[DEBUG] Dispatcher.InvokeAsync - chiamo GetCookieFromWebView
[DEBUG] GetCookieFromWebView ritornato, cookie: PRESENTE/VUOTO

?? Istruzioni per Test e Debug

Step 1: Pulisci e Riavvia

# Pulisci sessione salvata
Remove-Item "$env:LOCALAPPDATA\AutoBidder\session.dat" -ErrorAction SilentlyContinue

# Riavvia app

Step 2: Osserva Log Completo

Dopo l'avvio, il log dovrebbe mostrare tutta la sequenza:

[17:30:53] [SESSION] Nessuna sessione salvata
[17:30:53] [BROWSER] Inizializzazione WebView2 in background...
[17:30:53] [DEBUG] CheckBrowserCookieAfterWebViewReady - avviato Task.Run
[17:30:53] [DEBUG] Attesa inizializzazione WebView per verifica cookie...
[17:30:53] [DEBUG] WaitForWebViewInitAsync - inizio (timeout: 60s)
[17:30:53] [DEBUG] Creazione TaskCompletionSource
[17:30:54] [DEBUG] Chiamata EnsureCoreWebView2Async...

... [attesa 40-50 secondi] ...

[17:31:43] [DEBUG] EnsureCoreWebView2Async completata
[17:31:43] [DEBUG] CoreWebView2 disponibile, navigating...
[17:31:43] [BROWSER] WebView2 inizializzato e pre-caricato
[17:31:43] [DEBUG] Notifica WebView pronta (TrySetResult)
[17:31:43] [DEBUG] Inizio CheckAndImportCookieIfAvailable
[17:31:43] [DEBUG] CheckAndImportCookieIfAvailable - inizio
[17:31:43] [DEBUG] WaitForWebViewInitAsync completato, result: true
[17:31:43] [DEBUG] WebView pronta, procedo con verifica cookie
[17:31:43] [DEBUG] Dispatcher.InvokeAsync - chiamo GetCookieFromWebView
[17:31:44] [DEBUG] Delay 1000ms completato, chiamo GetCookieFromWebView
[17:31:45] [DEBUG] GetCookieFromWebView ritornato, cookie presente: True
[17:31:45] [DEBUG] GetCookieFromWebView ritornato, cookie: PRESENTE
[17:31:45] [BROWSER] Cookie rilevato nel browser - importazione automatica...
[17:31:45] [DEBUG] Chiamata AutoImportCookieFromWebView
[17:31:45] [SESSION OK] Validata e attiva: username, XX puntate
[17:31:45] [DEBUG] AutoImportCookieFromWebView completata

Step 3: Identifica Punto di Fallimento

Confronta il tuo log con la sequenza sopra. Dove si ferma?

Scenario A: WebView Non Si Inizializza ?

Log:

[17:30:53] [DEBUG] Chiamata EnsureCoreWebView2Async...
[17:31:53] [WARN] Timeout attesa inizializzazione WebView2

Causa: EnsureCoreWebView2Async si blocca per 60 secondi e va in timeout

Soluzione:

  1. Verifica WebView2 Runtime installato:
    Get-ItemProperty -Path "HKLM:\SOFTWARE\WOW6432Node\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}" -Name pv
    
  2. Se mancante, scarica da: https://developer.microsoft.com/en-us/microsoft-edge/webview2/

Log:

[17:31:43] [BROWSER] WebView2 inizializzato e pre-caricato
[17:31:45] [DEBUG] GetCookieFromWebView ritornato, cookie presente: False
[17:31:45] [DEBUG] Nessun cookie trovato nel browser
[17:31:45] [INFO] Nessun cookie nel browser
[17:31:45] [INFO] Per accedere:

Causa: WebView pronta ma nessun cookie __stattrb trovato

Verifica:

  1. Apri app
  2. Click tab "Browser"
  3. Vai su https://it.bidoo.com
  4. Apri DevTools (F12) ? Application ? Cookies
  5. Cerca cookie __stattrb

Soluzioni:

  • Se cookie assente: Fai login su Bidoo manualmente
  • Se cookie presente ma non rilevato: Bug in GetCookieFromWebView(), devo fixare

Log:

[17:31:45] [DEBUG] GetCookieFromWebView ritornato, cookie presente: True
[17:31:45] [BROWSER] Cookie rilevato - importazione automatica...
[17:31:45] [DEBUG] Chiamata AutoImportCookieFromWebView
[17:31:46] [SESSION ERROR] Cookie importato ma non valido: [errore]

Causa: Cookie trovato ma validazione fallita

Possibili Cause:

  1. Cookie scaduto
  2. API Bidoo cambiata
  3. Errore di rete

Soluzione: Controlla log dettagliato errore, potrei dover fixare ValidateAndActivateSessionAsync


Scenario D: Tutto OK ma UI Non Aggiorna ?

Log:

[17:31:45] [SESSION OK] Validata e attiva: username, XX puntate
[17:31:45] [DEBUG] AutoImportCookieFromWebView completata

Ma sidebar ancora "Non connesso"

Causa: SetUserBanner() non chiamato o chiamato con parametri sbagliati

Soluzione: Controlla se c'è chiamata a SetUserBanner() dopo l'import


Step 4: Inviami il Log

Copia TUTTO il log dal momento dell'avvio fino a 60 secondi dopo, e inviamelo.

Cercherò specificamente questi pattern:

  1. ? [DEBUG] EnsureCoreWebView2Async completata ? WebView init OK
  2. ? [DEBUG] GetCookieFromWebView ritornato, cookie presente: True ? Cookie trovato
  3. ? [SESSION OK] Validata e attiva ? Validazione OK
  4. ? Qualsiasi [ERROR] o [WARN] ? Problema specifico

?? Quick Fixes Comuni

Fix 1: WebView2 Runtime Mancante

# Download installer
$url = "https://go.microsoft.com/fwlink/p/?LinkId=2124703"
Invoke-WebRequest -Uri $url -OutFile "MicrosoftEdgeWebview2Setup.exe"

# Installa
.\MicrosoftEdgeWebview2Setup.exe /silent /install
  1. Apri app
  2. Tab "Browser"
  3. Vai su https://it.bidoo.com
  4. Login manuale:
    • Username: sirbietole23
    • Password: [tua password]
  5. Verifica login riuscito (homepage Bidoo)
  6. Riavvia app

Fix 3: Firewall/Antivirus Blocca WebView

Aggiungi eccezione per:

  • AutoBidder.exe
  • msedgewebview2.exe

?? Checklist Diagnostica

Prima di inviare log, verifica:

  • WebView2 Runtime installato?
  • Browser ha cookie __stattrb?
  • Sei loggato su Bidoo nel browser integrato?
  • Firewall/antivirus non blocca app?
  • Hai riavviato app dopo aver fatto login?
  • Log mostra "[DEBUG]" lines? (se no, build non aggiornata)

?? Prossimi Passi

  1. ? Avvia app con logging dettagliato
  2. ? Aspetta 60 secondi
  3. ? Copia TUTTO il log
  4. ? Inviami il log completo
  5. ? Identificherò il punto esatto di fallimento
  6. ? Fornirò fix mirato

File Modificati:

  • Core\MainWindow.WebView.cs - Logging dettagliato init + cookie check
  • Core\MainWindow.UserInfo.cs - Logging dettagliato attesa WebView

Build: ? Compilazione riuscita
Pronto per Debug: ? Sì

Azione Richiesta: Riavvia app e inviami log completo dei primi 60 secondi