Download

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.Z per 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 kImplicitWait per i test FindElement(s)WhileNavigating in commands_unittest durante 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.h in //chrome file .cc, imponendo l'utilizzo di callback.h quando vengono effettivamente utilizzate le callback (crrev.com/c/7200285, Bug: 40318405). logging::LoggingSettings è stato spostato da base/logging.h alla propria intestazione base/logging/logging_settings.h per 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 a base/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'iteratore find(key) (crrev.com/c/7705392, crrev.com/c/7693277, Bug: 452950815). ThreadDelegate inserito tramite il costruttore Thread per migliorare l'incapsulamento e aggiunta un'opzione Restartable a Thread per gestire i casi in cui è necessario riavviare i thread (crrev.com/c/7696887, Bug: 40881604).
  • Sicurezza della memoria: conversione delle macro #pragma allow_unsafe_buffers a livello di file in macro UNSAFE_TODO() granulari in chrome/ (crrev.com/c/7132241, Bug: 409340989). IOBuffer->span().first() è stato abbreviato in IOBuffer->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 module in chromedriver_py_tests in 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 ElementClick gestisca 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 DecodeURLMode in DecodeUrlMode e DecodeURLEscapeSequences() in DecodeUrlEscapeSequences() (crrev.com/c/7593238). È stato introdotto url::UrlEscapeDecoder per semplificare l'utilizzo della decodifica degli URL in tutto il codebase (crrev.com/c/7610180). Sono stati rimossi gli include build/branding_buildflags.h superflui dai file //chrome (crrev.com/c/7595125, Bug: 40318405). È stata rimossa la logica BUILDFLAG(IS_FUCHSIA) da //chrome, tranne che in ChromeDriver (crrev.com/c/5485913, Bug: 41481724).
  • Sicurezza della memoria (spanification): risolti i marcatori UNSAFE_TODO nelle 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 WebView per impedirne lo smaltimento prematuro (crrev.com/c/7257074, Bug: 468228355).
  • Sicurezza: è stato aggiunto un controllo dell'intestazione Origin per le connessioni WebSocket in entrata al server HTTP ChromeDriver, impedendo potenziali attacchi di cross-origin (crrev.com/c/7538400, Bug: 478783560).
  • Test: è stato spostato testWebviewDetactedDuringClick nel filtro instabile, ignorandolo in tutte le esecuzioni anziché solo in modalità headless (crrev.com/c/7545378, Bug: 481485821).

Modifiche interne e refactoring

ChromeDriver 145

