- 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.
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:
Sequenza Attesa (WebView OK + Cookie Trovato)
[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:
- Verifica WebView2 Runtime installato:
Get-ItemProperty -Path "HKLM:\SOFTWARE\WOW6432Node\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}" -Name pv - Se mancante, scarica da: https://developer.microsoft.com/en-us/microsoft-edge/webview2/
Scenario B: WebView OK ma Cookie Non Trovato ?
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:
- Apri app
- Click tab "Browser"
- Vai su https://it.bidoo.com
- Apri DevTools (F12) ? Application ? Cookies
- Cerca cookie
__stattrb
Soluzioni:
- Se cookie assente: Fai login su Bidoo manualmente
- Se cookie presente ma non rilevato: Bug in
GetCookieFromWebView(), devo fixare
Scenario C: Cookie Trovato ma Importazione Fallisce ?
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:
- Cookie scaduto
- API Bidoo cambiata
- 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:
- ?
[DEBUG] EnsureCoreWebView2Async completata? WebView init OK - ?
[DEBUG] GetCookieFromWebView ritornato, cookie presente: True? Cookie trovato - ?
[SESSION OK] Validata e attiva? Validazione OK - ? 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
Fix 2: Cookie Browser Assente
- Apri app
- Tab "Browser"
- Vai su https://it.bidoo.com
- Login manuale:
- Username:
sirbietole23 - Password: [tua password]
- Username:
- Verifica login riuscito (homepage Bidoo)
- Riavvia app
Fix 3: Firewall/Antivirus Blocca WebView
Aggiungi eccezione per:
AutoBidder.exemsedgewebview2.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
- ? Avvia app con logging dettagliato
- ? Aspetta 60 secondi
- ? Copia TUTTO il log
- ? Inviami il log completo
- ? Identificherò il punto esatto di fallimento
- ? Fornirò fix mirato
File Modificati:
Core\MainWindow.WebView.cs- Logging dettagliato init + cookie checkCore\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