Versioni precedenti di Chrome
Per le versioni precedenti di Chrome, ecco le versioni di ChromeDriver che lo supportano.
Per ulteriori informazioni sulla selezione della versione corretta di ChromeDriver, consulta la pagina Selezione della versione.
ChromeDriver 148
Correzioni di bug
- Accesso al DOM: è stato risolto un arresto anomalo che si verificava durante la simulazione di un clic sul pulsante all'interno di un iframe a sua volta nidificato all'interno di una radice shadow chiusa. Il JavaScript utilizzato in precedenza per trovare l'ID elemento frame proprietario non riusciva a penetrare le radici shadow chiuse; la nuova implementazione utilizza direttamente il formato
f.X.d.Y.e.Zper risolvere il frame (crrev.com/c/7594919, Bug: 469831357). - Sicurezza: è stata rafforzata la sanificazione degli argomenti di Chrome per prevenire una potenziale vulnerabilità che coinvolge l'inserimento di argomenti posizionali (crrev.com/c/7695604, Bug: 494464734).
- Test: è stato aumentato il timeout di
kImplicitWaitper i testFindElement(s)WhileNavigatingincommands_unittestdurante l'esecuzione in AddressSanitizer (ASAN). Il timeout predefinito di 3 secondi non è stato sufficiente per il ciclo di nuovi tentativi per consumare tutti gli errori simulati nell'overhead ASAN, causando instabilità (crrev.com/c/7657276).
Modifiche interne e refactoring
- Standard C++: sono state sostituite le inclusioni superflue di
base/functional/callback_forward.hin//chromefile.cc, imponendo l'utilizzo dicallback.hquando vengono effettivamente utilizzate le callback (crrev.com/c/7200285, Bug: 40318405).logging::LoggingSettingsè stato spostato dabase/logging.halla propria intestazionebase/logging/logging_settings.hper migliorare l'efficienza della compilazione (crrev.com/c/7173024, relanding crrev.com/c/7160150 dopo il ripristino crrev.com/c/7170750). Sono stati risolti vari errori IWYU relativi abase/logging.h(crrev.com/c/7730403, Bug: 499476145). - Standard C++: i controlli ridondanti della mappa
count(key)seguiti dalle ricerche sono stati sostituiti con accessi più efficienti all'iteratorefind(key)(crrev.com/c/7705392, crrev.com/c/7693277, Bug: 452950815).ThreadDelegateinserito tramite il costruttoreThreadper migliorare l'incapsulamento e aggiunta un'opzioneRestartableaThreadper gestire i casi in cui è necessario riavviare i thread (crrev.com/c/7696887, Bug: 40881604). - Sicurezza della memoria: conversione delle macro
#pragma allow_unsafe_buffersa livello di file in macroUNSAFE_TODO()granulari inchrome/(crrev.com/c/7132241, Bug: 409340989).IOBuffer->span().first()è stato abbreviato inIOBuffer->first()(crrev.com/c/7159119). - Dipendenze: è stata implementata la dipendenza
crossbench, che include correzioni per il rilevamento di file binari ChromeDriver creati localmente su macOS e Android (crrev.com/c/7673978). - Test: è stato riattivato lo schema
moduleinchromedriver_py_testsin seguito alle correzioni all'infrastruttura di build e test sottostante (crrev.com/c/7707960).
ChromeDriver 147
Correzioni di bug
- Test: è stato aggiunto un test di regressione ermetico per verificare che
ElementClickgestisca correttamente i clic sugli iframe multiorigine con elementi di overlay, in particolare negli scenari di isolamento del sito. In questo modo, i clic non vengono indirizzati erroneamente ai contenuti incorporati anziché alla sovrapposizione visibile (crrev.com/c/7261984, Bug: 42321834, Bug: 42322220).
Modifiche interne e refactoring
- Standard C++: sono state rinominate le modalità e le funzioni di decodifica degli URL in modo da rispettare la guida di stile di Google C++, modificando
DecodeURLModeinDecodeUrlModeeDecodeURLEscapeSequences()inDecodeUrlEscapeSequences()(crrev.com/c/7593238). È stato introdottourl::UrlEscapeDecoderper semplificare l'utilizzo della decodifica degli URL in tutto il codebase (crrev.com/c/7610180). Sono stati rimossi gli includebuild/branding_buildflags.hsuperflui dai file//chrome(crrev.com/c/7595125, Bug: 40318405). È stata rimossa la logicaBUILDFLAG(IS_FUCHSIA)da//chrome, tranne che in ChromeDriver (crrev.com/c/5485913, Bug: 41481724). - Sicurezza della memoria (spanification): risolti i marcatori
UNSAFE_TODOnelle utilità di ChromeDriver, con la migrazione a implementazioni sicure basate su intervalli (crrev.com/c/7562602, Bug: 435317390).
ChromeDriver 146
Correzioni di bug
- Stabilità: è stato risolto un arresto anomalo di ChromeDriver che poteva verificarsi durante l'elaborazione di un comando se la finestra veniva chiusa contemporaneamente (ad es. durante l'attesa del completamento di una navigazione). La correzione acquisisce un blocco sull'oggetto
WebViewper impedirne lo smaltimento prematuro (crrev.com/c/7257074, Bug: 468228355). - Sicurezza: è stato aggiunto un controllo dell'intestazione
Originper le connessioni WebSocket in entrata al server HTTP ChromeDriver, impedendo potenziali attacchi di cross-origin (crrev.com/c/7538400, Bug: 478783560). - Test: è stato spostato
testWebviewDetactedDuringClicknel filtro instabile, ignorandolo in tutte le esecuzioni anziché solo in modalità headless (crrev.com/c/7545378, Bug: 481485821).
Modifiche interne e refactoring
- Standard C++: è stato cambiato il nome di
base::DictValueebase::ListValuecon i loro equivalenti moderni (base::Value::Dictebase::Value::List) in//chrome(crrev.com/c/7515855, crrev.com/c/7514475, Bug: 478100525). Sostituito l'utilizzo dibase::Contains()constd::ranges::contains()(crrev.com/c/7461026, Bug: 470391351). Migrazione distd::setestd::unordered_setabase::fixed_flat_set, ove opportuno (crrev.com/c/7521991, Bug: 473916362). Sono state eliminate le chiamatebase::JSONReader::Readche non specificavano le opzioni di analisi (crrev.com/c/6990988, crrev.com/c/6980533, Bug: 446188265). Sono state sostituite varie chiamatebase::JSONWriter::Write()conbase::WriteJson()(crrev.com/c/6969134, crrev.com/c/6929101, Bug: 443929217). Ordine#includeripulito (crrev.com/c/7366868). È stata eseguita la migrazione dei riferimenti ai bug nei commenti per utilizzare gli ID Buganizer anziché gli ID Monorail (crrev.com/c/7528268, Bug: 321899722). I flag di buildIS_OZONE_*sono stati rinominati inSUPPORTS_OZONE_*per maggiore chiarezza (crrev.com/c/7535923). - Sicurezza della memoria (spanificazione): l'utilizzo di puntatori non sicuri è stato sostituito con
base::spaninbase/strings/utf_string_conversion_utils.cc(crrev.com/c/7496410, Bug: 439964610, Bug: 40284755). Sono stati aggiunti altri utilizzi dibase::Filenei test//chrome(crrev.com/c/7489592, Bug: 435317390).memsetsostituito con l'inizializzazione aggregata in//chrome(crrev.com/c/6875520, Bug: 435317390). I rimanenti#pragma allow_unsafe_bufferssono stati convertiti in indicatoriUNSAFE_TODO(crrev.com/c/7132241, Bug: 409340989). - Prewarm DSE: è stata attivata la funzionalità
DSEPrewarminfieldtrial_testing_config.jsonper macOS e Windows, in quanto è stata risolta l'instabilità dei test di ChromeDriver correlati (crrev.com/c/7489009, relanding crrev.com/c/7002185 dopo il ripristino crrev.com/c/7452344). (Nota: questo reland è stato successivamente annullato di nuovo a causa dell'aumento dei tempi di esecuzione dei test su Windows (crrev.com/c/7517985, Bug: 478888140)). - Diagnostica: è stato aggiunto il monitoraggio della posizione del chiamante agli eventi di traccia
WaitableEventeConditionVariableper una migliore capacità di debug (crrev.com/c/7487755, Bug: 476408124).
ChromeDriver 145
Nuove funzionalità
- Test: è stato aggiornato il framework di test
run_py_tests.pyper accettare test di stringhe deterministici di lunghezza variabile (ad es. 53, 101 e 501 caratteri) che hanno come target gli elementiinput,textareaecontenteditable. In questo modo viene fornita la copertura della regressione, garantendo che nessun carattere venga eliminato durante le operazionisend_keyslunghe (crrev.com/c/7221410, Bug: 428116078). - Test: è stato aggiunto un test specifico per l'elemento HTML
<selectlist>(crrev.com/c/7420729, Bug: 342889200).
Correzioni di bug
- Screenshot: è stato ripristinato il ridimensionamento degli screenshot degli elementi, in quanto la specifica WebDriver non prescrive il ridimensionamento ed era incoerente con altre funzioni di screenshot (crrev.com/c/7409603, Bug: 42323022).
- Test: sono stati corretti gli errori in
testClientHintsDeviceNameIPhoneXetestClientHintsDeviceNameIPadaggiornando le aspettative di test di ChromeDriver in modo che corrispondano ai valori corretti recenti (per i campi platform, platformVersion, model e mobile) introdotti in DevTools Frontend (crrev.com/c/7408699, Bug: 474179501).
Modifiche interne e refactoring
- Standard C++: è stata eseguita la migrazione di vari utilizzi di
base::Contains()astd::ranges::contains()in//chrome(crrev.com/c/7411011, Bug: 470391351), incluse le correzioni di formattazione necessarie (crrev.com/c/7247217). È stato eseguito il refactoring dei parametri stringa instd::string_viewper evitare allocazioni di stringhe non necessarie quando si utilizzasubstr()(crrev.com/c/7350716). Sono stati rimossi gli include<map>superflui dalle intestazioni//chrome(crrev.com/c/7225838, Bug: 40318405). È stato corretto l'ordine di inclusione in alcuni file (crrev.com/c/7366868). Sono stati sostituiti i callbackBodyAsStringCallbackDeprecatedlegacy negli utilizzi diSimpleURLLoaderconBodyAsStringCallback, che utilizzastd::optionalanzichéstd::unique_ptr(crrev.com/c/7210000, Bug: 40258809). - Test: è stata ripristinata la configurazione della prova sul campo
InfobarPrioritization, incluse le correzioni per evitare arresti anomali nei test del browser ChromeDriver durante la gestione delle barre informative in attesa che non sono state aggiunte alla gerarchia di oggetti View (crrev.com/c/7223590, Bug: 447176374). È stato ripristinato il filtro per paese e impostazioni internazionali per la funzionalità Glic, che era stato precedentemente annullato a causa di errori di test non correlati (crrev.com/c/7245749, ripristino di crrev.com/c/7148759 dopo l'annullamento di crrev.com/c/7233767, Bug: 454431875).
ChromeDriver 144
Nuove funzionalità
- Autorizzazioni: è stato aggiornato il comando
SetPermissionin modo che rispetti le ultime specifiche W3C, utilizzando l'URL del frame corrente (origine incorporata) oltre all'origine di primo livello. In questo modo vengono configurate correttamente le autorizzazioni comestorage-accessche si basano sul contesto incorporato (crrev.com/c/7106801, relanding crrev.com/c/7093216 dopo il ripristino crrev.com/c/7104484, Bug: 384959114). - Test: è stato aggiunto
testMetadata(incluso il nome del test) al payload di caricamento del test ChromeDriver per supportare l'approvatore di instabilità quando si utilizzano ID test strutturati (crrev.com/c/7124354, Bug: 456432041).
Correzioni di bug
- Ciclo di vita del target: è stato corretto un bug a causa del quale ChromeDriver si bloccava se un frame principale veniva scollegato mentre un frame secondario era in attesa di una risposta al comando. ChromeDriver ora stacca in modo transitivo ed esplicito i frame discendenti quando un
WebViewImplprincipale è bloccato e contrassegnato come staccato durante l'elaborazione dei comandi (crrev.com/c/7080912, Bug: 438436830). - Gestione finestre: è stata disattivata la messa in background delle finestre occluse specificamente per le sessioni di ChromeDriver. In questo modo vengono risolti i problemi in WebDriver BiDi in cui i test potrebbero non riuscire se il browser ritiene erroneamente che una finestra sia occlusa e ne limita la velocità (crrev.com/c/7128058, Bug: 458027819).
Modifiche interne e refactoring
- Standard C++: sono state rimosse inclusioni superflue di
base/functional/callback_forward.hin//chromefile.cc, imponendo l'utilizzo dicallback.hquando vengono effettivamente utilizzate le callback (crrev.com/c/7200285, Bug: 40318405).logging::LoggingSettingsè stato spostato dabase/logging.halla propria intestazionebase/logging/logging_settings.hper migliorare l'efficienza della compilazione (crrev.com/c/7173024, relanding crrev.com/c/7160150 dopo il ripristino crrev.com/c/7170750). Utilizzi dibase::HexEncodemigrati al nuovobase::HexEncodeLower(crrev.com/c/7103100, Bug: 456472080). - Sicurezza della memoria (spanification): è stata eseguita la migrazione dei test unitari
WriteToPipeeWriteToPipeNoBestEffortinPipeBuilderePipeConnectionper accettarebase::span, correggendo l'utilizzo non sicuro del buffer (crrev.com/c/7090293, Bug: 455758227). Macro#pragma allow_unsafe_buffersa livello di file convertite in macroUNSAFE_TODO()granulari inchrome/(crrev.com/c/7132241, Bug: 409340989).IOBuffer->span().first()è stato abbreviato inIOBuffer->first()(crrev.com/c/7159119).
ChromeDriver 143
Correzioni di bug
- Stabilità: è stato corretto un arresto anomalo di tipo Use-After-Free (UAF) all'interno di
OverrideNetworkConditions. Il puntatore non elaborato salvato per l'applicazione successiva veniva liberato tra chiamate consecutive; ora viene gestito correttamente (crrev.com/c/7047422, Bug: 42323833). - Test: sono stati corretti i test di tocco di Android ChromeDriver non affidabili utilizzando l'API
WaitForConditionper una sincronizzazione più affidabile (crrev.com/c/6978928, Bug: 42321861). - Prewarm DSE: è stata disattivata la funzionalità
Prewarmin ChromeDriver per impostazione predefinita tramite l'opzione--disable-features=Prewarm, impedendo alle pagine prewarm di interferire con l'esecuzione dei test e l'individuazione dei target (crrev.com/c/7007072, Bug: 431928370).
Modifiche interne e refactoring
- Standard C++: è stato sostituito
ref_counted.hconscoped_refptr.hnelle intestazioni//chromein cui viene utilizzato solo lo smart pointer, migliorando l'efficienza della compilazione (crrev.com/c/7080753, Bug: 40245294). È stata eseguita la migrazione degli accessorGURLalle relative variantiGet*(ad es.GetSpec()anzichéspec()) per indicare chiaramente l'allocazione delle stringhe, evitando penalità accidentali per il rendimento (crrev.com/c/7002119, Bug: 448174617). - Test: rimossi pattern di controllo ridondanti in
devtools_client_impl_unittest.ccutilizzandoADD_FAILURE()(crrev.com/c/6998270). È stato aggiunto un test di regressione percrbug.com/413382905(crrev.com/c/6879417).
ChromeDriver 142
Nuove funzionalità
- Diagnostica: è stato aggiunto lo stato
TERMINATION_STATUS_EVICTED_FOR_MEMORYper distinguere i processi terminati in modo proattivo dal browser (per risparmiare memoria) dai processi che hanno subito un arresto anomalo a causa di errori di esaurimento della memoria (OOM). Al momento, questo comportamento è identico a un arresto anomalo per esaurimento della memoria (visualizzazione di una scheda triste), ma pone le basi per una gestione distinta futura (crrev.com/c/6991933, Bug: 394092280). - Diagnostica: è stata aggiunta la funzionalità
goog:processIDalla risposta di WebDriver, che restituisce l'ID processo principale del browser desktop. In questo modo, ChromeDriver si allinea amoz:processIDdi Firefox e facilita il test delle API di accessibilità della piattaforma (crrev.com/c/5825307, Bug: 438884256). - Test: è stato aggiunto il supporto per i caricamenti di ID test strutturati in ResultSink per i test di integrazione Python di ChromeDriver (crrev.com/c/6916708, Bug: 418015486).
Correzioni di bug
- Diagnostica: è stato modificato il comportamento di ChromeDriver in caso di chiusura normale di Chrome in modo che non venga più emesso un messaggio di errore generico e fuorviante relativo all'utilizzo di
user-data-dir. Ora indica esplicitamente che l'istanza è stata terminata e indirizza l'utente ai log dettagliati per l'errore specifico generato da Chrome (crrev.com/c/6977507, Bug: 42323434). - Inizializzazione: è stata aggiornata la struttura di inizializzazione di ChromeDriver per rimanere compatibile con le modifiche di Selenium WebDriver v4.16.0 (crrev.com/c/6630600).
- Android: è stato corretto il problema
CheckAppInstallednelle versioni precedenti di Android (precedenti ad Android 11) in cui il flag--user curnon è supportato dal gestore di pacchetti (crrev.com/c/6785949, Bug: 433885051). - Test: è stato corretto un bug per cui
IgnoreDuplicateNavssostituiva in modo errato gli switch delle funzionalità predefinite in ChromeDriver. La funzionalità è stata disattivata per le sessioni di ChromeDriver e la logica diSwitches::SetFromSwitchesè stata corretta (crrev.com/c/6949166, Bug: 445332809).
Modifiche interne e refactoring
- Standard C++: sono state sostituite diverse chiamate
base::JSONWriter::Write()deprecate conbase::WriteJson(), mantenendo il comportamento di restituzione di una stringa vuota in caso di errore quando il valore restituito non è stato controllato (crrev.com/c/6969134, crrev.com/c/6929101, Bug: 443929217). È stato richiesto il consenso esplicito per le opzioni di analisi JSON non conformi (ad es. consentire i commenti) inbase::JSONReader::Readebase::JSONReader::ReadAndReturnValueWithError(crrev.com/c/6990988, crrev.com/c/6980533, Bug: 446188265). Rimozione dei pragma#pragma allow_unsafe_buffersa livello di file in seguito agli sforzi di spanificazione manuale (crrev.com/c/6778035, Bug: 409340989). Utilizzi puliti della macroLazyInstancecon perdite (crrev.com/c/6781377, Bug: 432815283). Sono state incluse le intestazioni mancanti perhttp_response_headers.htramite IWYU (crrev.com/c/6894196, Bug: 40216326). - Sicurezza della memoria (spanificazione): sono stati spanificati automaticamente numerosi puntatori nella directory
chrome/per le build Linux, aggiungendoCHECKnon irreversibili laddove i parametri di dimensione sono stati ritenuti ridondanti (crrev.com/c/6734592, Bug: 431824299). - Test:
testDoesntCrashOnClosingBrowserFromAsyncScripttemporaneamente disattivato su macOS (crrev.com/c/6995358, Bug: 446461733). Sono stati corretti gli errori di battitura nei nomi dei metodi di test che includono "Certificati" (crrev.com/c/6950683). File GN//chrome/testformattati automaticamente (crrev.com/c/6789277, Bug: 40760278). - FedCM: è stata introdotta una funzione
ShouldShowAccountsPassiveDialoginIdentityDialogControllerper verificare in modo sincrono se deve essere visualizzata una finestra di dialogo degli account, correggendo un arresto anomalo correlato ai controlli asincroni e all'instrumentazione di DevTools (crrev.com/c/6780413, Bug: 425801332). - Prewarm DSE: è stato aggiunto
Page.setPrewarmingAllowedal protocollo DevTools come soluzione a breve termine per attivare o disattivare manualmente il prewarm, correggendo i test correlati per garantire che interagiscano correttamente con la pagina principale (crrev.com/c/6847287, Bug: 431928370). È stata attivata la funzionalitàDSEPrewarminfieldtrial_testing_config.jsonper macOS e Windows dopo aver risolto i problemi di instabilità (crrev.com/c/6951835, Bug: 431928370, Bug: 435621391). (Nota: il comando CDP e l'attivazione della prova sul campo sono stati entrambi ripristinati perché rappresentavano modifiche che causavano problemi per gli utenti di WebDriver che esponevano target imprevisti e causavano altri problemi a valle rispettivamente (crrev.com/c/6966133, crrev.com/c/6966161, Bug: 445883308)). - Pulizia: rimossi i riferimenti rimanenti al progetto
WebLayernon supportato nel codice Android (crrev.com/c/6792520, Bug: 40272607).
ChromeDriver 141
Nuove funzionalità
- Test: è stato aggiunto il supporto per il flag
--enable-per-test-tracingarun_wpt_tests.py, in linea con il comportamento dirun_web_tests.py. Recupera gli eventi di traccia JSON da un buffer ChromeDriver interno e li salva nella directory dei risultati del test (crrev.com/c/6820247, Bug: 434017035).
Correzioni di bug
- Diagnostica: è stato impedito a ChromeDriver di stampare la propria analisi dello stack interna quando restituisce un errore
kTabCrashed. In questo modo si evita di confondere gli utenti, garantendo al contempo che l'analisi dello stack in caso di arresto anomalo del renderer rimanga nei log (crrev.com/c/6841669, Bug: 395131239).
Modifiche interne e refactoring
- Standard C++: le chiamate
memsetpotenzialmente non sicure sono state sostituite con l'inizializzazione aggregata standard C++ (instance = {}) inchrome/per evitare di bypassare i costruttori e garantire la sicurezza della memoria (crrev.com/c/6875520, Bug: 435317390). Sono state aggiunte le direttive#includemancanti per//base/time/time.htramite IWYU (crrev.com/c/6832689, Bug: 40216326). Sono stati riscritti i pragma del buffer non sicuro forzato (crrev.com/c/6828538). - Test: è stato aggiunto un test di regressione per
crbug.com/413382905(crrev.com/c/6879417). - Transizioni di visualizzazione: è stato ripristinato il correzione delle transizioni di visualizzazione che aggiorna il lavoro svolto prima che la promessa finita venga risolta, dopo che è stato dimostrato che un precedente annullamento speculativo collegato agli errori di test di ChromeDriver era errato (crrev.com/c/6846765, ripristino di crrev.com/c/6806850 dopo l'annullamento di crrev.com/c/6808537).
ChromeDriver 140
Correzioni di bug
- Selezione della destinazione: è stato risolto un problema per cui la finestra DevTools poteva competere con la pagina principale per essere selezionata come finestra principale all'avvio di Chrome con
--auto-open-devtools-for-tabs. ChromeDriver ora esclude esplicitamente i target con prefissodevtools://durante la determinazione della finestra principale (crrev.com/c/6769505, Bug: 427908560). - Selezione del target: impedisce a ChromeDriver di calcolare in modo errato il punto centrale in visualizzazione degli elementi ignorando qualsiasi ritaglio
overflow:hiddenimposto dagli elementi padre. In questo modo, il calcolo viene allineato alla specifica WebDriver e ad altri scenariPerformActions(crrev.com/c/6735230, Bug: 42322257). - Android: è stata corretta la funzione
CheckAppInstallednelle versioni precedenti di Android (precedenti ad Android 11) in cui non è supportato il flag--user curper il gestore di pacchetti (crrev.com/c/6785949, Bug: 433885051). - Test: è stata corretta l'instabilità nella suite di test
chromedriver_py_testscausata dalla funzionalitàDSEPrewarm. ChromeDriver ora disattiva il trigger di prewarm mentre è collegato un client CDP per evitare conteggi di destinazione imprevisti durante i test (crrev.com/c/6764274, Bug: 423465927, Bug: 431928370). - Test: è stato ripristinato l'aggiunta della funzione
ShouldShowAccountsPassiveDialogaIdentityDialogController(parte di FedCM), che ha causato una regressione (crrev.com/c/6780413, Bug: 425801332).
Modifiche interne e refactoring
- Standard C++: sono stati aggiunti
std::vector#includemancanti tramite Include What You Use (IWYU) (crrev.com/c/6652818, Bug: 40216326). Sono state rimosse inclusioni superflue digurl.h(crrev.com/c/6578272) e<queue>(crrev.com/c/6570349, Bug: 40318405) nelle intestazioni//chrome. È stato risolto il problemaIWYUperNOTIMPLEMENTED()in//chrome(crrev.com/c/6655452, Bug: 41493641). - Sicurezza della memoria (spanificazione): è stato eseguito lo strumento di spanificazione automatica dei puntatori nelle build Linux, aggiornando il codice per utilizzare gli span in cui le dimensioni sono note (crrev.com/c/6734592, Bug: 431824299). Rimozione dei pragma
#pragma allow_unsafe_buffersa livello di file inchrome/dopo il completamento della migrazione (crrev.com/c/6778035, Bug: 409340989). Sono stati esclusi i targetchrome/testdall'avviso-Wexit-time-destructorsper consentire l'attivazione dell'avviso a livello globale (crrev.com/c/6736532, Bug: 40031409, Bug: 430332953). Utilizzi diLazyInstancecon perdite ripuliti in//chrome(crrev.com/c/6781377, Bug: 432815283). - Pulizia: è stato rimosso il flag CLI
--debug-bidi-mapper, poiché la transizione all'esecuzione di BiDi Mapper in una destinazione nascosta è completa e stabile (crrev.com/c/6672011, Bug: 408992812). - Pulizia: sono stati rimossi i riferimenti rimanenti al progetto
WebLayernon supportato (crrev.com/c/6792520, Bug: 40272607). È stata eseguita la formattazione automatica dei file//chrome/testGN per abbreviare i riferimenti di destinazione (crrev.com/c/6789277, Bug: 40760278). - Test: è stato aggiunto un test di accettazione per verificare la correzione del problema
PerformActionspointerMove(crrev.com/c/6648646, Bug: 42322257). - Test: è stato commentato il segmento di creazione parallela dei driver del test
testBrowserWithUsedUserDataDir(ed è stato segnalato un bug di monitoraggio) perché causava errori su macOS relativi al blocco esclusivo durante l'utilizzo dichrome-headless-shell(crrev.com/c/6470455, Bug: 411407649, Bug: 380903149). - Test: è stato aggiornato il wrapper
run_cwt_chromedriver.pyper iOS per supportare l'argomento--platform-type(crrev.com/c/6771517, Bug: 427548014). - PROPRIETARI: è stato rimosso
nvitkovdal filechrome/test/chromedriver/OWNERS(crrev.com/c/6771413).
ChromeDriver 139
Correzioni di bug
- Struttura di inizializzazione: è stata aggiornata la struttura di inizializzazione di ChromeDriver per rimanere compatibile con gli aggiornamenti di Selenium WebDriver v4.16.0 (crrev.com/c/6630600).
- Analisi degli argomenti: unisce più argomenti
--js-flags(in modo simile alla gestione di--enable-features) anziché prendere in considerazione solo l'ultimo fornito. Ciò migliora l'usabilità quando vengono passati flag V8 complessi (crrev.com/c/6612042, Bug: 421941798).
Modifiche interne e refactoring
- Sicurezza della memoria (spanification): gli utilizzi di
base::MakeStringPiece()sono stati sostituiti constd::string_viewin//chrome/test(crrev.com/c/6628089, Bug: 422940464). Inclusobase/strings/string_view_util.hdove viene utilizzatobase::as_string_view(), in preparazione delle future migrazioni dello spazio dei nomi (crrev.com/c/6625024, Bug: 423048781). - Standard C++: maggiore conformità a Include What You Use (IWYU) in
//chromeincludendo esplicitamente<vector>(crrev.com/c/6652818),base/notimplemented.h(e rimuovendobase/notreached.hdove non utilizzato) (crrev.com/c/6655452, Bug: 41493641),base/strings/string_util.h(crrev.com/c/6607646),base/strings/string_number_conversions.h(crrev.com/c/6593576) e rimuovendo le inclusioni superflue dibase/debug/stack_trace.h(crrev.com/c/6622838). - Test: è stata trasferita l'opzione
--driver-loggingarun_wpt_tests.py, consentendo allo script di eseguire il dump di ChromeDriver e del browserstderranche a livelli di dettaglio inferiori (crrev.com/c/6608138, Bug: 421262910). - Test: sono stati riattivati i test di integrazione di ChromeDriver precedentemente disattivati: test degli screenshot (
testTakeElementScreenshot*) (crrev.com/c/6598797, Bug: 42321815), test di chiusura della finestra tramite JavaScript (testCloseWindowUsingJavascript*) (crrev.com/c/6598978, Bug: 42321150) e test delle dimensioni della finestraheadless-shell(crrev.com/c/6621336, Bug: 42323661). - Test: è stato corretto
run_wpt_tests.py --stableper identificare e utilizzare correttamente la versione stabile attuale di Clank (Android) analizzando l'APK ed è stato aggiornato lo script per scaricare la versione corrispondente di ChromeDriver da Chrome for Testing (CfT) in una directory temporanea anziché contaminare il checkout (crrev.com/c/6635694, Bug: 402548382). - Infrastruttura di compilazione: è stata rimossa una dipendenza di compilazione non necessaria da
write_build_config.pyimpedendo alle destinazioniandroid_resources()di avere manifest, poiché l'unione dei manifest e la denominazione dei pacchetti R.java ora vengono gestite da attributi specializzati (crrev.com/c/6625266, Bug: 413331591). - FedCM: è stato corretto un flag di funzionalità di configurazione di Finch relativo a FedCM (crrev.com/c/6614137, Bug: 421959289).
ChromeDriver 138
Nuove funzionalità
- Gestione delle funzionalità di visualizzazione: comportamento aggiornato di ChromeDriver per i segmenti del riquadro di visualizzazione in modo che corrisponda a una recente risoluzione del CSS Working Group: ora restituisce in modo coerente un array con un singolo segmento quando un dispositivo pieghevole viene utilizzato in posizione piatta o per tutti i dispositivi non pieghevoli. Questo comportamento corrisponde a quello delle media query e mitiga i rischi di fingerprinting (crrev.com/c/6469455, Bug: 414430842).
- Preferenze e stato locale (Android): è stato aggiunto il supporto per le funzionalità
localStateeprefsdurante l'esecuzione di ChromeDriver sui dispositivi Android. Si basa su ADB e richiede un flaguser-data-dirpersonalizzato; al momento, inizializza lo stato con i modelli predefiniti (crrev.com/c/6397155, Bug: 406427226).
Correzioni di bug
- Stabilità: è stato corretto un arresto anomalo di ChromeDriver che si verificava su macOS quando un utente chiudeva la finestra di dialogo Esperienza di primo utilizzo (FRE) tramite il pulsante "Continua". L'arresto anomalo è il risultato dell'override di uno stato di errore
kTargetDetachede del tentativo di accedere a unWebViewnon valido (crrev.com/c/6538867, Bug: 410599467). - Test delle prestazioni: è stato corretto il runner di test
crossbenchsui bot di Windows pinpoint che tentavano erroneamente di individuare il binario ChromeDriver utilizzando un percorso../Release_x64obsoleto quando veniva passato--browser=release_x64, causando il fallback al download di un binario precedente anziché l'utilizzo della build locale (crrev.com/c/6502134).
Modifiche interne e refactoring
- Sicurezza della memoria (spanification): i puntatori non controllati in
WebSocket::OnReadDuringHandshakeeWebSocket::OnReadDuringOpensono stati sostituiti conbase::span, risolvendo gli avvisiunsafe-buffer-usage(crrev.com/c/6557346, Bug: 354307328). Sono stati rimossi i pragma#pragma allow_unsafe_buffersnon necessari inchrome/test/chromedriverche non erano più necessari dopo altre migrazioni (crrev.com/c/6503154, Bug: 414858406). - Standard C++: sono state rimosse le direttive
#include "url/gurl.h"e#include <queue>superflue dalle intestazionichrome/, aggiungendo dichiarazioni preliminari ove opportuno per migliorare i tempi di compilazione (crrev.com/c/6578272, crrev.com/c/6570349, Bug: 40318405). - Migrazione API: è stata eseguita la migrazione di
RSAPrivateKeyacrypto::PrivateKeye diSHA256HashStringacrypto::Sha256, eliminando un caso di gestione degli errori obsoleto, poiché le nuove API di generazione delle chiavi sono infallibili (crrev.com/c/6490294, Bug: 372283556). - Test: è stato aggiunto l'attributo
OwnContributionEstimateai comandi di automazione dell'API Compute Pressure (implementazioni CDP e testdriver) (crrev.com/c/6373001, Bug: 402033762). - Test: sono stati corretti i test di integrazione che verificano
ClearDisplayFeaturessui bot di integrazione continua (CFT) semplificando le asserzioni per verificare che i segmenti del riquadro vengano riportati alle dimensioni predefinite del riquadro (crrev.com/c/6535067, Bug: 417195296). - Test: aumento dei timeout per i test Protected Audience WebDriver per risolvere i problemi di instabilità sui bot CI più lenti (crrev.com/c/6494277).
ChromeDriver 137
Nuove funzionalità
- Gestione delle funzionalità di visualizzazione: sono stati aggiunti comandi ChromeDriver per emulare e cancellare le funzionalità di visualizzazione, implementando i requisiti di automazione per le API Viewport Segments (CSS e JS). Ciò consente agli sviluppatori di testare a livello di programmazione scenari di piegatura o cerniera su dispositivi pieghevoli o a doppia schermata (crrev.com/c/6368674, Bug: 40137084).
- BiDi: è stato aggiornato ChromeDriver per eseguire BiDi Mapper in una destinazione nascosta per impostazione predefinita. Ciò impedisce alla pagina
data:,del mapper di interferire con l'esecuzione e la visibilità del test. Per eseguire il debug del mapper, i client possono passare il flag--debug-bidi-mapperper eseguirlo in una scheda visibile (crrev.com/c/6441064, relanding crrev.com/c/6433672 dopo il ripristino crrev.com/c/6439633, Bug: 402339952).
Correzioni di bug
- BiDi: è stato impedito a ChromeDriver di chiudere erroneamente l'intera sessione del browser durante l'elaborazione dei comandi BiDi (come
browsingContext.close) se perdeva traccia dei target creati da altre sessioni CDP o BiDi. Ora sincronizza esplicitamente le schede di primo livello prima di decidere di chiudere il browser (crrev.com/c/6440293, Bug: 42323838). - BiDi: in linea con la specifica WebDriver BiDi upstream, ChromeDriver rimuove la funzionalità
goog:channelse viene passata come stringa vuota, trattandola in modo identico a un canale mancante (crrev.com/c/6438865, Bug: 409282307). - Input: è stato risolto un problema per cui gli eventi di tocco e puntatore non riuscivano o si comportavano in modo errato aggiornando ChromeDriver in modo che supporti le coordinate x e y frazionarie (in rappresentazione in virgola mobile) nei comandi di spostamento del puntatore (crrev.com/c/6440834, Bug: 409684333).
- Selezione dei target: è stato impedito che gli iframe out-of-process (OOPIF) PDF aperti nelle visualizzazioni ospiti (quando la funzionalità
PdfOopifè disattivata) vengano visualizzati nell'elenco dei target di primo livello. La logica di filtraggio è stata ampliata per escludere correttamente questi target con prefissochrome-extension://(crrev.com/c/6383500, Bug: 396611138).
Modifiche interne e refactoring
- Standard C++: è stata ripristinata la modifica per utilizzare
std::string_viewper i nomi dei file inLogMessagee gli eventi di traccia, risolvendo i problemi di gestione delle stringhe con terminazione null che hanno causato i precedenti rollback (crrev.com/c/6430129, ripristino di crrev.com/c/6395097, ripristino di crrev.com/c/6387020 dopo il rollback crrev.com/c/6383699). - Standard C++: le chiamate
Environment::GetVarin//chromesono state modernizzate per utilizzare l'API di restituzionestd::optionalanziché i parametri di output (crrev.com/c/6417343, Bug: 400758498). - Standard C++: è stato eseguito il refactoring degli helper di gestione specifici di Windows da
win_util.hin un'intestazionewindows_handle_util.hdedicata per evitare problemi di dipendenza ciclica (crrev.com/c/6418805, Bug: 406023316). - Test: è stato aggiunto un gestore di domini
Browserspecifico per Android ed è stata implementata l'APIBrowser.getWindowForTargetper supportare i test di creazione di finestre Android (crrev.com/c/6427605, Bug: 404932444). - Test: è stata corretta l'instabilità dei test su macOS causata dall'inizializzazione troppo lenta delle estensioni (crrev.com/c/6423229, Bug: 407804497).
- Test: è stata disattivata temporaneamente la creazione parallela di
user-data-dirintestBrowserWithUsedUserDataDirdurante l'esecuzione suchrome-headless-shell, in quanto era in conflitto con il blocco esclusivo su macOS (crrev.com/c/6470455, Bug: 411407649, Bug: 380903149). - Estensioni: i test di Chrome sono stati aggiornati per essere superati quando è attivata la prova sul campo
ExtensionManifestV2Unsupported. Si tratta di un passaggio fondamentale, anche se la prova rimane disattivata in attesa degli aggiornamenti in altri repository (crrev.com/c/6415997, Bug: 367395349). (Nota: un precedente tentativo di attivare questa prova tramite la configurazione è stato annullato crrev.com/c/6397497 annullando crrev.com/c/6358257). - Dipendenze: è stato eseguito il rollback manuale della dipendenza
catapulte sono stati aggiornati i filepydepse i riferimentidevil_utilassociati (crrev.com/c/6480814, crrev.com/c/6466865, relanding crrev.com/c/6406098 dopo il ripristino crrev.com/c/6448910, Bug: 397459590).
ChromeDriver 136
Nuove funzionalità
- Ciclo di vita del browser: è stata aggiunta una funzionalità specifica di Chrome
quitGracefullyche forza ChromeDriver a tentare di arrestare il browser in modo controllato (utilizzandoBrowser.closeo SIGTERM) anziché il valore predefinitoSIGKILL. In questo modo, i debugger comerrhanno il tempo di scaricare le registrazioni prima che il processo termini (crrev.com/c/6322538, ripristino di crrev.com/c/6269180 dopo un breve rollback crrev.com/c/6320536, Bug: 339644807). - Test: è stato eseguito il plumbing dell'argomento
run_wpt_tests.py --wrappergenerando uno script wrapper temporaneo che antepone il debugger (ad es.rr) e i relativi argomenti al binario del browser. In questo modo si aggira l'impossibilità di ChromeDriver di sostituire direttamente il file binario quandoargsvengono elaborati come opzioni (crrev.com/c/6271108, Bug: 339644807). - Test: è stata attivata la traduzione tramite preferenza in
TranslateEnabledTestper supportare un ambiente di test in cui ChromeDriver gestisce il processo del browser e aggira la nuova limitazione--remote-debugging-portquando--user-data-dirè implicito (crrev.com/c/6354089, Bug: 327797500). - DevTools: è stato aggiunto il supporto della funzionalità multi-istanza di DevTools per aprire una nuova scheda in un'altra finestra su Android (crrev.com/c/6352169, Bug: 401269942, Bug: 382183406).
Correzioni di bug
- Selezione del target: è stato risolto un problema per cui gli iframe out-of-process (OOPIF) PDF aperti nelle visualizzazioni ospiti non venivano filtrati dall'elenco dei target di primo livello quando la funzionalità
PdfOopifera disattivata. Il filtro è stato ampliato per includere il prefissochrome-extension, che risolve il bug e include la copertura per le estensioni Chrome MV3 che creano schede (crrev.com/c/6383500, Bug: 396611138). - Selezione del target: è stato corretto un problema di regressione che causava l'errore del comando
getWindowHandles()con statoconnection refusedquando si sceglievano come target app di Chrome pacchettizzate (crrev.com/c/6317161, Bug: 396622746).
Modifiche interne e refactoring
- Standard C++: è stata ripristinata la modifica che utilizza
std::string_viewper i nomi dei file inLogMessagee gli eventi di traccia, migliorando la compatibilità con le strutture di logging Rust che non garantiscono stringhe con terminazione null (crrev.com/c/6387020, ripristino di crrev.com/c/5765705 dopo il ripristino crrev.com/c/6383699 e un altro ripristino crrev.com/c/6395097). - Standard C++: sono state sostituite le chiamate
base::Value::Clone()ridondanti per ottimizzare le prestazioni (crrev.com/c/6361818). Sono stati eliminati ulteriori avvisi-Wunsafe-buffers-in-libc-callsnei file specifici di Windows per liberare spazio nell'output della build (crrev.com/c/6369920, Bug: 390223051). - Estensioni: è stato ripristinato l'inserimento della voce
fieldtrial_testing_config.jsonper la faseExtensionManifestV2Unsupporteda causa di un problema (crrev.com/c/6397497, ripristino di crrev.com/c/6358257, Bug: 367395349, Bug: 406523920). - Documentazione: documentazione di test di ChromeDriver specifica per Android migliorata (crrev.com/c/6354040).
ChromeDriver 135
Nuove funzionalità
- BiDi: è stato aggiornato BiDi Mapper per ereditare le autorizzazioni di ChromeDriver quando viene specificato
--enable-unsafe-extension-debugging. In questo modo, i client WebDriver BiDi possono testare in modo efficace le estensioni che richiedono autorizzazioni in genere detenute dal client WebDriver (crrev.com/c/6288627, Bug: 393500934).
Correzioni di bug
- Test: sono stati riattivati e aggiornati i requisiti per diversi test WDSpec precedentemente contrassegnati come non riusciti. In questo modo viene ripristinata la copertura della conformità alle specifiche per i test superati (crrev.com/c/6310420).
Modifiche interne e refactoring
- Pulizia: sono state rimosse tutte le tracce di Lacros (inclusi
IS_CHROMEOS_LACROSe i dati di test correlati) dachrome/test/poiché Lacros è in fase di ritiro, con standardizzazione suIS_CHROMEOS(crrev.com/c/6284446, Bug: 354842935). - Pulizia: sono state rimosse tutte le tracce dell'utilità
md5sumdopo la sua sostituzione condevil_util, ripulendo le dipendenze di build legacy (crrev.com/c/6309939, Bug: 397452007). - Standard C++: è stato rimosso lo spazio dei nomi
chrome::daResultCodeeIsNormalResultCode(), spostandoli nello spazio dei nomi globale, e sono stati rimossi gli importazioni di avvio di ChromeOS obsolete (crrev.com/c/6196899, Bug: 41050580). - Sicurezza della memoria: è stata semplificata una chiamata
std::lower_boundin ChromeDriver sfruttandostd::ranges::lower_bound(crrev.com/c/6223172, Bug: 392116519). Avvisiunsafe_libc_callsoppressi per i file non conformi inizialmente identificati in preparazione dell'applicazione futura (crrev.com/c/6187925, Bug: 390223051). Il valore restituito distd::to_arrayè stato contrassegnato comeconstexprper migliorare la sicurezza e la valutazione in fase di compilazione (crrev.com/c/6298909).
ChromeDriver 134
Nuove funzionalità
- Mitigazioni del monitoraggio del rimbalzo (DIPS): è stato aggiunto il supporto di ChromeDriver per le mitigazioni del monitoraggio del rimbalzo, utilizzando il comando
RunBounceTrackingMitigations. Il test di integrazione è stato ristrutturato per utilizzare pagine distinte, garantendo che i rimbalzi stateful vengano registrati correttamente prima dell'esecuzione del comando. Questa funzionalità supporta la specificanav-tracking-mitigationsed è implementata in//chrome(crrev.com/c/4935955, Bug: 1474656). (Nota: originariamente aggiunto in crrev.com/c/4873672 e successivamente ripristinato). - BiDi: è stato aggiornato ChromeDriver in modo che utilizzi le proprietà di estensione BiDi di WebDriver standard con il prefisso
goog:, in linea con le modifiche upstream dichromium-bidi. La proprietàchannellegacy non è più consentita (crrev.com/c/6179410). - Windows: è stata aggiunta una risorsa di versione al file binario
chromedriver.exesu Windows (crrev.com/c/6114586, Bug: 385300323).
Correzioni di bug
- MPArch/Targets: è stato corretto un problema di regressione per cui le destinazioni delle estensioni di Chrome (
chrome-extension://) venivano rilevate e associate in modo errato durante la determinazione della destinazione principale su ChromeOS, il che causava l'esito negativo dei comandi successivi (come la navigazione). I target delle estensioni ora vengono ignorati correttamente durante questa fase iniziale (crrev.com/c/6183202, Bug: 385241097). - MPArch/Targets: è stato corretto un altro regressione in cui le schede di destinazione per le estensioni
background_pagenon venivano filtrate correttamente dalle visualizzazioni web di primo livello quando il supporto delle estensioni di destinazione era disattivato (crrev.com/c/6160774, Bug: 385731198). - MPArch/Navigation: è stato corretto un problema per cui una scheda poteva non avere momentaneamente una pagina attiva allegata durante l'attivazione di MPArch, causando la visualizzazione errata di ChromeDriver come stato di errore. ChromeDriver ora attende che la scheda acquisisca una nuova pagina e completi la navigazione prima di risolvere lo stato (crrev.com/c/6177606).
- Elaborazione log: è stato corretto un arresto anomalo (errore
DCHECKinbase::Value()) causato da un troncamento improprio delle stringhe di log contenenti caratteri multibyte. La logica è stata aggiornata per utilizzare il rilevamento dei limitiUnicodeStringanziché semplici controlli della lunghezzastd::string, garantendo punti di codice validi (crrev.com/c/6210809, Bug: 367752739). - Test: sono stati migrati la maggior parte dei test WPT correlati al prerendering (ad eccezione di alcuni con problemi noti relativi alle API) da
content_shellaheadless_shell, poiché il recente refactoring di MPArch consente a ChromeDriver di eseguirli correttamente (crrev.com/c/6168830, Bug: 42323502, Bug: 366257368).
Modifiche interne e refactoring
- Standard C++: utilizzo sostituito di
base::rangesconstd::rangesstandard (crrev.com/c/6200893, crrev.com/c/6177197, Bug: 386918226). Sono stati riscritti i patternb ? "true" : "false"per utilizzarebase::ToString(bool)ove possibile (crrev.com/c/6165810, Bug: 335797528). È stata rimossa la funzione non sicuraStringPrintfNonConstexpr()e sostituita con alternative di formattazione delle stringhe più sicure (crrev.com/c/6149756). L'aritmetica dei puntatori (+ std::size) è stata sostituita con iteratoribegin/endstandard per risolvere gli avvisi relativi ai buffer non sicuri (crrev.com/c/6217045, Bug: 392116519). - Pulizia: è stato rimosso il flag della funzionalità
FedCmIdpSigninStatuse il relativo flag di runtime (crrev.com/c/6111321, bug: 381211734). (Nota: un precedente tentativo di rimozione è stato annullato crrev.com/c/6082405 a causa di interruzioni).
ChromeDriver 133
Nuove funzionalità
- Architettura: è stato eseguito il refactoring di ChromeDriver per supportare l'architettura di più pagine (MPArch) e le schede di destinazione.
WebViewImplora si connette ai target delle schede tramiteAutoAttach. I comandi che in precedenza contenevano una pagina ora cercano la pagina attiva in una scheda. Questa modifica consente di esaminare le pagine di sfondo delle estensioni, che ora possono essere prese di mira tramite la funzionalitàenable_extension_targets(per impostazione predefinita, le estensioni di destinazione vengono ignorate) (crrev.com/c/5961156, Bug: 379767670, Bug: 42323502). È stato corretto un bug di regressione a causa del quale le pagine URLchrome-extension://venivano incluse erroneamente come target di estensione; la selezione è stata ripristinata solo atype=background_page(crrev.com/c/6093588, Bug: 383141569).enableExtensionTargetsè stato spostato in Opzioni di Chrome anziché in una funzionalità di primo livello (crrev.com/c/6093032). - Classico: è stato ripristinato il supporto per i riferimenti agli elementi con più chiavi. Questa funzionalità non documentata, spesso utilizzata per creare riferimenti compatibili con le modalità W3C e non W3C, ora è ufficialmente supportata e coperta dai test di integrazione (crrev.com/c/6063257, Bug: 379584343).
Correzioni di bug
- Stabilità: è stato impedito a ChromeDriver di bloccarsi a tempo indeterminato durante la gestione del comando
browsingContext.close. Utilizzando un meccanismo diverso per determinare se il browser deve essere chiuso, ChromeDriver ora può gestire correttamente i promptbeforeunloadsenza bloccarsi (crrev.com/c/6080431, Bug: 42323838, Bug: 379049702). - Navigazione: è stato corretto un bug per cui una pagina fittizia con l'URL
about:blank?testcausava un blocco. L'euristica pensata per identificare una nuova finestra che non risponde (baseURL==about:blankedocumentURL!=about:blank) ora gestisce correttamente questi URL della stringa di query come caso speciale (crrev.com/c/6038039, Bug: 377410086). - Navigazione: è stata aggiunta la logica per riprovare i comandi che non vanno a buon fine con un errore
AbortedByNavigation. ChromeDriver ora tenta di eseguire il comando più volte prima di abbandonare con un erroreTimeoutstandard (crrev.com/c/6012427, Bug: 42323825). - Diagnostica: inoltro dell'errore
kTargetCrasheddirettamente tramiteNavigationTracker. Se una destinazione si arresta in modo anomalo durante il rilevamento della navigazione, questo errore specifico viene ora mostrato all'utente anziché un timeout generico, migliorando la diagnostica (crrev.com/c/6032612, Bug: 377410086). - Android: ricerche di destinazione delle schede fisse in
chrome_android_impl.cc(crrev.com/c/6110492, Bug: 384781876). - Test: è stata corretta l'instabilità in diversi test di ridimensionamento delle finestre su
win11-arm64(ad es. facendo clic su elementi oscurati). Ora i test eseguono query ripetute sulle dimensioni della finestra interna dopo un'operazione di ridimensionamento finché non registrano correttamente un'altezza positiva, tenendo conto dei lenti ridisegni della finestra (crrev.com/c/6012658, Bug: 378470046). - Test: sono stati corretti diversi problemi nei test di integrazione mappando gli errori di connessione Python generici a
WebSocketConnectionClosedException, semplificando la gestione degli errori (crrev.com/c/6054134), evitando le race condition utilizzandoSendCommandanzichéPostCommandquando sono previsti effetti collaterali immediati (crrev.com/c/6054137) e sostituendo la dipendenza dagli effetti immediati diExecuteScriptcon meccanismi di rilevamento della navigazione più affidabili (crrev.com/c/6063040, Bug: 42323825). - Test: è stato ripristinato il flag della funzionalità
FedCmIdpSigninStatus, in quanto la sua rimozione ha causato interruzioni (crrev.com/c/6082405, ripristino di crrev.com/c/6078693, Bug: 384866916, Bug: 381211734). - Strumenti: è stato aggiunto il supporto per il comando
Printnello scriptlog_replay(crrev.com/c/6010809, Bug: 378451938).
Modifiche interne e refactoring
- Standard C++: è stato rimosso l'istogramma
Mojo.InvalidUTF8String, consentendo la pulizia degli header mojo pubblici e le successive cascate IWYU (crrev.com/c/6133861, Bug: 40509710, Bug: 386793084). - Standard C++: allocazioni evitate in
WaitableEvent::Wait()passando dastd::listabase::circular_deque(crrev.com/c/6097198). - Standard C++: costruttori e distruttori vuoti definiti dall'utente predefiniti nel codebase
chrome/, ove possibile (crrev.com/c/6101911, crrev.com/c/6056220, Bug: 381119547). - Sicurezza della memoria (spanification): è stata eseguita la migrazione degli array in stile C a
std::arrayinchrome/nell'ambito dell'impegno più ampio per risolvere gli avvisi-Wunsafe-buffer-usage(crrev.com/c/6043879, Bug: 378069401). È stato implementato l'utilizzo rigoroso disize_tnelle funzioni di intervallo (crrev.com/c/6026238, crrev.com/c/6020621). - Test: è stato eseguito l'upstreaming di
{ref,crash}testsa schermo intero suwpt_internal/poiché oratestdriverli supporta (crrev.com/c/6088404). - Test: è stato corretto
wptrunnerper iOS per individuare correttamente il wrapper ChromeDriver quando si utilizzano directory di output non predefinite (ad es.//out/*-ios-wpt-fyi-rel/) tramite il plumbing corretto di--build-directory(crrev.com/c/6014940, Bug: 374199289, Bug: 355218109). - Test: è stato aggiunto il test di integrazione
testBrowserCrashWhileWaitingForEventsper dimostrare i casi di regressione in cui gli errori irreversibili passano inosservati ai client (crrev.com/c/6025145, Bug: 379049702). - Test: sono stati eliminati test WPT specifici che causano arresti anomali quando vengono eseguiti in
headless_shellcombinato con ChromeDriver per stabilizzare i builder (crrev.com/c/6032163, Bug: 377410086).
ChromeDriver 132
Nuove funzionalità
- Test: è stato aggiunto il supporto dei parametri della riga di comando
repeateretry-limitai test di integrazione di ChromeDriver, mappandoli agli argomenti standardisolated-script-test-repeateisolated-script-test-launcher-retry-limit(crrev.com/c/5938195, Bug: 374681919). Per i test eseguiti localmente (non CI), il valore predefinito diretry-limitè stato modificato in 0 (crrev.com/c/5953326, Bug: 374681919). - WebSockets: sono state implementate
WebSocketConnectione le classi correlate inEmbeddedTestServer, consentendo la migrazione dei test correlati a WebSocket daSpawnedTestServer. Ciò include l'inquadratura in base al protocollo e la registrazione semplificata del gestore (crrev.com/c/5849732, Bug: 40812029).
Correzioni di bug
- Stabilità: è stato corretto un arresto anomalo di ChromeDriver che poteva verificarsi se un comando di clic causava la chiusura del browser, gestendo correttamente lo stato di errore
kTargetDetachedintrodotto nei refactoring precedenti (crrev.com/c/5934524, Bug: 42323264). - Stabilità: è stato corretto un arresto anomalo intermittente nel test di integrazione
testClickNavigateRemoteToLocalsu Mac ARM64 risolvendo una race condition (crrev.com/c/5975526, Bug: 375971185). - Navigazione: sono stati corretti i comandi
GoBackeGoForward, che in precedenza non riuscivano sePage.getNavigationHistoryveniva chiamato mentre il documento era in transizione da uno stato attivo (a indicare una navigazione in corso). ChromeDriver ora riprova correttamente il comando in questo scenario (crrev.com/c/6011739, Bug: 378433873). - Esecuzione di script: è stato verificato che gli script che attivano una navigazione o chiudono una finestra restituiscono correttamente un errore standard
ScriptTimeoutse il browser non garantisce un risultato, invitando l'utente a evitare strutture di test ambigue (crrev.com/c/5934265, Bug: 372883701). - Esecuzione dello script: è stato risolto un problema per cui la funzionalità di riproduzione dei log non riusciva a essere eseguita e veniva visualizzato l'errore "Risposta al comando imprevista" (crrev.com/c/5961142, Bug: 42323342).
- Codici di errore: è stata corretta la gestione degli errori di ChromeDriver in modo che non venga più eseguito il wrapping forzato di tutte le eccezioni con una proprietà "code" in un generico "javascript error". In questo modo, gli errori standard come "stale element reference" (da
call_function.js) e "invalid element state" (dalla funzione Selenium AtomsCLEAR) vengono propagati con precisione all'utente (crrev.com/c/5937893, Bug: 42323409). Miglioramento della gestione degli errori inGetElementTagNameper interpretare correttamente le informazioni sul nome del tag mancanti come "l'oggetto non è un elemento" (crrev.com/c/5929087). - BiDi: risolto un problema per cui l'inizializzazione delle sessioni BiDi non riusciva quando veniva utilizzato un profilo utente personalizzato. La pagina caricata del profilo personalizzato potrebbe impedire l'avvio di BiDiMapper. ChromeDriver ora garantisce che la prima scheda venga sempre caricata
data:,per fornire una base pulita per il mapper (crrev.com/c/5960656, Bug: 366886096). - Modalità di navigazione in incognito: è stato corretto un bug che impediva a ChromeDriver di creare nuove schede durante il funzionamento in modalità di navigazione in incognito (crrev.com/c/5952980, Bug: 42323352).
- Test: è stata corretta l'instabilità nel test di integrazione
testScriptNavigateRemoteToLocal(che non riusciva all'8,33%) e sono stati aggiunti test di integrazione C++ per riprodurre e verificare la correzione della race condition (crrev.com/c/6010867, Bug: 378387680). - Test: sono stati riattivati numerosi test di integrazione precedentemente instabili su Mac (
testWindowMinimize) e Windows (ChromeDownloadDirTest.testFileDownloadAfterTab,InvalidCertificateTest.*) e a livello globale (testShadowDomFindElement, test degli screenshot degli elementi). I test WPT instabilicss/css-scrollbars/sono stati temporaneamente spostati di nuovo dalla shell headless alla shell dei contenuti (crrev.com/c/5953708, crrev.com/c/5948803, crrev.com/c/5941351, crrev.com/c/5941098, crrev.com/c/5959254, Bug: 42323825, Bug: 40848017, Bug: 40736504, Bug: 40176424, Bug: 40927590).
Modifiche interne e refactoring
- BiDi: è stata aumentata la dipendenza del mapper
chromium-bidiper incorporare le correzioni e gli aggiornamenti del protocollo upstream più recenti (crrev.com/c/5953339, crrev.com/c/5865478, Bug: 4226). (Nota: è stato eseguito brevemente il rollback di un bump del mapper a causa di errori WPT e successivamente è stato eseguito di nuovo il reland (crrev.com/c/5961113)). - Architettura: è stato ridotto al minimo l'utilizzo dell'oggetto sessione locale del thread in ChromeDriver per evitare bug di condivisione dello stato tra i test e semplificare la gestione esplicita delle sessioni (crrev.com/c/5978486, Bug: 42323555). È stato eseguito il refactoring dei test di integrazione C++ per utilizzare un test fixture condiviso (crrev.com/c/5971474, Bug: 42323555).
- Pulizia: sono state rimosse le soluzioni alternative obsolete specifiche per la modalità "headless precedente", poiché il codice
chrome-headless-shelllegacy non è più presente in Chrome (crrev.com/c/5961602, Bug: 42323387). - Pulizia: è stato rimosso il file
java_tests.txtinutilizzato, un residuo dei test di accettazione di ChromeDriver precedentemente rimossi (crrev.com/c/5970994, Bug: 357737793). - Test: è stato aggiunto un test di integrazione C++ per verificare che ChromeDriver non crei erroneamente sessioni parallele con lo stesso
user-data-diro non trasferisca URL tra le sessioni, il che potrebbe causare instabilità (crrev.com/c/5961137, Bug: 375312517). - Test: è stato verificato che le istanze temporanee di ChromeDriver create dai test di integrazione vengano chiuse il più rapidamente possibile per liberare risorse (crrev.com/c/5997970, Bug: 375974725).
ChromeDriver 131
Nuove funzionalità
- BiDi: è stata aumentata la dipendenza del mapper
chromium-bidialla versione 0.8.0, incorporando gli ultimi aggiornamenti del protocollo e le correzioni di bug (crrev.com/c/5899240, crrev.com/c/5865478, Bug: 4226). - Accesso al DOM: è stato aggiunto il supporto per le radici shadow chiuse nel comando
GetElementShadowRoot. In precedenza, questo comando restituiva un erroreNoSuchShadowRootquando si tentava di accedere a una radice ombra chiusa (crrev.com/c/5923865, Bug: 372834222). - Accesso al DOM: è stato implementato il supporto per gli identificatori di finestre e frame, consentendo di restituire riferimenti a finestre o frame (inclusi gli iframe OOP) dagli script eseguiti per l'ulteriore dereferenziazione (crrev.com/c/5890437, crrev.com/c/5923555, Bug: 366272556, Bug: 40229283).
- WebAuthn: l'API di automazione WebAuthn è stata ampliata per includere le proprietà
userNameeuserDisplayName(crrev.com/c/5905423, Bug: 367915823).
Correzioni di bug
- Input: è stata corretta una race condition con i clic del mouse sui frame remoti indirizzando gli eventi del mouse all'antenato con la stessa origine più alto del frame di destinazione, anziché inviarli semplicemente al frame più in alto (crrev.com/c/5836968, Bug: 42323535).
- Input: è stato corretto il formato del timestamp inviato con il comando
Input.dispatchTouchEventda millisecondi a secondi, risolvendo i blocchi nel test degli eventi puntatore WPT (crrev.com/c/5924253, Bug: 360918166). - Test: sono stati riattivati numerosi test di ChromeDriver su Mac (crrev.com/c/5923569, crrev.com/c/5922823, crrev.com/c/5921444, crrev.com/c/5920851, crrev.com/c/5921442) e Windows (crrev.com/c/5923955) poiché i relativi errori di instabilità non sono più riproducibili.
Modifiche interne e refactoring
- Sicurezza della memoria (spanificazione): l'utilizzo di puntatori non sicuri è stato sostituito con
base::spaninnet::HttpUtil(crrev.com/c/5854420) ed è stata eseguita la migrazione dibase::File::WriteAtCurrentPos()al relativo equivalente basato su span (crrev.com/c/5818972). Sono stati riscritti i valori del puntatore della mappa (ad es. instd::map,std::unordered_map) inraw_ptr(crrev.com/c/5867189, Bug: 329428315). - Standard C++: le macro degli attributi Abseil (
ABSL_ATTRIBUTE_*) sono state sostituite dalle macrobase/standard (crrev.com/c/5852373). Sono state evitate copie non intenzionali sostituendo stringhe/vettori passati per valore constd::string_viewo riferimenti const, se appropriato, e sono stati rimossi qualificatoriconstnon necessari dagli argomentistd::string_view(crrev.com/c/5914620, crrev.com/c/5906184, Bug: 369952985). - Infrastruttura: è stato configurato Fuchsia per utilizzare ChromeDriver per controllare
web-engine(crrev.com/c/5867896, Bug: 40935291). - Test: è stato eseguito il test di migrazione di WebAuthn con fenced frame dal runner legacy di Content Shell a Chrome headless con ChromeDriver, poiché il runner legacy non supporterà più l'API testdriver di WebAuthn (crrev.com/c/5920770, Bug: 372169469).
ChromeDriver 130
Nuove funzionalità
- BiDi: è stata aggiornata la dipendenza di BiDi Mapper, recuperando gli ultimi aggiornamenti del protocollo e le correzioni di bug dall'upstream
chromium-bidi(crrev.com/c/5850570, relanding crrev.com/c/5837065 dopo il ripristino crrev.com/c/5840080; crrev.com/c/5717956, Bug: 4226). - BiDi: è stato aggiornato ChromeDriver per fornire
unhandledPromptBehaviordirettamente al mapper tramite il comandosession.newdurante l'inizializzazione di una sessione BiDi. In questo modo viene completata la migrazione daMapperOptions(crrev.com/c/5682934, crrev.com/c/5766077, Bug: 42323841, Bug: 356371297). - Test: è stato aggiunto il supporto dell'argomento
--chromedriverallo scriptbisect-builds.pyper le build desktop, consentendo allo script di scaricare e utilizzare automaticamente la versione corretta di ChromeDriver durante le bisezioni per i test dipendenti da WebDriver/ChromeDriver (crrev.com/c/5861048, Bug: 352344089).
Modifiche interne e refactoring
- Standard C++: risolti i problemi relativi alla "regola del cinque" in varie classi. Poiché il plug-in di stile di Chrome insiste su distruttori out-of-line senza applicare anche costruttori di spostamento out-of-line, il compilatore eliminava implicitamente gli operatori di spostamento e tornava silenziosamente alle copie. Queste dichiarazioni mancanti sono state aggiunte (crrev.com/c/5846757, Bug: 364788123).
- Test: è stato ripulito il riepilogo dei risultati del test
wptrunnersostituendo la stringachromehardcoded con il prodotto effettivo utilizzato e nascondendo l'artefattocommanddettagliato dall'output del riepilogo (crrev.com/c/5825633, Bug: 41494889). - Test: sono stati corretti errori di test massivi nei test di integrazione di ChromeDriver su macOS 15 (Mac15) raddoppiando i timeout specifici, poiché i test su questo sistema operativo richiedevano molto più tempo rispetto a Mac14. Sono stati aggiunti all'elenco di elementi da ignorare anche quattro test dei sensori virtuali a causa della loro instabilità (crrev.com/c/5817455, Bug: 354939744).
- Test: sono stati disattivati i test instabili
ChromeDriverSiteIsolation.testClickNavigateLocalToLocalsu Mac (crrev.com/c/5806894, Bug: 361521805) e i test instabiliChromeDriverTest.testClickElement*ObscuredByScrollBarsu Windows 11 (crrev.com/c/5804083, Bug: 360058651). - Test: sono stati rimossi i test di accettazione di ChromeDriver (che scaricavano versioni precedenti di Chrome per eseguire test rispetto alla versione corrente di ChromeDriver) a causa di diversi problemi di infrastruttura. Potrebbero essere riaggiunti in un secondo momento nell'integrazione continua con l'autoroll (crrev.com/c/5812142, Bug: 357737793).
ChromeDriver 129
Nuove funzionalità
- BiDi: è stato aggiornato l'helper di inizializzazione della sessione ChromeDriver per inviare un comando
session.newal mapper BiDi, consentendo al mapper di gestire direttamente le funzionalità. Questo è il primo passo verso la rimozione diMapperOptions(crrev.com/c/5741432, Bug: 356371297). (Nota: una modifica correlata crrev.com/c/5754093 che fornisceunhandledPromptBehaviorelaborato è stata ripristinata crrev.com/c/5755744 a causa di un calo della copertura dei test). - Compute Pressure: sono stati aggiunti nuovi comandi di estensione per la gestione delle origini di pressione virtuali, implementando la sezione Automazione della specifica Compute Pressure. Questi comandi vengono analizzati e inoltrati al livello CDP (crrev.com/c/5666583, Bug: 347031400).
- Estensioni MV2: test aggiornati che esercitano il comportamento MV2 per utilizzare
ScopedTestMV2Enablernell'ambito del campo di prova per il ritiro di Extension Manifest V2 (crrev.com/c/5685054, Bug: 339061151).
Correzioni di bug
- Serializzazione classica: gli oggetti visualizzati vengono monitorati durante la serializzazione di un
Setnei risultati di esecuzione dello script WebDriver Classic, impedendo loop infiniti e tollerando gli override diArray.prototype.includes(crrev.com/c/5765833, Bug: 357472850). (Nota: questa modifica è stata successivamente annullata crrev.com/c/5773175 a causa di una regressione WPT).
Modifiche interne e refactoring
- BiDi: è stata aumentata la dipendenza di BiDi Mapper per includere le correzioni di bug e gli aggiornamenti del protocollo più recenti di
chromium-bidi(crrev.com/c/5756587, crrev.com/c/5717956, Bug: 4226). - Sicurezza della memoria (spanification): l'utilizzo di buffer non sicuri in
WebSocketFrameParser::Decode,MaskWebSocketFramePayloadeWriteWebSocketFrameHeaderè stato sostituito conbase::span(crrev.com/c/5764863, crrev.com/c/5743019, crrev.com/c/5722108, Bug: 40284755, Bug: 354307327). È stato aggiunto#pragma allow_unsafe_buffersinchrome/*in preparazione di ulteriori correzioni (crrev.com/c/5717950, Bug: 40285824) e le macroUNSAFE_BUFFERS()non conformi sono state convertite inUNSAFE_TODO()(crrev.com/c/5786346). Riscritti i campibase::spaninbase::raw_span(crrev.com/c/5515096, Bug: 332587642). - Standard C++: è stato rimosso l'utilizzo di array a lunghezza variabile (VLA) pericolosi nel codebase contrassegnando esplicitamente le lunghezze degli array come
constexpr(crrev.com/c/5738737, Bug: 349656479). Sono state incluse le intestazioni<unordered_map>necessarie estratte in precedenza in modo transitivo (crrev.com/c/5792881). - Architettura: è stato eseguito l'unforking dell'implementazione di
WebSocketEncoderripristinando la migrazione interrotta a//services/network/public/cpp/servere centralizzando nuovamente la logica in//net/serverper garantire aggiornamenti coerenti (crrev.com/c/5768214, Bug: 40205564).
ChromeDriver 128
Nuove funzionalità
- Funzionalità: è stato consentito l'utilizzo di un dizionario per la funzionalità
unhandledPromptBehavior, in linea con le strutture standard delle funzionalità, anche se non è ancora pienamente rispettato dal Mapper (crrev.com/c/5692204, crrev.com/c/5682934, Bug: 42323841). - Avvio: è stato aggiunto l'argomento della riga di comando
--ignore-explicit-porta ChromeDriver. Questa soluzione temporanea costringe ChromeDriver a ignorare qualsiasi porta fornita esplicitamente e a trovare e collegarsi a una porta libera, risolvendo i problemi di conflitto delle porte TCP durante l'esecuzione del test della piattaforma web (destinata a essere rimossa dopo M132) (crrev.com/c/5724574, crrev.com/c/5703976, Bug: 42323836).
Correzioni di bug
- Sensori: è stato corretto il comando
ExecuteUpdateVirtualSensorin modo che utilizziSendCommand()anzichéSendCommandAndGetResult(), poiché il comando CDPsetSensorOverrideReadingsnon restituisce un valore (crrev.com/c/5703589). - FedCM: è stata corretta una race condition nei test di FedCM ChromeDriver non asserendo più che viene restituito
NoSuchDialogquando è previsto un dialogo, evitando errori se il dialogo viene visualizzato troppo rapidamente (crrev.com/c/5713515, Bug: 346530330). - Test: sono stati riattivati i test dello strumento di autenticazione virtuale WebAuthn su Mac dopo la correzione del problema sottostante (crbug.com/40233722) (crrev.com/c/5635806, Bug: 329130177).
- Messaggi di errore: è stato corretto un errore di battitura nel messaggio di errore per il comando
execute/async(crrev.com/c/5697913).
Modifiche interne e refactoring
- BiDi: è stata aumentata la dipendenza di BiDi Mapper, introducendo le funzionalità del protocollo più recenti, correzioni di bug e aggiornamenti delle aspettative WPT dal progetto
chromium-bidiupstream (crrev.com/c/5717956, crrev.com/c/5644823, crrev.com/c/5630727, crrev.com/c/5615110, crrev.com/c/5614670, Bug: 4226, Bug: 347863537, Bug: 324436866). - Gli utilizzi del metodo
GrowableIOBuffer::StartOfBufferritirato sono stati sostituiti conspan, migliorando la sicurezza della memoria eliminando i puntatori non controllati (crrev.com/c/5706088, Bug: 329476354). - È stato eseguito lo spanification dei metodi
DecodediWebSocketFrameParserper migliorare la sicurezza della memoria (crrev.com/c/5722108, Bug: 354307327). - Sono stati rimossi i resti di
absl::optionaleliminando le intestazioni Abseil obsolete e migrando astd::optional(crrev.com/c/5691505, Bug: 40242125). - È stato modificato ChromeDriver in modo che gestisca tutti i tipi di target sconosciuti (incluso
shared_storage_worklet) comeWebViewInfo::kOtheranziché trattarli come errori. Ciò consente a Chrome di introdurre nuovi tipi di target senza interrompere immediatamente i test WPT (crrev.com/c/5680542, crrev.com/c/5679146, Bug: 42323839). - È stata aggiunta una destinazione del programma di installazione per il builder
linux-builder-perfper generare binari con simboli rimossi per gli archivi bisect ed è stato configurato pinpoint builders per accettareadditional_compile_targetsvariabili (crrev.com/c/5668198, Bug: 344643694). - È stato aggiornato
run_performance_tests.pyper trovare e passare la posizione di ChromeDriver acrossbenchdurante le build di perf (crrev.com/c/5624538, Bug: 338629299). - È stato eseguito il rollback della dipendenza
crossbench(crrev.com/c/5681849). FedCmSpecificTest.testClickErrorMoreDetailseFedCmSpecificTest.testClickErrorGotItsono stati contrassegnati come instabili su Mac (crrev.com/c/5704320, crrev.com/c/5677564, Bug: 352821422, Bug: 346530330).- È stato disattivato il test
BidiTest.testFocusInFirstTabinstabile (crrev.com/c/5676686, Bug: 350916212).
ChromeDriver 127
Correzioni di bug
- Stabilità: è stato corretto un arresto anomalo di ChromeDriver che si verificava quando veniva ricevuto un comando
target.detachFromTarget(o un eventotarget.detachedFromTarget) mentre il client DevTools elaborava attivamente altri comandi, impedendo il rilascio prematuro degli oggettiWebVieweDevToolsClient(crrev.com/c/5527584, Bug: 339773537). - Stabilità: è stato risolto un problema per cui il comando
Switch To Windowpoteva restituire erroneamente un "errore sconosciuto" se una visualizzazione web veniva scollegata durante l'esecuzione del comando; ora ignora correttamente l'errore interno "visualizzazione web non trovata", generando una risposta standard "nessuna finestra di questo tipo" se la finestra target è stata effettivamente chiusa (crrev.com/c/5583730, Bug: 338616700). - Stabilità: è stato garantito che ChromeDriver tollera il distacco del target durante l'aggiornamento dell'elenco WebView interno. Se una destinazione viene scollegata durante l'aggiornamento, ChromeDriver ora riprova invece di restituire un errore non standard, riducendo l'instabilità negli ambienti in cui le finestre vengono create ed eliminate rapidamente (crrev.com/c/5565103, Bug: 338616700, Bug: 4771).
- Navigazione: è stata aggiunta la logica a ChromeDriver per attendere una navigazione rilevata dall'estremità remota durante la ricerca di elementi. In questo modo, ChromeDriver non restituisce un errore non standard o non si arresta in modo anomalo con un
DCHECKquando una navigazione coincide con un'operazione di ricerca di elementi (crrev.com/c/5563113, ripristino di crrev.com/c/5563420, ripristino di crrev.com/c/5562089, Bug: 4771). - BiDi: è stata corretta una condizione di competizione tra ChromeDriver e BiDiMapper durante la creazione della sessione. ChromeDriver ora attende che il comando
browsingContext.getTreerestituisca un elenco non vuoto prima di concludere il comando NewSession, assicurandosi che la scheda predefinita appena creata sia registrata correttamente (crrev.com/c/5575497, Bug: 341048786, Bug: 1503101). - BiDi: è stato risolto un problema per cui lo stato attivo rimaneva nella scheda in background di BiDiMapper dopo la creazione della sessione anziché nella scheda utente attiva, concedendo esplicitamente lo stato attivo alla prima scheda utente (crrev.com/c/5594070, Bug: 341048786, Bug: 1503101).
- BiDi: ChromeDriver non tenta più di collegare una destinazione durante la gestione dei comandi BiDi (come
browsingContext.close) per impedire che i comandi CDP si blocchino indefinitamente se è aperto un prompt utente, delegando la gestione interamente al livello BiDi già connesso (crrev.com/c/5541915, revert di crrev.com/c/5539818, relanding di crrev.com/c/5522393, Bug: 4758). - FedCM: è stato corretto l'errore del test WPT
fedcm-loginhint.https.htmlin cui una finestra di dialogo veniva erroneamente contrassegnata come chiusa; ora lo stato viene aggiornato solo se l'operazioneselectAccountva a buon fine (crrev.com/c/5398379, Bug: 331237776). - Test: è stato corretto un errore
DCHECKdurante l'analisi JSON quando un carattere raggiungeva esattamente il limitekExtendedASCIIStart(crrev.com/c/5565276, Bug: 40284755). - Test: è stato corretto il test WPT
scrollend-event-fires-to-iframe-window.htmlutilizzando l'elemento iframe come origine di scorrimento e arrotondando gli input di movimento del puntatore a numeri interi, evitando errori di ChromeDriver con posizioni di tocco frazionarie (crrev.com/c/5570150, Bug: 340956654). - Test: diagnostica migliorata nei test di integrazione di ChromeDriver stampando i percorsi tentati quando
run_py_tests.pynon riesce a individuare il file binario del browser (crrev.com/c/5604204, Bug: 4781).
Modifiche interne e refactoring
- BiDi: è stata aggiornata la dipendenza di BiDi Mapper, in linea con gli ultimi aggiornamenti del protocollo e correzioni di bug (crrev.com/c/5614670, crrev.com/c/5593796, crrev.com/c/5537892, crrev.com/c/5471839, Bug: 4226).
- Sono stati sostituiti gli utilizzi di
NOTREACHED()conNOTREACHED_IN_MIGRATION()nella directorychrome/in preparazione per rendereNOTREACHED()strettamente[[noreturn]](crrev.com/c/5539004, Bug: 40580068). - È stata attivata la generazione di
THIRD_PARTY_NOTICES.txtper ChromeDriver utilizzando lo strumentolicenses.pyper rispettare i requisiti di distribuzione (crrev.com/c/5596355, Bug: 4777). - È stato rimosso il supporto di
run_wpt_tests.pypercontent_shell, poiché la copertura WPT di Chromium sta passando completamente aheadless_shell+ ChromeDriver (crrev.com/c/5589930). Gli interruttoriwptrunnersono stati riorganizzati in modo che siano specifici per l'incorporatore per adattarsi a questa modifica senza influire sulla funzionalità (crrev.com/c/5589793, Bug: 338412391). - È stata consolidata la logica per il rilevamento e la gestione delle finestre di dialogo JavaScript spostandola da
JavaScriptDialogManagerdirettamente inDevToolsClientImpl, eliminando la classe di gestione separata per semplificare i test e il ragionamento (crrev.com/c/5545630, Bug: 4757). - Disattivato
PureBidiTest.testBrowsingContextTreeIsNotEmptysu Mac a causa di problemi di instabilità (crrev.com/c/5588665, Bug: 343891977). - Sono state aggiornate le aspettative di WPT BiDi per tenere conto dei recenti aggiornamenti di Mapper (crrev.com/c/5615110, Bug: 4226, Bug: 324436866).
- Sono stati aggiunti test unitari per
WebView::SendBidiCommandeBidiTrackerper aumentare la copertura del codice (crrev.com/c/5588400, Bug: 341048786, Bug: 1503101).
ChromeDriver 126
Nuove funzionalità
- BiDi: ChromeDriver è stato aggiornato per fornire l'opzione
--disable-background-timer-throttlingall'avvio del browser per una sessione WebDriver BiDi, impedendo la limitazione delle schede in background (crrev.com/c/5515013, Bug: 4762). - BiDi: è stato aggiunto il supporto per BiDi Mapper per inviare messaggi di debug (
sendDebugMessage) quando è richiesto il logging dettagliato. ChromeDriver contrassegna questi eventi comebidi messagesper l'analisi, anche seBidiTrackerattualmente li ignora (crrev.com/c/5465782, Bug: 4753). - Classico: implementa l'accettazione automatica di qualsiasi finestra di dialogo
beforeunload(avvisi), rispettando lo standard WebDriver che stabilisce che non devono mai essere visualizzati in una sessione classica (crrev.com/c/5517510, Bug: 4757).
Correzioni di bug
- Classico: è stata rimossa la limitazione ridondante del numero massimo di tentativi nella logica di recupero degli elementi. Il recupero è ora limitato solo dal timeout implicito, il che impedisce scenari in cui l'operazione potrebbe non riuscire prematuramente e restituire in modo errato un errore
NoSuchExecutionContextnon standard (crrev.com/c/5478668, Bug: 4379). - Classico: è stato corretto un problema di regressione che causava la risposta di ChromeDriver con un errore
javascript erroranzichéinvalid selectorquando una richiesta di recupero utilizzava una strategia di localizzazione non valida (crrev.com/c/5490662, Bug: 4743). - Classico: i comandi della finestra su Android (Ingrandisci, Riduci a icona, Schermo intero) restituiscono l'errore
unsupported operationconforme allo standard anziché procedere, poiché queste azioni non sono supportate dal browser Android (crrev.com/c/5490224, Bug: 4689). - Classic: è stato corretto ChromeDriver in modo che non restituisca mai il codice di errore interno
kChromeNotReachable; ora restituisce correttamente l'errore standardkSessionNotCreatedquando il client HTTP non riesce a connettersi al browser (crrev.com/c/5476390, Bug: 4379). - Classico: è stato corretto ChromeDriver in modo che non restituisca mai l'errore non standard
kNoSuchExecutionContextdurante l'esecuzione dei comandi della finestra (crrev.com/c/5483606, Bug: 4379). - Classico: è stato rimosso il codice di errore
kForbiddeninutilizzato e non supportato dall'elenco dei codici di errore supportati (crrev.com/c/5476927, Bug: 4379). - BiDi: ChromeDriver è stato aggiornato per chiedere all'utente prima di chiudere la scheda Mapper dedicata, in linea con le modifiche
chromium-bidiupstream (crrev.com/c/5508600, Bug: 4761).
Modifiche interne e refactoring
- BiDi: è stata aggiornata la dipendenza di BiDi Mapper, che include le ultime funzionalità e correzioni di bug del progetto
chromium-bidiupstream (crrev.com/c/5490428, crrev.com/c/5471839, crrev.com/c/5509316, crrev.com/c/5458234, Bug: 4226). (Nota: un bump del mapper è stato brevemente ripristinato da un gardener e poi ripristinato (crrev.com/c/5374839, crrev.com/c/5374366)). - Utilizzi di
base::StringPiecesostituiti constd::string_viewin//chrome(crrev.com/c/5467746, Bug: 40506050). - È stato rimosso l'utilizzo di
std::to_string()in//chrome, sostituito dabase::NumberToString()obase::FormatNumber()(crrev.com/c/5505593, Bug: 335672557). - È stato rimosso il supporto dell'opzione
--remote-debugging-addressnella vecchia modalità headless, in quanto l'accesso remoto non protetto al Chrome DevTools Protocol è stato ritenuto troppo pericoloso (crrev.com/c/5512634, Bug: 327558594). - Sono state rimosse le regole di compilazione di Fuchsia da
//chrome, ad eccezione di ChromeDriver (crrev.com/c/5473870, Bug: 41481724). - Sono stati migrati i riferimenti legacy
TODO(crbug.com/...)nel codebase al nuovo formato ID del tracker dei problemi (TODO(b/...)) (crrev.com/c/5492605, crrev.com/c/5486477, crrev.com/c/5461380, Bug: 321899722). - Sono stati disattivati i test WebAuthn (autenticatore) su Mac (sia per headless che per
chromedriver_py_tests) a causa di un bug sottostante complesso, sbloccando l'upgrade dei bot a macOS 14 (crrev.com/c/5525435, crrev.com/c/5518820, Bug: 329130177). - Sono stati disattivati i generatori di WPT per
content_shella causa delle difficoltà di esecuzione dei WPT con ChromeDriver e Content Shell insieme (crrev.com/c/5512439, Bug: 40214293). - È stata ripristinata una modifica che aggiorna i test delle prestazioni web
focus-navigationper utilizzareShift+Tabtramitetest_driver.action_sequence()per la navigazione all'indietro. È stato corretto un bug infocus-utils.jsin cui veniva utilizzato il codice tasto errato (E050anzichéE008) per il tasto Maiusc (crrev.com/c/5467843, ripristino di crrev.com/c/5466531, ripristino di crrev.com/c/5463903, bug: 40597271). - Sono stati aggiunti
crossbenchechromedriverai target di compilazione delle prestazioni (crrev.com/c/5521874, Bug: 338627700).
ChromeDriver 125
Nuove funzionalità
- Postura del dispositivo: sono stati aggiunti comandi ChromeDriver per la gestione della postura del dispositivo, che supportano la sezione Automazione della specifica Postura del dispositivo. Ciò consente di ignorare la postura del dispositivo impostata dall'hardware e di rimuovere l'override tramite i comandi di estensione (crrev.com/c/5437993, Bug: 330376761).
Correzioni di bug
- BiDi: è stato modificato lo spazio di archiviazione intermedio del comando BiDi in entrata
iddaDoubleabase::Value. In questo modo,idviene restituito con precisione nella risposta senza un punto decimale finale o una parte frazionaria imprevisti dopo la serializzazione JSON (crrev.com/c/5444225, Bug: 4676). - FedCM: è stata ripristinata la modifica per attivare CORS nell'endpoint di asserzione dell'ID dopo che i provider di identità erano pronti (crrev.com/c/5440132, ripristino di crrev.com/c/5381316, ripristino di crrev.com/c/5370086, Bug: 40284123).
- FedCM: è stato corretto un bug per cui una finestra di dialogo veniva contrassegnata in modo errato come chiusa, assicurandosi che venga contrassegnata come chiusa solo se il comando
selectAccountva a buon fine. In questo modo vengono risolti gli errori di test quando viene chiamatoselectAccountsenza un selettore di account previsto (crrev.com/c/5398379, Bug: 331237776). È stato evitato di chiamarefedcm_get_and_select_first_accountquando non è previsto un selettore di account per evitare di attivare questo bug (crrev.com/c/5398800). - Test: è stato corretto un errore nel test WPT
popover-light-dismiss.htmlcombinando sequenze di azioni e utilizzando il documento del frame principale come origine per l'azionepointerUp, impedendo a ChromeDriver di inviare in modo errato eventipointerUpsimultanei nei frame (crrev.com/c/5402096, Bug: 325981758). - Test: è stato corretto
wptrunnerper inoltrare correttamente l'outputstderr(inclusi i log del browser scritti quando si utilizza--enable-chrome-logs) all'artefattostderranziché acrash_loge sono stati spostati gli errori di harness (che contengono l'analisi dello stack del browser) incrash_log(crrev.com/c/5437023, Bug: 41494889). - Test: è stato corretto
wptrunnerper indirizzare i log del browser all'artefatto di test corretto raggruppando l'output in base al processo ChromeDriver, impedendo log interleaved e orfani durante l'esecuzione del test parallela (crrev.com/c/5320681, Bug: 41494889).
Modifiche interne e refactoring
- BiDi: è stata aumentata la dipendenza di BiDi Mapper, integrando i miglioramenti e le correzioni di bug più recenti del protocollo (crrev.com/c/5433300, crrev.com/c/5393442, Bug: 4226). (Nota: un precedente bump crrev.com/c/5374366 è stato ripristinato crrev.com/c/5374839 e successivamente ripristinato con test instabili disattivati e licenze aggiornate crrev.com/c/5374914).
- Diagnostica: è stato integrato
StackTracedi Chrome nelle eccezioni di ChromeDriver. In questo modo, l'analisi dello stack del browser viene visualizzata nel messaggio di errore quando una sessione viene eliminata a causa di un arresto anomalo della pagina/scheda (ad es. puntatori sospesi su Mac), migliorando notevolmente la capacità di eseguire il debug (crrev.com/c/5374371, Bug: 330009945). - Test: è stato disattivato temporaneamente il test di integrazione instabile
testTakeLargeElementViewportScreenshotsu Mac (in particolaremac-arm64) (crrev.com/c/5447515, Bug: 333826980). - Test: gli argomenti di avvio di ChromeDriver negli ambienti di test (CEL) sono stati aggiornati in modo che corrispondano alla sintassi di Selenium 4+ (crrev.com/c/5448812, Bug: 308885357).
- Test: è stata estratta la riga di comando
chromeesatta utilizzata per eseguire ogni test WPT dal logchromedriverin un artefatto ResultDB denominatocommand. Ciò facilita il debug manuale conrun_blink_wptserve.py(crrev.com/c/5441189, Bug: 41494889). - Dipendenze:
Closureè stato rimosso dall'elenco delle dipendenze diselenium-atoms, di conseguenza è stato rimosso dalle notifiche di terze parti di ChromeDriver (crrev.com/c/5424804, Bug: 4226). - Dipendenze: sono state eliminate le dipendenze inutilizzate da
dynamic_annotationsnel repository di base (crrev.com/c/3398908, Bug: 1282422). - Formattazione: è stata applicata la nuova configurazione
clang-formatalle intestazioni di Windows problematiche (crrev.com/c/5367127, Bug: 329138753).
ChromeDriver 124
Nuove funzionalità
- BiDi: è stato aggiunto un passaggio di compilazione per ridurre le dimensioni dello script
BiDiMapperprima di incorporarlo in ChromeDriver, poiché il mapper delle origini viene ora scaricato senza riduzione delle dimensioni da CIPD (crrev.com/c/5310075, Bug: 4226). - WebAuthn: è stato aggiunto il comando
SetCredentialProperties, che consente ai client di aggiornare i flag di backup per una credenziale WebAuthn (crrev.com/c/5296389, Bug: 40945430). - WebAuthn: sono stati esposti i flag di backup di WebAuthn tramite WebDriver aggiungendo
defaultBackupEligibilityedefaultBackupStateal comando "Aggiungi autenticatore virtuale" ebackupEligibilityebackupStateal comando "Aggiungi credenziali" (crrev.com/c/5297117, Bug: 40945430). - Test: è stato aggiunto il supporto dell'argomento della riga di comando
--failfastai test di integrazione di ChromeDriver Python, interrompendo l'esecuzione del test al primo errore per facilitare il debug (crrev.com/c/5374546). - Test: è stato aggiunto il supporto di content-shell per il comando webdriver
SetRPHRegistrationModetramite le APItestdriver-vendor.js(crrev.com/c/5205730, Bug: 1359103).
Correzioni di bug
- Stabilità: è stato spostato il controllo della scadenza del timeout all'interno del corpo del ciclo di polling e attesa in
ChromeImpl::SetWindowBounds. È stato risolto un problema per cui, in caso di carico elevato, il timeout poteva scadere prima che si verificasse la prima iterazione del ciclo (crrev.com/c/5366899, Bug: 4642). - Rendimento: tempo di attesa ridotto in
ChromeImpl::SetWindowBoundsapplicando un'attesa di backoff esponenziale solo se i limiti della finestra non hanno ancora raggiunto lo stato desiderato, riducendo la latenza di configurazione di WPT (crrev.com/c/5366457, Bug: 4642). - Avvio: ChromeDriver è stato aggiornato per utilizzare
--user-data-diranziché--data-pathquando si specifica la directory dei dati percontent_shell, in linea con la modalità di lettura della porta DevTools attiva (crrev.com/c/5226609, Bug: 1295373).
Modifiche interne e refactoring
- BiDi: è stata aumentata la dipendenza di BiDi Mapper, acquisendo le funzionalità e le correzioni del protocollo più recenti (crrev.com/c/5374366, crrev.com/c/5349491, crrev.com/c/5317650, Bug: 4226). (Nota: un aggiornamento è stato brevemente ripristinato e poi ripristinato a causa di errori di test crrev.com/c/5374839, crrev.com/c/5368680, crrev.com/c/5319423).
- Gli utilizzi di
absl::optionalsono stati sostituiti constd::optionalin tutto il codebase in seguito alla transizione diabsl::optionala un alias di tipo (crrev.com/c/5296147, Bug: 1500249). - Copertura estesa di
MiraclePtr(raw_ptr) ad altri contenitori standard, tra cuistd::list,std::unordered_set,base::flat_set,std::stackestd::queue(crrev.com/c/5306923, Bug: 325302189). - È stato convertito
WriteBigEndian()per utilizzare le conversioni di bytebase::numericsoBigEndianWriter(che ora accettabase::span), migliorando la sicurezza durante la scrittura di byte big-endian (crrev.com/c/5202348, Bug: 1490484). - È stato eseguito il passaggio all'utilizzo di ChromeDriver per eseguire i test della piattaforma web (WPT) con
content_shell(esclusi i test virtuali e i reftest in attesa di correzioni di bug upstream) (crrev.com/c/5347371, Bug: 40214293). - Sono stati convertiti tutti i test web dei sensori generici esistenti per utilizzare
test_driver.jse sensori virtuali anziché simulazioni JS/Mojo, in linea con la nuova sezione Automazione della specifica dei sensori generici (crrev.com/c/4770867, Bug: 1278377, Bug: 1471996). - È stata migliorata la generazione delle licenze aggiungendo
append_notices.pyper generare crediti per le dipendenzeBiDiMappere aggiornando l'invocazionelicenses.pyin modo che si basi rigorosamente sul file READMEselenium-atomsper le informative di terze parti (crrev.com/c/5350601, crrev.com/c/5339957, Bug: 4729, Bug: 4735).
ChromeDriver 123
Nuove funzionalità
- FedCM: mostra le finestre di dialogo modali per i flussi dei pulsanti di un singolo account, inclusa l'aggiunta del supporto per le visualizzazioni modali nell'interfaccia di automazione (crrev.com/c/5231438, Bug: 1518356).
- FedCM: è stata implementata l'assistenza di ChromeDriver per l'apertura dei link all'interno delle finestre di dialogo FedCM, trattandoli come pulsanti per semplificare l'automazione (crrev.com/c/5225543, Bug: 1513520).
- Sensori: sono stati modificati i comandi dei sensori virtuali di WebDriver per leggere gli angoli di Eulero (alfa-beta-gamma) anziché i quaternioni, in conformità con i recenti aggiornamenti delle specifiche dei sensori di orientamento. I livelli interni di CDP e dei servizi utilizzano ancora i quaternioni tramite un passaggio di conversione (crrev.com/c/5229177, Bug: 1506995, Bug: 1520912, Bug: 1520919).
Correzioni di bug
- Classic: è stato risolto un problema per cui la restituzione di un nodo da un frame diverso tramite uno script generava erroneamente un errore
StaleElementReference; ora viene restituito correttamente un erroreJavaScriptErrorin conformità allo standard WebDriver (crrev.com/c/5222746, Bug: 4668). - Test: è stato corretto un test degli eventi di overscroll che non riusciva su Chrome/ChromeDriver perché il trascinamento touch si estendeva oltre i limiti della finestra; ora il trascinamento è vincolato correttamente (crrev.com/c/5297676, Bug: 40832230).
- Test: sono stati corretti i test MIDI
open-close.https.htmlper evitare di creare promesse inutilmente, evitando i rifiuti di promesse non gestite che causavano l'esito negativo del test di ChromeDriver (crrev.com/c/5239869, Bug: 1499775). - Test: è stato corretto il set di autorizzazioni nei test
wpt_internal/system-wake-lock/idlharness*in cuitest_driver.set_permission(...)superava erroneamentefalseanzichénullo unWindowProxy, confondendo ChromeDriver (crrev.com/c/5271087, Bug: 40287920).
Modifiche interne e refactoring
- BiDi: è stata aggiornata la dipendenza di BiDi Mapper, recuperando le ultime correzioni e funzionalità (crrev.com/c/5205452, crrev.com/c/5255321, crrev.com/c/5238148, crrev.com/c/5237125, Bug: 4226). (Nota: un incremento è stato brevemente annullato e poi riapplicato a causa di errori di build crrev.com/c/5238855).
- È stata migliorata l'integrità del codice di ChromeDriver eliminando i cast statici non sicuri da una classe base a una classe derivata sia in
ChromeImplche inDevToolsClientImpl, evitando potenziali comportamenti indefiniti (crrev.com/c/5277062, crrev.com/c/5272562, Bug: 4702). - Sono stati eliminati i cast non sicuri in
WebViewImpl(crrev.com/c/5272230, Bug: 4702). - Sono state rimosse le forme obsolete di
base::Base64Encode(), con la migrazione alla variantestd::stringpiù recente anziché l'utilizzo di parametri out (crrev.com/c/5179900, crrev.com/c/5246585, Bug: 1486214). - Sono state aggiornate tutte le direttive
#includeperbase/...in modo da utilizzare""anziché<>per coerenza (crrev.com/c/5237376, Bug: 1500249). - Sono stati migrati tutti i file
DIR_METADATAinchrome/test/a Buganizer (crrev.com/c/5284119, Bug: 1518875). - È stato impedito a wptrunner di creare un file
-locale durante il passaggio di-vvvrimuovendo l'opzionechromedriver --log-path=-non necessaria, poiché stderr viene già reindirizzato a stdout (crrev.com/c/5282721). - È stato migliorato wptrunner per riassumere i risultati dei test in caso di regressioni, includendo esplicitamente i risultati dei sottotest e le analisi dello stack di ChromeDriver direttamente nell'output del riepilogo (crrev.com/c/5238662, Bug: 1521922).
- Debug semplificato dei test di integrazione di ChromeDriver grazie all'introduzione del parametro
--remote-chromedriver-portinrun_py_tests.py, che consente la connessione a un'istanza esistente in esecuzione in un debugger (crrev.com/c/5237254, Bug: 4693). - Sono state evitate chiamate
base::HexEncode()eRandBytes()con due argomenti per consentire al compilatore di dedurre le dimensioni corrette, semplificando il codice (crrev.com/c/5241357).
ChromeDriver 122
Correzioni di bug
- BiDi: è stata aggiornata la serializzazione dei nodi profondi per includere
loaderId, consentendo a ChromeDriver e al mapper BiDi di fare riferimento e dereferenziare correttamente i nodi senza round trip eccessivi (crrev.com/c/5116240, Bug: 1420968). - Funzionalità: è stato aggiornato ChromeDriver per trasmettere la funzionalità
acceptInsecureCertsa BiDi Mapper immediatamente all'avvio, evitando condizioni di competizione in cui la funzionalità potrebbe essere applicata troppo tardi (crrev.com/c/5125711, Bug: 4643). - Classico: è stata riprogettata la generazione di riferimenti agli elementi per utilizzare un formato
<frame_id>.<loader_id>.<backend_node_id>. In questo modo, ChromeDriver può distinguere in modo definitivo tra riferimenti agli elementi validi, sconosciuti e obsoleti durante la navigazione nei frame e gli aggiornamenti del DOM (crrev.com/c/5094519, Bug: 4379). - Classic: è stato risolto un problema per cui il comando
window/handlespoteva non riuscire a causa di un errore "no such window" se una destinazione appena creata si chiudeva (ad es. in una condizione di competizione) prima che ChromeDriver potesse collegarsi (crrev.com/c/5147409, Bug: 1506833). - FedCM: è stato aggiunto un listener di eventi interno per inviare una notifica quando viene chiusa una finestra di dialogo FedCM, impedendo al comando
dialogtypedi restituire dati obsoleti se la finestra di dialogo è stata chiusa esternamente (ad es. tramiteAbortController.abort) (crrev.com/c/5067504, Bug: 1506292). - FedCM: è stato rimosso il prefisso del fornitore dal comando
ClickDialogButton, in quanto ora è stato approvato nella specifica FedCM (crrev.com/c/5092527, Bug: 1499341).
Modifiche interne e refactoring
- BiDi: è stata eseguita la migrazione della dipendenza BiDi Mapper alla versione più recente (crrev.com/c/5205452, Bug: 4226).
- Riduzione del traffico di ChromeDriver e del protocollo Chrome DevTools (CDP) rimuovendo le chiamate
Page.enableridondanti inviate da ogniDevToolsEventListener, poichéDevToolsClientImplgestisce già questa operazione per target (crrev.com/c/5088789, Bug: 4600). - Sono stati modificati tutti i builder Wptrunner per
content_shellin modo che abbiano lo stato sperimentale, poiché l'esecuzione dei test in modalità protocollo non è attualmente completamente supportata mentre è in corso l'integrazione di ChromeDriver (crrev.com/c/5225148, Bug: 1474702). - Sono stati ignorati i test che richiedono
window.test_driver_internal.get_computed_rolesucontent_shellperché non è ancora stato implementato, evitandoTypeErrorerrori (crrev.com/c/5189678, Bug: 1517744). - È stato eseguito nuovamente il refactoring per utilizzare i flag
IS_OZONE_{X11, WAYLAND}indipendenti dalla piattaforma anzichéOZONE_PLATFORM_*(crrev.com/c/5086329, Bug: 1500494). - È stata aggiornata la dipendenza
selenium-atomsall'ultima revisione (crrev.com/c/5110808, Bug: 4662). - È stata corretta la logica nei test SnapEvents quando vengono eseguiti sul file binario Chrome completo arrotondando gli input di spostamento del puntatore, applicando il parametro
originper gli scorrimenti e utilizzando asserzioni di approssimazione (assert_approx_equals) per gestire le discrepanze di scorrimento/offset frazionari (crrev.com/c/5097343). - È stato aggiunto l'helper
StringPrintfNonConstexpr()per distinguereStringPrintf()quando le stringhe di formato non sono costanti in fase di compilazione (crrev.com/c/4950568, Bug: 1371963). - È stato verificato che l'escape della macro
chromium::import!Rust utilizza una funzione iniettiva per evitare collisioni nei nomi dei target GN generati (crrev.com/c/5132119, Bug: 1512174). - È stata ripulita l'implementazione di
ScopedTempDirWithRetryaggiungendo un costruttore e ritorni anticipati nel distruttore (crrev.com/c/5113843).
ChromeDriver 121
Nuove funzionalità
- Test: è stato aggiunto il supporto per l'esecuzione di test integrati di ChromeDriver (
chromedriver_py_test) suchrome-headless-shelloltre al browser Chrome standard sui bot di build. Ciò include la possibilità di rilevare il binario del browser in base al parametro--browser-nameed eseguire in modo condizionale set di test specifici (crrev.com/c/4995189, crrev.com/c/4989442, Bug: 4358).
Correzioni di bug
- Stabilità: è stato inizializzato il valore predefinito
KeyboardLayoutEnginecomeStubKeyboardLayoutEngineper evitare arresti anomali di ChromeDriver causati da un hitDCHECKinKeyboardLayoutEngineManager::SetKeyboardLayoutEngine(crrev.com/c/5017859, Bug: 4625). - Stabilità: è stato risolto un problema di instabilità per cui ChromeDriver poteva arrestarsi in modo anomalo se il thread della sessione richiedeva la chiusura di una connessione dopo che il client aveva già richiesto la chiusura della stessa connessione (crrev.com/c/4994636, Bug: 4606).
- Gestione delle risorse: sono state corrette le perdite di risorse nei test di integrazione di ChromeDriver (
RemoteBrowserTest) assicurandosi che il processo del browser venga terminato anche se viene generata un'eccezione da un comando ChromeDriver (crrev.com/c/5009554, Bug: 4614). - Gestione delle risorse: è stata implementata la logica nei test di integrazione di ChromeDriver per rilevare e terminare i processi del browser abbandonati dal processo ChromeDriver (crrev.com/c/5014093, Bug: 4617).
- Avvio: è stato risolto un problema per cui
chrome-headless-shellrestituiva un elenco di target vuoto, impedendo la creazione di sessioni, aggiungendo l'argomentodata:,alla riga di comando del browser quando il nome del browser èchrome-headless-shell(crrev.com/c/5010392, crrev.com/c/5009535, Bug: 4615, Bug: 4358). - FedCM: è stato aggiunto un nuovo evento per inviare una notifica quando viene chiusa una finestra di dialogo FedCM, garantendo che
dialogtypee altri comandi non restituiscano dati obsoleti se la finestra di dialogo è stata chiusa esternamente (ad es. tramiteAbortController.abort) (crrev.com/c/5067504, Bug: 1506292). - Test: sono stati corretti e riattivati tutti i test di integrazione di ChromeDriver precedentemente disattivati per
chrome-headless-shellsu Windows (crrev.com/c/5027594, Bug: 4358). - Test: sono state attenuate le asserzioni eccessivamente rigide in
testElementRegionTestper allinearsi allo standard WebDriver, risolvendo l'instabilità causata dalle peculiarità di rendering del browser (crrev.com/c/5017865, Bug: 4526).
Modifiche interne e refactoring
- BiDi: è stata aggiornata la dipendenza BiDi Mapper (crrev.com/c/4994305, Bug: 4226).
- È stato ripristinato l'utilizzo di
IS_OZONE_{X11, WAYLAND}a favore diOZONE_PLATFORM_*a causa di un bug (crrev.com/c/5086571, ripristino di crrev.com/c/5083096, Bug: 1500494). - Codice migrato in
commands_unittest.ccper utilizzarebase::BindLambdaForTestinganzichébase::Passeddeprecato (crrev.com/c/5078589, Bug: 1326449). - È stato eseguito il refactoring di
session.newper estrarre la gestione delle funzionalità boilerplate (ad es.testName,binary,browserName) in un metodo dedicato ed è stato verificato che il comando rispetti le funzionalità in modo simile al comando classico (crrev.com/c/5004665, crrev.com/c/5001510, Bug: 4358, Bug: 4610). - Rimozione dell'utilizzo dell'intestazione
base/strings/string_piece_forward.hobsoleta (crrev.com/c/5008994, Bug: 691162). - Preparato per la transizione di
net::IOBuffera una classe non proprietaria utilizzandonet::IOBufferWithSizeper i casi proprietari (crrev.com/c/4996470, Bug: 1493389). - È stato introdotto e utilizzato
base::RandBytesAsVector()per evitare di archiviare valori binari nelle stringhe (crrev.com/c/5018451). - Sono stati disattivati diversi test di integrazione Python che non superavano costantemente su Mac per evitare che causassero build verdi a causa dell'esenzione dall'analisi LUCI (crrev.com/c/4998771, Bug: 1486604, Bug: 1486520, Bug: 1486474, Bug: 1481915).
- È stato rinominato
webdriver_tests_suite(ewpt_tests_suite) inchrome_wpt_testsper standardizzare le convenzioni di denominazione della suite WPT nei builder di prova Linux (crrev.com/c/5014293, Bug: 1474702). - È stato riproposto il comando webdriver
ConfirmIdpLoginFedCM in un comandoClickDialogButtonpiù estensibile che accetta un parametroDialogButton(crrev.com/c/5003255, Bug: 1499341). - È stata aggiornata la dipendenza
crossbenchcon numerose correzioni e funzionalità, tra cui una migliore analisi del tipo di driver, stub di rete e supporto iOS (crrev.com/c/5009937). - È stato aggiunto
#include <string>mancante achrome_finder.hper la conformità IWYU (crrev.com/c/4994605, Bug: 957519).
ChromeDriver 120
Nuove funzionalità
- BiDi: è stato aggiunto il supporto per i comandi
session.newesession.end, che consentono agli utenti di creare e terminare le sessioni direttamente tramite i comandi BiDi (crrev.com/c/4941941, Bug: 4496). - BiDi: è stato aggiunto il supporto del comando
session.statusPureBiDi, che consente agli utenti di stabilire una connessione WebSocket non associata ad alcuna sessione e recuperare lo stato della sessione (crrev.com/c/4938596, Bug: 4496). (Ripristinato dopo un precedente rollback in crrev.com/c/4922097) - BiDi: è stata aumentata la dipendenza di BiDi Mapper ed è stato allineato al nuovo processo di esecuzione di Mapper semplificato (crrev.com/c/4952609, Bug: 4226).
- Sensori: sono stati implementati comandi di sensori virtuali in
browser_protocol.pdle nel livello CDP (dominio di emulazione), aggiungendo il supporto per la sezione Automazione della specifica del sensore generico (crrev.com/c/4770864, Bug: 1278377). - Sensori: sono stati aggiunti comandi di estensione di ChromeDriver per la gestione dei sensori virtuali, traducendo i parametri di WebDriver nelle nuove chiamate CDP (crrev.com/c/4770866, Bug: 1278377).
- Sensori: è stato aggiunto un percorso del codice
content_shellper la manipolazione dei sensori virtuali tramitetestdriver.js, bypassando completamente ChromeDriver per i test web (crrev.com/c/4770865, Bug: 1278377). - Mitigazioni del monitoraggio: è stato aggiunto il supporto di ChromeDriver per le mitigazioni del monitoraggio del rimbalzo (DIPS), consentendo l'automazione della specifica
nav-tracking-mitigations(crrev.com/c/4873672, Bug: 1474656). (Nota: questa modifica è stata temporaneamente ripristinata a causa di errori di test su Mac in crrev.com/c/4938394)
Correzioni di bug
- Avvio: è stata aggiunta l'individuazione di Headless Shell a ChromeDriver, consentendogli di cercare il binario
chrome-headless-shellse richiesto tramite funzionalità e non viene fornito alcun percorso esplicito (crrev.com/c/4987262, Bug: 4358). (Riproposto dopo un precedente ripristino in crrev.com/c/4984449) - WebSockets: è stata implementata la compatibilità parziale con l'handshake di chiusura di WebSocket, garantendo che ChromeDriver risponda con un frame
CLOSEquando ne viene ricevuto uno dall'estremità remota (crrev.com/c/4931500, Bug: 4499). - Autorizzazioni:
options.disclaim_responsibilityè stato esposto come flag di build per consentire alle build dei fornitori (come Microsoft Teams) di disattivarlo, impedendo ai prompt di autorizzazione di macOS di bloccare l'automazione dei test (crrev.com/c/4929495, Bug: 1223643). - Conformità allo standard C++: è stato corretto il comportamento indefinito (UB) rilevato da UBSan durante il cast di un double fuori intervallo in un int aggiungendo controlli dell'intervallo (crrev.com/c/4980055, Bug: 1394755).
- FedCM: è stato rimosso il supporto per la vecchia sintassi dell'intestazione, garantendo la conformità alla sintassi standard
login-status-http(crrev.com/c/4957073, Bug: 1381501).
Modifiche interne e refactoring
- È stato aggiunto il test di integrazione
testReturnFrameElementper verificare il comportamento di ChromeDriver in merito al trattamento diwindow.frameElementcome riferimento non aggiornato (crrev.com/c/4983549, Bug: 4477). - Registrazione migliorata garantendo che ChromeDriver registri i percorsi specifici in cui tenta di individuare il file binario del browser (crrev.com/c/4976116, Bug: 4539).
- Sono state rinominate varie funzioni
base::Timeper renderle più descrittive (ad es.FromDoubleT()inFromSecondsSinceUnixEpoch()) (crrev.com/c/4956111). - È stato eseguito il refactoring del costruttore
net::StringIOBuffere delle istanzeIOBufferper evitare copie di stringhe non necessarie e allocazioni di lunghezza zero (crrev.com/c/4938384, crrev.com/c/4959174). - Gestione delle stringhe pulita sostituendo
base::StrCatcon+ove applicabile e utilizzandobase::AppendHexEncodedByte()(crrev.com/c/4963465, crrev.com/c/4977165). - È stato rinominato
DIR_SOURCE_ROOTinDIR_SRC_TEST_DATA_ROOTin tutti i test//chrome*per maggiore chiarezza (crrev.com/c/4916045, Bug: 1264897). - Sono stati disattivati i test
PureBidiTestinstabili sui builder Mac (crrev.com/c/4983555, Bug: 1496826).
ChromeDriver 119
Nuove funzionalità
- BiDi: è stato implementato il supporto per la risoluzione dei riferimenti deboli agli oggetti locali restituiti dall'endpoint remoto durante le chiamate di funzioni remote (crrev.com/c/4886760, Bug: 4536).
- FedCM: è stato aggiunto il comando
confirmidpsignincon prefisso del fornitore per supportare la prova dell'origine dell'API IDP Sign-In Status (crrev.com/c/4811725, Bug: 1451884).
Correzioni di bug
- Emulazione mobile: è stato risolto un problema per cui i dispositivi predefiniti senza suggerimenti client (ad es. configurazioni precedenti) venivano danneggiati dall'inserimento di valori predefiniti sensati (crrev.com/c/4887254, Bug: 4550).
- Classico: serializzazione fissa degli oggetti
MapeSet; ora vengono serializzati correttamente comeObjectanzichéCollection, poiché non hanno una proprietàlength(crrev.com/c/4881378, Bug: 4031). - Classic: è stata ripristinata la logica per scaricare e utilizzare sempre l'ultima versione compatibile di ChromeDriver durante i test, tornando a versioni specifiche solo in caso di problemi di compatibilità (crrev.com/c/4779613, ripristino di crrev.com/c/4778973).
- FedCM: sono stati standardizzati i comandi di automazione del browser rinominando
SignininLogin(confirmidplogin) in linea con le ultime discussioni sulle specifiche FedCM (crrev.com/c/4901302, Bug: 1451884). - Test: sono stati corretti i test FedCM che non riuscivano quando i cookie di terze parti erano disattivati, attivando esplicitamente l'API IDP Sign-In Status durante l'esecuzione del test (crrev.com/c/4889802, Bug: 1484833).
- Test: il segnaposto URL non valido
~NOTFOUNDè stato sostituito con^NOTFOUNDnei test runner per rispettare le imminenti modifiche all'applicazione degli standard URL di Chromium (crrev.com/c/4845589, Bug: 1416013).
Modifiche interne e refactoring
- BiDi: è stata aggiornata la dipendenza BiDi Mapper alla versione 0.4.27, che include le ultime correzioni e funzionalità (crrev.com/c/4862031, crrev.com/c/4890322).
- Sono state sostituite più API per puntatori/lunghezza in
//urlconstd::string_viewper una maggiore sicurezza e praticità (crrev.com/c/4897456). - È stata eseguita la transizione dell'utilità
generateWebDriverValueper utilizzare l'opzione di serializzazione profonda (serializationOptions.serialization: deep) fornita in modo nativo dal protocollo BiDi (crrev.com/c/4889644). - Sono stati aggiunti test di integrazione per verificare che la ricerca in un riferimento a un elemento obsoleto restituisca correttamente un errore "riferimento a un elemento obsoleto" (crrev.com/c/4886793, Bug: 4440).
- Miglioramento della formattazione dello stile del codice in
call_function.js(crrev.com/c/4882511, Bug: 4031). - Feedback utente migliorato informando esplicitamente gli utenti quando si connettono tramite WebSocket che le pipe sono supportate e consigliate per una migliore affidabilità e sicurezza (crrev.com/c/4882626, Bug: 3480).
- È stata aggiornata la configurazione della suite WPT per archiviare
results.htmlper i testwebdriver_tests_suite, fornendo una migliore UI per la visualizzazione dei risultati (crrev.com/c/4873223). - È stata corretta l'integrazione di DevTools con WebView contrassegnando WebView WebContents e impostando il tipo di DevTools su
popup_pageanzichéother(crrev.com/c/4842093). - È stato rinominato il target di build WPT
chrome_wptinchrome_wpt_testsper coerenza ed è stato rimosso il target ridondantewebdriver_wpt_tests(crrev.com/c/4847474, Bug: 1474702). - È stato eseguito il porting di
run_py_tests.pydalla libreriaoptparseritirata aargparse(crrev.com/c/4849411, Bug: 4557).
ChromeDriver 118
Nuove funzionalità
- Test di integrazione: sono stati introdotti test di integrazione C++ per ChromeDriver, che consentono di testare classi specifiche rispetto al traffico CDP reale, colmando il divario tra i test unitari e i test di integrazione Python (crrev.com/c/4707855, Bug: 4528).
- Crossbench: è stata aggiornata la dipendenza
crossbenchcon numerosi miglioramenti, tra cui nuove storie di benchmark di consumo energetico, migliore supporto di piattaforme e dispositivi, debug avanzato e varie correzioni (crrev.com/c/4803743).
Correzioni di bug
- Funzionalità: è stato risolto un problema per cui
debuggerAddressnon era presente nelle funzionalità restituite nelle configurazioni predefinite; ora viene restituito correttamente per supportare la comunicazione BiDi basata su CDP di Selenium (crrev.com/c/4789068, Bug: 4533). - Funzionalità: è stato verificato che ChromeDriver restituisce i valori standard di
platformName(ad es. "linux", "windows", "mac") come richiesto dalla specifica WebDriver (crrev.com/c/4797735, Bug: 4548).
Modifiche interne e refactoring
- È stato eseguito il porting del codice in
MockSocketper preferirebase::span<>ai puntatori non elaborati per una maggiore sicurezza (crrev.com/c/4832086). - Sono stati rimossi gli utilizzi deprecati di
base::raw_ptrebase::raw_refa favore delle loro forme non qualificateraw_ptreraw_reftramite la pulizia automatica (crrev.com/c/4773481). - È stata ripristinata temporaneamente una modifica che utilizzava sempre l'ultima versione di ChromeDriver, in quanto causava arresti anomali sui canali stabili/beta di Windows (crrev.com/c/4778973, ripristino di crrev.com/c/4777430).
- Configurazioni WPT (Web Platform Tests) modificate, tra cui l'eliminazione degli errori di solo debug in
pointer_touch.pye l'implementazione della verifica dello stato attivo lato browser per i fenced frame (crrev.com/c/4844810, crrev.com/c/4572517). - È stato aggiunto il valore
#include <vector>mancante aclient_hints.hper la conformità a IWYU (crrev.com/c/4767547). - È stata eseguita la migrazione dei tipi di base specifici di Apple (
ScopedTypeRef,ScopedCFTypeRef,scoped_nsautorelease_pool) nello spazio dei nomibase::apple::, lasciando intestazioni di inoltro temporanee per Crashpad (crrev.com/c/4799213, crrev.com/c/4790744, crrev.com/c/4790741, crrev.com/c/4784010).
ChromeDriver 117
Nuove funzionalità
- Comunicazione tramite pipe: è stata modificata la modalità di comunicazione predefinita tra ChromeDriver e Chrome da WebSocket a pipe (
--remote-debugging-in-pipee--remote-debugging-out-pipe) su tutte le piattaforme supportate, incluso Windows (crrev.com/c/4634299, crrev.com/c/4628834, crrev.com/c/4635378, Bug: 3480). - BiDi: è stata aggiornata la dipendenza BiDi Mapper (crrev.com/c/4670516, Bug: 4226).
Correzioni di bug
- Stabilità: è stato corretto un accesso a un puntatore nullo che causava l'arresto anomalo di ChromeDriver, il che a sua volta comportava errori
ConnectionRefuseddurante l'esecuzione dei test (crrev.com/c/4675633, Bug: 1457101). - Navigazione: è stato corretto un problema per cui gli errori
NoSuchExecutionContexteNoSuchWindowdi Chrome durante la navigazione non venivano gestiti in modo uniforme; ora entrambi vengono mappati correttamente per riprovare l'operazione (crrev.com/c/4667156, Bug: 4459). - Emulazione mobile: è stata corretta la logica di inferenza per
clientHints.mobile; ora viene dedotto correttamente dauserAgentsu Android e il valore predefinito è false su altre piattaforme, risolvendo un problema per cui i tablet venivano segnalati erroneamente come dispositivi mobili (crrev.com/c/4649348, Bug: 4243). - Creazione della sessione: è stata aggiornata la creazione della sessione per restituire correttamente il codice di errore standard
SessionNotCreatedin caso di errore, rispettando rigorosamente la specifica W3C WebDriver (crrev.com/c/4638223, Bug: 4379). Nota: questa modifica è stata successivamente annullata perché alcuni percorsi di codice specifici richiedono codici di errore diversi (crrev.com/c/4651188).
Modifiche interne e refactoring
- Sono stati eliminati gli script del processo di rilascio manuale di ChromeDriver, in quanto ora ChromeDriver è completamente integrato nel processo di rilascio di Chrome e disponibile tramite l'infrastruttura Chrome for Testing (crrev.com/c/4520687, Bug: 4142).
- È stata eseguita la migrazione dell'infrastruttura WPT (Web Platform Tests) per utilizzare l'
wptrunnerufficiale anziché l'run_webdriver_tests.pypersonalizzato, migliorando significativamente la velocità e l'affidabilità dell'esecuzione e garantendo che ChromeDriver venga riavviato tra i test per isolare gli arresti anomali (crrev.com/c/4723147, crrev.com/c/4676070, crrev.com/c/4639168). - È stato eseguito il refactoring esteso di
ChromeLaunchere delle classi correlate per supportare la transizione alle pipe, riducendo l'accoppiamento conDevToolsHttpCliente spostando la logica WebSocket in rami dedicati (crrev.com/c/4632801, crrev.com/c/4674345). - Il campo
BrowserInfo.is_headlessfuorviante è stato rinominatoBrowserInfo.is_headless_shellper maggiore chiarezza (crrev.com/c/4650452, Bug: 4358). - Sono stati sostituiti vari metodi
base::Valueritirati con gli equivalenti modernibase::Value::Dict(ad es.FindDouble(),Set(),size()) in tutto il codebase (crrev.com/c/4258936, crrev.com/c/4336805, crrev.com/c/4461067).112.0.5603.0, 113.0.5653.0, 114.0.5733.0 - È stato rimosso l'utilizzo di
[w]ctype.ha favore di utilità di stringhe di base più sicure e sono state implementate nuove funzionalità perbase::expected(crrev.com/c/4749459, crrev.com/c/4755226). - Sono stati implementati i comandi di automazione
get_fedcm_dialog_titleeselect_fedcm_accountinTestDriverper i test WPT di FedCM (crrev.com/c/4618303). - Sono stati aggiornati gli script di compilazione del mapper BiDi per funzionare correttamente indipendentemente dalla directory di lavoro corrente (crrev.com/c/4670550).
- I file
/chrome/test/chromedriversono stati convertiti per utilizzare ARC (Automatic Reference Counting) nelle build macOS, aggiungendo il boilerplate necessario (crrev.com/c/4663602). - È stato tentato di disattivare la comunicazione tramite pipe per impostazione predefinita tramite un commit di approvazione automatica, ma la modifica ha interessato solo la configurazione senza alterare il comportamento principale di pipes-by-default introdotto in precedenza (crrev.com/c/4683947).
ChromeDriver 116
Nuove funzionalità
- FedCM: è stata aggiunta una nuova funzionalità che consente ai client di verificare se ChromeDriver supporta i comandi FedCM senza doverli eseguire e rilevare gli errori (crrev.com/c/4624924, Bug: 1356159).
- Test: è stato attivato il riutilizzo della finestra di test per i test testharness eseguiti tramite ChromeDriver in
wptrunnerper valutare il suo impatto su prestazioni e instabilità (crrev.com/c/4515180, Bug: 1394572).
Correzioni di bug
- Conformità allo standard C++: è stato corretto il comportamento indefinito causato dall'utilizzo errato delle enumerazioni con ambito (enum class) direttamente nelle stringhe di formato, risolvendo i nuovi avvisi del compilatore Clang (crrev.com/c/4628112, Bug: 1456289).
- FedCM: è stata risolta una potenziale causa di instabilità dei test correggendo un caso limite che impediva a
setdelayenableddi funzionare correttamente (crrev.com/c/4606064, Bug: 1453412).
Modifiche interne e refactoring
- BiDi: è stata aumentata la dipendenza di BiDi Mapper ed è stato aggiornato lo script di build per estrarre l'ultima revisione da "main" per impostazione predefinita (crrev.com/c/4615087, crrev.com/c/4615791, Bug: 4226).
- È stata eseguita la transizione di ChromeDriver per aprire e scrivere tutti i file utilizzando esplicitamente la codifica UTF-8 (crrev.com/c/4614522).
- È stato eseguito il refactoring di
ChromeImplper eliminare la sua dipendenza daDevToolsHttpCliented è stato ridotto l'utilizzo diSyncWebSocketFactoryeBrowserInfoin preparazione della comunicazione tramite pipe anziché WebSocket (crrev.com/c/4571690, crrev.com/c/4571199, Bug: 3480). - È stata rimossa la "modalità predefinita" deprecata per i frame recintati e sono stati aggiornati i test associati per attivare il nuovo flag funzionalità, continuando la migrazione alle aste FLEDGE (crrev.com/c/4558645).
- Test FedCM migliorati sostituendo le asserzioni
WaitForConditiongeneriche conassertTrueper indicare chiaramente quando si verificano timeout (crrev.com/c/4590211). - Sono stati contrassegnati avvisi di test unitari
raw_ptrnoti come instabili inlinux-rel(crrev.com/c/4598070). - File OWNERS aggiornato per il mapper BiDi (crrev.com/c/4614518).
ChromeDriver 115
Nuove funzionalità
- Emulazione mobile: è stato implementato il supporto per i client hint dello user agent nell'emulazione mobile, consentendo a ChromeDriver di analizzare i client hint dalle funzionalità e dai preset e di passarli a Chrome (crrev.com/c/4498667, crrev.com/c/4466129, Bug: 4243).
- Emulazione mobile: sono stati aggiornati i preset di emulazione mobile in modo da utilizzare la versione principale del browser host anziché la versione di ChromeDriver quando si sostituisce la stringa di formato
%snello user agent (crrev.com/c/4502850, Bug: 4243). - Configurazione: è stato aggiunto il supporto per il download di una versione specifica di ChromeDriver per un determinato canale, migliorando gli scenari di automazione in cui ChromeDriver viene eseguito su una piattaforma diversa (come Android/WebView) rispetto all'host (crrev.com/c/4550281).116.0.5791.0
Correzioni di bug
- Classico: è stato risolto un problema per cui la mancata risoluzione di un nodo restituiva erroneamente un
UnknownErroranziché l'erroreNoSuchElementstandard (crrev.com/c/4508952, Bug: 4440). - Emulazione mobile: sono state aggiunte asserzioni più rigorose ai preset di emulazione mobile per imporre che il flag
clientHints.mobilesia true se la stringauserAgentcontiene "Mobile" (crrev.com/c/4507142, Bug: 4243). - Emulazione mobile: è stata eseguita la migrazione degli override
DeviceMetricsper utilizzare il comando CDPEmulation.setDeviceMetricsOverrideanziché l'equivalente del dominioPageritirato (crrev.com/c/4502614, Bug: 4243).
Modifiche interne e refactoring
- BiDi: è stata aggiornata la dipendenza BiDi Mapper, attivando le funzionalità di serializzazione avanzata (crrev.com/c/4535936, crrev.com/c/4512195).
- È stato rimosso il metodo
Connectritirato daDevToolsClientin preparazione della migrazione di ChromeDriver per comunicare tramite pipe (crrev.com/c/4521485, Bug: 3480). - È stata eseguita la migrazione del codebase per preferire
base::Value::Dictabase::Valuee sono stati sostituiti i metodi ritirati comeFindStringKey(),SetKey()eSetByDottedPath()(crrev.com/c/4529788, crrev.com/c/4522701, crrev.com/c/4515800, crrev.com/c/4507150). - È stato eseguito il passaggio all'utilizzo delle funzioni
string_util.hal posto di[w]ctype.hper conversioni di tipo più sicure (crrev.com/c/4529187). - È stata modificata la logica di caricamento del file seed per utilizzare percorsi assoluti per garantire la coerenza quando gli script e Chrome vengono eseguiti in posizioni diverse (crrev.com/c/4504656).
- È stato rimosso il metodo
CallAsyncFunction()inutilizzato daweb_view.h(crrev.com/c/4518363, Bug: 3376). - È stato applicato un cambio di nome automatico di
base::raw_ptrinraw_ptrper rispettare le preferenze della guida di stile (crrev.com/c/4476651).
ChromeDriver 114
Nuove funzionalità
- Classic: ha trasmesso le informazioni
MobileDeviceaMobileEmulationOverrideManagerper preparare il terreno per i client hint e gli override UserAgent futuri (crrev.com/c/4447524). - Test: sono stati aggiunti test fixture per ChromeDriver (crrev.com/c/4459939).
Correzioni di bug
- Headless: è stato corretto un arresto anomalo nella nuova modalità headless ignorando silenziosamente le richieste di anteprima di stampa basate su script (ad es.
window.print()), allineando il comportamento alla vecchia modalità headless (crrev.com/c/4436313, Bug: 4385). - Funzionalità: è stato corretto un bug di tipo use-after-move nelle funzionalità di ChromeDriver (crrev.com/c/4462094, Bug: 4243).
- DevTools: è stato rimosso un
DCHECKinDevToolsClientImpl::SendCommandInternalper evitare arresti anomali quando la connessione DevTools si interrompe, in quanto non si tratta di una violazione invariante (crrev.com/c/4370486, Bug: 4385).
Modifiche interne e refactoring
- BiDi: è stata aggiornata la dipendenza di BiDi Mapper (crrev.com/c/4418727).
- Sono stati risolti più avvisi di puntatore sospeso durante l'esecuzione del test delle unità gestendo correttamente i riferimenti non di proprietà e la distruzione locale nei test di
WebViewImple del logger delle prestazioni (crrev.com/c/4374824, crrev.com/c/4368179). - È stato eseguito il porting del codebase per utilizzare la nuova API
base::Valuev2, sostituendo i metodi ritirati comeValue::SetPath(),Value::SetStringPath()ebase::ListValue(crrev.com/c/4452309, crrev.com/c/4431420, crrev.com/c/4422897, crrev.com/c/4377520). - Tutti gli utilizzi di
base::GUIDsono stati sostituiti conbase::Uuidin linea con la ridenominazione della libreria di base principale (crrev.com/c/4455083). - Sono state eseguite varie operazioni di pulizia del codice, tra cui l'abbreviazione del codice, l'utilizzo di operazioni monadiche per
expected, la rimozione del codice inutilizzato e la correzione delle violazioni dello stile (crrev.com/c/4475368, crrev.com/c/4464199). - Sono stati aggiornati i test che coinvolgono i frame isolati in modo da utilizzare l'attributo
configanziché l'attributosrcdeprecato (crrev.com/c/4382231). - Rimozione dell'utilizzo inefficace di
ShadowDOMV0(crrev.com/c/4388302). - È stato ripristinato l'aggiunta di un flag per una correzione del PDF Skia (
SK_IGNORE_PDF_EOF_NEWLINE_FIX) per consentire il rebaselining (crrev.com/c/4401451). - È stato aggiornato il proprietario dello script per il test di ChromeDriver e sono stati apportati aggiustamenti per generare il JSON di configurazione esclusivamente per pinpoint (crrev.com/c/4437492, crrev.com/c/4298554).
- È stata aggiunta un'inclusione mancante (
<cstring>) perstd::strleninweb_view_impl.ccper risolvere un problema di compilazione IWYU (crrev.com/c/4376772). - È stato rimosso un file di test inutilizzato (
orientation_test.html) (crrev.com/c/4335668).
ChromeDriver 113.0.5672.63
Supporta Chrome 113
- Risolto il problema 4205: stessi ID oggetto in Classic e BiDi [Pri-1]
- Problema risolto 4302: non presupporre che Mapper si trovi nella prima scheda di ExecuteGetWindowHandles [Pri-1]
- È stato risolto il problema 4356: Chrome 110 non utilizza il valore di preferenza "download.default_directory" [Pri-1]
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 113.0.5672.24
Supporta Chrome 113
- Risolto il problema 4205: stessi ID oggetto in Classic e BiDi [Pri-1]
- Problema risolto 4302: non presupporre che Mapper si trovi nella prima scheda di ExecuteGetWindowHandles [Pri-1]
- È stato risolto il problema 4356: Chrome 110 non utilizza il valore di preferenza "download.default_directory" [Pri-1]
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 112.0.5615.49
Supporta Chrome versione 112
- Problema risolto 3517: attiva la funzionalità di stampa per non headless [Pri-]
- Risolto il problema 4419: Overhead elevato su Speedometer durante l'utilizzo di chromedriver [Pri-3]
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 112.0.5615.28
Supporta Chrome versione 112
- Problema risolto 4357: problema di sessione di Chromedriver versione 110.0.5481.77 con le opzioni --headless e --user-data-dir. [Pri-1]
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 111.0.5563.64
Supporta Chrome 111
- Problema risolto 4216: Esegui ChromeDriver con BiDiMapper personalizzato [Pri-]
- Risolto il problema 4300: l'handle della finestra è interoperabile tra la versione classica e BiDi [Pri-]
- Problema risolto 4325: la gestione di toJSON in jsonSerialize di call_function.js si discosta dallo standard. [Pri-]
- Risolto il problema 4330: DCHECK non riesce in DevToolsClientImpl::AddListener [Pri-]
- Problema risolto 4357: problema della sessione di ChromeDriver con le opzioni --headless e --user-data-dir [Pri-1]
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 111.0.5563.41
Supporta Chrome 111
- Problema risolto 4357: problema della sessione di ChromeDriver con le opzioni --headless e --user-data-dir [Pri-1]
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 111.0.5563.19
Supporta Chrome 111
- Problema risolto 4216: Esegui ChromeDriver con BiDiMapper personalizzato [Pri-]
- Risolto il problema 4300: l'handle della finestra è interoperabile tra la versione classica e BiDi [Pri-]
- Problema risolto 4325: la gestione di toJSON in jsonSerialize di call_function.js si discosta dallo standard. [Pri-]
- Risolto il problema 4330: DCHECK non riesce in DevToolsClientImpl::AddListener [Pri-]
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 110.0.5481.77
Supporta Chrome versione 110
- Risolto il problema 4193: Impossibile avviare una nuova sessione su Android 13 [Pri-]
- Risolto il problema 4272: WebSocket deve trattare code=0 come indicazione di FIN [Pri-]
- Risolto il problema 4276: corretti i problemi di connettività in ChromeDriver [Pri-]
- Risolto il problema 4295: ChromeDriver con
"webSocketUrl": trueè soggetto a race condition [Pri-] - Risolto il problema 4297: ChromeDriver Bidi serializza in modo errato [Pri-]
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 110.0.5481.30
Supporta Chrome versione 110
- Risolto il problema 4193: Impossibile avviare una nuova sessione su Android 13 [Pri-]
- Risolto il problema 4272: WebSocket deve trattare code=0 come indicazione di FIN [Pri-]
- Risolto il problema 4276: corretti i problemi di connettività in ChromeDriver [Pri-]
- Risolto il problema 4295: ChromeDriver con
"webSocketUrl": trueè soggetto a race condition [Pri-] - Risolto il problema 4297: ChromeDriver Bidi serializza in modo errato [Pri-]
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 109.0.5414.74
Supporta Chrome versione 109
- Problema risolto 4179: La sessione BiDi deve supportare più connessioni [Pri-]
- Problema risolto 4203: Miglioramento delle informazioni sui crediti [Pri-]
- Problema risolto 4263: Arresto anomalo su Meta+A [Pri-]
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 109.0.5414.25
Supporta Chrome versione 109
- Problema risolto 4179: La sessione BiDi deve supportare più connessioni [Pri-]
- Problema risolto 4203: Miglioramento delle informazioni sui crediti [Pri-]
- Problema risolto 4263: Arresto anomalo su Meta+A [Pri-]
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 108.0.5359.71
Supporta Chrome versione 108 Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 108.0.5359.22
Supporta Chrome versione 108
- Risolto il problema 4204: correzione del test WPT test_top_level_and_one_child non riuscito [Pri-]
- Problema risolto 4215: rinomina la build chromedriver_mac64_m1 in chromedriver_mac_arm64 [Pri-]
- Risolto il problema 4221: arresto anomalo quando un comando di clic chiude il browser [Pri-]
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 107.0.5304.62
Supporta Chrome versione 107
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 107.0.5304.18
Supporta Chrome versione 107
- Risolto il problema 4180: vietare la gestione di qualsiasi comando BiDi finché non viene comunicato che BiDiMapper è stato avviato [Pri-]
- Problema risolto 4198: ChromeDriver BiDi non deve presupporre che BiDiMapper si trovi sempre nella prima scheda [Pri-]
- Risolto il problema 4207: errore di WebDriver durante l'esecuzione di WPT [Pri-1]
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 106.0.5249.61
Supporta Chrome versione 106
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 106.0.5249.21
Supporta Chrome versione 106
- Problema risolto 4016: aggiunta del supporto bidirezionale di base a ChromeDriver (basato su Mapper) [Pri-1]
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 105.0.5195.52
Supporta Chrome versione 105
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 105.0.5195.19
Supporta la versione di Chrome
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 104.0.5112.79
Supporta Chrome versione 104
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 104.0.5112.29
Supporta Chrome versione 104
- Risolto il problema 4121: il comando WebDriver a volte non riesce a restituire "unexpected command response" [Pri-1]
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 104.0.5112.20
Supporta Chrome versione 104
- Risolto il problema 4121: il comando WebDriver a volte non riesce a restituire "unexpected command response" [Pri-1]
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 103.0.5060.134
Supporta Chrome versione 103
- Risolto il problema 4048: target frame detached [Pri-]
- Risolto il problema 4121: il comando WebDriver a volte non riesce a restituire "unexpected command response" [Pri-1]
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 103.0.5060.53
Supporta Chrome versione 103
- Risolto il problema 4048: target frame detached [Pri-]
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 103.0.5060.24
Supporta Chrome versione 103
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 102.0.5005.61
Supporta Chrome versione 102
- Risolto il problema 1309282: chromedriver non supporta gli switch multivalore [Pri-1]
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 102.0.5005.27
Supporta Chrome versione 102
- Risolto il problema 1309282: chromedriver non supporta gli switch multivalore [Pri-1]
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 101.0.4951.41
Supporta Chrome versione 101
- È stato risolto il problema 4046: DCHECK hit when appending empty frame isolato [Pri-]
- Risolto il problema 4080: il passaggio al frame nidificato non riesce [Pri-]
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 101.0.4951.15
Supporta Chrome versione 101
- È stato risolto il problema 4046: DCHECK hit when appending empty frame isolato [Pri-]
- Risolto il problema 4080: il passaggio al frame nidificato non riesce [Pri-]
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 100.0.4896.60
Supporta Chrome versione 100
- Problema risolto 4002: Supporto dei Fenced Frame [Pri-]
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 100.0.4896.20
Supporta Chrome versione 100
- Problema risolto 4002: Supporto dei Fenced Frame [Pri-]
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 99.0.4844.51
Supporta Chrome versione 99
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 99.0.4844.35
Supporta Chrome versione 99
- REVERTED!!! Risolto il problema 2269: impossibile utilizzare caratteri non BMP (punti di codice superiori a U+FFFF) [Pri-3]
- Risolto il problema chromium:1295243: Regressione in ChromeDriver sendKeys [Pri-1]
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 99.0.4844.17
Supporta Chrome versione 99
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 98.0.4758.102
Supporta Chrome versione 98
- Risolto il problema 3933: il clic sul bordo dell'area visibile non è efficace senza errori [Pri-]
- REVERTED!!! Risolto il problema 2269: impossibile utilizzare caratteri non BMP (punti di codice superiori a U+FFFF) [Pri-3]
- Risolto il problema chromium:1295243: Regressione in ChromeDriver sendKeys [Pri-1]
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 98.0.4758.80
Supporta Chrome versione 98
- Risolto il problema 3933: il clic sul bordo dell'area visibile non è efficace senza errori [Pri-]
- Risolto il problema 2269: impossibile utilizzare caratteri non BMP (punti di codice superiori a U+FFFF) [Pri-3]
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 98.0.4758.48
Supporta Chrome versione 98
- Risolto il problema 3933: il clic sul bordo dell'area visibile non è efficace senza errori [Pri-]
- Risolto il problema 2269: impossibile utilizzare caratteri non BMP (punti di codice superiori a U+FFFF) [Pri-3]
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 97.0.4692.71
Supporta Chrome versione 97
- Problema risolto 3878: migliore gestione delle coordinate frazionarie degli elementi per il clic sugli elementi [Pri-]
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 97.0.4692.36
Supporta Chrome versione 97
- Problema risolto 3878: migliore gestione delle coordinate frazionarie degli elementi per il clic sugli elementi [Pri-]
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 97.0.4692.20
Supporta Chrome versione 97
- Problema risolto 3878: migliore gestione delle coordinate frazionarie degli elementi per il clic sugli elementi [Pri-]
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 96.0.4664.45
Supporta Chrome versione 96
- Risolto il problema 3445: Impossibile accedere agli elementi nell'iframe all'interno di una radice shadow [Pri-3]
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 96.0.4664.35
Supporta Chrome versione 96
- Risolto il problema 3445: Impossibile accedere agli elementi nell'iframe all'interno di una radice shadow [Pri-3]
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 96.0.4664.18
Supporta Chrome versione 96
- Risolto il problema 3445: Impossibile accedere agli elementi nell'iframe all'interno di una radice shadow [Pri-3]
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 95.0.4638.69
Supporta Chrome versione 95
- Problema risolto 3857: L'intestazione host o l'intestazione origine è specificata e non è inclusa nella lista consentita o in localhost [Pri-1]
- Aggiunto l'argomento
--allowed-origins
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 95.0.4638.54
Supporta Chrome versione 95
- Problema risolto 3857: L'intestazione host o l'intestazione origine è specificata e non è inclusa nella lista consentita o in localhost [Pri-1]
- Aggiunto l'argomento
--allowed-origins
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 95.0.4638.17
Supporta Chrome versione 95
- Problema risolto 3857: L'intestazione host o l'intestazione origine è specificata e non è inclusa nella lista consentita o in localhost [Pri-1]
- Aggiunto l'argomento
--allowed-origins
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 95.0.4638.10
Supporta Chrome versione 95
- Problema risolto 3857: L'intestazione host o l'intestazione origine è specificata e non è inclusa nella lista consentita o in localhost [Pri-1]
- Aggiunto l'argomento
--allowed-origins
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 94.0.4606.113
Supporta Chrome versione 94
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 94.0.4606.61
Supporta Chrome versione 94
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 94.0.4606.41
Supporta Chrome versione 94
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 93.0.4577.63
Supporta Chrome versione 93
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 93.0.4577.15
Supporta Chrome versione 93
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 92.0.4515.107
Supporta Chrome versione 92
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 92.0.4515.43
Supporta Chrome versione 92
- Problema risolto 3389: Convalida dell'host per le richieste di ChromeDriver
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 91.0.4472.101
Supporta Chrome versione 91
- Risolto il problema 1205107: impossibile ottenere il valore dell'attributo per i campi nell'applicazione web.
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 91.0.4472.19
Supporta Chrome versione 91
- È stato risolto il problema 3744: SendKeys() e Click() non riescono a funzionare dopo la navigazione dei link
- Problema risolto 3746: l'endpoint dell'attributo aggiorna i valori in modo errato
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 90.0.4430.24
Supporta Chrome versione 90
- Risolto il problema 3708: GetElementLocation's inView non funziona per gli elementi in shadow DOM
- Problema risolto 3721: raccogli il log delle prestazioni per il service worker quando è attivato
- Risolto il problema 3731: AdbImpl::GetPidByName non funziona correttamente su sistemi operativi Android non standard come OnePlus
- Problema risolto 3733: errore irreversibile con il dominio su localhost
- Risolto il problema 3734: il driver deve segnalare un errore durante il tentativo di impostare il cookie sul dominio errato
- Risolto il problema 3743: refactoring della funzione di chiamata e correzione del problema di rimozione degli elementi
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 89.0.4389.23
Supporta Chrome versione 89
- Problema risolto 3667: timeout durante la ricezione di un messaggio dal renderer
- Risolto il problema 3675: GetElementLocation utilizza il metodo inView che gestisce in modo errato il valore booleano come array
- Risolto il problema 3682: GetElementRegion restituisce dimensioni errate per gli elementi parzialmente fuori dal viewport
- Problema risolto 3690: ChromeDriver non funziona se le estensioni utilizzano l'API chrome.windows
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 88.0.4324.96
Supporta Chrome versione 88
- Risolto il problema 3641: la pagina non viene caricata/visualizzata quando la finestra del browser non è attiva con Chrome Beta v87 e chromedriver v(87/86)
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 88.0.4324.27
Supporta Chrome versione 88
- Problema risolto 3611: output di
getText()in Protractor diverso da<element>.innerText - Risolto il problema 3625: miglioramento della compatibilità degli screenshot degli elementi
- Risolto il problema 3628: riferimento a elemento obsoleto e URL errato segnalato con URL che contiene un altro URL nel percorso
- Problema risolto 3631: aggiunta del supporto per la funzionalità
webauthn:extension:largeBlob - Risolto il problema 3635: Chromedriver 86 -
chromedriver.quit()non sembra superare correttamente l'evento di scaricamento - È stato risolto il problema 3649: la copia del testo selezionato negli appunti non funziona su Windows 10 quando si utilizza la modalità headless
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 87.0.4280.88
Supporta Chrome versione 87
- Risolto il problema 3641: la pagina non viene caricata/visualizzata quando la finestra del browser non è attiva con Chrome Beta v87 e chromedriver v(87/86)
- Problema risolto 3657: timeout del browser in background dello screenshot
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 87.0.4280.20
Supporta Chrome versione 87
- Risolto il problema 2421: eliminazione dei vecchi canali di port forwarding su android adb-server
- Problema risolto 3474: l'elenco dei dispositivi mobili emulati deve essere aggiornato
- Problema 3507 risolto: implementare "get computed role"
- Risolto il problema 3508: implementare "get computed label"
- Problema risolto 3584: rinomina l'opzione della riga di comando di ChromeDriver --whitelisted-ips
- Problema risolto 3588: connessione WebSocket bidirezionale
- Problema risolto 3594: la navigazione viene completata prematuramente se OOPIF viene caricato prima della pagina principale
- Risolto il problema 3598: un'opzione della riga di comando per la porta di DevTools da inoltrare al socket webview_devtools_remote
- Problema risolto 3608: debuggerAddress di Chromedriver non supporta IPv6
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 86.0.4240.22
Supporta Chrome versione 86
- Risolto il problema 3370: arresto controllato di Chrome o il cookie non verrà salvato correttamente nel file di persistenza SQLite
- Risolto il problema 3401: Get Element Location JS non individua il centro visibile dell'elemento
- Risolto il problema 3462: per sendKeys, il tasto CMD non funziona per MAC
- Risolto il problema 3541: miglioramento del log tra il client e ChromeDriver
- Risolto il problema 3559: output della versione di Chrome quando ChromeDriver segnala incompatibilità
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 85.0.4183.87
Supporta Chrome 85
- Risolto il problema 3578: Chrome 85 non consente più l'interazione normale con le finestre quando è aperta una finestra di dialogo di avviso
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 85.0.4183.83
Supporta Chrome 85
- Problema risolto 3577: ChromeDriver 85 non rileva la directory Chrome modificata (C:\Program Files)
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 85.0.4183.38
Supporta Chrome 85
- Problema risolto 3214: ChromeDriver78: Sendkeys reimposta la selezione del testo con contenteditable
- Problema risolto 3376: rimozione del comando LaunchApp da ChromeDriver
- Risolto il problema 3432: a volte
NavigationTrackernon rileva quando la pagina ha terminato il caricamento - Problema risolto 3481: nuovo endpoint di stampa in base alla specifica W3C
- Risolto il problema 3488: driver.get non genera errori quando il proxy è configurato in modo errato
- Problema risolto 3502: utilizza
document.hasFocus()per verificare se l'elemento è attivo - Problema risolto 3515: selenium.common.exceptions.WebDriverException: Message: unknown error: bad inspector message
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 84.0.4147.30
Supporta Chrome 84
- È stato risolto il problema 3420: dopo il passaggio alla finestra di stampa, chromedriver smette di rispondere
- Risolto il problema 3421: il driver restituisce testo cirillico senza stili
- Problema risolto 3422: GetElementText non funziona con il prototipo 1.6.0.3
- Risolto il problema 3434: impossibile recuperare i messaggi "assert" dai log "browser"
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 83.0.4103.39
Supporta Chrome versione 83
- Aggiornamento di Chromedriver per funzionare correttamente con prototype.js.
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 83.0.4103.14
Supporta Chrome versione 83
- Risolto il problema 1778: ritiro di launchApp da ChromeDriver
- Risolto il problema 2520: InitSession può attendere all'infinito quando Chrome non risponde
- Problema risolto 3120: download in modalità headless dalla nuova scheda
- Problema risolto 3234: conferma del punto e virgola trovato prima della sottostringa
- Problema risolto 3240: ExecuteGetElementRect non controlla lo stato restituito da GET_SIZE
- Problema risolto 3331: il metodo
get_cookies()restituisce chiavi "expiry" di tipo double, ma dovrebbe essere int64 in modalità W3C - Problema risolto 3332: timeout di riprova registrato come grave
- Problema risolto 3339: Chromedriver è uscito in modo imprevisto con codice null, segnale SIGTRAP
- Problema risolto 3351: miglioramento del messaggio Considerazioni sulla sicurezza
- Problema risolto 3352: supporto di SendKeys per gli elementi di colore
- Risolto il problema 3353: l'attesa della navigazione in attesa continua dopo la distruzione del contesto del frame
- Problema risolto 3375: Chromedriver v80 si blocca su getPageSource su alcuni siti
- Problema risolto 3383: ChromeDriver 80+ su Windows sembra uscire o bloccarsi su determinati comandi di elementi o clic
- Problema risolto 3399: rimozione del controllo wasThrown
ChromeDriver 81.0.4044.138
Supporta Chrome versione 81
- Aggiornamento di Chromedriver per funzionare correttamente con prototype.js.
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 81.0.4044.69
Supporta Chrome versione 81
- Correzione: Chromedriver si arresta in modo anomalo su getPageSource su alcuni siti.
- Correzione: arresti anomali di ChromeDriver su determinati comandi di elementi o clic.
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 81.0.4044.20
Supporta Chrome versione 81
- È stato corretto l'errore che si verificava durante il tentativo di ottenere la posizione dell'elemento HTML.
- I comandi Get e Add Cookie ora sono specifici per i frame.
- Sono stati risolti alcuni problemi che si verificano con i siti che ridefiniscono gli oggetti JavaScript standard.
- ChromeDriver continuerà ad attendere il completamento del caricamento dopo aver ricevuto un messaggio di chiusura della destinazione.
- Chromedriver ora restituisce un codice di errore conforme alle specifiche per i timeout
- Correzione: tempo di risposta lento e imprevisto di ChromeDriver al comando NewSession.
- Ora sono supportati i timeout definiti dall'utente superiori a 10 minuti.
- Correzione: ChromeDriver non riesce a connettersi a DevTools a causa di una mancata corrispondenza tra IPv4 e IPv6.
- È stato ripristinato l'ordine di ricerca per il file binario di Chrome su Linux.
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 80.0.3987.106
Supporta Chrome 80
- Ordine di ricerca ripristinato per il file binario di Chrome su Linux
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 80.0.3987.16
Supporta Chrome 80
- È stato risolto il problema relativo all'interruzione del caricamento della pagina quando si utilizza un proxy.
- Chromedriver ora attende il caricamento del frame corrente.
- Il log di ChromeDriver includerà la porta utilizzata dal driver.
- È stata attivata la funzione SetGeoLocation per la modalità W3C.
- È stato aggiunto il testo dell'avviso mancante per lo stato UnexpectedAlertOpen.
- Miglioramento del messaggio quando viene caricata l'estensione CRX2.
- È stata corretta una potenziale condizione di competizione in ExecuteGetPageSource.
- ChromeDriver aggiungerà il flag --ignore-certificate-errors quando la funzionalità acceptInsecureCerts è impostata su true
- Aggiornato il messaggio di errore e lo stato di restituzione per nessun contesto di esecuzione
- Correzione: ChromeDriver potrebbe bloccarsi a tempo indeterminato durante l'attesa della navigazione in attesa.
- È stato aggiunto l'attributo SameSite ad AddCookie e GetCookie.
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 79.0.3945.36
Supporta Chrome versione 79
Include la seguente modifica rispetto alla versione 79.0.3945.16:
- È stato corretto il calcolo errato delle coordinate degli elementi
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 79.0.3945.16
Supporta Chrome versione 79
- È stato risolto l'arresto anomalo di ChromeDriver causato dall'attivazione dell'avviso JavaScript durante l'esecuzione del comando
- È stato corretto un bug che causava il blocco di Chromedriver quando veniva attivato un avviso durante l'acquisizione di uno screenshot
- Rimozione di --ignore-certificate-errors dal comando di avvio di Chrome
- Modificata la piattaforma e platformName in windows su Win10
- Correzione di window.navigator.webdriver non definito quando "enable-automation" è escluso
- Correzione del test WPT "test_not_editable_inputs[hidden]"
- È stato risolto il problema "L'elemento non è selezionabile" quando si utilizza la modalità headless
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 78.0.3904.105
Supporta Chrome versione 78
Include la seguente modifica rispetto alla versione 78.0.3904.70: * È stato corretto il calcolo errato delle coordinate degli elementi
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 78.0.3904.70
Supporta Chrome versione 78
Include la seguente modifica rispetto alla versione 78.0.3904.11:
- È stato ripristinato il cambiamento per regolare le dimensioni dello screenshot sul display Retina, a causa di più problemi segnalati
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 78.0.3904.11
Supporta Chrome versione 78
- Sono stati corretti diversi problemi nella serializzazione degli oggetti JavaScript
- È stato corretto un bug nella corrispondenza delle funzionalità per Chrome su Android
- Implementazione dell'automazione delle autorizzazioni
- Dimensioni fisse dello screenshot sul display Retina
- È stato corretto il timeout di caricamento pagina in alcuni scenari
- Migliore corrispondenza delle funzionalità di platformName
- È stato corretto il codice di errore restituito durante lo spostamento del puntatore sulle opzioni dell'elenco a discesa
- È stato risolto un problema che interessava il download in modalità headless
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 77.0.3865.40
Supporta Chrome versione 77
Include le seguenti modifiche rispetto alla versione 77.0.3865.10:
- Sono stati corretti due bug nella serializzazione e deserializzazione degli oggetti JavaScript
- Gestione corretta di platformName: android durante la corrispondenza delle funzionalità
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 77.0.3865.10
Supporta Chrome versione 77
- Risolti diversi problemi nell'implementazione dell'API Actions
- Miglioramento dell'esecuzione del codice JavaScript e della gestione dei risultati
- È stato corretto un bug che rifiutava erroneamente le richieste POST con corpo vuoto in modalità OSS
- Un tracker di navigazione più robusto
- Supporta la strategia di caricamento pagina eager
- Aggiunto il comando New Window dalla specifica W3C WebDriver
- Supporto per il salvataggio dei download di file in modalità headless
- È stato aggiunto il supporto per il caricamento delle estensioni CRX3
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 76.0.3809.126
Supporta Chrome versione 76
Include le seguenti modifiche rispetto alla versione 76.0.3809.68:
- Sono stati corretti due bug nella serializzazione e deserializzazione degli oggetti JavaScript
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 76.0.3809.68
Supporta Chrome versione 76
Include le seguenti modifiche rispetto alla versione 76.0.3809.25:
- È stato corretto un bug nel rilevamento del riferimento circolare negli oggetti JavaScript
- È stato corretto un bug che causa l'arresto anomalo di ChromeDriver quando si verificano determinati tipi di errori JavaScript
- È stato corretto un bug che impedisce all'API Actions di interagire con gli elementi all'interno dei DOM ombra
- È stato corretto un bug nel monitoraggio dello stato del tasto di modifica tra i comandi dell'API Actions
- È stato corretto un bug nel monitoraggio delle posizioni del puntatore tra i comandi dell'API Actions
- Salva l'errore "Cannot call non W3C standard command while in W3C mode" nel file di log quando si verifica
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 76.0.3809.25
Supporta Chrome versione 76
Include le seguenti modifiche rispetto alla versione 76.0.3809.12:
- È stato corretto un bug che rifiutava erroneamente le richieste POST con corpo vuoto in modalità OSS
- Sono stati aggiunti nuovi endpoint per il recupero del log di Chrome
- Endpoint aggiunto per il comando Is Displayed in modalità W3C
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 76.0.3809.12
Supporta Chrome versione 76
- Implementazione completata dell'API Actions
- Miglioramento della conformità alle specifiche della gestione del timeout dello script
- Miglioramento della serializzazione dei risultati del comando Esegui script
- Sono stati risolti i problemi relativi allo scorrimento dell'elemento nella visualizzazione
- È stata aggiunta la gestione del tasto Annulla definito nelle specifiche di WebDriver
- È stata corretta l'elaborazione della risposta di errore dell'avviso non gestito
- Elaborazione corretta dell'elemento
<details> - Opzione excludeSwitches aggiornata per consentire trattini iniziali facoltativi nei nomi dei parametri
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 75.0.3770.140
Supporta Chrome versione 75
Include le seguenti modifiche rispetto alla versione 75.0.3770.90:
- È stato corretto un bug che causava l'arresto anomalo di ChromeDriver quando si verificavano alcuni tipi di errori JavaScript
- È stato corretto un bug relativo alla conservazione dello stato dei tasti di modifica tra le azioni
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 75.0.3770.90
Supporta Chrome versione 75
Include le seguenti modifiche rispetto alla versione 75.0.3770.8:
- È stato corretto un bug che rifiutava erroneamente le richieste POST con corpo vuoto in modalità OSS
- Sono stati aggiunti nuovi endpoint per il recupero del log di Chrome
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 75.0.3770.8
Supporta Chrome versione 75
La modifica più evidente è che ChromeDriver ora viene eseguito in modalità conforme allo standard W3C per impostazione predefinita. Altre modifiche includono:
- Risolto un bug che causava l'attivazione dell'evento di sfocatura due volte durante la cancellazione dell'elemento
- La funzionalità loggingPrefs è stata rinominata goog:loggingPrefs, come richiesto dallo standard W3C
- Gestione degli errori corretta in modalità W3C
- Gestione corretta della creazione di cookie senza il punto iniziale nel nome di dominio
- Consente il valore null per il timeout dello script
- Correzione del comando Invia tasti dell'elemento per l'input del file con l'attributo "multiple"
- È stato corretto il comando Get Active Element in modo che restituisca l'errore "no such element" (nessun elemento) quando non esiste alcun elemento attivo
- È stata corretta la navigazione a un URL non valido per restituire l'errore "invalid argument"
- È stato corretto il codice di stato HTTP quando viene ricevuto un ID sessione non valido
- Correzione della risposta di errore quando il parametro di input è mancante o in un formato non corretto
- È stato corretto il comando Esegui script per gestire i commenti JavaScript orientati alle righe
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 74.0.3729.6
Supporta Chrome versione 74
- È stato corretto un bug che generava un file debug.log imprevisto su Windows
- È stato risolto il problema relativo ai clic del mouse e al trascinamento all'interno del documento SVG
- Aggiunta dell'intestazione Cache-Control nelle risposte di ChromeDriver
- È stato corretto il tipo di errore quando il clic viene intercettato da un elemento diverso
- È stato corretto un bug che causava l'errore di ChromeDriver sui dispositivi Linux senza /dev/shm
- Corretti alcuni tipi di eventi di doppio clic
- Comando Get Sessions fisso
- È stato corretto il controllo degli errori nel comando Switch To Frame
- È stato corretto il comando Get Page Source
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 73.0.3683.68
Supporta Chrome versione 73
- È stato corretto un bug che generava un file debug.log imprevisto su Windows
- È stato corretto il codice di errore restituito dal comando Esegui script in alcuni scenari
- Aggiunta dell'intestazione Cache-Control nelle risposte di ChromeDriver
- Il server HTTP mantiene attiva la connessione per impostazione predefinita
- È stato corretto il comando Chiudi finestra per gestire correttamente le richieste agli utenti
- È stato corretto il codice di errore restituito durante l'invio di chiavi all'elemento disattivato
- Miglioramento della conformità alle specifiche della gestione del valore di timeout
- Miglioramento della conformità alle specifiche del comando Aggiungi cookie
- Aumento della lunghezza della coda di ascolto del server HTTP
- È stato corretto il comando Is Element Displayed in v0 shadow DOM
- È stato aggiunto un avviso relativo alla modifica del comportamento del comando Element Clear nel file di log
- È stato corretto il comando Esegui script per convertire correttamente document.all in formato JSON
- Gestione migliorata dei riferimenti a elementi non validi
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 2.46
Supporta Chrome v71-73
- È stato corretto il codice di errore restituito dal comando Esegui script in alcuni scenari
- Il server HTTP mantiene attiva la connessione per impostazione predefinita
- È stato corretto il comando Chiudi finestra per gestire correttamente le richieste agli utenti
- È stato corretto il codice di errore restituito durante l'invio di chiavi all'elemento disattivato
- Miglioramento della conformità alle specifiche della gestione del valore di timeout
- Miglioramento della conformità alle specifiche del comando Aggiungi cookie
- Miglioramento della conformità alle specifiche del comando Switch to Frame
- Aumento della lunghezza della coda di ascolto del server HTTP
- È stato corretto il comando Is Element Displayed in v0 shadow DOM
- Comando Fixed Element Double Click
- È stato aggiunto un avviso relativo alla modifica del comportamento del comando Element Clear nel file di log
- È stato corretto il comando Esegui script per convertire correttamente document.all in formato JSON
- Gestione migliorata dei riferimenti a elementi non validi
Per maggiori dettagli, consulta le note di rilascio.
ChromeDriver 2.45
Supporta Chrome v70-72
- Fixed New Session non è conforme alle specifiche
- Correzione: ChromeDriver non deve avviare Chrome se le versioni di Chrome e ChromeDriver non sono compatibili
- Il comando Trova elemento restituisce un codice di errore errato quando viene utilizzato un localizzatore non valido
- È stato corretto il problema per cui alcuni codici di stato di ChromeDriver non sono corretti
- È stato corretto l'errore di compilazione in JS all'interno di WebViewImpl::DispatchTouchEventsForMouseEvents
- I comandi per le dimensioni della finestra fissa devono gestire le richieste degli utenti
- È stato risolto il problema per cui ChromeDriver non avvia Chrome correttamente con l'opzione di Chrome "user-data-dir="
- Il comando Fixed Status non è conforme alle specifiche
- Corretto Aggiunta del supporto per strictFileInteractability
ChromeDriver 2.44
Supporta Chrome v69-71
- Fixed WindowMaximize su Mac
- Corretto l'errore "alert open error" per la chiamata di gestione della finestra
- Fixed Element Send Keys deve ottenere la proprietà "text" in modalità W3C
- Il caso speciale XML corretto di Is Element Enabled non viene gestito in base alle specifiche
- È stato corretto il caso speciale XML in cui Get Element CSS Value non viene gestito in base alle specifiche
- Fixed Set Window Rect deve verificare la presenza di input non validi
- Correzione Supporto di nuove modalità unhandledPromptBehavior
ChromeDriver 2.43
Supporta Chrome v69-71
Le modifiche includono:
- L'analisi fissa della configurazione proxy non è conforme agli standard
- Il comando Avvia app fisso non è affidabile
- È stato risolto il problema relativo allo screenshot dell'elemento all'interno dell'iframe che viene acquisito in modo errato
- È stato aggiunto il supporto di ChromeDriver per il ridimensionamento delle finestre tramite una connessione remota
- Risolto il problema per cui i codici di errore non vengono gestiti nell'elemento Cancella
- Corretto: non attende che l'elemento sia visibile
- La proprietà Fixed Get element non è implementata
- Fixed Switch to Frame non è conforme alle specifiche
- Correzione di Execute Async Script che non restituisce codici di errore conformi alle specifiche
- Correzione di Execute Script che non restituisce codici di errore conformi alle specifiche
- È stato corretto il codice di errore in ExecuteGet che non è conforme alla specifica
- È stato risolto il problema per cui l'invio di un testo di avviso non restituiva codici di errore conformi alle specifiche
- Fixed clear() on an input type="date" pretends element is not user-editable
- Chromedriver corretto ottiene l'handle della finestra per la scheda aperta manualmente
- Correzione: Consenti di aggiungere o avviare un nuovo file di log per chromedriver
- Correzione: la nuova sessione non richiama la modalità W3C se il flag si trova in firstMatch
ChromeDriver 2.42
Supporta Chrome v68-70
Le modifiche includono:
- Elemento ClickE fisso nell'emulazione mobile
- IP autorizzati fissi con IPv4
- È stato corretto l'avvio di ChromeDriver con il flag whitelisted-ips su Mac OS
- È stato corretto SetTimeout in modo che accetti sia i formati precedenti a W3C sia quelli W3C
- Correzione dell'acquisizione dello screenshot dell'elemento
- Fixed ChromeDriver is looking for Chrome binaries in a system PATH as well
- Correzione di Ingrandisci finestra e Schermo intero
- Implementata la funzionalità di riproduzione dei log. ( non funziona ancora per Android e Remote Browser)
- Corretti alcuni codici di errore non conformi allo standard W3C
- Corretto il problema di console.log con più argomenti non gestiti correttamente
- Correzione di GetElementRect per consentire i numeri doppi
- Emulazione del tocco fissa
ChromeDriver 2.41
Supporta Chrome v67-69
Le modifiche includono:
- È stato risolto il problema che si verifica quando ChromeDriver viene eseguito con l'opzione "whitelisted-ips"
- La porta di debug remoto viene restituita nelle funzionalità
- Implementata l'ottenimento delle dimensioni della finestra su Android
- I messaggi di errore di avvio di Chrome per computer sono stati migliorati
- ChromeDriver ha esito negativo rapidamente quando non riesce ad avviare i file binari di Chrome
- Il valore restituito di Close Window è conforme alle specifiche