Nuove funzionalità

  • Test: è stato aggiornato il framework di test run_py_tests.py per accettare test di stringhe deterministici di lunghezza variabile (ad es. 53, 101 e 501 caratteri) che hanno come target gli elementi input, textarea e contenteditable. In questo modo viene fornita la copertura della regressione, garantendo che nessun carattere venga eliminato durante le operazioni send_keys lunghe (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 testClientHintsDeviceNameIPhoneX e testClientHintsDeviceNameIPad aggiornando 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() a std::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 in std::string_view per evitare allocazioni di stringhe non necessarie quando si utilizza substr() (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 callback BodyAsStringCallbackDeprecated legacy negli utilizzi di SimpleURLLoader con BodyAsStringCallback, che utilizza std::optional anziché 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 SetPermission in 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 come storage-access che 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 WebViewImpl principale è 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.h in //chrome file .cc, imponendo l'utilizzo di callback.h quando vengono effettivamente utilizzate le callback (crrev.com/c/7200285, Bug: 40318405). logging::LoggingSettings è stato spostato da base/logging.h alla propria intestazione base/logging/logging_settings.h per migliorare l'efficienza della compilazione (crrev.com/c/7173024, relanding crrev.com/c/7160150 dopo il ripristino crrev.com/c/7170750). Utilizzi di base::HexEncode migrati al nuovo base::HexEncodeLower (crrev.com/c/7103100, Bug: 456472080).
  • Sicurezza della memoria (spanification): è stata eseguita la migrazione dei test unitari WriteToPipe e WriteToPipeNoBestEffort in PipeBuilder e PipeConnection per accettare base::span, correggendo l'utilizzo non sicuro del buffer (crrev.com/c/7090293, Bug: 455758227). Macro #pragma allow_unsafe_buffers a livello di file convertite in macro UNSAFE_TODO() granulari in chrome/ (crrev.com/c/7132241, Bug: 409340989). IOBuffer->span().first() è stato abbreviato in IOBuffer->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 WaitForCondition per una sincronizzazione più affidabile (crrev.com/c/6978928, Bug: 42321861).
  • Prewarm DSE: è stata disattivata la funzionalità Prewarm in 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.h con scoped_refptr.h nelle intestazioni //chrome in cui viene utilizzato solo lo smart pointer, migliorando l'efficienza della compilazione (crrev.com/c/7080753, Bug: 40245294). È stata eseguita la migrazione degli accessor GURL alle relative varianti Get* (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.cc utilizzando ADD_FAILURE() (crrev.com/c/6998270). È stato aggiunto un test di regressione per crbug.com/413382905 (crrev.com/c/6879417).

ChromeDriver 142

Nuove funzionalità

  • Diagnostica: è stato aggiunto lo stato TERMINATION_STATUS_EVICTED_FOR_MEMORY per 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:processID alla risposta di WebDriver, che restituisce l'ID processo principale del browser desktop. In questo modo, ChromeDriver si allinea a moz:processID di 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 CheckAppInstalled nelle versioni precedenti di Android (precedenti ad Android 11) in cui il flag --user cur non è supportato dal gestore di pacchetti (crrev.com/c/6785949, Bug: 433885051).
  • Test: è stato corretto un bug per cui IgnoreDuplicateNavs sostituiva in modo errato gli switch delle funzionalità predefinite in ChromeDriver. La funzionalità è stata disattivata per le sessioni di ChromeDriver e la logica di Switches::SetFromSwitches è stata corretta (crrev.com/c/6949166, Bug: 445332809).

Modifiche interne e refactoring

  • Standard C++: sono state sostituite diverse chiamate base::JSONWriter::Write() deprecate con base::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) in base::JSONReader::Read e base::JSONReader::ReadAndReturnValueWithError (crrev.com/c/6990988, crrev.com/c/6980533, Bug: 446188265). Rimozione dei pragma #pragma allow_unsafe_buffers a livello di file in seguito agli sforzi di spanificazione manuale (crrev.com/c/6778035, Bug: 409340989). Utilizzi puliti della macro LazyInstance con perdite (crrev.com/c/6781377, Bug: 432815283). Sono state incluse le intestazioni mancanti per http_response_headers.h tramite IWYU (crrev.com/c/6894196, Bug: 40216326).
  • Sicurezza della memoria (spanificazione): sono stati spanificati automaticamente numerosi puntatori nella directory chrome/ per le build Linux, aggiungendo CHECK non irreversibili laddove i parametri di dimensione sono stati ritenuti ridondanti (crrev.com/c/6734592, Bug: 431824299).
  • Test: testDoesntCrashOnClosingBrowserFromAsyncScript temporaneamente 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/test formattati automaticamente (crrev.com/c/6789277, Bug: 40760278).
  • FedCM: è stata introdotta una funzione ShouldShowAccountsPassiveDialog in IdentityDialogController per 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.setPrewarmingAllowed al 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à DSEPrewarm in fieldtrial_testing_config.json per 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 WebLayer non 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-tracing a run_wpt_tests.py, in linea con il comportamento di run_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 memset potenzialmente non sicure sono state sostituite con l'inizializzazione aggregata standard C++ (instance = {}) in chrome/ per evitare di bypassare i costruttori e garantire la sicurezza della memoria (crrev.com/c/6875520, Bug: 435317390). Sono state aggiunte le direttive #include mancanti per //base/time/time.h tramite 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 prefisso devtools:// 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:hidden imposto dagli elementi padre. In questo modo, il calcolo viene allineato alla specifica WebDriver e ad altri scenari PerformActions (crrev.com/c/6735230, Bug: 42322257).
  • Android: è stata corretta la funzione CheckAppInstalled nelle versioni precedenti di Android (precedenti ad Android 11) in cui non è supportato il flag --user cur per il gestore di pacchetti (crrev.com/c/6785949, Bug: 433885051).
  • Test: è stata corretta l'instabilità nella suite di test chromedriver_py_tests causata 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 ShouldShowAccountsPassiveDialog a IdentityDialogController (parte di FedCM), che ha causato una regressione (crrev.com/c/6780413, Bug: 425801332).

Modifiche interne e refactoring

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 con std::string_view in //chrome/test (crrev.com/c/6628089, Bug: 422940464). Incluso base/strings/string_view_util.h dove viene utilizzato base::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 //chrome includendo esplicitamente <vector> (crrev.com/c/6652818), base/notimplemented.h (e rimuovendo base/notreached.h dove 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 di base/debug/stack_trace.h (crrev.com/c/6622838).
  • Test: è stata trasferita l'opzione --driver-logging a run_wpt_tests.py, consentendo allo script di eseguire il dump di ChromeDriver e del browser stderr anche 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 finestra headless-shell (crrev.com/c/6621336, Bug: 42323661).
  • Test: è stato corretto run_wpt_tests.py --stable per 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.py impedendo alle destinazioni android_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à localState e prefs durante l'esecuzione di ChromeDriver sui dispositivi Android. Si basa su ADB e richiede un flag user-data-dir personalizzato; 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 kTargetDetached e del tentativo di accedere a un WebView non valido (crrev.com/c/6538867, Bug: 410599467).
  • Test delle prestazioni: è stato corretto il runner di test crossbench sui bot di Windows pinpoint che tentavano erroneamente di individuare il binario ChromeDriver utilizzando un percorso ../Release_x64 obsoleto 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::OnReadDuringHandshake e WebSocket::OnReadDuringOpen sono stati sostituiti con base::span, risolvendo gli avvisi unsafe-buffer-usage (crrev.com/c/6557346, Bug: 354307328). Sono stati rimossi i pragma #pragma allow_unsafe_buffers non necessari in chrome/test/chromedriver che 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 intestazioni chrome/, 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 RSAPrivateKey a crypto::PrivateKey e di SHA256HashString a crypto::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 OwnContributionEstimate ai 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 ClearDisplayFeatures sui 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-mapper per 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:channel se 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 prefisso chrome-extension:// (crrev.com/c/6383500, Bug: 396611138).

Modifiche interne e refactoring

  • Standard C++: è stata ripristinata la modifica per utilizzare std::string_view per i nomi dei file in LogMessage e 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::GetVar in //chrome sono state modernizzate per utilizzare l'API di restituzione std::optional anziché 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.h in un'intestazione windows_handle_util.h dedicata per evitare problemi di dipendenza ciclica (crrev.com/c/6418805, Bug: 406023316).
  • Test: è stato aggiunto un gestore di domini Browser specifico per Android ed è stata implementata l'API Browser.getWindowForTarget per 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-dir in testBrowserWithUsedUserDataDir durante l'esecuzione su chrome-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 catapult e sono stati aggiornati i file pydeps e i riferimenti devil_util associati (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 quitGracefully che forza ChromeDriver a tentare di arrestare il browser in modo controllato (utilizzando Browser.close o SIGTERM) anziché il valore predefinito SIGKILL. In questo modo, i debugger come rr hanno 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 --wrapper generando 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 quando args vengono elaborati come opzioni (crrev.com/c/6271108, Bug: 339644807).
  • Test: è stata attivata la traduzione tramite preferenza in TranslateEnabledTest per supportare un ambiente di test in cui ChromeDriver gestisce il processo del browser e aggira la nuova limitazione --remote-debugging-port quando --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à PdfOopif era disattivata. Il filtro è stato ampliato per includere il prefisso chrome-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 stato connection refused quando 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_view per i nomi dei file in LogMessage e 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-calls nei 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.json per la fase ExtensionManifestV2Unsupported a 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_LACROS e i dati di test correlati) da chrome/test/ poiché Lacros è in fase di ritiro, con standardizzazione su IS_CHROMEOS (crrev.com/c/6284446, Bug: 354842935).
  • Pulizia: sono state rimosse tutte le tracce dell'utilità md5sum dopo la sua sostituzione con devil_util, ripulendo le dipendenze di build legacy (crrev.com/c/6309939, Bug: 397452007).
  • Standard C++: è stato rimosso lo spazio dei nomi chrome:: da ResultCode e IsNormalResultCode(), 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_bound in ChromeDriver sfruttando std::ranges::lower_bound (crrev.com/c/6223172, Bug: 392116519). Avvisi unsafe_libc_call soppressi per i file non conformi inizialmente identificati in preparazione dell'applicazione futura (crrev.com/c/6187925, Bug: 390223051). Il valore restituito di std::to_array è stato contrassegnato come constexpr per 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 specifica nav-tracking-mitigations ed è 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 di chromium-bidi. La proprietà channel legacy non è più consentita (crrev.com/c/6179410).
  • Windows: è stata aggiunta una risorsa di versione al file binario chromedriver.exe su 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_page non 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 DCHECK in base::Value()) causato da un troncamento improprio delle stringhe di log contenenti caratteri multibyte. La logica è stata aggiornata per utilizzare il rilevamento dei limiti UnicodeString anziché semplici controlli della lunghezza std::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_shell a headless_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

ChromeDriver 133

Nuove funzionalità

  • Architettura: è stato eseguito il refactoring di ChromeDriver per supportare l'architettura di più pagine (MPArch) e le schede di destinazione. WebViewImpl ora si connette ai target delle schede tramite AutoAttach. 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 URL chrome-extension:// venivano incluse erroneamente come target di estensione; la selezione è stata ripristinata solo a type=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 prompt beforeunload senza bloccarsi (crrev.com/c/6080431, Bug: 42323838, Bug: 379049702).
  • Navigazione: è stato corretto un bug per cui una pagina fittizia con l'URL about:blank?test causava un blocco. L'euristica pensata per identificare una nuova finestra che non risponde (baseURL==about:blank e documentURL!=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 errore Timeout standard (crrev.com/c/6012427, Bug: 42323825).
  • Diagnostica: inoltro dell'errore kTargetCrashed direttamente tramite NavigationTracker. 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 utilizzando SendCommand anziché PostCommand quando sono previsti effetti collaterali immediati (crrev.com/c/6054137) e sostituendo la dipendenza dagli effetti immediati di ExecuteScript con 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 Print nello script log_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 da std::list a base::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::array in chrome/ nell'ambito dell'impegno più ampio per risolvere gli avvisi -Wunsafe-buffer-usage (crrev.com/c/6043879, Bug: 378069401). È stato implementato l'utilizzo rigoroso di size_t nelle funzioni di intervallo (crrev.com/c/6026238, crrev.com/c/6020621).
  • Test: è stato eseguito l'upstreaming di {ref,crash}tests a schermo intero su wpt_internal/ poiché ora testdriver li supporta (crrev.com/c/6088404).
  • Test: è stato corretto wptrunner per 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 testBrowserCrashWhileWaitingForEvents per 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_shell combinato 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 repeat e retry-limit ai test di integrazione di ChromeDriver, mappandoli agli argomenti standard isolated-script-test-repeat e isolated-script-test-launcher-retry-limit (crrev.com/c/5938195, Bug: 374681919). Per i test eseguiti localmente (non CI), il valore predefinito di retry-limit è stato modificato in 0 (crrev.com/c/5953326, Bug: 374681919).
  • WebSockets: sono state implementate WebSocketConnection e le classi correlate in EmbeddedTestServer, consentendo la migrazione dei test correlati a WebSocket da SpawnedTestServer. 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 kTargetDetached introdotto nei refactoring precedenti (crrev.com/c/5934524, Bug: 42323264).
  • Stabilità: è stato corretto un arresto anomalo intermittente nel test di integrazione testClickNavigateRemoteToLocal su Mac ARM64 risolvendo una race condition (crrev.com/c/5975526, Bug: 375971185).
  • Navigazione: sono stati corretti i comandi GoBack e GoForward, che in precedenza non riuscivano se Page.getNavigationHistory veniva 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 ScriptTimeout se 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 Atoms CLEAR) vengono propagati con precisione all'utente (crrev.com/c/5937893, Bug: 42323409). Miglioramento della gestione degli errori in GetElementTagName per 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 instabili css/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-bidi per 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-shell legacy non è più presente in Chrome (crrev.com/c/5961602, Bug: 42323387).
  • Pulizia: è stato rimosso il file java_tests.txt inutilizzato, 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-dir o 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-bidi alla 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 errore NoSuchShadowRoot quando 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à userName e userDisplayName (crrev.com/c/5905423, Bug: 367915823).

Correzioni di bug

Modifiche interne e refactoring

  • Sicurezza della memoria (spanificazione): l'utilizzo di puntatori non sicuri è stato sostituito con base::span in net::HttpUtil (crrev.com/c/5854420) ed è stata eseguita la migrazione di base::File::WriteAtCurrentPos() al relativo equivalente basato su span (crrev.com/c/5818972). Sono stati riscritti i valori del puntatore della mappa (ad es. in std::map, std::unordered_map) in raw_ptr (crrev.com/c/5867189, Bug: 329428315).
  • Standard C++: le macro degli attributi Abseil (ABSL_ATTRIBUTE_*) sono state sostituite dalle macro base/ standard (crrev.com/c/5852373). Sono state evitate copie non intenzionali sostituendo stringhe/vettori passati per valore con std::string_view o riferimenti const, se appropriato, e sono stati rimossi qualificatori const non necessari dagli argomenti std::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 unhandledPromptBehavior direttamente al mapper tramite il comando session.new durante l'inizializzazione di una sessione BiDi. In questo modo viene completata la migrazione da MapperOptions (crrev.com/c/5682934, crrev.com/c/5766077, Bug: 42323841, Bug: 356371297).
  • Test: è stato aggiunto il supporto dell'argomento --chromedriver allo script bisect-builds.py per 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 wptrunner sostituendo la stringa chrome hardcoded con il prodotto effettivo utilizzato e nascondendo l'artefatto command dettagliato 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.testClickNavigateLocalToLocal su Mac (crrev.com/c/5806894, Bug: 361521805) e i test instabili ChromeDriverTest.testClickElement*ObscuredByScrollBar su 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.new al mapper BiDi, consentendo al mapper di gestire direttamente le funzionalità. Questo è il primo passo verso la rimozione di MapperOptions (crrev.com/c/5741432, Bug: 356371297). (Nota: una modifica correlata crrev.com/c/5754093 che fornisce unhandledPromptBehavior elaborato è 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 ScopedTestMV2Enabler nell'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 Set nei risultati di esecuzione dello script WebDriver Classic, impedendo loop infiniti e tollerando gli override di Array.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

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-port a 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 ExecuteUpdateVirtualSensor in modo che utilizzi SendCommand() anziché SendCommandAndGetResult(), poiché il comando CDP setSensorOverrideReadings non restituisce un valore (crrev.com/c/5703589).
  • FedCM: è stata corretta una race condition nei test di FedCM ChromeDriver non asserendo più che viene restituito NoSuchDialog quando è 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

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 evento target.detachedFromTarget) mentre il client DevTools elaborava attivamente altri comandi, impedendo il rilascio prematuro degli oggetti WebView e DevToolsClient (crrev.com/c/5527584, Bug: 339773537).
  • Stabilità: è stato risolto un problema per cui il comando Switch To Window poteva 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 DCHECK quando 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.getTree restituisca 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.html in cui una finestra di dialogo veniva erroneamente contrassegnata come chiusa; ora lo stato viene aggiornato solo se l'operazione selectAccount va a buon fine (crrev.com/c/5398379, Bug: 331237776).
  • Test: è stato corretto un errore DCHECK durante l'analisi JSON quando un carattere raggiungeva esattamente il limite kExtendedASCIIStart (crrev.com/c/5565276, Bug: 40284755).
  • Test: è stato corretto il test WPT scrollend-event-fires-to-iframe-window.html utilizzando 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.py non 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() con NOTREACHED_IN_MIGRATION() nella directory chrome/ in preparazione per rendere NOTREACHED() strettamente [[noreturn]] (crrev.com/c/5539004, Bug: 40580068).
  • È stata attivata la generazione di THIRD_PARTY_NOTICES.txt per ChromeDriver utilizzando lo strumento licenses.py per rispettare i requisiti di distribuzione (crrev.com/c/5596355, Bug: 4777).
  • È stato rimosso il supporto di run_wpt_tests.py per content_shell, poiché la copertura WPT di Chromium sta passando completamente a headless_shell + ChromeDriver (crrev.com/c/5589930). Gli interruttori wptrunner sono 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 JavaScriptDialogManager direttamente in DevToolsClientImpl, eliminando la classe di gestione separata per semplificare i test e il ragionamento (crrev.com/c/5545630, Bug: 4757).
  • Disattivato PureBidiTest.testBrowsingContextTreeIsNotEmpty su 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::SendBidiCommand e BidiTracker per 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-throttling all'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 come bidi messages per l'analisi, anche se BidiTracker attualmente 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 NoSuchExecutionContext non standard (crrev.com/c/5478668, Bug: 4379).
  • Classico: è stato corretto un problema di regressione che causava la risposta di ChromeDriver con un errore javascript error anziché invalid selector quando 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 operation conforme 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 standard kSessionNotCreated quando 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 kNoSuchExecutionContext durante l'esecuzione dei comandi della finestra (crrev.com/c/5483606, Bug: 4379).
  • Classico: è stato rimosso il codice di errore kForbidden inutilizzato 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-bidi upstream (crrev.com/c/5508600, Bug: 4761).

Modifiche interne e refactoring

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 id da Double a base::Value. In questo modo, id viene 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 selectAccount va a buon fine. In questo modo vengono risolti gli errori di test quando viene chiamato selectAccount senza un selettore di account previsto (crrev.com/c/5398379, Bug: 331237776). È stato evitato di chiamare fedcm_get_and_select_first_account quando 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.html combinando sequenze di azioni e utilizzando il documento del frame principale come origine per l'azione pointerUp, impedendo a ChromeDriver di inviare in modo errato eventi pointerUp simultanei nei frame (crrev.com/c/5402096, Bug: 325981758).
  • Test: è stato corretto wptrunner per inoltrare correttamente l'output stderr (inclusi i log del browser scritti quando si utilizza --enable-chrome-logs) all'artefatto stderr anziché a crash_log e sono stati spostati gli errori di harness (che contengono l'analisi dello stack del browser) in crash_log (crrev.com/c/5437023, Bug: 41494889).
  • Test: è stato corretto wptrunner per 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 StackTrace di 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 testTakeLargeElementViewportScreenshot su Mac (in particolare mac-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 chrome esatta utilizzata per eseguire ogni test WPT dal log chromedriver in un artefatto ResultDB denominato command. Ciò facilita il debug manuale con run_blink_wptserve.py (crrev.com/c/5441189, Bug: 41494889).
  • Dipendenze: Closure è stato rimosso dall'elenco delle dipendenze di selenium-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_annotations nel repository di base (crrev.com/c/3398908, Bug: 1282422).
  • Formattazione: è stata applicata la nuova configurazione clang-format alle 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 BiDiMapper prima 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 defaultBackupEligibility e defaultBackupState al comando "Aggiungi autenticatore virtuale" e backupEligibility e backupState al comando "Aggiungi credenziali" (crrev.com/c/5297117, Bug: 40945430).
  • Test: è stato aggiunto il supporto dell'argomento della riga di comando --failfast ai 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 SetRPHRegistrationMode tramite le API testdriver-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::SetWindowBounds applicando 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-dir anziché --data-path quando si specifica la directory dei dati per content_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::optional sono stati sostituiti con std::optional in tutto il codebase in seguito alla transizione di absl::optional a un alias di tipo (crrev.com/c/5296147, Bug: 1500249).
  • Copertura estesa di MiraclePtr (raw_ptr) ad altri contenitori standard, tra cui std::list, std::unordered_set, base::flat_set, std::stack e std::queue (crrev.com/c/5306923, Bug: 325302189).
  • È stato convertito WriteBigEndian() per utilizzare le conversioni di byte base::numerics o BigEndianWriter (che ora accetta base::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.js e 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.py per generare crediti per le dipendenze BiDiMapper e aggiornando l'invocazione licenses.py in modo che si basi rigorosamente sul file README selenium-atoms per 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 errore JavaScriptError in 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.html per 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 cui test_driver.set_permission(...) superava erroneamente false anziché null o un WindowProxy, 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 ChromeImpl che in DevToolsClientImpl, 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 variante std::string più recente anziché l'utilizzo di parametri out (crrev.com/c/5179900, crrev.com/c/5246585, Bug: 1486214).
  • Sono state aggiornate tutte le direttive #include per base/... in modo da utilizzare "" anziché <> per coerenza (crrev.com/c/5237376, Bug: 1500249).
  • Sono stati migrati tutti i file DIR_METADATA in chrome/test/ a Buganizer (crrev.com/c/5284119, Bug: 1518875).
  • È stato impedito a wptrunner di creare un file - locale durante il passaggio di -vvv rimuovendo l'opzione chromedriver --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-port in run_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() e RandBytes() 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à acceptInsecureCerts a 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/handles poteva 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 dialogtype di restituire dati obsoleti se la finestra di dialogo è stata chiusa esternamente (ad es. tramite AbortController.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.enable ridondanti inviate da ogni DevToolsEventListener, poiché DevToolsClientImpl gestisce già questa operazione per target (crrev.com/c/5088789, Bug: 4600).
  • Sono stati modificati tutti i builder Wptrunner per content_shell in 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_role su content_shell perché non è ancora stato implementato, evitando TypeError errori (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-atoms all'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 origin per 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 distinguere StringPrintf() 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 ScopedTempDirWithRetry aggiungendo 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) su chrome-headless-shell oltre al browser Chrome standard sui bot di build. Ciò include la possibilità di rilevare il binario del browser in base al parametro --browser-name ed 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 KeyboardLayoutEngine come StubKeyboardLayoutEngine per evitare arresti anomali di ChromeDriver causati da un hit DCHECK in KeyboardLayoutEngineManager::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-shell restituiva un elenco di target vuoto, impedendo la creazione di sessioni, aggiungendo l'argomento data:, 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 dialogtype e altri comandi non restituiscano dati obsoleti se la finestra di dialogo è stata chiusa esternamente (ad es. tramite AbortController.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-shell su Windows (crrev.com/c/5027594, Bug: 4358).
  • Test: sono state attenuate le asserzioni eccessivamente rigide in testElementRegionTest per 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 di OZONE_PLATFORM_* a causa di un bug (crrev.com/c/5086571, ripristino di crrev.com/c/5083096, Bug: 1500494).
  • Codice migrato in commands_unittest.cc per utilizzare base::BindLambdaForTesting anziché base::Passed deprecato (crrev.com/c/5078589, Bug: 1326449).
  • È stato eseguito il refactoring di session.new per 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.h obsoleta (crrev.com/c/5008994, Bug: 691162).
  • Preparato per la transizione di net::IOBuffer a una classe non proprietaria utilizzando net::IOBufferWithSize per 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 (e wpt_tests_suite) in chrome_wpt_tests per standardizzare le convenzioni di denominazione della suite WPT nei builder di prova Linux (crrev.com/c/5014293, Bug: 1474702).
  • È stato riproposto il comando webdriver ConfirmIdpLogin FedCM in un comando ClickDialogButton più estensibile che accetta un parametro DialogButton (crrev.com/c/5003255, Bug: 1499341).
  • È stata aggiornata la dipendenza crossbench con 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 a chrome_finder.h per la conformità IWYU (crrev.com/c/4994605, Bug: 957519).

ChromeDriver 120

Nuove funzionalità

  • BiDi: è stato aggiunto il supporto per i comandi session.new e session.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.status PureBiDi, 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.pdl e 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_shell per la manipolazione dei sensori virtuali tramite testdriver.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-shell se 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 CLOSE quando 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 testReturnFrameElement per verificare il comportamento di ChromeDriver in merito al trattamento di window.frameElement come 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::Time per renderle più descrittive (ad es. FromDoubleT() in FromSecondsSinceUnixEpoch()) (crrev.com/c/4956111).
  • È stato eseguito il refactoring del costruttore net::StringIOBuffer e delle istanze IOBuffer per 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::StrCat con + ove applicabile e utilizzando base::AppendHexEncodedByte() (crrev.com/c/4963465, crrev.com/c/4977165).
  • È stato rinominato DIR_SOURCE_ROOT in DIR_SRC_TEST_DATA_ROOT in tutti i test //chrome* per maggiore chiarezza (crrev.com/c/4916045, Bug: 1264897).
  • Sono stati disattivati i test PureBidiTest instabili 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 confirmidpsignin con 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 Map e Set; ora vengono serializzati correttamente come Object anziché 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 Signin in Login (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 ^NOTFOUND nei 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 //url con std::string_view per una maggiore sicurezza e praticità (crrev.com/c/4897456).
  • È stata eseguita la transizione dell'utilità generateWebDriverValue per 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.html per i test webdriver_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_page anziché other (crrev.com/c/4842093).
  • È stato rinominato il target di build WPT chrome_wpt in chrome_wpt_tests per coerenza ed è stato rimosso il target ridondante webdriver_wpt_tests (crrev.com/c/4847474, Bug: 1474702).
  • È stato eseguito il porting di run_py_tests.py dalla libreria optparse ritirata a argparse (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 crossbench con 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 debuggerAddress non 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 MockSocket per preferire base::span<> ai puntatori non elaborati per una maggiore sicurezza (crrev.com/c/4832086).
  • Sono stati rimossi gli utilizzi deprecati di base::raw_ptr e base::raw_ref a favore delle loro forme non qualificate raw_ptr e raw_ref tramite 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.py e 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 a client_hints.h per 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 nomi base::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à

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 ConnectionRefused durante l'esecuzione dei test (crrev.com/c/4675633, Bug: 1457101).
  • Navigazione: è stato corretto un problema per cui gli errori NoSuchExecutionContext e NoSuchWindow di 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 da userAgent su 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 SessionNotCreated in 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'wptrunner ufficiale anziché l'run_webdriver_tests.py personalizzato, 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 ChromeLauncher e delle classi correlate per supportare la transizione alle pipe, riducendo l'accoppiamento con DevToolsHttpClient e spostando la logica WebSocket in rami dedicati (crrev.com/c/4632801, crrev.com/c/4674345).
  • Il campo BrowserInfo.is_headless fuorviante è stato rinominato BrowserInfo.is_headless_shell per maggiore chiarezza (crrev.com/c/4650452, Bug: 4358).
  • Sono stati sostituiti vari metodi base::Value ritirati con gli equivalenti moderni base::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.h a favore di utilità di stringhe di base più sicure e sono state implementate nuove funzionalità per base::expected (crrev.com/c/4749459, crrev.com/c/4755226).
  • Sono stati implementati i comandi di automazione get_fedcm_dialog_title e select_fedcm_account in TestDriver per 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/chromedriver sono 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 wptrunner per 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 setdelayenabled di 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 ChromeImpl per eliminare la sua dipendenza da DevToolsHttpClient ed è stato ridotto l'utilizzo di SyncWebSocketFactory e BrowserInfo in 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 WaitForCondition generiche con assertTrue per indicare chiaramente quando si verificano timeout (crrev.com/c/4590211).
  • Sono stati contrassegnati avvisi di test unitari raw_ptr noti come instabili in linux-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 %s nello 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 UnknownError anziché l'errore NoSuchElement standard (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.mobile sia true se la stringa userAgent contiene "Mobile" (crrev.com/c/4507142, Bug: 4243).
  • Emulazione mobile: è stata eseguita la migrazione degli override DeviceMetrics per utilizzare il comando CDP Emulation.setDeviceMetricsOverride anziché l'equivalente del dominio Page ritirato (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 Connect ritirato da DevToolsClient in 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::Dict a base::Value e sono stati sostituiti i metodi ritirati come FindStringKey(), SetKey() e SetByDottedPath() (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.h al posto di [w]ctype.h per 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 da web_view.h (crrev.com/c/4518363, Bug: 3376).
  • È stato applicato un cambio di nome automatico di base::raw_ptr in raw_ptr per rispettare le preferenze della guida di stile (crrev.com/c/4476651).

ChromeDriver 114

Nuove funzionalità

  • Classic: ha trasmesso le informazioni MobileDevice a MobileEmulationOverrideManager per 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 DCHECK in DevToolsClientImpl::SendCommandInternal per 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 WebViewImpl e del logger delle prestazioni (crrev.com/c/4374824, crrev.com/c/4368179).
  • È stato eseguito il porting del codebase per utilizzare la nuova API base::Value v2, sostituendo i metodi ritirati come Value::SetPath(), Value::SetStringPath() e base::ListValue (crrev.com/c/4452309, crrev.com/c/4431420, crrev.com/c/4422897, crrev.com/c/4377520).
  • Tutti gli utilizzi di base::GUID sono stati sostituiti con base::Uuid in 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 config anziché l'attributo src deprecato (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>) per std::strlen in web_view_impl.cc per 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 NavigationTracker non 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