Frühere Chrome-Versionen
Hier finden Sie die ChromeDriver-Versionen, die frühere Chrome-Versionen unterstützen.
Weitere Informationen zum Auswählen der richtigen ChromeDriver-Version finden Sie auf der Seite Version Selection.
ChromeDriver 148
Diverse Fehlerkorrekturen
- DOM-Zugriff: Ein Absturz wurde behoben, der beim Simulieren eines Schaltflächenklicks in einem iFrame auftrat, der selbst in einem geschlossenen Shadow-Root verschachtelt war. Das JavaScript, das zuvor zum Ermitteln der ID des übergeordneten Frame-Elements verwendet wurde, konnte nicht in geschlossene Shadow-Roots eindringen. Bei der neuen Implementierung wird das
f.X.d.Y.e.Z-Format direkt verwendet, um den Frame aufzulösen (crrev.com/c/7594919, Fehler 469831357). - Sicherheit: Die Bereinigung von Chrome-Argumenten wurde verstärkt, um eine potenzielle Sicherheitslücke durch das Einfügen von Positionsargumenten zu verhindern (crrev.com/c/7695604, Fehler: 494464734).
- Tests: Das
kImplicitWait-Zeitlimit fürFindElement(s)WhileNavigating-Tests incommands_unittestwurde bei der Ausführung unter AddressSanitizer (ASAN) erhöht. Das Standard-Zeitlimit von 3 Sekunden reichte nicht aus, damit die Wiederholungsschleife alle Mock-Fehler unter ASAN-Aufwand verarbeiten konnte, was zu Instabilität führte (crrev.com/c/7657276).
Interne Änderungen und Refaktorierungen
- C++-Standards: Überflüssige Includes von
base/functional/callback_forward.hin//chrome- und.cc-Dateien wurden ersetzt. Die Verwendung voncallback.hwird erzwungen, wenn tatsächlich Callbacks verwendet werden (crrev.com/c/7200285, Fehler 40318405).logging::LoggingSettingswurde vonbase/logging.hin einen eigenen Headerbase/logging/logging_settings.hverschoben, um die Kompilierungseffizienz zu verbessern (crrev.com/c/7173024, Relanding crrev.com/c/7160150 nach dem Zurücksetzen crrev.com/c/7170750). Es wurden verschiedene IWYU-Fehler im Zusammenhang mitbase/logging.hbehoben (crrev.com/c/7730403, Fehler 499476145). - C++-Standards: Redundante
count(key)-Prüfungen, gefolgt von Suchvorgängen, wurden durch effizienterefind(key)-Iteratorzugriffe ersetzt (crrev.com/c/7705392, crrev.com/c/7693277, Fehler: 452950815).ThreadDelegatewurde über denThread-Konstruktor eingefügt, um die Datenkapselung zu verbessern. Außerdem wurde eineRestartable-Option fürThreadhinzugefügt, um Fälle zu berücksichtigen, in denen Threads neu gestartet werden müssen (crrev.com/c/7696887, Fehler: 40881604). - Speichersicherheit: Die Dateiebene
#pragma allow_unsafe_bufferswurde in granulareUNSAFE_TODO()-Makros inchrome/umgewandelt (crrev.com/c/7132241, Fehler: 409340989).IOBuffer->span().first()wurde zuIOBuffer->first()gekürzt (crrev.com/c/7159119). - Abhängigkeiten: Die
crossbench-Abhängigkeit wurde eingeführt, wodurch Fehler beim Auffinden lokal erstellter ChromeDriver-Binärdateien unter macOS und Android behoben wurden (crrev.com/c/7673978). - Testen: Das
module-Schema wurde inchromedriver_py_testswieder aktiviert, nachdem die zugrunde liegende Build- und Testinfrastruktur korrigiert wurde (crrev.com/c/7707960).
ChromeDriver 147
Diverse Fehlerkorrekturen
- Tests: Es wurde ein hermetischer Regressionstest hinzugefügt, um zu prüfen, ob
ElementClickKlicks über ursprungsübergreifende iFrames mit Overlays korrekt verarbeitet, insbesondere in Szenarien mit Site-Isolation. So wird verhindert, dass Klicks fälschlicherweise an die eingebetteten Inhalte statt an das sichtbare Overlay weitergeleitet werden (crrev.com/c/7261984, Fehler 42321834, Fehler 42322220).
Interne Änderungen und Refaktorierungen
- C++-Standards: Die URL-Decodierungsmodi und -Funktionen wurden umbenannt, um dem Google C++-Styleguide zu entsprechen. Dabei wurde
DecodeURLModeinDecodeUrlModeundDecodeURLEscapeSequences()inDecodeUrlEscapeSequences()geändert (crrev.com/c/7593238).url::UrlEscapeDecoderwurde eingeführt, um die Verwendung der URL-Decodierung im gesamten Code zu vereinfachen (crrev.com/c/7610180). Überflüssigebuild/branding_buildflags.h-Includes aus//chrome-Dateien entfernt (crrev.com/c/7595125, Bug: 40318405). DieBUILDFLAG(IS_FUCHSIA)-Logik wurde aus//chromeentfernt, außer in ChromeDriver (crrev.com/c/5485913, Fehler: 41481724). - Speichersicherheit (Spanification):
UNSAFE_TODO-Markierungen in ChromeDriver-Dienstprogrammen wurden behoben und zu sicheren, spanbasierten Implementierungen migriert (crrev.com/c/7562602, Fehler: 435317390).
ChromeDriver 146
Diverse Fehlerkorrekturen
- Stabilität: Ein ChromeDriver-Absturz wurde behoben, der bei der Verarbeitung eines Befehls auftreten konnte, wenn das Fenster gleichzeitig geschlossen wurde (z.B. während des Wartens auf den Abschluss einer Navigation). Durch den Fix wird eine Sperre für das
WebView-Objekt eingerichtet, um zu verhindern, dass es vorzeitig verworfen wird (crrev.com/c/7257074, Fehler 468228355). - Sicherheit: Für eingehende WebSocket-Verbindungen zum ChromeDriver-HTTP-Server wurde eine
Origin-Header-Prüfung hinzugefügt, um potenzielles Cross-Origin-Hijacking zu verhindern (crrev.com/c/7538400, Fehler: 478783560). - Testen:
testWebviewDetactedDuringClickwurde in den Filter für instabile Tests verschoben und wird in allen Läufen übersprungen, nicht nur im Headless-Modus (crrev.com/c/7545378, Fehler 481485821).
Interne Änderungen und Refaktorierungen
- C++-Standards:
base::DictValueundbase::ListValuewurden in//chromein ihre modernen Entsprechungen (base::Value::Dictundbase::Value::List) umbenannt (crrev.com/c/7515855, crrev.com/c/7514475, Fehler: 478100525). Die Verwendung vonbase::Contains()wurde durchstd::ranges::contains()ersetzt (crrev.com/c/7461026, Fehler 470391351).std::setundstd::unordered_setwurden bei Bedarf zubase::fixed_flat_setmigriert (crrev.com/c/7521991, Fehler: 473916362).base::JSONReader::Read-Aufrufe, bei denen keine Parsing-Optionen angegeben wurden, wurden refaktoriert (crrev.com/c/6990988, crrev.com/c/6980533, Fehler 446188265). Verschiedenebase::JSONWriter::Write()-Aufrufe durchbase::WriteJson()ersetzt (crrev.com/c/6969134, crrev.com/c/6929101, Fehler 443929217). Die Bestellung#includewurde bereinigt (crrev.com/c/7366868). Migrated bug references in comments to use Buganizer IDs instead of Monorail IDs (crrev.com/c/7528268, Bug: 321899722). Die Build-FlagsIS_OZONE_*wurden zur besseren Verständlichkeit inSUPPORTS_OZONE_*umbenannt (crrev.com/c/7535923). - Speichersicherheit (Spanifizierung): Unsichere Pointer-Verwendung wurde in
base/strings/utf_string_conversion_utils.ccdurchbase::spanersetzt (crrev.com/c/7496410, Fehler 439964610, Fehler 40284755). Es wurden weiterebase::File-Verwendungen in//chrome-Tests spanifiziert (crrev.com/c/7489592, Fehler 435317390).memsetwurde durch die Aggregatinitialisierung über//chromeersetzt (crrev.com/c/6875520, Fehler: 435317390). Die verbleibenden#pragma allow_unsafe_buffers-Markierungen wurden inUNSAFE_TODO-Markierungen konvertiert (crrev.com/c/7132241, Bug: 409340989). - DSE Prewarm: Die Funktion
DSEPrewarminfieldtrial_testing_config.jsonwurde für macOS und Windows aktiviert, da die entsprechenden ChromeDriver-Testfehler behoben wurden (crrev.com/c/7489009, erneutes Landen von crrev.com/c/7002185 nach dem Zurücksetzen von crrev.com/c/7452344). Hinweis: Diese Änderung wurde aufgrund längerer Testlaufzeiten unter Windows wieder zurückgesetzt (crrev.com/c/7517985, Fehler: 478888140). - Diagnose: Die Verfolgung des Anruferstandorts wurde den Trace-Ereignissen
WaitableEventundConditionVariablehinzugefügt, um das Debugging zu verbessern (crrev.com/c/7487755, Fehler: 476408124).
ChromeDriver 145
Neue Funktionen
- Testen: Das
run_py_tests.py-Testframework wurde aktualisiert, sodass deterministische String-Tests unterschiedlicher Länge (z.B. 53, 101 und 501 Zeichen) für die Elementeinput,textareaundcontenteditableakzeptiert werden. Dadurch wird die Regressionsabdeckung sichergestellt, sodass bei langensend_keys-Vorgängen keine Zeichen verloren gehen (crrev.com/c/7221410, Fehler 428116078). - Tests: Es wurde ein spezifischer Test für das HTML-Element
<selectlist>hinzugefügt (crrev.com/c/7420729, Fehler: 342889200).
Diverse Fehlerkorrekturen
- Screenshots: Die Skalierung von Element-Screenshots wurde rückgängig gemacht, da die WebDriver-Spezifikation keine Skalierung vorschreibt und sie nicht mit anderen Screenshot-Funktionen übereinstimmte (crrev.com/c/7409603, Fehler 42323022).
- Tests: Fehler in
testClientHintsDeviceNameIPhoneXundtestClientHintsDeviceNameIPadwurden behoben, indem die ChromeDriver-Testerwartungen an die aktuellen korrekten Werte (für die Felder „platform“, „platformVersion“, „model“ und „mobile“) angepasst wurden, die im DevTools-Frontend eingeführt wurden (crrev.com/c/7408699, Fehler 474179501).
Interne Änderungen und Refaktorierungen
- C++-Standards: Verschiedene Verwendungen von
base::Contains()wurden instd::ranges::contains()in//chromemigriert (crrev.com/c/7411011, Fehler: 470391351), einschließlich notwendiger Formatierungsanpassungen (crrev.com/c/7247217). Stringparameter wurden instd::string_viewumgestaltet, um unnötige Stringzuweisungen bei Verwendung vonsubstr()zu vermeiden (crrev.com/c/7350716). Überflüssige<map>-Includes aus//chrome-Headern entfernt (crrev.com/c/7225838, Fehler 40318405). Die Reihenfolge der Includes in einigen Dateien wurde korrigiert (crrev.com/c/7366868). Die altenBodyAsStringCallbackDeprecated-Callbacks inSimpleURLLoader-Verwendungen wurden durchBodyAsStringCallbackersetzt, diestd::optionalanstelle vonstd::unique_ptrverwendet (crrev.com/c/7210000, Fehler: 40258809). - Tests: Die Konfiguration für den
InfobarPrioritization-Feldversuch wurde wieder eingeführt. Dazu gehören Korrekturen, um Abstürze bei ChromeDriver-Browsertests zu verhindern, wenn ausstehende Infoleisten verarbeitet werden, die nicht der Ansichtshierarchie hinzugefügt wurden (crrev.com/c/7223590, Fehler: 447176374). Die Filterung nach Land und Sprache für die GLIC-Funktion wurde wieder eingeführt. Sie wurde zuvor aufgrund nicht zusammenhängender Testfehler zurückgesetzt (crrev.com/c/7245749, erneute Einführung crrev.com/c/7148759 nach dem Zurücksetzen crrev.com/c/7233767, Fehler: 454431875).
ChromeDriver 144
Neue Funktionen
- Berechtigungen: Der Befehl
SetPermissionwurde aktualisiert, um der neuesten W3C-Spezifikation zu entsprechen. Dabei wird zusätzlich zur Quelle der obersten Ebene die URL des aktuellen Frames (eingebettete Quelle) verwendet. Dadurch werden Berechtigungen wiestorage-access, die auf dem eingebetteten Kontext basieren, korrekt konfiguriert (crrev.com/c/7106801, erneutes Einreichen von crrev.com/c/7093216 nach dem Zurücksetzen crrev.com/c/7104484, Fehler: 384959114). - Tests: Der ChromeDriver-Test-Upload-Payload wurde um
testMetadata(einschließlich des Testnamens) erweitert, um den Flakiness-Endorser bei Verwendung strukturierter Test-IDs zu unterstützen (crrev.com/c/7124354, Fehler: 456432041).
Diverse Fehlerkorrekturen
- Target Lifecycle: Ein Fehler wurde behoben, bei dem ChromeDriver nicht mehr reagierte, wenn ein übergeordneter Frame getrennt wurde, während ein untergeordneter Frame auf eine Befehlsantwort wartete. ChromeDriver trennt jetzt explizit transitiv untergeordnete Frames, wenn ein übergeordneter
WebViewImplwährend der Befehlsverarbeitung gesperrt und als getrennt markiert wird (crrev.com/c/7080912, Fehler 438436830). - Fensterverwaltung: Das Minimieren verdeckter Fenster im Hintergrund wurde speziell für ChromeDriver-Sitzungen deaktiviert. Dadurch werden Probleme in WebDriver BiDi behoben, bei denen Tests fehlschlagen konnten, wenn der Browser ein Fenster fälschlicherweise als verdeckt einstufte und es drosselte (crrev.com/c/7128058, Fehler: 458027819).
Interne Änderungen und Refaktorierungen
- C++-Standards: Überflüssige Includes von
base/functional/callback_forward.hin//chrome-Dateien wurden entfernt und die Verwendung voncallback.hwurde erzwungen, wenn tatsächlich Callbacks verwendet werden (crrev.com/c/7200285, Fehler 40318405)..cclogging::LoggingSettingswurde vonbase/logging.hin einen eigenen Headerbase/logging/logging_settings.hverschoben, um die Kompilierungseffizienz zu verbessern (crrev.com/c/7173024, Relanding crrev.com/c/7160150 nach dem Zurücksetzen crrev.com/c/7170750). Migrierte Verwendungen vonbase::HexEncodezur neuerenbase::HexEncodeLower(crrev.com/c/7103100, Fehler: 456472080). - Speichersicherheit (Spanifizierung): Die Unit-Tests
WriteToPipeundWriteToPipeNoBestEffortinPipeBuilderundPipeConnectionwurden migriert, umbase::spanzu akzeptieren. Dadurch wird die unsichere Pufferverwendung behoben (crrev.com/c/7090293, Fehler: 455758227). Die dateiweiten Makros#pragma allow_unsafe_bufferswurden inchrome/in granulare MakrosUNSAFE_TODO()umgewandelt (crrev.com/c/7132241, Fehler 409340989).IOBuffer->span().first()wurde zuIOBuffer->first()gekürzt (crrev.com/c/7159119).
ChromeDriver 143
Diverse Fehlerkorrekturen
- Stabilität: Ein Use-After-Free-Absturz (UAF) in
OverrideNetworkConditionswurde behoben. Der für die spätere Anwendung gespeicherte Rohzeiger wurde zwischen aufeinanderfolgenden Aufrufen freigegeben. Er wird jetzt richtig verwaltet (crrev.com/c/7047422, Fehler: 42323833). - Tests: Flaky Android ChromeDriver-Touch-Tests wurden durch die Verwendung der
WaitForConditionAPI für eine zuverlässigere Synchronisierung behoben (crrev.com/c/6978928, Fehler: 42321861). - DSE Prewarm: Die Funktion
Prewarmin ChromeDriver wurde standardmäßig über den Schalter--disable-features=Prewarmdeaktiviert. So wird verhindert, dass vorab geladene Seiten die Testausführung und die Zielermittlung beeinträchtigen (crrev.com/c/7007072, Fehler: 431928370).
Interne Änderungen und Refaktorierungen
- C++-Standards:
ref_counted.hwurde in//chrome-Headern, in denen nur der Smartpointer verwendet wird, durchscoped_refptr.hersetzt, um die Kompilierungseffizienz zu verbessern (crrev.com/c/7080753, Fehler 40245294).GURL-Accessoren wurden zu ihrenGet*-Varianten migriert (z.B.GetSpec()anstelle vonspec()), um die Stringzuweisung deutlich zu kennzeichnen und versehentliche Leistungseinbußen zu vermeiden (crrev.com/c/7002119, Fehler: 448174617). - Tests: Redundante Prüfmuster in
devtools_client_impl_unittest.ccwurden mitADD_FAILURE()entfernt (crrev.com/c/6998270). Es wurde ein Regressionstest fürcrbug.com/413382905hinzugefügt (crrev.com/c/6879417).
ChromeDriver 142
Neue Funktionen
- Diagnose: Der Status
TERMINATION_STATUS_EVICTED_FOR_MEMORYwurde hinzugefügt, um Prozesse, die vom Browser proaktiv beendet wurden (um Speicher zu sparen), von Prozessen zu unterscheiden, die aufgrund von Fehlern wegen unzureichendem Speicherplatz abgestürzt sind. Derzeit verhält sich das identisch mit einem OOM-Absturz (Anzeige eines traurigen Tabs), schafft aber die Grundlage für eine zukünftige separate Verarbeitung (crrev.com/c/6991933, Fehler: 394092280). - Diagnose: Der WebDriver-Antwort wurde die Funktion
goog:processIDhinzugefügt, die die Hauptprozess-ID des Desktopbrowsers zurückgibt. Dadurch wird ChromeDriver anmoz:processIDvon Firefox angepasst und die Bedienungshilfen-APIs der Testplattform werden unterstützt (crrev.com/c/5825307, Fehler 438884256). - Tests: Unterstützung für strukturierte Test-ID-Uploads zu ResultSink für die Python-Integrationstests von ChromeDriver hinzugefügt (crrev.com/c/6916708, Fehler: 418015486).
Diverse Fehlerkorrekturen
- Diagnose: Das Verhalten von ChromeDriver beim normalen Beenden von Chrome wurde so geändert, dass keine verwirrende, generische Fehlermeldung mehr im Zusammenhang mit der Verwendung von
user-data-dirausgegeben wird. Es wird jetzt explizit darauf hingewiesen, dass die Instanz beendet wurde, und der Nutzer wird zu den ausführlichen Logs für den spezifischen Fehler weitergeleitet, der von Chrome ausgegeben wurde (crrev.com/c/6977507, Fehler: 42323434). - Initialisierung: Die Initialisierungsstruktur von ChromeDriver wurde aktualisiert, um mit den Änderungen in Selenium WebDriver v4.16.0 (crrev.com/c/6630600) kompatibel zu bleiben.
- Android: Der Fehler
CheckAppInstalledwurde in älteren Android-Versionen (älter als Android 11) behoben, in denen das Flag--user curnicht vom Paketmanager unterstützt wird (crrev.com/c/6785949, Fehler: 433885051). - Tests: Ein Fehler wurde behoben, durch den
IgnoreDuplicateNavsfälschlicherweise die standardmäßigen Funktionsschalter in ChromeDriver überschrieb. Die Funktion wurde für ChromeDriver-Sitzungen deaktiviert und dieSwitches::SetFromSwitches-Logik wurde korrigiert (crrev.com/c/6949166, Fehler 445332809).
Interne Änderungen und Refaktorierungen
- C++-Standards: Mehrere eingestellte
base::JSONWriter::Write()-Aufrufe wurden durchbase::WriteJson()ersetzt. Das Verhalten, bei dem im Fehlerfall eine leere Zeichenfolge zurückgegeben wird, wenn der Rückgabewert nicht geprüft wurde, wurde beibehalten (crrev.com/c/6969134, crrev.com/c/6929101, Fehler: 443929217). Erforderliche explizite Einwilligung für nicht konforme JSON-Parsing-Optionen (z.B. Kommentare zulassen) inbase::JSONReader::Readundbase::JSONReader::ReadAndReturnValueWithError(crrev.com/c/6990988, crrev.com/c/6980533, Fehler: 446188265). Die dateiweiten#pragma allow_unsafe_buffers-Pragmas wurden nach der manuellen Spannenbildung entfernt (crrev.com/c/6778035, Bug: 409340989). Verwendungen des MakrosLazyInstancemit Speicherlecks bereinigt (crrev.com/c/6781377, Fehler: 432815283). Fehlende Header fürhttp_response_headers.hüber IWYU hinzugefügt (crrev.com/c/6894196, Fehler: 40216326). - Speichersicherheit (Spanifizierung): Zahlreiche Zeiger im Verzeichnis
chrome/für Linux-Builds wurden automatisch spanifiziert. Außerdem wurden nicht schwerwiegendeCHECKs hinzugefügt, wenn Größenparameter als redundant eingestuft wurden (crrev.com/c/6734592, Fehler: 431824299). - Testen:
testDoesntCrashOnClosingBrowserFromAsyncScriptwurde unter macOS vorübergehend deaktiviert (crrev.com/c/6995358, Fehler: 446461733). Rechtschreibfehler in Testmethodennamen mit „Certificates“ wurden behoben (crrev.com/c/6950683). Automatisch formatierte//chrome/testGN-Dateien (crrev.com/c/6789277, Fehler: 40760278). - FedCM: Die Funktion
ShouldShowAccountsPassiveDialogwurde inIdentityDialogControllereingeführt, um synchron zu prüfen, ob ein Kontodialogfeld angezeigt werden soll. Dadurch wird ein Absturz behoben, der mit asynchronen Prüfungen und der DevTools-Instrumentierung zusammenhängt (crrev.com/c/6780413, Fehler 425801332). - DSE Prewarm:
Page.setPrewarmingAllowedwurde den Entwicklertools als kurzfristige Lösung hinzugefügt, um das Vorwärmen manuell zu aktivieren oder zu deaktivieren. Außerdem wurden zugehörige Tests korrigiert, damit sie richtig mit der primären Seite interagieren (crrev.com/c/6847287, Fehler 431928370). Die FunktionDSEPrewarmwurde infieldtrial_testing_config.jsonfür macOS und Windows aktiviert, nachdem die Instabilität behoben wurde (crrev.com/c/6951835, Fehler 431928370, Fehler 435621391). Hinweis: Der CDP-Befehl und die Aktivierung des Feldversuchs wurden beide zurückgesetzt, da sie funktionsgefährdende Änderungen für WebDriver-Nutzer waren, die unerwartete Ziele offenlegten bzw. andere Downstream-Probleme verursachten (crrev.com/c/6966133, crrev.com/c/6966161, Fehler: 445883308)). - Bereinigung: Die verbleibenden Verweise auf das nicht unterstützte
WebLayer-Projekt im Android-Code wurden entfernt (crrev.com/c/6792520, Fehler: 40272607).
ChromeDriver 141
Neue Funktionen
- Test: Unterstützung für das Flag
--enable-per-test-tracingfürrun_wpt_tests.pyhinzugefügt, um das Verhalten vonrun_web_tests.pyzu berücksichtigen. Dadurch werden JSON-Trace-Ereignisse aus einem internen ChromeDriver-Puffer abgerufen und im Testverzeichnis gespeichert (crrev.com/c/6820247, Fehler: 434017035).
Diverse Fehlerkorrekturen
- Diagnose: ChromeDriver hat seinen eigenen internen Stacktrace nicht mehr ausgegeben, wenn ein
kTabCrashed-Fehler zurückgegeben wurde. So wird verhindert, dass Nutzer verwirrt werden, während der Absturz-Stacktrace des Renderers weiterhin in den Logs enthalten ist (crrev.com/c/6841669, Fehler 395131239).
Interne Änderungen und Refaktorierungen
- C++-Standards: Potenziell unsichere
memset-Aufrufe wurden inchrome/durch die Standard-C++-Aggregatinitialisierung (instance = {}) ersetzt, um das Umgehen von Konstruktoren zu vermeiden und die Speichersicherheit zu gewährleisten (crrev.com/c/6875520, Fehler: 435317390). Fehlende#include-Direktiven für//base/time/time.hüber IWYU hinzugefügt (crrev.com/c/6832689, Fehler 40216326). Die Pragma-Anweisungen für erzwungene unsichere Puffer wurden neu geschrieben (crrev.com/c/6828538). - Tests: Es wurde ein Regressionstest für
crbug.com/413382905(crrev.com/c/6879417) hinzugefügt. - Übergänge zwischen Ansichten: Der Fix für Übergänge zwischen Ansichten wurde wieder eingeführt. Dabei wurde die Arbeit, die vor dem Auflösen des „finished“-Promise ausgeführt wurde, aktualisiert. Dies geschah, nachdem sich ein früherer spekulativer Revert im Zusammenhang mit ChromeDriver-Testfehlern als falsch erwiesen hatte (crrev.com/c/6846765, Re-Landing crrev.com/c/6806850 nach Revert crrev.com/c/6808537).
ChromeDriver 140
Diverse Fehlerkorrekturen
- Zielauswahl: Ein Problem wurde behoben, bei dem das Entwicklertools-Fenster mit der Hauptseite konkurrieren konnte, um als primäres Fenster ausgewählt zu werden, wenn Chrome mit
--auto-open-devtools-for-tabsgestartet wurde. ChromeDriver schließt jetzt Ziele mit dem Präfixdevtools://bei der Bestimmung des primären Fensters explizit aus (crrev.com/c/6769505, Fehler: 427908560). - Zielauswahl: ChromeDriver hat den Mittelpunkt von Elementen im sichtbaren Bereich nicht mehr falsch berechnet, da die von übergeordneten Elementen auferlegte
overflow:hidden-Beschneidung ignoriert wurde. Dadurch wird die Berechnung an die WebDriver-Spezifikation und anderePerformActions-Szenarien angepasst (crrev.com/c/6735230, Bug: 42322257). - Android: Die
CheckAppInstalled-Funktion wurde für ältere Android-Versionen (vor Android 11) korrigiert, in denen das--user cur-Flag für den Paketmanager nicht unterstützt wird (crrev.com/c/6785949, Fehler: 433885051). - Tests: Es wurde ein Problem mit der
chromedriver_py_tests-Testsuite behoben, das durch die FunktionDSEPrewarmverursacht wurde. ChromeDriver deaktiviert jetzt den Prewarm-Trigger, während ein CDP-Client angehängt ist, um unerwartete Zielanzahlen bei Tests zu verhindern (crrev.com/c/6764274, Fehler 423465927, Fehler 431928370). - Testen: Die Hinzufügung der
ShouldShowAccountsPassiveDialog-Funktion zuIdentityDialogController(Teil von FedCM) wurde rückgängig gemacht, was zu einer Regression geführt hat (crrev.com/c/6780413, Fehler: 425801332).
Interne Änderungen und Refaktorierungen
- C++-Standards: Fehlende
std::vector#includes wurden über „Include What You Use“ (IWYU) hinzugefügt (crrev.com/c/6652818, Fehler 40216326). Überflüssige Includes vongurl.h(crrev.com/c/6578272) und<queue>(crrev.com/c/6570349, Bug: 40318405) in//chrome-Headern wurden entfernt.IWYUfürNOTIMPLEMENTED()in//chromebehoben (crrev.com/c/6655452, Fehler: 41493641). - Speichersicherheit (Spanification): Das automatisierte Tool zur Pointer-Spanification wurde für Linux-Builds ausgeführt und der Code wurde aktualisiert, um Spans zu verwenden, wenn die Größen bekannt sind (crrev.com/c/6734592, Fehler: 431824299). Nach Abschluss der Migration wurden dateiweite
#pragma allow_unsafe_buffers-Pragmas inchrome/entfernt (crrev.com/c/6778035, Fehler 409340989).chrome/test-Ziele wurden aus der-Wexit-time-destructors-Warnung ausgeschlossen, damit die Warnung global aktiviert werden kann (crrev.com/c/6736532, Bug: 40031409, Bug: 430332953). Leaky-Verwendungen vonLazyInstanceunter//chromebereinigt (crrev.com/c/6781377, Fehler: 432815283). - Bereinigung: Das
--debug-bidi-mapper-CLI-Flag wurde entfernt, da die Umstellung auf die Ausführung des BiDi-Mappers in einem verborgenen Ziel abgeschlossen und stabil ist (crrev.com/c/6672011, Fehler 408992812). - Bereinigung: Verbleibende Verweise auf das nicht unterstützte
WebLayer-Projekt wurden entfernt (crrev.com/c/6792520, Fehler: 40272607). Automatisch formatierte//chrome/testGN-Dateien, um Zielreferenzen zu verkürzen (crrev.com/c/6789277, Fehler 40760278). - Tests: Es wurde ein Akzeptanztest hinzugefügt, um den Fix für das Problem
PerformActionspointerMovezu überprüfen (crrev.com/c/6648646, Fehler: 42322257). - Tests: Das Segment für die parallele Treibererstellung des
testBrowserWithUsedUserDataDir-Tests wurde auskommentiert (und ein Tracking-Fehler wurde gemeldet), da es unter macOS zu Fehlern im Zusammenhang mit der exklusiven Sperrung bei Verwendung vonchrome-headless-shellgeführt hat (crrev.com/c/6470455, Fehler: 411407649, Fehler: 380903149). - Tests: Der
run_cwt_chromedriver.py-Wrapper für iOS wurde aktualisiert, um das--platform-type-Argument zu unterstützen (crrev.com/c/6771517, Fehler 427548014). - INHABER:
nvitkovwurde aus der Dateichrome/test/chromedriver/OWNERSentfernt (crrev.com/c/6771413).
ChromeDriver 139
Diverse Fehlerkorrekturen
- Initialisierungsstruktur: Die ChromeDriver-Initialisierungsstruktur wurde aktualisiert, um mit Selenium WebDriver v4.16.0-Updates kompatibel zu bleiben (crrev.com/c/6630600).
- Argumentparsing: Mehrere
--js-flags-Argumente wurden zusammengeführt (ähnlich wie bei--enable-features), anstatt nur das letzte angegebene Argument zu verwenden. Dadurch wird die Benutzerfreundlichkeit beim Übergeben komplexer V8-Flags verbessert (crrev.com/c/6612042, Fehler 421941798).
Interne Änderungen und Refaktorierungen
- Speichersicherheit (Spanifizierung): Die veralteten
base::MakeStringPiece()-Verwendungen wurden in//chrome/testdurchstd::string_viewersetzt (crrev.com/c/6628089, Fehler 422940464).base/strings/string_view_util.hwurde eingefügt, wennbase::as_string_view()verwendet wird, um zukünftige Namespace-Migrationen vorzubereiten (crrev.com/c/6625024, Fehler: 423048781). - C++-Standards: Verbesserte IWYU-Konformität (Include What You Use) in
//chromedurch explizites Einbinden von<vector>(crrev.com/c/6652818),base/notimplemented.h(und Entfernen vonbase/notreached.h, wenn nicht verwendet) (crrev.com/c/6655452, Fehler: 41493641),base/strings/string_util.h(crrev.com/c/6607646),base/strings/string_number_conversions.h(crrev.com/c/6593576) und Entfernen überflüssiger Einbindungen vonbase/debug/stack_trace.h(crrev.com/c/6622838). - Testen: Die Option
--driver-loggingwurde zurun_wpt_tests.pyportiert, sodass das Skript ChromeDriver und Browser-stderrauch bei niedrigeren Ausführlichkeitsgraden ausgeben kann (crrev.com/c/6608138, Fehler: 421262910). - Tests: Zuvor deaktivierte ChromeDriver-Integrationstests wurden wieder aktiviert: Screenshot-Tests (
testTakeElementScreenshot*) (crrev.com/c/6598797, Fehler: 42321815), Tests zum Schließen von Fenstern über JavaScript (testCloseWindowUsingJavascript*) (crrev.com/c/6598978, Fehler: 42321150) und Tests zur Fenstergröße (headless-shell) (crrev.com/c/6621336, Fehler: 42323661). - Tests:
run_wpt_tests.py --stablewurde korrigiert, um die aktuelle stabile Version von Clank (Android) durch Parsen der APK zu identifizieren und zu verwenden. Außerdem wurde das Script aktualisiert, um die entsprechende ChromeDriver-Version aus Chrome for Testing (CfT) in ein temporäres Verzeichnis herunterzuladen, anstatt das Checkout zu verunreinigen (crrev.com/c/6635694, Fehler 402548382). - Build-Infrastruktur: Eine unnötige Build-Abhängigkeit von
write_build_config.pywurde entfernt, indem Manifeste fürandroid_resources()-Ziele nicht mehr zugelassen werden. Das Zusammenführen von Manifesten und die Benennung von R.java-Paketen werden jetzt durch spezielle Attribute verarbeitet (crrev.com/c/6625266, Fehler 413331591). - FedCM: Ein Finch-Konfigurations-Feature-Flag im Zusammenhang mit FedCM wurde korrigiert (crrev.com/c/6614137, Fehler: 421959289).
ChromeDriver 138
Neue Funktionen
- Display-Funktionsverwaltung: Das ChromeDriver-Verhalten für Darstellungsbereichssegmente wurde aktualisiert, um einer aktuellen Entscheidung der CSS Working Group zu entsprechen. Es wird jetzt immer ein Array mit einem einzelnen Segment zurückgegeben, wenn ein faltbares Gerät flach verwendet wird oder für alle nicht faltbaren Geräte. Dies entspricht dem Verhalten von Media-Anfragen und verringert das Risiko von Fingerprinting (crrev.com/c/6469455, Fehler 414430842).
- Einstellungen und lokaler Status (Android): Unterstützung für die Funktionen
localStateundprefsbeim Ausführen von ChromeDriver auf Android-Geräten wurde hinzugefügt. Dazu ist ADB erforderlich und es wird ein benutzerdefiniertesuser-data-dir-Flag benötigt. Derzeit wird der Status mit Standardvorlagen initialisiert (crrev.com/c/6397155, Fehler 406427226).
Diverse Fehlerkorrekturen
- Stabilität: Ein ChromeDriver-Absturz unter macOS wurde behoben, der auftrat, wenn ein Nutzer das Dialogfeld für die Ersteinrichtung über die Schaltfläche „Weiter“ geschlossen hat. Der Absturz wurde durch das Überschreiben eines
kTargetDetached-Fehlerstatus und den Versuch, auf einen ungültigenWebViewzuzugreifen, verursacht (crrev.com/c/6538867, Fehler: 410599467). - Leistungstests: Der
crossbench-Test-Runner unter Windows hat jetzt einen Fehler behoben, durch den Bots fälschlicherweise versucht haben, das ChromeDriver-Binärprogramm über einen veralteten../Release_x64-Pfad zu finden, wenn--browser=release_x64übergeben wurde. Dadurch wurde auf das Herunterladen eines älteren Binärprogramms zurückgegriffen, anstatt den lokalen Build zu verwenden (crrev.com/c/6502134).
Interne Änderungen und Refaktorierungen
- Speichersicherheit (Spanifizierung): Nicht geprüfte Zeiger in
WebSocket::OnReadDuringHandshakeundWebSocket::OnReadDuringOpenwurden durchbase::spanersetzt, wodurchunsafe-buffer-usage-Warnungen behoben wurden (crrev.com/c/6557346, Fehler: 354307328). Es wurden unnötige#pragma allow_unsafe_buffers-Pragmas inchrome/test/chromedriverentfernt, die nach anderen Migrationen nicht mehr erforderlich waren (crrev.com/c/6503154, Fehler 414858406). - C++-Standards: Überflüssige
#include "url/gurl.h"- und#include <queue>-Anweisungen inchrome/-Headern wurden entfernt und Vorwärtsdeklarationen hinzugefügt, um die Kompilierungszeiten zu verbessern (crrev.com/c/6578272, crrev.com/c/6570349, Fehler 40318405). - API-Migration:
RSAPrivateKeywurde zucrypto::PrivateKeyundSHA256HashStringzucrypto::Sha256migriert. Dadurch wurde ein veralteter Fall für die Fehlerbehandlung entfernt, da neue APIs zur Schlüsselgenerierung unfehlbar sind (crrev.com/c/6490294, Fehler: 372283556). - Testen: Das Attribut
OwnContributionEstimatewurde den Automatisierungsbefehlen der Compute Pressure API (sowohl CDP- als auch testdriver-Implementierungen) hinzugefügt (crrev.com/c/6373001, Fehler: 402033762). - Tests: Die Integrationstests, mit denen
ClearDisplayFeaturesauf CFT-Bots (Continuous Integration) geprüft wird, wurden korrigiert. Dazu wurden die Zusicherungen vereinfacht, um zu prüfen, ob die Viewport-Segmente auf die Standard-Viewport-Größe zurückgesetzt werden (crrev.com/c/6535067, Fehler: 417195296). - Tests: Die Zeitüberschreitungen für Protected Audience WebDriver-Tests wurden erhöht, um die Instabilität auf langsameren CI-Bots zu beheben (crrev.com/c/6494277).
ChromeDriver 137
Neue Funktionen
- Verwaltung von Displayfunktionen: Es wurden ChromeDriver-Befehle zum Emulieren und Löschen von Displayfunktionen hinzugefügt, um die Automatisierungsanforderungen für die Viewport Segments APIs (CSS und JS) zu erfüllen. So können Entwickler Falt- oder Scharnierszenarien auf Geräten mit zwei Displays oder faltbaren Geräten programmatisch testen (crrev.com/c/6368674, Fehler 40137084).
- BiDi: ChromeDriver wurde aktualisiert, sodass der BiDi-Mapper standardmäßig in einem verborgenen Ziel ausgeführt wird. Dadurch wird verhindert, dass die
data:,-Seite des Mappers die Testausführung und Sichtbarkeit beeinträchtigt. Um den Mapper zu debuggen, können Clients das Flag--debug-bidi-mapperübergeben, um ihn in einem sichtbaren Tab auszuführen (crrev.com/c/6441064, Relanding crrev.com/c/6433672 nach dem Zurücksetzen crrev.com/c/6439633, Fehler: 402339952).
Diverse Fehlerkorrekturen
- BiDi: ChromeDriver hat nicht mehr fälschlicherweise die gesamte Browsersitzung geschlossen, wenn BiDi-Befehle (z. B.
browsingContext.close) verarbeitet wurden und das Ziel, das von anderen CDP- oder BiDi-Sitzungen erstellt wurde, nicht mehr nachvollziehbar war. Jetzt werden explizit Tabs der obersten Ebene synchronisiert, bevor der Browser beendet wird (crrev.com/c/6440293, Fehler: 42323838). - BiDi: ChromeDriver entspricht der Upstream-WebDriver-BiDi-Spezifikation, indem die
goog:channel-Funktion entfernt wird, wenn sie als leerer String übergeben wird. Sie wird also genauso behandelt wie ein fehlender Channel (crrev.com/c/6438865, Fehler: 409282307). - Eingabe: Ein Problem wurde behoben, bei dem Touch- und Zeigerereignisse fehlgeschlagen sind oder sich falsch verhalten haben. Dazu wurde ChromeDriver aktualisiert, um gebrochene (Gleitkomma-)X- und ‑Y-Koordinaten in Zeigerbewegungsbefehlen zu unterstützen (crrev.com/c/6440834, Fehler 409684333).
- Zielauswahl: Es wurde verhindert, dass PDF-OOPIFs (Out-of-Process-iFrames), die in Gastansichten geöffnet wurden (wenn die Funktion
PdfOopifdeaktiviert ist), in die Liste der Ziele der obersten Ebene aufgenommen werden. Die Filterlogik wurde erweitert, um Ziele mit dem Präfixchrome-extension://(crrev.com/c/6383500, Fehler: 396611138) richtig auszuschließen.
Interne Änderungen und Refaktorierungen
- C++-Standards: Die Änderung zur Verwendung von
std::string_viewfür Dateinamen inLogMessageund Trace-Ereignissen wurde wieder eingeführt. Dadurch wurden die Probleme mit der Verarbeitung von nullterminierten Strings behoben, die zu früheren Reverts geführt hatten (crrev.com/c/6430129, Relanding crrev.com/c/6395097, Relanding crrev.com/c/6387020 nach Revert crrev.com/c/6383699). - C++-Standards: Modernisierte
Environment::GetVar-Aufrufe in//chrome, um die API mit Rückgabewert anstelle von Out-Parametern zu verwenden (crrev.com/c/6417343, Fehler: 400758498).std::optional - C++-Standards: Windows-spezifische Handle-Helfer wurden aus
win_util.hin einen dediziertenwindows_handle_util.h-Header refaktoriert, um Probleme mit zirkulären Abhängigkeiten zu vermeiden (crrev.com/c/6418805, Fehler: 406023316). - Tests: Es wurde ein Android-spezifischer
Browser-Domain-Handler hinzugefügt und dieBrowser.getWindowForTargetAPI implementiert, um Tests zur Erstellung von Android-Fenstern zu unterstützen (crrev.com/c/6427605, Fehler 404932444). - Tests: Es wurde ein Problem behoben, das dazu führte, dass macOS-Tests aufgrund von Erweiterungen, die zu lange zum Initialisieren benötigten, nicht zuverlässig ausgeführt wurden (crrev.com/c/6423229, Fehler: 407804497).
- Testen: Die parallele Erstellung von
user-data-dirintestBrowserWithUsedUserDataDirwurde bei der Ausführung fürchrome-headless-shellvorübergehend deaktiviert, da sie mit der exklusiven Sperrung unter macOS in Konflikt stand (crrev.com/c/6470455, Fehler: 411407649, Fehler: 380903149). - Erweiterungen: Die Chrome-Tests wurden aktualisiert, damit sie bestanden werden, wenn der
ExtensionManifestV2Unsupported-Feldversuch aktiviert ist. Dies ist ein grundlegender Schritt. Der Test selbst bleibt jedoch deaktiviert, bis Updates in anderen Repositories erfolgen (crrev.com/c/6415997, Fehler: 367395349). (Hinweis: Ein vorheriger Versuch, diesen Testzeitraum über die Konfiguration zu aktivieren, wurde rückgängig gemacht crrev.com/c/6397497, wodurch crrev.com/c/6358257 rückgängig gemacht wurde.) - Abhängigkeiten: Die
catapult-Abhängigkeit wurde manuell aktualisiert und die zugehörigenpydeps-Dateien unddevil_util-Verweise wurden aktualisiert (crrev.com/c/6480814, crrev.com/c/6466865, relanding crrev.com/c/6406098 nach dem Zurücksetzen crrev.com/c/6448910, Fehler: 397459590).
ChromeDriver 136
Neue Funktionen
- Browser-Lebenszyklus: Es wurde eine Chrome-spezifische Funktion
quitGracefullyhinzugefügt, die ChromeDriver dazu zwingt, den Browser ordnungsgemäß zu beenden (mitBrowser.closeoder SIGTERM) anstelle des StandardwertsSIGKILL. Dadurch haben Debugger wierrZeit, ihre Aufzeichnungen zu sichern, bevor der Prozess beendet wird (crrev.com/c/6322538, erneutes Einfügen von crrev.com/c/6269180 nach einer kurzen Rücksetzung crrev.com/c/6320536, Fehler 339644807). - Testen: Das
run_wpt_tests.py --wrapper-Argument wurde durch Generieren eines temporären Wrapper-Skripts verkabelt, das dem Browser-Binärprogramm den Debugger (z.B.rr) und seine Argumente voranstellt. Dadurch wird das Problem umgangen, dass ChromeDriver das Binärprogramm nicht direkt ersetzen kann, wennargsals Schalter verarbeitet werden (crrev.com/c/6271108, Fehler: 339644807). - Testen: Die Übersetzung wurde in
TranslateEnabledTestüber die Einstellung aktiviert, um eine Testumgebung zu unterstützen, in der ChromeDriver den Browserprozess verwaltet und die neue--remote-debugging-port-Einschränkung umgeht, wenn--user-data-dirimplizit ist (crrev.com/c/6354089, Fehler 327797500). - DevTools: Unterstützung für den DevTools-Multi-Instanz-Modus hinzugefügt, um einen neuen Tab in einem anderen Fenster unter Android zu öffnen (crrev.com/c/6352169, Fehler: 401269942, Fehler: 382183406).
Diverse Fehlerkorrekturen
- Zielauswahl: Ein Problem wurde behoben, bei dem PDF-OOPIFs (Out-of-Process-iFrames), die in Gastansichten geöffnet wurden, nicht aus der Liste der Ziele auf oberster Ebene herausgefiltert wurden, wenn die Funktion
PdfOopifdeaktiviert war. Der Filter wurde um das Präfixchrome-extensionerweitert. Dadurch wird der Fehler behoben und die Abdeckung für MV3-Chrome-Erweiterungen, die Tabs erstellen, wird berücksichtigt (crrev.com/c/6383500, Fehler: 396611138). - Zielauswahl: Es wurde ein Regressionsfehler behoben, der dazu führte, dass der Befehl
getWindowHandles()bei der Ausrichtung auf verpackte Chrome-Apps mit dem Statusconnection refusedfehlschlug (crrev.com/c/6317161, Fehler: 396622746).
Interne Änderungen und Refaktorierungen
- C++-Standards: Die Änderung, bei der
std::string_viewfür Dateinamen inLogMessageund Trace-Ereignissen verwendet wird, wurde wieder eingeführt. Dadurch wird die Kompatibilität mit Rust-Logging-Strukturen verbessert, die keine nullterminierten Strings garantieren (crrev.com/c/6387020, Wiedereinführung von crrev.com/c/5765705 nach dem Zurücksetzen von crrev.com/c/6383699 und einem weiteren Zurücksetzen von crrev.com/c/6395097). - C++-Standards: Redundante
base::Value::Clone()-Aufrufe wurden ersetzt, um die Leistung zu optimieren (crrev.com/c/6361818). Zusätzliche-Wunsafe-buffers-in-libc-calls-Warnungen in Windows-spezifischen Dateien wurden unterdrückt, um die Build-Ausgabe zu bereinigen (crrev.com/c/6369920, Fehler: 390223051). - Erweiterungen: Der Eintrag
fieldtrial_testing_config.jsonfür die PhaseExtensionManifestV2Unsupportedwurde aufgrund eines Problems zurückgesetzt (crrev.com/c/6397497, Rücksetzung von crrev.com/c/6358257, Fehler: 367395349, Fehler: 406523920). - Dokumentation: Verbesserte Android-spezifische ChromeDriver-Testdokumentation (crrev.com/c/6354040).
ChromeDriver 135
Neue Funktionen
- BiDi: Der BiDi-Mapper wurde aktualisiert, sodass er ChromeDriver-Berechtigungen übernimmt, wenn
--enable-unsafe-extension-debuggingangegeben ist. So können WebDriver BiDi-Clients Erweiterungen effektiv testen, für die Berechtigungen erforderlich sind, die normalerweise vom WebDriver-Client gehalten werden (crrev.com/c/6288627, Fehler: 393500934).
Diverse Fehlerkorrekturen
- Tests: Die Erwartungen für mehrere WDSpec-Tests, die zuvor als fehlgeschlagen markiert waren, wurden wieder aktiviert und aktualisiert. Dadurch wird die Abdeckung der Spezifikationskonformität für bestandene Tests wiederhergestellt (crrev.com/c/6310420).
Interne Änderungen und Refaktorierungen
- Bereinigung: Alle Spuren von Lacros (einschließlich
IS_CHROMEOS_LACROSund zugehöriger Testdaten) wurden auschrome/test/entfernt, da Lacros eingestellt wird undIS_CHROMEOSstandardisiert wird (crrev.com/c/6284446, Fehler: 354842935). - Bereinigung: Alle Spuren des
md5sum-Dienstprogramms wurden entfernt, nachdem es durchdevil_utilersetzt wurde. Außerdem wurden Legacy-Build-Abhängigkeiten bereinigt (crrev.com/c/6309939, Fehler: 397452007). - C++-Standards: Der Namespace
chrome::wurde ausResultCodeundIsNormalResultCode()entfernt und in den globalen Namespace verschoben. Außerdem wurden veraltete ChromeOS-Startimporte entfernt (crrev.com/c/6196899, Fehler 41050580). - Speichersicherheit: Ein
std::lower_bound-Aufruf in ChromeDriver wurde durch die Nutzung vonstd::ranges::lower_boundvereinfacht (crrev.com/c/6223172, Fehler: 392116519).unsafe_libc_call-Warnungen für anfangs identifizierte nicht konforme Dateien wurden unterdrückt, um die zukünftige Durchsetzung vorzubereiten (crrev.com/c/6187925, Fehler: 390223051). Der Rückgabewert vonstd::to_arraywurde alsconstexprmarkiert, um die Sicherheit und die Kompilierzeitbewertung zu verbessern (crrev.com/c/6298909).
ChromeDriver 134
Neue Funktionen
- Eindämmung von Bounce-Tracking (DIPS): Die ChromeDriver-Unterstützung für die Eindämmung von Bounce-Tracking wurde reaktiviert und nutzt den Befehl
RunBounceTrackingMitigations. Der Integrationstest wurde so umstrukturiert, dass separate Seiten verwendet werden. Dadurch wird sichergestellt, dass zustandsbehaftete Absprünge korrekt erfasst werden, bevor der Befehl ausgeführt wird. Diese Funktion unterstützt dienav-tracking-mitigations-Spezifikation und wird in//chromeimplementiert (crrev.com/c/4935955, Fehler 1474656). Hinweis: Ursprünglich in crrev.com/c/4873672 hinzugefügt und später zurückgesetzt. - BiDi: ChromeDriver wurde aktualisiert, um standardmäßige WebDriver BiDi-Erweiterungseigenschaften mit dem Präfix
goog:zu verwenden. Dies entspricht den Upstream-Änderungen inchromium-bidi. Die alte Propertychannelist nicht mehr zulässig (crrev.com/c/6179410). - Windows: Dem
chromedriver.exe-Binärprogramm unter Windows wurde eine Versionsressource hinzugefügt (crrev.com/c/6114586, Fehler: 385300323).
Diverse Fehlerkorrekturen
- MPArch/Targets: Es wurde ein Regression behoben, bei dem Chrome-Erweiterungsziele (
chrome-extension://) während der primären Zielbestimmung unter ChromeOS fälschlicherweise erkannt und angehängt wurden, was dazu führte, dass nachfolgende Befehle (z. B. zur Navigation) fehlschlugen. Erweiterungsziele werden in dieser ersten Phase jetzt richtig übersprungen (crrev.com/c/6183202, Fehler: 385241097). - MPArch/Targets: Ein weiterer Fehler wurde behoben, bei dem Tab-Ziele für Erweiterungs-
background_pages nicht richtig aus Webansichten der obersten Ebene herausgefiltert wurden, wenn die Unterstützung von Erweiterungszielen deaktiviert war (crrev.com/c/6160774, Fehler: 385731198). - MPArch/Navigation: Es wurde ein Problem behoben, bei dem während einer MPArch-Aktivierung vorübergehend keine aktive Seite an einen Tab angehängt sein konnte. Dadurch wurde ChromeDriver fälschlicherweise als Fehlerstatus angezeigt. ChromeDriver wartet jetzt, bis der Tab eine neue Seite aufruft und die Navigation abgeschlossen ist, bevor der Status aufgelöst wird (crrev.com/c/6177606).
- Log-Verarbeitung: Ein Absturz (
DCHECK-Fehler inbase::Value()) wurde behoben, der durch das falsche Abschneiden von Log-Strings mit Multibyte-Zeichen verursacht wurde. Die Logik wurde aktualisiert, um dieUnicodeString-Grenzerkennung anstelle einfacherstd::string-Längenprüfungen zu verwenden. So werden gültige Codepunkte sichergestellt (crrev.com/c/6210809, Fehler 367752739). - Tests: Die meisten WPTs für das Prerendering (mit Ausnahme einiger mit bekannten API-Problemen) wurden von
content_shellzuheadless_shellmigriert, da sie nach dem kürzlichen MPArch-Refactoring mit ChromeDriver korrekt ausgeführt werden können (crrev.com/c/6168830, Fehler 42323502, Fehler 366257368).
Interne Änderungen und Refaktorierungen
- C++-Standards: Die Verwendung von
base::rangeswurde durch den Standardstd::rangesersetzt (crrev.com/c/6200893, crrev.com/c/6177197, Fehler: 386918226).b ? "true" : "false"-Muster wurden so umgeschrieben, dass nach Möglichkeitbase::ToString(bool)verwendet wird (crrev.com/c/6165810, Fehler: 335797528). Die unsichere FunktionStringPrintfNonConstexpr()wurde entfernt und durch sicherere Alternativen zur Stringformatierung ersetzt (crrev.com/c/6149756). Die Zeigerarithmetik (+ std::size) wurde durch Standarditeratorenbegin/endersetzt, um Warnungen zu unsicheren Puffern zu beheben (crrev.com/c/6217045, Bug: 392116519). - Bereinigung: Das Funktions-Flag
FedCmIdpSigninStatusund das zugehörige Laufzeit-Flag wurden entfernt (crrev.com/c/6111321, Fehler: 381211734). Hinweis: Ein vorheriger Versuch zur Entfernung wurde aufgrund von Fehlern rückgängig gemacht(crrev.com/c/6082405).
ChromeDriver 133
Neue Funktionen
- Architektur: ChromeDriver wurde umgestaltet, um die Architektur mit mehreren Seiten (Multiple Page Architecture, MPArch) und Tab-Ziele zu unterstützen.
WebViewImplwird jetzt überAutoAttachmit Tab-Zielen verbunden. Bei Befehlen, die zuvor eine Seite aufgerufen haben, wird jetzt nach der aktiven Seite auf einem Tab gesucht. Diese Änderung ermöglicht die Überprüfung von Erweiterungs-Hintergrundseiten, die jetzt über dieenable_extension_targets-Funktion angesprochen werden können (Erweiterungsziele werden standardmäßig übersprungen) (crrev.com/c/5961156, Fehler: 379767670, Fehler: 42323502). Es wurde ein Regressionsfehler behoben, bei demchrome-extension://-URL-Seiten fälschlicherweise als Erweiterungsziele aufgenommen wurden. Die Auswahl wurde auftype=background_pagezurückgesetzt (crrev.com/c/6093588, Fehler 383141569).enableExtensionTargetswurde in die Chrome-Optionen verschoben und ist keine Funktion der obersten Ebene mehr (crrev.com/c/6093032). - Klassisch: Die Unterstützung für Referenzen mit mehreren Schlüsselelementen wurde wieder eingeführt. Diese undokumentierte Funktion, die häufig zum Erstellen von Referenzen verwendet wird, die sowohl mit W3C- als auch mit Nicht-W3C-Modi kompatibel sind, wird jetzt offiziell unterstützt und durch Integrationstests abgedeckt (crrev.com/c/6063257, Fehler: 379584343).
Diverse Fehlerkorrekturen
- Stabilität: ChromeDriver blockiert nicht mehr unbegrenzt bei der Verarbeitung des Befehls
browsingContext.close. Durch die Verwendung eines anderen Mechanismus, um festzustellen, ob der Browser geschlossen werden muss, kann ChromeDriver jetztbeforeunload-Aufforderungen richtig verarbeiten, ohne dass es zu Verzögerungen kommt (crrev.com/c/6080431, Fehler 42323838, Fehler 379049702). - Navigation: Ein Fehler wurde behoben, bei dem eine Dummy-Seite mit der URL
about:blank?testzu einem Stillstand führte. Die Heuristik, mit der ein nicht reagierendes neues Fenster (baseURL==about:blankunddocumentURL!=about:blank) erkannt werden soll, verarbeitet diese Query-String-URLs jetzt korrekt als Sonderfall (crrev.com/c/6038039, Fehler: 377410086). - Navigation: Es wurde Logik hinzugefügt, um Befehle, die mit einem
AbortedByNavigation-Fehler fehlschlagen, noch einmal auszuführen. ChromeDriver versucht den Befehl jetzt mehrmals, bevor er mit einem StandardfehlerTimeout(crrev.com/c/6012427, Fehler: 42323825) abbricht. - Diagnose: Der Fehler
kTargetCrashedwurde direkt überNavigationTrackerweitergeleitet. Wenn ein Ziel während der Navigationserkennung abstürzt, wird dem Nutzer jetzt dieser spezifische Fehler anstelle eines allgemeinen Timeouts angezeigt. Das verbessert die Diagnose (crrev.com/c/6032612, Fehler: 377410086). - Android: Die Suche nach Tab-Zielen in
chrome_android_impl.ccwurde korrigiert (crrev.com/c/6110492, Fehler: 384781876). - Tests: Die Instabilität bei mehreren Tests zur Fenstergröße auf
win11-arm64wurde behoben (z.B. beim Klicken auf verdeckte Elemente). Die Tests fragen jetzt die Größe des inneren Fensters nach einem Größenänderungsvorgang wiederholt ab, bis eine positive Höhe registriert wird. Dabei wird berücksichtigt, dass das Fenster möglicherweise langsam neu gezeichnet wird (crrev.com/c/6012658, Fehler: 378470046). - Tests: Es wurden mehrere Flakes in Integrationstests behoben, indem generische Python-Verbindungsfehler
WebSocketConnectionClosedExceptionzugeordnet wurden, um die Fehlerbehandlung zu vereinfachen (crrev.com/c/6054134). Außerdem wurden Race-Bedingungen vermieden, indemSendCommandanstelle vonPostCommandverwendet wurde, wenn sofortige Nebeneffekte erwartet werden (crrev.com/c/6054137). Die Abhängigkeit von sofortigen Auswirkungen vonExecuteScriptwurde durch zuverlässigere Navigationserkennungsmechanismen ersetzt (crrev.com/c/6063040, Fehler: 42323825). - Testing: Die Entfernung des Funktions-Flags
FedCmIdpSigninStatuswurde rückgängig gemacht, da sie zu Problemen geführt hat (crrev.com/c/6082405, Rückgängigmachung von crrev.com/c/6078693, Fehler: 384866916, Fehler: 381211734). - Tools: Unterstützung für den Befehl
Printimlog_replay-Skript wurde hinzugefügt (crrev.com/c/6010809, Fehler: 378451938).
Interne Änderungen und Refaktorierungen
- C++-Standards: Das
Mojo.InvalidUTF8String-Histogramm wurde entfernt, was die Bereinigung öffentlicher Mojo-Header und nachfolgender IWYU-Kaskaden ermöglichte (crrev.com/c/6133861, Fehler 40509710, Fehler 386793084). - C++-Standards: Zuweisungen in
WaitableEvent::Wait()wurden vermieden, indem vonstd::listzubase::circular_dequegewechselt wurde (crrev.com/c/6097198). - C++-Standards: Standardmäßige benutzerdefinierte leere Konstruktoren und Destruktoren im gesamten
chrome/-Code, wo möglich (crrev.com/c/6101911, crrev.com/c/6056220, Fehler: 381119547). - Speichersicherheit (Spanifizierung): C-Arrays wurden im Rahmen der Bemühungen zur Behebung von
-Wunsafe-buffer-usage-Warnungen (crrev.com/c/6043879, Fehler: 378069401) vonstd::arraynachchrome/migriert. Striktesize_t-Verwendung in Spannenfunktionen implementiert (crrev.com/c/6026238, crrev.com/c/6020621). - Tests: Das Upstreaming von
{ref,crash}testsim Vollbildmodus wurde zuwpt_internal/zurückgeführt, datestdriversie jetzt unterstützt (crrev.com/c/6088404). - Tests: Der Fehler
wptrunnerfür iOS wurde behoben. Der ChromeDriver-Wrapper wird jetzt korrekt gefunden, wenn nicht standardmäßige Ausgabeverzeichnisse verwendet werden (z. B.//out/*-ios-wpt-fyi-rel/). Dazu wurde--build-directorykorrekt eingebunden (crrev.com/c/6014940, Fehler 374199289, Fehler 355218109). - Tests: Der
testBrowserCrashWhileWaitingForEvents-Integrationstest wurde hinzugefügt, um Regressionsfälle zu demonstrieren, in denen schwerwiegende Fehler von Clients unbemerkt bleiben (crrev.com/c/6025145, Fehler: 379049702). - Tests: Bestimmte WPTs, die bei der Ausführung unter
headless_shellin Kombination mit ChromeDriver abstürzen, wurden unterdrückt, um die Builder zu stabilisieren (crrev.com/c/6032163, Fehler: 377410086).
ChromeDriver 132
Neue Funktionen
- Tests: Unterstützung für die Befehlszeilenparameter
repeatundretry-limitfür ChromeDriver-Integrationstests hinzugefügt und den Standardargumentenisolated-script-test-repeatundisolated-script-test-launcher-retry-limitzugeordnet (crrev.com/c/5938195, Fehler: 374681919). Bei lokal ausgeführten Tests (nicht CI) wurde der Standardwert fürretry-limitin 0 geändert (crrev.com/c/5953326, Fehler: 374681919). - WebSockets:
WebSocketConnectionund zugehörige Klassen inEmbeddedTestServerwurden implementiert, sodass WebSocket-bezogene Tests vonSpawnedTestServermigriert werden können. Dazu gehören die Einrahmung gemäß dem Protokoll und die vereinfachte Handler-Registrierung (crrev.com/c/5849732, Fehler 40812029).
Diverse Fehlerkorrekturen
- Stabilität: Ein ChromeDriver-Absturz wurde behoben, der auftreten konnte, wenn ein Klickbefehl dazu führte, dass der Browser geschlossen wurde. Dazu wurde der in früheren Refactorings eingeführte Fehlerstatus
kTargetDetachedrichtig behandelt (crrev.com/c/5934524, Fehler: 42323264). - Stabilität: Ein zeitweiliger Absturz im
testClickNavigateRemoteToLocal-Integrationstest auf Mac ARM64 wurde behoben, indem eine Race-Bedingung aufgelöst wurde (crrev.com/c/5975526, Fehler: 375971185). - Navigation: Die Befehle
GoBackundGoForwardwurden korrigiert. Sie sind zuvor fehlgeschlagen, wennPage.getNavigationHistoryaufgerufen wurde, während das Dokument aus einem aktiven Zustand wechselte (was auf eine laufende Navigation hinweist). ChromeDriver wiederholt den Befehl in diesem Szenario jetzt korrekt (crrev.com/c/6011739, Fehler 378433873). - Ausführung von Scripts: Es wurde dafür gesorgt, dass Scripts, die eine Navigation auslösen oder ein Fenster schließen, korrekt einen Standardfehler vom Typ
ScriptTimeoutzurückgeben, wenn die Browserseite kein Ergebnis garantiert. Der Nutzer wird aufgefordert, mehrdeutige Teststrukturen zu vermeiden (crrev.com/c/5934265, Fehler: 372883701). - Skriptausführung: Ein Problem wurde behoben, bei dem die Protokollwiedergabefunktion mit dem Fehler „unexpected command response“ (crrev.com/c/5961142, Fehler: 42323342) fehlgeschlagen ist.
- Fehlercodes: Die Fehlerbehandlung von ChromeDriver wurde korrigiert, sodass nicht mehr alle Ausnahmen mit der Property „code“ in einen generischen „JavaScript-Fehler“ eingeschlossen werden. So werden Standardfehler wie „stale element reference“ (aus
call_function.js) und „invalid element state“ (aus der Selenium Atoms-FunktionCLEAR) korrekt an den Nutzer weitergegeben (crrev.com/c/5937893, Fehler: 42323409). Verbesserte Fehlerbehandlung inGetElementTagName, um fehlende Informationen zum Tagnamen korrekt als „object is not an Element“ (crrev.com/c/5929087) zu interpretieren. - BiDi: Es wurde ein Problem behoben, bei dem BiDi-Sitzungen nicht initialisiert werden konnten, wenn ein benutzerdefiniertes Nutzerprofil verwendet wurde. Die geladene Seite des benutzerdefinierten Profils kann verhindern, dass der BiDiMapper gestartet wird. ChromeDriver sorgt jetzt dafür, dass auf dem ersten Tab immer
data:,geladen wird, um eine saubere Grundlage für den Mapper zu schaffen (crrev.com/c/5960656, Fehler 366886096). - Inkognitomodus: Ein Fehler wurde behoben, der verhinderte, dass ChromeDriver im Inkognitomodus neue Tabs erstellt (crrev.com/c/5952980, Fehler: 42323352).
- Tests: Die Instabilität im
testScriptNavigateRemoteToLocal-Integrationstest wurde behoben (Fehlerrate: 8,33 %). Außerdem wurden C++-Integrationstests hinzugefügt, um den Fix für die Race-Bedingung zu reproduzieren und zu überprüfen (crrev.com/c/6010867, Fehler: 378387680). - Tests: Wir haben zahlreiche zuvor fehlerhafte Integrationstests auf Mac (
testWindowMinimize) und Windows (ChromeDownloadDirTest.testFileDownloadAfterTab,InvalidCertificateTest.*) sowie global (testShadowDomFindElement, Element-Screenshot-Tests) wieder aktiviert. Flakycss/css-scrollbars/WPT-Tests wurden vorübergehend von der Headless Shell zurück zur Content Shell verschoben (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).
Interne Änderungen und Refaktorierungen
- BiDi: Die
chromium-bidi-Mapper-Abhängigkeit wurde aktualisiert, um die neuesten Upstream-Korrekturen und Protokollupdates zu berücksichtigen (crrev.com/c/5953339, crrev.com/c/5865478, Fehler 4226). Hinweis: Eine Mapper-Aktualisierung wurde aufgrund von WPT-Fehlern kurzzeitig zurückgesetzt und anschließend wieder eingeführt (crrev.com/c/5961113). - Architektur: Die Verwendung des threadlokalen Sitzungsobjekts in ChromeDriver wurde minimiert, um Fehler durch die gemeinsame Nutzung von Status zwischen Tests zu verhindern und die explizite Sitzungsverwaltung zu vereinfachen (crrev.com/c/5978486, Fehler: 42323555). Die C++-Integrationstests wurden so umgestaltet, dass eine gemeinsame Testvorrichtung verwendet wird (crrev.com/c/5971474, Fehler 42323555).
- Bereinigung: Veraltete Workarounds, die sich auf den „alten monitorlosen“ Modus beziehen, wurden entfernt, da der alte
chrome-headless-shell-Code nicht mehr in Chrome vorhanden ist (crrev.com/c/5961602, Fehler: 42323387). - Bereinigung: Die ungenutzte Datei
java_tests.txtwurde entfernt. Sie war ein Überbleibsel der zuvor entfernten ChromeDriver-Akzeptanztests (crrev.com/c/5970994, Fehler: 357737793). - Tests: Es wurde ein C++-Integrationstest hinzugefügt, um zu prüfen, ob ChromeDriver nicht fälschlicherweise parallele Sitzungen mit demselben
user-data-direrstellt oder URLs zwischen Sitzungen weitergibt, was zu Instabilität führen könnte (crrev.com/c/5961137, Fehler: 375312517). - Tests: Es wurde dafür gesorgt, dass temporäre ChromeDriver-Instanzen, die durch Integrationstests gestartet werden, so schnell wie möglich heruntergefahren werden, um Ressourcen freizugeben (crrev.com/c/5997970, Fehler: 375974725).
ChromeDriver 131
Neue Funktionen
- BiDi: Die
chromium-bidi-Mapper-Abhängigkeit wurde auf Version 0.8.0 aktualisiert. Sie enthält die neuesten Protokollaktualisierungen und Fehlerkorrekturen (crrev.com/c/5899240, crrev.com/c/5865478, Fehler 4226). - DOM-Zugriff: Unterstützung für geschlossene Shadow Roots im Befehl
GetElementShadowRoothinzugefügt. Bisher wurde bei diesem Befehl der FehlerNoSuchShadowRootzurückgegeben, wenn versucht wurde, auf einen geschlossenen Shadow-Root zuzugreifen (crrev.com/c/5923865, Fehler: 372834222). - DOM-Zugriff: Unterstützung für Fenster- und Frame-IDs implementiert, sodass Verweise auf Fenster oder Frames (einschließlich OOP-Iframes) aus ausgeführten Skripts zur weiteren Dereferenzierung zurückgegeben werden können (crrev.com/c/5890437, crrev.com/c/5923555, Fehler: 366272556, Fehler: 40229283).
- WebAuthn: Die WebAuthn-Automatisierungs-API wurde um die Eigenschaften
userNameunduserDisplayNameerweitert (crrev.com/c/5905423, Fehler 367915823).
Diverse Fehlerkorrekturen
- Eingabe: Ein Race-Bedingung bei Mausklicks auf Remote-Frames wurde behoben, indem Mausereignisse an den höchsten Same-Origin-Vorgänger des Zielframes weitergeleitet werden, anstatt sie einfach an den obersten Frame zu senden (crrev.com/c/5836968, Fehler: 42323535).
- Eingabe: Das mit dem Befehl
Input.dispatchTouchEventgesendete Zeitstempelformat wurde von Millisekunden in Sekunden korrigiert. Dadurch werden Abstürze bei WPT-Zeigerereignistests behoben (crrev.com/c/5924253, Fehler: 360918166). - Tests: Zahlreiche ChromeDriver-Tests auf Mac (crrev.com/c/5923569, crrev.com/c/5922823, crrev.com/c/5921444, crrev.com/c/5920851, crrev.com/c/5921442) und Windows (crrev.com/c/5923955) wurden wieder aktiviert, da die zugehörigen Fehler nicht mehr reproduzierbar sind.
Interne Änderungen und Refaktorierungen
- Speichersicherheit (Spanifizierung): Die unsichere Verwendung von Zeigern in
net::HttpUtilwurde durchbase::spanersetzt (crrev.com/c/5854420) undbase::File::WriteAtCurrentPos()wurde zu seinem spanbasierten Äquivalent migriert (crrev.com/c/5818972). Die Werte für Kartenzeiger (z.B. instd::map,std::unordered_map) wurden inraw_ptrgeändert (crrev.com/c/5867189, Fehler: 329428315). - C++-Standards: Abseil-Attributmakros (
ABSL_ATTRIBUTE_*) wurden durch Standardmakros (base/) ersetzt (crrev.com/c/5852373). Unbeabsichtigte Kopien wurden vermieden, indem Pass-by-Value-Strings/-Vektoren durchstd::string_view- oder const-Referenzen ersetzt und überflüssigeconst-Qualifizierer ausstd::string_view-Argumenten entfernt wurden (crrev.com/c/5914620, crrev.com/c/5906184, Fehler 369952985). - Infrastruktur: Fuchsia wurde so konfiguriert, dass ChromeDriver zur Steuerung von
web-engineverwendet wird (crrev.com/c/5867896, Fehler: 40935291). - Tests: Ein WebAuthn-Test mit Fenced Frames wurde vom alten Content Shell-Runner zu Headless Chrome mit ChromeDriver migriert, da der alte Runner bald keine Unterstützung mehr für die WebAuthn-Testdriver API bietet (crrev.com/c/5920770, Fehler: 372169469).
ChromeDriver 130
Neue Funktionen
- BiDi: Die BiDi Mapper-Abhängigkeit wurde aktualisiert, um die neuesten Protokollupdates und Fehlerkorrekturen von Upstream abzurufen
chromium-bidi(crrev.com/c/5850570, Relanding crrev.com/c/5837065 nach dem Zurücksetzen crrev.com/c/5840080; crrev.com/c/5717956, Fehler 4226). - BiDi: ChromeDriver wurde aktualisiert, um
unhandledPromptBehaviordirekt über den Befehlsession.newan den Mapper zu senden, wenn eine BiDi-Sitzung initialisiert wird. Damit ist die Migration vonMapperOptionsabgeschlossen (crrev.com/c/5682934, crrev.com/c/5766077, Fehler 42323841, Fehler 356371297). - Tests: Dem
bisect-builds.py-Skript für Desktop-Builds wurde Unterstützung für das--chromedriver-Argument hinzugefügt. Dadurch kann das Skript während der Bisektion für WebDriver-/ChromeDriver-abhängige Tests automatisch die richtige Version von ChromeDriver herunterladen und verwenden (crrev.com/c/5861048, Fehler: 352344089).
Interne Änderungen und Refaktorierungen
- C++-Standards: Probleme mit der „Regel der fünf“ in verschiedenen Klassen behoben. Da das Chrome-Style-Plug-in auf Inline-Destruktoren besteht, ohne auch Inline-Move-Konstruktoren zu erzwingen, hat der Compiler Move-Operatoren implizit gelöscht und ist stillschweigend auf Kopien zurückgefallen. Diese fehlenden Deklarationen wurden hinzugefügt (crrev.com/c/5846757, Fehler: 364788123).
- Tests: Die Zusammenfassung der
wptrunner-Testergebnisse wurde bereinigt, indem der hartcodierte Stringchromedurch das tatsächlich verwendete Produkt ersetzt und das ausführlichecommand-Artefakt aus der Zusammenfassung ausgeblendet wurde (crrev.com/c/5825633, Fehler: 41494889). - Tests: Es wurden massive Testfehler in ChromeDriver-Integrationstests unter macOS 15 (Mac15) behoben, indem bestimmte Zeitüberschreitungen verdoppelt wurden, da Tests auf diesem Betriebssystem deutlich mehr Zeit als auf Mac14 benötigten. Vier virtuelle Sensortests wurden aufgrund von Instabilität ebenfalls der Ignorierliste hinzugefügt (crrev.com/c/5817455, Fehler: 354939744).
- Tests: Der instabile
ChromeDriverSiteIsolation.testClickNavigateLocalToLocal-Test wurde auf Mac deaktiviert (crrev.com/c/5806894, Fehler: 361521805) und die instabilenChromeDriverTest.testClickElement*ObscuredByScrollBar-Tests wurden unter Windows 11 deaktiviert (crrev.com/c/5804083, Fehler: 360058651). - Tests: Die ChromeDriver-Akzeptanztests wurden aufgrund mehrerer Infrastrukturprobleme entfernt. Bei diesen Tests wurden ältere Chrome-Versionen heruntergeladen, um sie mit dem aktuellen ChromeDriver zu testen. Sie können später mit Autoroll wieder in CI hinzugefügt werden (crrev.com/c/5812142, Fehler 357737793).
ChromeDriver 129
Neue Funktionen
- BiDi: Der Helfer für die ChromeDriver-Sitzungsinitialisierung wurde aktualisiert, um einen
session.new-Befehl an den BiDi-Mapper zu senden. So kann der Mapper Funktionen direkt verarbeiten. Dies ist der erste Schritt zur Entfernung vonMapperOptions(crrev.com/c/5741432, Fehler 356371297). Hinweis: Eine ähnliche Änderung crrev.com/c/5754093, die die verarbeiteteunhandledPromptBehaviorbereitstellte, wurde aufgrund eines Rückgangs der Testabdeckung zurückgesetzt crrev.com/c/5755744. - Compute Pressure: Es wurden neue Erweiterungsbefehle für die Verwaltung virtueller Druckquellen hinzugefügt, mit denen der Automatisierungsabschnitt der Compute Pressure-Spezifikation implementiert wird. Diese Befehle werden geparst und an die CDP-Ebene weitergeleitet (crrev.com/c/5666583, Fehler: 347031400).
- Erweiterungen MV2: Aktualisierte Tests, die das MV2-Verhalten ausüben, um die
ScopedTestMV2Enablerim Rahmen des laufenden Feldversuchs zur Einstellung von Extension Manifest V2 (crrev.com/c/5685054, Fehler: 339061151) zu verwenden.
Diverse Fehlerkorrekturen
- Klassische Serialisierung: Gesehene Objekte werden bei der Serialisierung eines
Setin den Ausführungsergebnissen von WebDriver Classic-Skripts erfasst. Dadurch werden Endlosschleifen verhindert und Überschreibungen vonArray.prototype.includestoleriert (crrev.com/c/5765833, Fehler 357472850). Hinweis: Dies wurde später aufgrund einer WPT-Regression crrev.com/c/5773175 rückgängig gemacht.
Interne Änderungen und Refaktorierungen
- BiDi: Die BiDi Mapper-Abhängigkeit wurde aktualisiert, um die neuesten Fehlerkorrekturen und Protokollupdates von
chromium-bidizu berücksichtigen (crrev.com/c/5756587, crrev.com/c/5717956, Fehler 4226). - Speichersicherheit (Spanification): Die unsichere Pufferverwendung in
WebSocketFrameParser::Decode,MaskWebSocketFramePayloadundWriteWebSocketFrameHeaderwurde durchbase::spanersetzt (crrev.com/c/5764863, crrev.com/c/5743019, crrev.com/c/5722108, Fehler: 40284755, Fehler: 354307327).#pragma allow_unsafe_bufferswurde inchrome/*hinzugefügt, um weitere Fehlerbehebungen vorzubereiten (crrev.com/c/5717950, Bug: 40285824). Außerdem wurden nicht konformeUNSAFE_BUFFERS()-Makros inUNSAFE_TODO()konvertiert (crrev.com/c/5786346). Diebase::span-Felder wurden inbase::raw_spanumgeschrieben (crrev.com/c/5515096, Fehler: 332587642). - C++-Standards: Die Verwendung gefährlicher Arrays variabler Länge (Variable-Length Arrays, VLAs) wurde aus der Codebasis entfernt, indem Arraylängen explizit als
constexprmarkiert wurden (crrev.com/c/5738737, Fehler 349656479). Die erforderlichen<unordered_map>-Header wurden eingefügt, die zuvor transitiv abgerufen wurden (crrev.com/c/5792881). - Architektur: Die
WebSocketEncoder-Implementierung wurde durch Zurücksetzen der ins Stocken geratenen Migration zu//services/network/public/cpp/serverund Zentralisieren der Logik in//net/serverwieder zusammengeführt, um konsistente Updates zu gewährleisten (crrev.com/c/5768214, Fehler 40205564).
ChromeDriver 128
Neue Funktionen
- Funktionen: Die Verwendung eines Dictionary für die
unhandledPromptBehavior-Funktion wurde zugelassen, um den Standardfunktionsstrukturen zu entsprechen. Der Mapper berücksichtigt dies jedoch noch nicht vollständig (crrev.com/c/5692204, crrev.com/c/5682934, Fehler: 42323841). - Startup: Das Befehlszeilenargument
--ignore-explicit-portwurde zu ChromeDriver hinzugefügt. Dieser temporäre Workaround zwingt ChromeDriver, jeden explizit angegebenen Port zu ignorieren und stattdessen einen kostenlosen Port zu suchen und daran zu binden. Dadurch werden TCP-Port-Races während der Testausführung von Webplattformtests behoben. Der Workaround soll nach M132 entfernt werden (crrev.com/c/5724574, crrev.com/c/5703976, Fehler 42323836).
Diverse Fehlerkorrekturen
- Sensoren: Der
ExecuteUpdateVirtualSensor-Befehl wurde so korrigiert, dassSendCommand()anstelle vonSendCommandAndGetResult()verwendet wird, da der CDP-BefehlsetSensorOverrideReadingskeinen Wert zurückgibt (crrev.com/c/5703589). - FedCM: Eine Race-Bedingung in FedCM-ChromeDriver-Tests wurde behoben, indem nicht mehr darauf bestanden wird, dass
NoSuchDialogzurückgegeben wird, wenn ein Dialogfeld erwartet wird. Dadurch werden Fehler verhindert, wenn das Dialogfeld zu schnell angezeigt wird (crrev.com/c/5713515, Fehler: 346530330). - Tests: WebAuthn-Tests für virtuelle Authentifikatoren auf Mac wurden wieder aktiviert, nachdem das zugrunde liegende Problem (crbug.com/40233722) behoben wurde (crrev.com/c/5635806, Fehler: 329130177).
- Fehlermeldungen: Ein Tippfehler in der Fehlermeldung für den Befehl
execute/asyncwurde behoben (crrev.com/c/5697913).
Interne Änderungen und Refaktorierungen
- BiDi: Die Abhängigkeit von BiDi Mapper wurde aktualisiert, wodurch die neuesten Protokollfunktionen, Fehlerkorrekturen und WPT-Erwartungsupdates aus dem Upstream-Projekt
chromium-bidiübernommen wurden (crrev.com/c/5717956, crrev.com/c/5644823, crrev.com/c/5630727, crrev.com/c/5615110, crrev.com/c/5614670, Fehler 4226, Fehler 347863537, Fehler 324436866). - Die Verwendung der eingestellten Methode
GrowableIOBuffer::StartOfBufferwurde durchspanersetzt. Dadurch wird die Speichersicherheit verbessert, da ungeprüfte Zeiger entfernt werden (crrev.com/c/5706088, Fehler: 329476354). - Die
Decode-Methoden vonWebSocketFrameParserwurden spanifiziert, um die Speichersicherheit zu verbessern (crrev.com/c/5722108, Fehler: 354307327). - Die verbleibenden Überreste von
absl::optionalwurden entfernt, indem veraltete Abseil-Header entfernt und zustd::optionalmigriert wurde (crrev.com/c/5691505, Fehler: 40242125). - ChromeDriver wurde so geändert, dass alle unbekannten Zieltypen (einschließlich
shared_storage_worklet) alsWebViewInfo::kOtherbehandelt werden, anstatt als Fehler. So können in Chrome neue Zieltypen eingeführt werden, ohne dass WPTs sofort unterbrochen werden (crrev.com/c/5680542, crrev.com/c/5679146, Bug: 42323839). - Ein Installationsziel für den
linux-builder-perf-Builder wurde hinzugefügt, um symbolbereinigte Binärdateien für Bisect-Archive zu generieren. Außerdem wurden Pinpoint-Builder so konfiguriert, dass sie unterschiedlicheadditional_compile_targetsakzeptieren (crrev.com/c/5668198, Fehler 344643694). run_performance_tests.pywurde aktualisiert, um den ChromeDriver-Speicherort zu finden und ancrossbenchzu übergeben (crrev.com/c/5624538, Fehler 338629299).- Die
crossbench-Abhängigkeit wurde aktualisiert (crrev.com/c/5681849). FedCmSpecificTest.testClickErrorMoreDetailsundFedCmSpecificTest.testClickErrorGotItauf Mac als instabil markiert (crrev.com/c/5704320, crrev.com/c/5677564, Bug: 352821422, Bug: 346530330).- Der instabile
BidiTest.testFocusInFirstTab-Test wurde deaktiviert (crrev.com/c/5676686, Fehler: 350916212).
ChromeDriver 127
Diverse Fehlerkorrekturen
- Stabilität: Ein ChromeDriver-Absturz wurde behoben, der auftrat, wenn ein
target.detachFromTarget-Befehl (oder eintarget.detachedFromTarget-Ereignis) empfangen wurde, während der Entwicklertools-Client andere Befehle verarbeitete. Dadurch wurde die vorzeitige Freigabe der ObjekteWebViewundDevToolsClientverhindert (crrev.com/c/5527584, Fehler 339773537). - Stabilität: Es wurde ein Problem behoben, bei dem der Befehl
Switch To Windowfälschlicherweise einen „unbekannten Fehler“ zurückgeben konnte, wenn eine Webansicht während der Befehlsausführung getrennt wurde. Der interne Fehler „Webansicht nicht gefunden“ wird jetzt korrekt ignoriert, was zu einer Standardantwort „no such window“ führt, wenn das Zielfenster tatsächlich geschlossen wurde (crrev.com/c/5583730, Fehler: 338616700). - Stabilität: ChromeDriver toleriert jetzt das Trennen von Zielen beim Aktualisieren der internen WebView-Liste. Wenn ein Ziel während des Updates getrennt wird, versucht ChromeDriver es jetzt noch einmal, anstatt einen nicht standardmäßigen Fehler zurückzugeben. Dadurch wird die Instabilität in Umgebungen verringert, in denen Fenster schnell erstellt und geschlossen werden (crrev.com/c/5565103, Fehler 338616700, Fehler 4771).
- Navigation: ChromeDriver wurde um eine Logik erweitert, die darauf wartet, dass eine vom Remote-Ende erkannte Navigation abgeschlossen ist, bevor nach Elementen gesucht wird. Dadurch wird verhindert, dass ChromeDriver einen nicht standardmäßigen Fehler zurückgibt oder mit einem
DCHECKabstürzt, wenn eine Navigation mit einem Elementvorgang zusammenfällt (crrev.com/c/5563113, Reverting crrev.com/c/5563420, relanding crrev.com/c/5562089, Bug: 4771). - BiDi: Es wurde ein Race-Bedingung zwischen ChromeDriver und BiDiMapper beim Erstellen von Sitzungen behoben. ChromeDriver wartet jetzt darauf, dass der Befehl
browsingContext.getTreeeine nicht leere Liste zurückgibt, bevor der Befehl „NewSession“ abgeschlossen wird. So wird sichergestellt, dass der neu erstellte Standardtab ordnungsgemäß registriert wird (crrev.com/c/5575497, Fehler 341048786, Fehler 1503101). - BiDi: Ein Problem wurde behoben, bei dem der Fokus nach dem Erstellen einer Sitzung im Hintergrundtab des BiDiMapper verblieb, anstatt auf den aktiven Nutzertab zu wechseln. Dazu wurde dem ersten Nutzertab explizit der Fokus zugewiesen (crrev.com/c/5594070, Fehler 341048786, Fehler 1503101).
- BiDi: ChromeDriver versucht nicht mehr, ein Ziel anzuhängen, wenn BiDi-Befehle (z. B.
browsingContext.close) verarbeitet werden. So wird verhindert, dass CDP-Befehle auf unbestimmte Zeit blockiert werden, wenn eine Nutzeraufforderung geöffnet ist. Die Verarbeitung wird vollständig an die bereits verbundene BiDi-Ebene delegiert (crrev.com/c/5541915, Rückgängigmachen von crrev.com/c/5539818, erneutes Einfügen von crrev.com/c/5522393, Fehler 4758). - FedCM: Der
fedcm-loginhint.https.html-WPT-Testfehler wurde behoben, bei dem ein Dialogfeld fälschlicherweise als geschlossen markiert wurde. Der Status wird jetzt nur aktualisiert, wenn derselectAccount-Vorgang tatsächlich erfolgreich ist (crrev.com/c/5398379, Fehler: 331237776). - Testen: Ein
DCHECK-Fehler beim Parsen von JSON wurde behoben, wenn ein Zeichen genau diekExtendedASCIIStart-Grenze erreichte (crrev.com/c/5565276, Fehler: 40284755). - Tests: Der
scrollend-event-fires-to-iframe-window.html-WPT-Test wurde korrigiert, indem das iframe-Element als Scrollursprung verwendet und die Eingaben für die Zeigerbewegung auf ganze Zahlen gerundet wurden. So werden ChromeDriver-Fehler bei Touch-Positionen mit Dezimalstellen verhindert (crrev.com/c/5570150, Fehler: 340956654). - Tests: Verbesserte Diagnose in ChromeDriver-Integrationstests durch Ausgeben der versuchten Pfade, wenn
run_py_tests.pydas Browser-Binärprogramm nicht finden kann (crrev.com/c/5604204, Fehler 4781).
Interne Änderungen und Refaktorierungen
- BiDi: Die BiDi Mapper-Abhängigkeit wurde aktualisiert, um den neuesten Protokoll-Updates und Fehlerkorrekturen zu entsprechen (crrev.com/c/5614670, crrev.com/c/5593796, crrev.com/c/5537892, crrev.com/c/5471839, Fehler 4226).
- Die Verwendung von
NOTREACHED()wurde im Verzeichnischrome/durchNOTREACHED_IN_MIGRATION()ersetzt, umNOTREACHED()ausschließlich[[noreturn]]zu machen (crrev.com/c/5539004, Fehler: 40580068). - Die Generierung von
THIRD_PARTY_NOTICES.txtfür ChromeDriver wurde mit dem Toollicenses.pyaktiviert, um den Verteilungsanforderungen zu entsprechen (crrev.com/c/5596355, Fehler 4777). - Die
run_wpt_tests.py-Unterstützung fürcontent_shellwurde entfernt, da die WPT-Abdeckung von Chromium vollständig aufheadless_shell+ ChromeDriver umgestellt wird (crrev.com/c/5589930). Diewptrunner-Schalter wurden neu organisiert, um diese Änderung ohne funktionale Auswirkungen zu berücksichtigen (crrev.com/c/5589793, Fehler: 338412391). - Die Logik für die Erkennung und Verarbeitung von JavaScript-Dialogfeldern wurde konsolidiert, indem sie von
JavaScriptDialogManagerdirekt inDevToolsClientImplverschoben wurde. Dadurch entfällt die separate Manager-Klasse, was Tests und die Fehlersuche vereinfacht (crrev.com/c/5545630, Fehler 4757). PureBidiTest.testBrowsingContextTreeIsNotEmptyauf dem Mac wurde aufgrund von Instabilität deaktiviert (crrev.com/c/5588665, Fehler: 343891977).- Die BiDi-WPT-Erwartungen wurden aktualisiert, um den jüngsten Mapper-Updates Rechnung zu tragen (crrev.com/c/5615110, Bug: 4226, Bug: 324436866).
- Es wurden Unit-Tests für
WebView::SendBidiCommandundBidiTrackerhinzugefügt, um die Codeabdeckung zu erhöhen (crrev.com/c/5588400, Fehler: 341048786, Fehler: 1503101).
ChromeDriver 126
Neue Funktionen
- BiDi: ChromeDriver wurde aktualisiert, um den Schalter
--disable-background-timer-throttlingbeim Starten des Browsers für eine WebDriver BiDi-Sitzung bereitzustellen. Dadurch wird verhindert, dass Hintergrundtabs gedrosselt werden (crrev.com/c/5515013, Fehler 4762). - BiDi: Unterstützung für den BiDi Mapper wurde hinzugefügt, um Debugging-Meldungen (
sendDebugMessage) zu senden, wenn ausführliches Logging erforderlich ist. ChromeDriver markiert diese Ereignisse alsbidi messagesfür die Verarbeitung, obwohlBidiTrackersie derzeit ignoriert (crrev.com/c/5465782, Fehler 4753). - Klassisch: Die automatische Annahme aller
beforeunload-Dialogfelder (Warnungen) wird implementiert. Dies entspricht dem WebDriver-Standard, der vorschreibt, dass sie niemals in einer klassischen Sitzung angezeigt werden dürfen (crrev.com/c/5517510, Fehler 4757).
Diverse Fehlerkorrekturen
- Klassisch: Die redundante Begrenzung der maximalen Anzahl von Versuchen in der Logik zum Abrufen von Elementen wurde entfernt. Der Abruf ist jetzt nur noch durch das implizite Zeitlimit begrenzt. So werden Szenarien verhindert, in denen der Vorgang vorzeitig fehlschlagen und fälschlicherweise ein nicht standardmäßiger
NoSuchExecutionContext-Fehler zurückgegeben werden konnte (crrev.com/c/5478668, Fehler 4379). - Klassisch: Es wurde ein Regressionsfehler behoben, der dazu führte, dass ChromeDriver mit einem
javascript error- anstelle einesinvalid selector-Fehlers reagierte, wenn bei einer Abrufanfrage eine ungültige Standortstrategie verwendet wurde (crrev.com/c/5490662, Fehler 4743). - Klassisch: Fensterbefehle unter Android (Maximieren, Minimieren, Vollbild) geben jetzt den standardkonformen
unsupported operation-Fehler zurück, anstatt fortzufahren, da diese Aktionen vom Android-Browser nicht unterstützt werden (crrev.com/c/5490224, Fehler 4689). - Klassisch: Der interne Fehlercode
kChromeNotReachablewird von ChromeDriver nicht mehr zurückgegeben. Stattdessen wird jetzt der StandardfehlerkSessionNotCreatedzurückgegeben, wenn der HTTP-Client keine Verbindung zum Browser herstellen kann (crrev.com/c/5476390, Fehler 4379). - Klassisch: Der ChromeDriver gibt bei der Ausführung von Fensterbefehlen nie den nicht standardmäßigen Fehler
kNoSuchExecutionContextzurück (crrev.com/c/5483606, Fehler 4379). - Klassisch: Der ungenutzte und nicht unterstützte Fehlercode
kForbiddenwurde aus der Liste der unterstützten Fehlercodes entfernt (crrev.com/c/5476927, Fehler 4379). - BiDi: Der ChromeDriver wurde aktualisiert, sodass der Nutzer vor dem Schließen des dedizierten Mapper-Tabs aufgefordert wird, die Aktion zu bestätigen. Dies entspricht den Upstream-Änderungen in
chromium-bidi(crrev.com/c/5508600, Fehler 4761).
Interne Änderungen und Refaktorierungen
- BiDi: Die BiDi Mapper-Abhängigkeit wurde aktualisiert, um die neuesten Funktionen und Fehlerkorrekturen aus dem Upstream-Projekt
chromium-bidizu übernehmen (crrev.com/c/5490428, crrev.com/c/5471839, crrev.com/c/5509316, crrev.com/c/5458234, Fehler 4226). Hinweis: Eine Mapper-Aktualisierung wurde kurzzeitig von einem Gardener zurückgesetzt und dann wieder eingefügt (crrev.com/c/5374839, crrev.com/c/5374366). - Die Verwendung von
base::StringPiecewurde in//chromedurchstd::string_viewersetzt (crrev.com/c/5467746, Fehler 40506050). - Die Verwendung von
std::to_string()in//chromewurde entfernt und durchbase::NumberToString()oderbase::FormatNumber()ersetzt (crrev.com/c/5505593, Fehler: 335672557). - Die Unterstützung für den Schalter
--remote-debugging-addressim alten monitorlosen Modus wurde entfernt, da der ungeschützte Remotezugriff auf das Chrome-Entwicklertools-Protokoll als zu gefährlich eingestuft wurde (crrev.com/c/5512634, Fehler: 327558594). - Fuchsia-Build-Regeln wurden aus
//chromeentfernt, mit Ausnahme von ChromeDriver (crrev.com/c/5473870, Fehler: 41481724). - Die alten
TODO(crbug.com/...)-Verweise im gesamten Code wurden zum neuen Format für die Problemtracker-ID (TODO(b/...)) migriert (crrev.com/c/5492605, crrev.com/c/5486477, crrev.com/c/5461380, Bug: 321899722). - WebAuthn-Tests (Authenticator) auf dem Mac wurden sowohl für Headless als auch für
chromedriver_py_testsdeaktiviert. Grund dafür ist ein komplexer zugrunde liegender Fehler, der das Upgrade von Bots auf macOS 14 blockiert (crrev.com/c/5525435, crrev.com/c/5518820, Fehler: 329130177). - WPT-Builder für
content_shellwurden deaktiviert, da es schwierig ist, WPTs mit ChromeDriver und Content Shell gleichzeitig auszuführen (crrev.com/c/5512439, Fehler: 40214293). - Eine Änderung wurde wieder eingeführt, durch die
focus-navigation-WPTs aktualisiert werden, sodassShift+Tabübertest_driver.action_sequence()für die Rückwärtsnavigation verwendet wird. Ein Fehler infocus-utils.jswurde behoben, bei dem der falsche Tastencode (E050anstelle vonE008) für die Umschalttaste verwendet wurde (crrev.com/c/5467843, Rückgängigmachen von crrev.com/c/5466531, erneutes Einfügen von crrev.com/c/5463903, Fehler 40597271). crossbenchundchromedriverwurden den Leistungs-Build-Zielen hinzugefügt (crrev.com/c/5521874, Fehler 338627700).
ChromeDriver 125
Neue Funktionen
- Geräteposition: Es wurden ChromeDriver-Befehle für die Verwaltung der Geräteposition hinzugefügt, die den Automatisierungsabschnitt der Spezifikation für die Geräteposition unterstützen. Dadurch kann die vom Gerät festgelegte Hardware-Position überschrieben und die Überschreibung über Erweiterungsbefehle entfernt werden (crrev.com/c/5437993, Fehler: 330376761).
Diverse Fehlerkorrekturen
- BiDi: Die Zwischenspeicherung des eingehenden BiDi-Befehls
idwurde vonDoubleinbase::Valuegeändert. So wird sichergestellt, dassidin der Antwort genau zurückgegeben wird, ohne dass nach der JSON-Serialisierung ein unerwarteter nachgestellter Dezimalpunkt oder Bruchteil vorhanden ist (crrev.com/c/5444225, Fehler 4676). - FedCM: Die Änderung zur Aktivierung von CORS am ID-Assertion-Endpunkt wurde nach der Fertigstellung der IDPs wieder eingeführt (crrev.com/c/5440132, Rückgängigmachen von crrev.com/c/5381316, Wiedereinführung von crrev.com/c/5370086, Fehler: 40284123).
- FedCM: Ein Fehler wurde behoben, bei dem ein Dialogfeld fälschlicherweise als geschlossen markiert wurde. Das Dialogfeld wird jetzt nur noch als geschlossen markiert, wenn der Befehl
selectAccounterfolgreich ausgeführt wird. Dadurch werden Testfehler behoben, wennselectAccountohne erwartete Kontoauswahl aufgerufen wird (crrev.com/c/5398379, Fehler 331237776). Der Aufruf vonfedcm_get_and_select_first_accountwurde vermieden, wenn keine Kontoauswahl erwartet wird, um diesen Fehler nicht auszulösen (crrev.com/c/5398800). - Tests: Ein Fehler im
popover-light-dismiss.html-WPT-Test wurde behoben, indem Aktionssequenzen kombiniert und das Dokument des Hauptframes als Ursprung für diepointerUp-Aktion verwendet wurde. Dadurch wird verhindert, dass ChromeDriver fälschlicherweise gleichzeitigepointerUp-Ereignisse über Frames hinweg sendet (crrev.com/c/5402096, Fehler: 325981758). - Tests:
wptrunnerwurde korrigiert, um diestderr-Ausgabe (einschließlich der Browserprotokolle, die bei Verwendung von--enable-chrome-logsgeschrieben werden) an dasstderr-Artefakt anstelle voncrash_logweiterzuleiten. Außerdem wurden Harness-Fehler (die den Browser-Stacktrace enthalten) nachcrash_logverschoben (crrev.com/c/5437023, Fehler: 41494889). - Testen: Das Problem, dass Browserlogs durch Gruppieren der Ausgabe nach dem ChromeDriver-Prozess an das richtige Testartefakt weitergeleitet werden, wurde behoben. Dadurch werden verschachtelte und verwaiste Logs bei der parallelen Testausführung verhindert (crrev.com/c/5320681, Fehler 41494889).
wptrunner
Interne Änderungen und Refaktorierungen
- BiDi: Die BiDi Mapper-Abhängigkeit wurde aktualisiert, um die neuesten Protokollverbesserungen und Fehlerkorrekturen zu integrieren (crrev.com/c/5433300, crrev.com/c/5393442, Fehler 4226). Hinweis: Eine frühere Erhöhung crrev.com/c/5374366 wurde zurückgesetzt crrev.com/c/5374839 und anschließend mit deaktivierten instabilen Tests und aktualisierten Lizenzen crrev.com/c/5374914 neu eingeführt.
- Diagnose: Die
StackTracevon Chrome wurde in ChromeDriver-Ausnahmen integriert. Dadurch wird der Browser-Stacktrace in der Fehlermeldung angezeigt, wenn eine Sitzung aufgrund eines Seiten-/Tab-Absturzes gelöscht wird (z. B. hängende Zeiger auf dem Mac). Dies verbessert die Debugging-Möglichkeiten erheblich (crrev.com/c/5374371, Fehler: 330009945). - Tests: Der instabile Integrationstest
testTakeLargeElementViewportScreenshotwurde auf dem Mac (insbesonderemac-arm64) vorübergehend deaktiviert (crrev.com/c/5447515, Fehler 333826980). - Tests: Die ChromeDriver-Startargumente in Testumgebungen (CEL) wurden aktualisiert, damit sie der Selenium 4+-Syntax entsprechen (crrev.com/c/5448812, Fehler: 308885357).
- Testen: Die genaue
chrome-Befehlszeile, die zum Ausführen der einzelnen WPT-Tests verwendet wurde, wurde aus demchromedriver-Log in ein ResultDB-Artefakt mit dem Namencommandextrahiert. Das erleichtert das manuelle Debugging mitrun_blink_wptserve.py(crrev.com/c/5441189, Fehler: 41494889). - Abhängigkeiten:
Closurewurde aus der Abhängigkeitsliste vonselenium-atomsentfernt und somit auch aus den Drittanbieterhinweisen von ChromeDriver (crrev.com/c/5424804, Fehler 4226). - Abhängigkeiten: Nicht verwendete Abhängigkeiten von
dynamic_annotationsim Basis-Repository wurden entfernt (crrev.com/c/3398908, Fehler 1282422). - Formatierung: Die neue
clang-format-Konfiguration wurde auf problematische Windows-Header angewendet (crrev.com/c/5367127, Fehler: 329138753).
ChromeDriver 124
Neue Funktionen
- BiDi: Es wurde ein Build-Schritt hinzugefügt, um das
BiDiMapper-Script zu minimieren, bevor es in ChromeDriver eingebettet wird, da der Source Mapper jetzt unminifiziert von CIPD heruntergeladen wird (crrev.com/c/5310075, Fehler 4226). - WebAuthn: Der Befehl
SetCredentialPropertieswurde hinzugefügt, mit dem Clients die Sicherungsflags für Anmeldedaten für WebAuthn aktualisieren können (crrev.com/c/5296389, Fehler: 40945430). - WebAuthn: WebAuthn-Backup-Flags über WebDriver verfügbar gemacht, indem dem Befehl „Virtuellen Authenticator hinzufügen“
defaultBackupEligibilityunddefaultBackupStateund dem Befehl „Anmeldedaten hinzufügen“backupEligibilityundbackupStatehinzugefügt wurden (crrev.com/c/5297117, Fehler 40945430). - Tests: Unterstützung für das Befehlszeilenargument
--failfastfür ChromeDriver-Python-Integrationstests hinzugefügt. Der Testlauf wird beim ersten Fehler beendet, um das Debugging zu erleichtern (crrev.com/c/5374546). - Testen: Unterstützung für die Content-Shell für den
SetRPHRegistrationMode-Webdriver-Befehl übertestdriver-vendor.js-APIs hinzugefügt (crrev.com/c/5205730, Fehler 1359103).
Diverse Fehlerkorrekturen
- Stabilität: Die Prüfung des Zeitüberschreitungsablaufs wurde in
ChromeImpl::SetWindowBoundsin den Hauptteil der Poll-and-Wait-Schleife verschoben. Damit wird ein Problem behoben, bei dem das Zeitlimit bei hoher Last ablaufen konnte, bevor die erste Schleifeniteration erfolgte (crrev.com/c/5366899, Fehler 4642). - Leistung: Die Wartezeit in
ChromeImpl::SetWindowBoundswurde minimiert, indem nur dann eine exponentielle Backoff-Wartezeit angewendet wird, wenn die Fenstergrenzen noch nicht den gewünschten Zustand erreicht haben. Dadurch wird die WPT-Einrichtungsverzögerung reduziert (crrev.com/c/5366457, Fehler 4642). - Start: ChromeDriver wurde aktualisiert, sodass beim Angeben des Datenverzeichnisses für
content_shell--user-data-diranstelle von--data-pathverwendet wird. Dies entspricht der Art und Weise, wie der aktive Entwicklertools-Port gelesen wird (crrev.com/c/5226609, Fehler 1295373).
Interne Änderungen und Refaktorierungen
- BiDi: Die BiDi Mapper-Abhängigkeit wurde aktualisiert, um die neuesten Protokollkorrekturen und ‑funktionen zu berücksichtigen (crrev.com/c/5374366, crrev.com/c/5349491, crrev.com/c/5317650, Bug: 4226). Hinweis: Eine Erhöhung wurde aufgrund von Testfehlern kurzzeitig zurückgesetzt und dann wieder eingeführt(crrev.com/c/5374839, crrev.com/c/5368680, crrev.com/c/5319423).
- Die Verwendung von
absl::optionalwurde in der gesamten Codebasis durchstd::optionalersetzt, nachdemabsl::optionalzu einem Typalias umgestellt wurde (crrev.com/c/5296147, Fehler 1500249). - Die
MiraclePtr-Abdeckung (raw_ptr) wurde auf zusätzliche Standardcontainer wiestd::list,std::unordered_set,base::flat_set,std::stackundstd::queueerweitert (crrev.com/c/5306923, Fehler: 325302189). WriteBigEndian()wurde so umgestellt, dassbase::numerics-Byte-Conversions oderBigEndianWriterverwendet werden (jetzt wirdbase::spanakzeptiert). Dadurch wird die Sicherheit beim Schreiben von Big-Endian-Bytes verbessert (crrev.com/c/5202348, Fehler 1490484).- ChromeDriver wird jetzt verwendet, um Web Platform Tests (WPT) mit
content_shellauszuführen (ausgenommen virtuelle Tests und Reftests, die auf Upstream-Fehlerkorrekturen warten) (crrev.com/c/5347371, Fehler: 40214293). - Alle vorhandenen Webtests für generische Sensoren wurden so umgestellt, dass
test_driver.jsund virtuelle Sensoren anstelle von JS-/Mojo-Mocks verwendet werden. Dies entspricht dem neuen Automatisierungsabschnitt der Spezifikation für generische Sensoren (crrev.com/c/4770867, Fehler 1278377, Fehler 1471996). - Die Lizenzgenerierung wurde verbessert, indem
append_notices.pyhinzugefügt wurde, um Quellenangaben fürBiDiMapper-Abhängigkeiten zu generieren, und derlicenses.py-Aufruf aktualisiert wurde, um sich ausschließlich auf dieselenium-atoms-README für Hinweise von Drittanbietern zu verlassen (crrev.com/c/5350601, crrev.com/c/5339957, Fehler 4729, Fehler 4735).
ChromeDriver 123
Neue Funktionen
- FedCM: Modale Dialogfelder für Abläufe mit Schaltflächen für einzelne Konten werden angezeigt. Außerdem wird die Unterstützung für modale Ansichten in der Automatisierungsschnittstelle hinzugefügt (crrev.com/c/5231438, Fehler 1518356).
- FedCM: ChromeDriver-Unterstützung für das Öffnen von Links in FedCM-Dialogfeldern implementiert, die zur Vereinfachung der Automatisierung als Schaltflächen behandelt werden (crrev.com/c/5225543, Fehler 1513520).
- Sensoren: Die virtuellen WebDriver-Sensorbefehle wurden so geändert, dass sie Euler-Winkel (Alpha-Beta-Gamma) anstelle von Quaternionen lesen. Damit wird den aktuellen Updates der Spezifikation für Orientierungssensoren entsprochen. Interne CDP- und Dienstebenen verwenden weiterhin Quaternione über einen Konvertierungsschritt (crrev.com/c/5229177, Fehler 1506995, Fehler 1520912, Fehler 1520919).
Diverse Fehlerkorrekturen
- Klassisch: Es wurde ein Problem behoben, bei dem die Rückgabe eines Knotens aus einem anderen Frame über ein Skript fälschlicherweise zu einem
StaleElementReference-Fehler führte. Jetzt wird korrekt einJavaScriptErrorzurückgegeben, um dem WebDriver-Standard zu entsprechen (crrev.com/c/5222746, Fehler 4668). - Tests: Ein Test für Overscroll-Ereignisse wurde korrigiert, der in Chrome/ChromeDriver fehlgeschlagen war, weil der Touch-Drag über die Fenstergrenzen hinausging. Der Drag ist jetzt richtig begrenzt (crrev.com/c/5297676, Fehler: 40832230).
- Tests: Die
open-close.https.html-MIDI-Tests wurden korrigiert, sodass keine unnötigen Zusagen erstellt werden. Dadurch werden nicht behandelte Zusagenablehnungen vermieden, die dazu führten, dass ChromeDriver den Test nicht bestanden hat (crrev.com/c/5239869, Fehler 1499775). - Tests: Das Berechtigungssatz in
wpt_internal/system-wake-lock/idlharness*-Tests wurde korrigiert, in denentest_driver.set_permission(...)fälschlicherweisefalseanstelle vonnulloderWindowProxyübergeben hat, was zu Verwirrung bei ChromeDriver geführt hat (crrev.com/c/5271087, Fehler: 40287920).
Interne Änderungen und Refaktorierungen
- BiDi: Die BiDi Mapper-Abhängigkeit wurde aktualisiert, um die neuesten Fehlerkorrekturen und Funktionen zu erhalten (crrev.com/c/5205452, crrev.com/c/5255321, crrev.com/c/5238148, crrev.com/c/5237125, Fehler 4226). Hinweis: Ein Bump wurde aufgrund von Build-Fehlern crrev.com/c/5238855 kurzzeitig zurückgesetzt und dann wieder angewendet.
- Die Codequalität von ChromeDriver wurde verbessert, indem unsichere statische Umwandlungen von einer Basisklasse in eine abgeleitete Klasse in
ChromeImplundDevToolsClientImplentfernt wurden. Dadurch wird potenziell undefiniertes Verhalten verhindert (crrev.com/c/5277062, crrev.com/c/5272562, Bug: 4702). - Unsichere Casts in
WebViewImplwurden entfernt (crrev.com/c/5272230, Fehler 4702). - Die eingestellten Formen von
base::Base64Encode()wurden entfernt und zur neuerenstd::string-Rückgabevariante migriert, anstatt Out-Parameter zu verwenden (crrev.com/c/5179900, crrev.com/c/5246585, Bug: 1486214). - Alle
#include-Anweisungen fürbase/...wurden aktualisiert, damit""anstelle von<>verwendet wird (crrev.com/c/5237376, Fehler 1500249). - Alle
DIR_METADATA-Dateien inchrome/test/wurden zu Buganizer migriert (crrev.com/c/5284119, Bug: 1518875). - Verhindert, dass wptrunner eine lokale
--Datei erstellt, wenn-vvvübergeben wird, indem der unnötige Schalterchromedriver --log-path=-entfernt wird, da stderr bereits zu stdout umgeleitet wird (crrev.com/c/5282721). - wptrunner wurde verbessert, um Testergebnisse zusammenzufassen, wenn Regressionen auftreten. Dazu gehören auch Untertestergebnisse und ChromeDriver-Stacktraces direkt in der Zusammenfassungsausgabe (crrev.com/c/5238662, Fehler 1521922).
- Vereinfachtes Debugging von ChromeDriver-Integrationstests durch Einführung des Parameters
--remote-chromedriver-portfürrun_py_tests.py, der die Verbindung zu einer vorhandenen Instanz ermöglicht, die unter einem Debugger ausgeführt wird (crrev.com/c/5237254, Fehler 4693). - Aufrufe von
base::HexEncode()undRandBytes()mit zwei Argumenten wurden vermieden, damit der Compiler die richtige Größe ableiten kann. Dadurch wird der Code vereinfacht (crrev.com/c/5241357).
ChromeDriver 122
Diverse Fehlerkorrekturen
- BiDi: Die Serialisierung von Deep Nodes wurde aktualisiert, um
loaderIdeinzuschließen. Dadurch können ChromeDriver und der BiDi-Mapper Knoten richtig referenzieren und dereferenzieren, ohne dass es zu vielen Roundtrips kommt (crrev.com/c/5116240, Fehler 1420968). - Funktionen: ChromeDriver wurde aktualisiert, sodass die
acceptInsecureCerts-Funktion sofort beim Start an den BiDi-Mapper übergeben wird. Dadurch werden Race-Bedingungen verhindert, bei denen die Funktion möglicherweise zu spät angewendet wird (crrev.com/c/5125711, Fehler 4643). - Klassisch: Die Generierung von Elementreferenzen wurde neu konzipiert, um das
<frame_id>.<loader_id>.<backend_node_id>-Format zu verwenden. Dadurch kann ChromeDriver bei Frame-Navigationen und DOM-Aktualisierungen eindeutig zwischen gültigen, unbekannten und veralteten Elementreferenzen unterscheiden (crrev.com/c/5094519, Fehler 4379). - Klassisch: Ein Problem wurde behoben, bei dem der Befehl
window/handlesmit dem Fehler „no such window“ (kein solches Fenster) fehlschlagen konnte, wenn ein neu erstelltes Ziel geschlossen wurde (z.B. bei einer Race-Bedingung), bevor ChromeDriver daran angehängt werden konnte (crrev.com/c/5147409, Fehler 1506833). - FedCM: Ein interner Event-Listener wurde hinzugefügt, um zu benachrichtigen, wenn ein FedCM-Dialogfeld geschlossen wird. So wird verhindert, dass der
dialogtype-Befehl veraltete Daten zurückgibt, wenn das Dialogfeld extern geschlossen wurde (z. B. überAbortController.abort) (crrev.com/c/5067504, Fehler 1506292). - FedCM: Das Anbieterpräfix wurde aus dem Befehl
ClickDialogButtonentfernt, da es jetzt in der FedCM-Spezifikation genehmigt wurde (crrev.com/c/5092527, Fehler 1499341).
Interne Änderungen und Refaktorierungen
- BiDi: Die BiDi Mapper-Abhängigkeit wurde auf die neueste Version aktualisiert (crrev.com/c/5205452, Fehler 4226).
- Der ChromeDriver- und Chrome DevTools Protocol-Traffic (CDP) wurde reduziert, indem redundante
Page.enable-Aufrufe entfernt wurden, die von jedemDevToolsEventListenergesendet wurden, daDevToolsClientImpldies bereits pro Ziel übernimmt (crrev.com/c/5088789, Fehler 4600). - Alle Wptrunner-Builder für
content_shellwurden auf experimentell gesetzt, da das Ausführen von Tests im Protokollmodus derzeit nicht vollständig unterstützt wird, während die ChromeDriver-Integration läuft (crrev.com/c/5225148, Fehler 1474702). - Übersprungene Tests, für die
window.test_driver_internal.get_computed_roleaufcontent_shellerforderlich ist, da sie noch nicht implementiert ist. Dadurch werdenTypeError-Fehler verhindert (crrev.com/c/5189678, Fehler 1517744). - Die Refaktorierung wurde wieder eingeführt, um plattformunabhängige
IS_OZONE_{X11, WAYLAND}-Flags anstelle vonOZONE_PLATFORM_*zu verwenden (crrev.com/c/5086329, Fehler 1500494). - Die
selenium-atoms-Abhängigkeit wurde auf die neueste Version aktualisiert (crrev.com/c/5110808, Fehler 4662). - Die Logik in SnapEvents-Tests wurde korrigiert, wenn sie für das vollständige Chrome-Binärprogramm ausgeführt werden. Dazu wurden Pointer-Move-Eingaben gerundet, der Parameter
originfür Scrollvorgänge erzwungen und Näherungsassertions (assert_approx_equals) verwendet, um Abweichungen bei Scrollvorgängen und Offsets zu berücksichtigen (crrev.com/c/5097343). StringPrintfNonConstexpr()-Helfer hinzugefügt, um ihn vonStringPrintf()zu unterscheiden, wenn Formatierungsstrings keine Compile-Zeit-Konstanten sind (crrev.com/c/4950568, Fehler 1371963).- Es wurde dafür gesorgt, dass beim Escaping von
chromium::import!-Rust-Makros eine injektive Funktion verwendet wird, um Kollisionen bei generierten GN-Zielnamen zu verhindern (crrev.com/c/5132119, Fehler 1512174). - Die
ScopedTempDirWithRetry-Implementierung wurde durch Hinzufügen eines Konstruktors und früher Rückgaben im Destruktor bereinigt (crrev.com/c/5113843).
ChromeDriver 121
Neue Funktionen
- Tests: Es wurde Unterstützung für die Ausführung von integrierten ChromeDriver-Tests (
chromedriver_py_test) fürchrome-headless-shellzusätzlich zum Standard-Chrome-Browser auf Build-Bots hinzugefügt. Dazu gehört die Möglichkeit, die Browser-Binärdatei anhand des--browser-name-Parameters zu ermitteln und bestimmte Testsätze bedingt auszuführen (crrev.com/c/4995189, crrev.com/c/4989442, Fehler 4358).
Diverse Fehlerkorrekturen
- Stabilität: Die Standard-
KeyboardLayoutEnginewurde alsStubKeyboardLayoutEngineinitialisiert, um ChromeDriver-Abstürze zu verhindern, die durch einenDCHECK-Treffer inKeyboardLayoutEngineManager::SetKeyboardLayoutEngineverursacht werden (crrev.com/c/5017859, Fehler 4625). - Stabilität: Ein Problem mit der Instabilität wurde behoben, bei dem ChromeDriver abstürzen konnte, wenn der Sitzungsthread das Schließen einer Verbindung angefordert hat, nachdem der Client bereits das Schließen derselben Verbindung angefordert hatte (crrev.com/c/4994636, Fehler 4606).
- Ressourcenverwaltung: Es wurden Ressourcenlecks in ChromeDriver-Integrationstests (
RemoteBrowserTest) behoben, indem dafür gesorgt wurde, dass der Browserprozess auch dann beendet wird, wenn eine Ausnahme von einem ChromeDriver-Befehl ausgelöst wird (crrev.com/c/5009554, Fehler 4614). - Ressourcenverwaltung: In die ChromeDriver-Integrationstests wurde Logik implementiert, um Browserprozesse zu erkennen und zu beenden, die vom ChromeDriver-Prozess nicht mehr verwendet werden (crrev.com/c/5014093, Fehler 4617).
- Start: Ein Problem wurde behoben, bei dem
chrome-headless-shelleine leere Zielliste zurückgab, wodurch die Sitzungserstellung verhindert wurde. Das Problem wurde behoben, indem das Argumentdata:,an die Browser-Befehlszeile angehängt wurde, wenn der Browsernamechrome-headless-shellwar (crrev.com/c/5010392, crrev.com/c/5009535, Fehler 4615, Fehler 4358). - FedCM: Es wurde ein neues Ereignis hinzugefügt, um zu benachrichtigen, wenn ein FedCM-Dialogfeld geschlossen wird. So wird dafür gesorgt, dass
dialogtypeund andere Befehle keine veralteten Daten zurückgeben, wenn das Dialogfeld extern geschlossen wurde (z. B. überAbortController.abort) (crrev.com/c/5067504, Fehler 1506292). - Tests: Alle ChromeDriver-Integrationstests, die zuvor für
chrome-headless-shellunter Windows deaktiviert waren, wurden korrigiert und wieder aktiviert (crrev.com/c/5027594, Fehler 4358). - Tests: Übermäßig strenge Zusicherungen in
testElementRegionTestwurden abgeschwächt, um sie an den WebDriver-Standard anzugleichen. Dadurch wird die Instabilität behoben, die durch Besonderheiten beim Rendern im Browser verursacht wurde (crrev.com/c/5017865, Fehler 4526).
Interne Änderungen und Refaktorierungen
- BiDi: Die BiDi Mapper-Abhängigkeit wurde aktualisiert (crrev.com/c/4994305, Fehler 4226).
- Die Verwendung von
IS_OZONE_{X11, WAYLAND}wurde aufgrund eines Fehlers (crrev.com/c/5086571, Rückgängigmachen von crrev.com/c/5083096, Fehler 1500494) zugunsten vonOZONE_PLATFORM_*rückgängig gemacht. - Migrierter Code in
commands_unittest.cc, derbase::BindLambdaForTestinganstelle des verworfenenbase::Passedverwendet (crrev.com/c/5078589, Fehler 1326449). session.newwurde umgestaltet, um die Boilerplate-Funktionsbehandlung (z. B.testName,binary,browserName) in eine eigene Methode zu extrahieren. Außerdem wurde dafür gesorgt, dass der Befehl Funktionen ähnlich wie der klassische Befehl berücksichtigt (crrev.com/c/5004665, crrev.com/c/5001510, Fehler 4358, Fehler 4610).- Die Verwendung des verworfenen
base/strings/string_piece_forward.h-Headers wurde entfernt (crrev.com/c/5008994, Fehler 691162). - Vorbereitung für die Umstellung von
net::IOBufferauf eine Klasse ohne Inhaberschaft durch Verwendung vonnet::IOBufferWithSizefür Fälle mit Inhaberschaft (crrev.com/c/4996470, Fehler 1493389). base::RandBytesAsVector()wurde eingeführt und verwendet, um das Speichern von Binärwerten in Strings zu vermeiden (crrev.com/c/5018451).- Es wurden mehrere Python-Integrationstests auf Mac deaktiviert, die immer wieder fehlgeschlagen sind, um zu verhindern, dass sie aufgrund der LUCI-Analyse zu grünen Builds führen (crrev.com/c/4998771, Fehler 1486604, Fehler 1486520, Fehler 1486474, Fehler 1481915).
- Die
webdriver_tests_suite- undwpt_tests_suite-Dateien wurden inchrome_wpt_testsumbenannt, um die Namenskonventionen für WPT-Suites in Linux-Try-Buildern zu standardisieren (crrev.com/c/5014293, Fehler 1474702). - Der
ConfirmIdpLogin-FedCM-Webdriver-Befehl wurde in einen erweiterbarenClickDialogButton-Befehl umgewandelt, der einenDialogButton-Parameter akzeptiert (crrev.com/c/5003255, Fehler 1499341). - Die
crossbench-Abhängigkeit wurde mit zahlreichen Korrekturen und Funktionen aktualisiert, darunter eine bessere Analyse des Treibertyps, Netzwerk-Stubs und iOS-Unterstützung (crrev.com/c/5009937). - Fehlendes
#include <string>wurde zuchrome_finder.hhinzugefügt, um IWYU-konform zu sein (crrev.com/c/4994605, Fehler 957519).
ChromeDriver 120
Neue Funktionen
- BiDi: Unterstützung für die Befehle
session.newundsession.endwurde hinzugefügt. Nutzer können jetzt Sitzungen direkt über BiDi-Befehle erstellen und beenden (crrev.com/c/4941941, Fehler 4496). - BiDi: Unterstützung für den Befehl
session.statusPureBiDi wurde hinzugefügt. Damit können Nutzer eine WebSocket-Verbindung herstellen, die nicht an eine Sitzung gebunden ist, und den Sitzungsstatus abrufen (crrev.com/c/4938596, Fehler 4496). (Relanded after a previous revert in crrev.com/c/4922097) - BiDi: Die BiDi Mapper-Abhängigkeit wurde aktualisiert und an den neuen, vereinfachten Mapper-Ausführungsprozess angepasst (crrev.com/c/4952609, Fehler 4226).
- Sensoren: Virtuelle Sensorbefehle in
browser_protocol.pdlund der CDP-Ebene (Emulationsdomain) implementiert und Unterstützung für den Automatisierungsbereich der Generic Sensor-Spezifikation hinzugefügt (crrev.com/c/4770864, Fehler: 1278377). - Sensoren: Es wurden ChromeDriver-Erweiterungsbefehle für die Verwaltung virtueller Sensoren hinzugefügt, die WebDriver-Parameter in die neuen CDP-Aufrufe übersetzen (crrev.com/c/4770866, Fehler 1278377).
- Sensoren: Ein
content_shell-Codepfad für die Manipulation virtueller Sensoren übertestdriver.jswurde hinzugefügt, wodurch ChromeDriver für Webtests vollständig umgangen wird (crrev.com/c/4770865, Fehler 1278377). - Eindämmung von Tracking: Unterstützung für ChromeDriver für die Eindämmung von Bounce-Tracking (DIPS) hinzugefügt, wodurch die Automatisierung der
nav-tracking-mitigations-Spezifikation möglich ist (crrev.com/c/4873672, Fehler 1474656). (Hinweis: Diese Änderung wurde aufgrund von fehlgeschlagenen Tests auf dem Mac in crrev.com/c/4938394 vorübergehend zurückgesetzt.)
Diverse Fehlerkorrekturen
- Startup: Headless Shell-Erkennung wurde zu ChromeDriver hinzugefügt. Dadurch kann nach der
chrome-headless-shell-Binärdatei gesucht werden, wenn sie über die Funktionen angefordert wird und kein expliziter Pfad angegeben ist (crrev.com/c/4987262, Fehler 4358). (Relanded after a previous revert in crrev.com/c/4984449) - WebSockets: Teilweise Unterstützung für den WebSocket-Closing-Handshake implementiert. ChromeDriver antwortet jetzt mit einem
CLOSE-Frame, wenn ein solcher vom Remote-Endpunkt empfangen wird (crrev.com/c/4931500, Fehler 4499). - Berechtigungen:
options.disclaim_responsibilitywurde als Build-Flag verfügbar gemacht, damit Anbieter-Builds (z. B. Microsoft Teams) es deaktivieren können. So wird verhindert, dass macOS-Berechtigungsaufforderungen die Testautomatisierung blockieren (crrev.com/c/4929495, Fehler 1223643). - C++-Standardkonformität: Es wurde undefiniertes Verhalten (UB) behoben, das von UBSan beim Umwandeln eines Double-Werts außerhalb des gültigen Bereichs in einen Int-Wert erkannt wurde. Dazu wurden Bereichsprüfungen hinzugefügt (crrev.com/c/4980055, Fehler 1394755).
- FedCM: Die Unterstützung für die alte Headersyntax wurde entfernt, um die Einhaltung der Standardsyntax
login-status-httpzu gewährleisten (crrev.com/c/4957073, Fehler 1381501).
Interne Änderungen und Refaktorierungen
testReturnFrameElement-Integrationstest hinzugefügt, um das Verhalten von ChromeDriver in Bezug auf die Behandlung vonwindow.frameElementals veraltete Referenz zu überprüfen (crrev.com/c/4983549, Fehler 4477).- Verbesserte Protokollierung durch die Sicherstellung, dass ChromeDriver die spezifischen Pfade protokolliert, in denen versucht wird, die Browser-Binärdatei zu finden (crrev.com/c/4976116, Fehler 4539).
- Verschiedene
base::Time-Funktionen wurden umbenannt, um sie aussagekräftiger zu machen (z.B.FromDoubleT()inFromSecondsSinceUnixEpoch()) (crrev.com/c/4956111). - Der
net::StringIOBuffer-Konstruktor und dieIOBuffer-Instanziierungen wurden umgestaltet, um unnötige Stringkopien und Zuweisungen mit der Länge null zu vermeiden (crrev.com/c/4938384, crrev.com/c/4959174). - Die String-Verarbeitung wurde optimiert, indem
base::StrCatdurch+ersetzt undbase::AppendHexEncodedByte()verwendet wurde (crrev.com/c/4963465, crrev.com/c/4977165). DIR_SOURCE_ROOTwurde in allen//chrome*-Tests zur besseren Verständlichkeit inDIR_SRC_TEST_DATA_ROOTumbenannt (crrev.com/c/4916045, Fehler 1264897).- Flaky
PureBidiTest-Tests auf Mac-Build-Servern deaktiviert (crrev.com/c/4983555, Fehler 1496826).
ChromeDriver 119
Neue Funktionen
- BiDi: Unterstützung für das Auflösen schwacher lokaler Objektreferenzen, die vom Remote-Ende bei Remote-Funktionsaufrufen zurückgegeben werden, wurde implementiert (crrev.com/c/4886760, Fehler 4536).
- FedCM: Der Befehl
confirmidpsigninmit Anbieterpräfix wurde hinzugefügt, um den Ursprungstest für die IDP Sign-In Status API zu unterstützen (crrev.com/c/4811725, Fehler 1451884).
Diverse Fehlerkorrekturen
- Mobile Emulation: Es wurde ein Problem behoben, bei dem vordefinierte Geräte ohne Client-Hinweise (z.B. ältere Konfigurationen) durch das Einfügen sinnvoller Standardwerte beschädigt wurden (crrev.com/c/4887254, Fehler 4550).
- Klassisch: Die Serialisierung von
Map- undSet-Objekten wurde korrigiert. Sie werden jetzt korrekt alsObjectanstatt alsCollectionserialisiert, da sie keinelength-Eigenschaft haben (crrev.com/c/4881378, Fehler 4031). - Klassisch: Die Logik wurde wiederhergestellt, um während der Tests immer die neueste kompatible Version von ChromeDriver herunterzuladen und zu verwenden. Auf bestimmte Versionen wird nur zurückgegriffen, wenn Kompatibilitätsprobleme auftreten (crrev.com/c/4779613, Rückgängigmachung von crrev.com/c/4778973).
- FedCM: Die Browserautomatisierungsbefehle wurden standardisiert, indem
SignininLogin(confirmidplogin) umbenannt wurde, um den neuesten FedCM-Spezifikationsdiskussionen zu entsprechen (crrev.com/c/4901302, Fehler 1451884). - Tests: Es wurden FedCM-Tests korrigiert, die fehlgeschlagen sind, wenn Drittanbieter-Cookies deaktiviert waren. Dazu wurde die IDP Sign-In Status API während der Testausführung explizit aktiviert (crrev.com/c/4889802, Fehler 1484833).
- Tests: Der ungültige URL-Platzhalter
~NOTFOUNDwurde in Test-Runners durch^NOTFOUNDersetzt, um den anstehenden Änderungen bei der Durchsetzung von Chromium-URL-Standards zu entsprechen (crrev.com/c/4845589, Fehler 1416013).
Interne Änderungen und Refaktorierungen
- BiDi: Die BiDi Mapper-Abhängigkeit wurde auf Version 0.4.27 aktualisiert, um die neuesten Fehlerkorrekturen und Funktionen zu nutzen (crrev.com/c/4862031, crrev.com/c/4890322).
- Mehrere Pointer-/Längen-APIs in
//urlwurden durchstd::string_viewersetzt, um die Sicherheit und Benutzerfreundlichkeit zu verbessern (crrev.com/c/4897456). - Das
generateWebDriverValue-Dienstprogramm wurde so umgestellt, dass es die Option für die umfassende Serialisierung (serializationOptions.serialization: deep) verwendet, die nativ vom BiDi-Protokoll bereitgestellt wird (crrev.com/c/4889644). - Es wurden Integrationstests hinzugefügt, um zu prüfen, ob bei der Suche unter einer veralteten Elementreferenz korrekt der Fehler „stale element reference“ (veraltete Elementreferenz) zurückgegeben wird (crrev.com/c/4886793, Fehler 4440).
- Verbesserte Formatierung des Code-Stils in
call_function.js(crrev.com/c/4882511, Fehler 4031). - Verbessertes Nutzerfeedback durch explizite Information der Nutzer, wenn sie sich über WebSockets verbinden, dass Pipes unterstützt werden und für eine bessere Zuverlässigkeit und Sicherheit empfohlen werden (crrev.com/c/4882626, Fehler 3480).
- Die WPT-Suite-Konfiguration wurde aktualisiert, um
results.htmlfürwebdriver_tests_suite-Tests zu archivieren. Dadurch wird eine bessere Benutzeroberfläche zum Anzeigen von Ergebnissen bereitgestellt (crrev.com/c/4873223). - Die Integration von Entwicklertools in WebView wurde korrigiert, indem WebView-WebContents markiert und ihr Entwicklertool-Typ auf
popup_pageanstelle vonotherfestgelegt wurde (crrev.com/c/4842093). - Das WPT-Build-Ziel
chrome_wptwurde zur besseren Übersichtlichkeit inchrome_wpt_testsumbenannt und das redundante Zielwebdriver_wpt_testswurde entfernt (crrev.com/c/4847474, Fehler 1474702). run_py_tests.pywurde von der eingestelltenoptparse-Bibliothek zuargparsemigriert (crrev.com/c/4849411, Fehler 4557).
ChromeDriver 118
Neue Funktionen
- Integrationstests: Für ChromeDriver wurden C++-Integrationstests eingeführt, mit denen bestimmte Klassen anhand von echtem CDP-Traffic getestet werden können. So wird die Lücke zwischen Unit-Tests und Python-Integrationstests geschlossen (crrev.com/c/4707855, Fehler 4528).
- Crossbench: Die
crossbench-Abhängigkeit wurde mit zahlreichen Verbesserungen aktualisiert, darunter neue Power-Benchmark-Stories, eine bessere Plattform- und Geräteunterstützung, verbesserte Fehlerbehebung und verschiedene Fehlerkorrekturen (crrev.com/c/4803743).
Diverse Fehlerkorrekturen
- Funktionen: Ein Problem wurde behoben, bei dem
debuggerAddressin Standardkonfigurationen in den zurückgegebenen Funktionen fehlte. Es wird jetzt korrekt zurückgegeben, um die CDP-basierte BiDi-Kommunikation von Selenium zu unterstützen (crrev.com/c/4789068, Fehler 4533). - Funktionen: ChromeDriver gibt jetzt standardmäßige
platformName-Werte (z.B. „linux“, „windows“, „mac“) zurück, wie in der WebDriver-Spezifikation gefordert (crrev.com/c/4797735, Fehler 4548).
Interne Änderungen und Refaktorierungen
- Der migrierte Code in
MockSocketbevorzugtbase::span<>gegenüber Rohzeigern, um die Sicherheit zu verbessern (crrev.com/c/4832086). - Veraltete Verwendungen von
base::raw_ptrundbase::raw_refwurden zugunsten ihrer uneingeschränkten Formenraw_ptrundraw_refdurch automatische Bereinigung entfernt (crrev.com/c/4773481). - Eine Änderung, bei der immer der neueste ChromeDriver verwendet wurde, wurde vorübergehend zurückgesetzt, da sie zu Abstürzen in den stabilen/Beta-Versionen von Windows geführt hat (crrev.com/c/4778973, Rückgängigmachung von crrev.com/c/4777430).
- Angepasste WPT-Konfigurationen (Web Platform Tests), einschließlich der Unterdrückung von Fehlern, die nur im Debug-Modus auftreten, in
pointer_touch.pyund der Implementierung der browserseitigen Fokusüberprüfung für Fenced Frames (crrev.com/c/4844810, crrev.com/c/4572517). - Fehlendes
#include <vector>wurdeclient_hints.hhinzugefügt, um IWYU-konform zu sein (crrev.com/c/4767547). - Apple-spezifische Basistypen (
ScopedTypeRef,ScopedCFTypeRef,scoped_nsautorelease_pool) wurden in denbase::apple::-Namespace migriert. Es wurden temporäre Weiterleitungsheader für Crashpad beibehalten (crrev.com/c/4799213, crrev.com/c/4790744, crrev.com/c/4790741, crrev.com/c/4784010).
ChromeDriver 117
Neue Funktionen
- Pipes Communication: Der Standardkommunikationsmodus zwischen ChromeDriver und Chrome wurde auf allen unterstützten Plattformen, einschließlich Windows, von WebSockets zu Pipes (
--remote-debugging-in-pipeund--remote-debugging-out-pipe) geändert (crrev.com/c/4634299, crrev.com/c/4628834, crrev.com/c/4635378, Fehler 3480). - BiDi: Die BiDi Mapper-Abhängigkeit wurde aktualisiert (crrev.com/c/4670516, Fehler 4226).
Diverse Fehlerkorrekturen
- Stabilität: Es wurde ein Nullzeigerzugriff behoben, der zum Absturz von ChromeDriver und damit zu
ConnectionRefused-Fehlern bei Testläufen geführt hat (crrev.com/c/4675633, Fehler 1457101). - Navigation: Ein Problem wurde behoben, bei dem die Fehler
NoSuchExecutionContextundNoSuchWindowin Chrome während der Navigation nicht einheitlich behandelt wurden. Beide werden jetzt richtig zugeordnet, um den Vorgang noch einmal zu versuchen (crrev.com/c/4667156, Fehler 4459). - Mobile Emulation: Die Inferenzlogik für
clientHints.mobilewurde korrigiert. Sie wird jetzt korrekt aususerAgentunter Android abgeleitet und ist auf anderen Plattformen standardmäßig „false“. Damit wird ein Problem behoben, bei dem Tablets fälschlicherweise als Mobilgeräte gemeldet wurden (crrev.com/c/4649348, Fehler 4243). - Sitzungserstellung: Die Sitzungserstellung wurde aktualisiert, damit bei einem Fehler der Standardfehlercode
SessionNotCreatedzurückgegeben wird. Dies entspricht der W3C WebDriver-Spezifikation (crrev.com/c/4638223, Fehler 4379). Hinweis: Diese Änderung wurde später rückgängig gemacht, da für einige bestimmte Codepfade unterschiedliche Fehlercodes erforderlich sind (crrev.com/c/4651188).
Interne Änderungen und Refaktorierungen
- Die manuellen Skripts für die ChromeDriver-Veröffentlichung wurden entfernt, da ChromeDriver jetzt vollständig in den Chrome-Veröffentlichungsprozess integriert ist und über die Chrome for Testing-Infrastruktur verfügbar ist (crrev.com/c/4520687, Fehler 4142).
- Die WPT-Infrastruktur (Web Platform Tests) wurde migriert, um den offiziellen
wptrunner-Harness anstelle des benutzerdefiniertenrun_webdriver_tests.pyzu verwenden. Dadurch werden Ausführungsgeschwindigkeit und Zuverlässigkeit deutlich verbessert und ChromeDriver wird zwischen den Tests neu gestartet, um Abstürze zu isolieren (crrev.com/c/4723147, crrev.com/c/4676070, crrev.com/c/4639168). ChromeLauncherund zugehörige Klassen wurden umfassend refaktoriert, um die Umstellung auf Pipes zu unterstützen, die Kopplung mitDevToolsHttpClientzu lockern und die WebSocket-Logik in dedizierte Branches zu verschieben (crrev.com/c/4632801, crrev.com/c/4674345).- Das irreführende Feld
BrowserInfo.is_headlesswurde zur besseren Verständlichkeit inBrowserInfo.is_headless_shellumbenannt (crrev.com/c/4650452, Fehler 4358). - Verschiedene eingestellte
base::Value-Methoden wurden im gesamten Code durch die modernenbase::Value::Dict-Entsprechungen ersetzt, z.B.FindDouble(),Set()undsize()(crrev.com/c/4258936, crrev.com/c/4336805, crrev.com/c/4461067).112.0.5603.0, 113.0.5653.0, 114.0.5733.0 - Die Verwendung von
[w]ctype.hwurde zugunsten sichererer Dienstprogramme für Basis-Strings entfernt und es wurden neue Funktionen fürbase::expectedimplementiert (crrev.com/c/4749459, crrev.com/c/4755226). - Die Automatisierungsbefehle
get_fedcm_dialog_titleundselect_fedcm_accountwurden inTestDriverfür FedCM-WPTs implementiert (crrev.com/c/4618303). - Die Build-Skripts für den BiDi-Mapper wurden aktualisiert, damit sie unabhängig vom aktuellen Arbeitsverzeichnis korrekt funktionieren (crrev.com/c/4670550).
- Konvertierte
/chrome/test/chromedriver-Dateien für die Verwendung von ARC (Automatic Reference Counting) in macOS-Builds und fügte den erforderlichen Boilerplate-Code hinzu (crrev.com/c/4663602). - Es wurde versucht, die Pipe-Kommunikation standardmäßig über einen automatisierten Rubber-Stamper-Commit zu deaktivieren, aber die Änderung betraf nur die Konfiguration, ohne das zuvor eingeführte Standardverhalten von Pipes zu ändern (crrev.com/c/4683947).
ChromeDriver 116
Neue Funktionen
- FedCM: Es wurde eine neue Funktion hinzugefügt, mit der Clients prüfen können, ob ChromeDriver FedCM-Befehle unterstützt, ohne sie ausführen zu müssen, und Fehler abfangen können (crrev.com/c/4624924, Fehler 1356159).
- Tests: Die Wiederverwendung von Testfenstern für Testharness-Tests, die über ChromeDriver in
wptrunnerausgeführt werden, wurde aktiviert, um die Auswirkungen auf Leistung und Instabilität zu bewerten (crrev.com/c/4515180, Fehler 1394572).
Diverse Fehlerkorrekturen
- C++-Standardkonformität: Es wurde ein undefiniertes Verhalten behoben, das durch die falsche Verwendung von Enumerationen mit Bereich (enum class) direkt in Formatierungsstrings verursacht wurde. Dadurch werden neue Clang-Compilerwarnungen behoben (crrev.com/c/4628112, Fehler 1456289).
- FedCM: Eine potenzielle Ursache für Testinstabilität wurde behoben, indem ein Grenzfall korrigiert wurde, der die korrekte Funktion von
setdelayenabledverhindert hat (crrev.com/c/4606064, Fehler 1453412).
Interne Änderungen und Refaktorierungen
- BiDi: Die BiDi Mapper-Abhängigkeit wurde aktualisiert und das Build-Script so angepasst, dass standardmäßig die aktuelle Revision aus „main“ abgerufen wird (crrev.com/c/4615087, crrev.com/c/4615791, Fehler 4226).
- ChromeDriver wurde so umgestellt, dass alle Dateien explizit mit UTF-8-Codierung geöffnet und geschrieben werden (crrev.com/c/4614522).
ChromeImplwurde umgestaltet, um die Abhängigkeit vonDevToolsHttpClientzu beseitigen. Außerdem wurde die Verwendung vonSyncWebSocketFactoryundBrowserInforeduziert, um die Kommunikation über Pipes anstelle von WebSockets vorzubereiten (crrev.com/c/4571690, crrev.com/c/4571199, Fehler 3480).- Der eingestellte „Standardmodus“ für Fenced Frames wurde entfernt und die zugehörigen Tests wurden aktualisiert, um das neue Funktions-Flag zu aktivieren und die Migration zu FLEDGE-Auktionen fortzusetzen (crrev.com/c/4558645).
- Die FedCM-Tests wurden verbessert, indem generische
WaitForCondition-Assertionen durchassertTrueersetzt wurden, um deutlich anzuzeigen, wann Zeitüberschreitungen auftreten (crrev.com/c/4590211). - Bekannte instabile Warnungen zu nicht mehr vorhandenen
raw_ptrinlinux-rel-Unittests wurden als instabil markiert (crrev.com/c/4598070). - Die OWNERS-Datei für den BiDi-Mapper wurde aktualisiert (crrev.com/c/4614518).
ChromeDriver 115
Neue Funktionen
- Mobile Emulation: Unterstützung für User-Agent Client Hints in der mobilen Emulation implementiert, sodass ChromeDriver Client Hints aus Funktionen und Voreinstellungen parsen und an Chrome übergeben kann (crrev.com/c/4498667, crrev.com/c/4466129, Fehler 4243).
- Mobile Emulation: Die Voreinstellungen für die mobile Emulation wurden aktualisiert, sodass bei der Ersetzung des Formatstrings
%sim User-Agent die Hauptversion des Hostbrowsers anstelle der ChromeDriver-Version verwendet wird (crrev.com/c/4502850, Fehler 4243). - Einrichtung: Es wurde Unterstützung für das Herunterladen einer bestimmten ChromeDriver-Version für einen bestimmten Channel hinzugefügt. Dadurch werden Automatisierungsszenarien verbessert, in denen ChromeDriver auf einer anderen Plattform (z. B. Android/WebView) als der Host ausgeführt wird (crrev.com/c/4550281).116.0.5791.0
Diverse Fehlerkorrekturen
- Klassisch: Es wurde ein Problem behoben, bei dem beim Auflösen eines Knotens fälschlicherweise ein
UnknownErroranstelle des StandardfehlersNoSuchElementzurückgegeben wurde (crrev.com/c/4508952, Fehler 4440). - Mobile Emulation: Den Voreinstellungen für die mobile Emulation wurden strengere Zusicherungen hinzugefügt, um zu erzwingen, dass das
clientHints.mobile-Flag „true“ sein muss, wenn deruserAgent-String „Mobile“ enthält (crrev.com/c/4507142, Fehler 4243). - Mobile Emulation: Migrierte
DeviceMetrics-Überschreibungen verwenden jetzt denEmulation.setDeviceMetricsOverride-CDP-Befehl anstelle des eingestelltenPage-Domainäquivalents (crrev.com/c/4502614, Fehler 4243).
Interne Änderungen und Refaktorierungen
- BiDi: Die BiDi Mapper-Abhängigkeit wurde aktualisiert, wodurch Funktionen für die detaillierte Serialisierung möglich sind (crrev.com/c/4535936, crrev.com/c/4512195).
- Die eingestellte Methode
Connectwurde ausDevToolsCliententfernt, um die Migration von ChromeDriver zur Kommunikation über Pipes vorzubereiten (crrev.com/c/4521485, Fehler 3480). - Die Codebasis wurde so migriert, dass
base::Value::Dictgegenüberbase::Valuebevorzugt wird. Außerdem wurden eingestellte Methoden wieFindStringKey(),SetKey()undSetByDottedPath()ersetzt (crrev.com/c/4529788, crrev.com/c/4522701, crrev.com/c/4515800, crrev.com/c/4507150). - Es werden jetzt
string_util.h-Funktionen anstelle von[w]ctype.hfür sicherere Typkonvertierungen verwendet (crrev.com/c/4529187). - Die Logik zum Laden von Seed-Dateien wurde so geändert, dass absolute Pfade verwendet werden, um die Konsistenz zu gewährleisten, wenn Skripts und Chrome an verschiedenen Orten ausgeführt werden (crrev.com/c/4504656).
- Die ungenutzte Methode
CallAsyncFunction()wurde ausweb_view.hentfernt (crrev.com/c/4518363, Fehler 3376). - Der Name von
base::raw_ptrwurde automatisch inraw_ptrumbenannt, um den Vorgaben des Styleguides zu entsprechen (crrev.com/c/4476651).
ChromeDriver 114
Neue Funktionen
- Klassisch:
MobileDevice-Informationen wurden anMobileEmulationOverrideManagerübergeben, um die Grundlage für zukünftige Client-Hinweise und User-Agent-Überschreibungen zu schaffen (crrev.com/c/4447524). - Tests: Testvorrichtungen für ChromeDriver hinzugefügt (crrev.com/c/4459939).
Diverse Fehlerkorrekturen
- Headless: Ein Absturz im neuen Headless-Modus wurde behoben, indem skriptgesteuerte Druckvorschauanfragen (z. B.
window.print()) ignoriert werden. Das Verhalten wurde an den alten Headless-Modus angepasst (crrev.com/c/4436313, Fehler 4385). - Funktionen: Ein Use-After-Move-Fehler in ChromeDriver-Funktionen wurde behoben (crrev.com/c/4462094, Fehler 4243).
- DevTools: In
DevToolsClientImpl::SendCommandInternalwurde einDCHECKentfernt, um Abstürze zu verhindern, wenn die Verbindung zu den Entwicklertools unterbrochen wird, da dies keinen Invariantenverstoß darstellt (crrev.com/c/4370486, Fehler 4385).
Interne Änderungen und Refaktorierungen
- BiDi: Die BiDi Mapper-Abhängigkeit wurde aktualisiert (crrev.com/c/4418727).
- Es wurden mehrere Warnungen zu nicht initialisierten Zeigern während der Testausführung von Unittests behoben, indem nicht zugeordnete Referenzen und die lokale Zerstörung in
WebViewImplund Leistungsprotokollierungstests richtig verwaltet wurden (crrev.com/c/4374824, crrev.com/c/4368179). - Die migrierte Codebasis verwendet die neue
base::Valuev2-API und ersetzt eingestellte Methoden wieValue::SetPath(),Value::SetStringPath()undbase::ListValue(crrev.com/c/4452309, crrev.com/c/4431420, crrev.com/c/4422897, crrev.com/c/4377520). - Alle Verwendungen von
base::GUIDwurden durchbase::Uuidersetzt, um der Umbenennung der Core-Basisbibliothek (crrev.com/c/4455083) zu entsprechen. - Es wurden verschiedene Codebereinigungen durchgeführt, darunter das Kürzen von Code, die Verwendung monadischer Operationen für
expected, das Entfernen von nicht verwendetem Code und das Beheben von Stilverstößen (crrev.com/c/4475368, crrev.com/c/4464199). - Die Tests mit Fenced Frames wurden aktualisiert, sodass das Attribut
configanstelle des eingestellten Attributssrcverwendet wird (crrev.com/c/4382231). - Die ineffektive Verwendung von
ShadowDOMV0wurde entfernt (crrev.com/c/4388302). - Die Ergänzung eines Flags für einen Skia-PDF-Fix (
SK_IGNORE_PDF_EOF_NEWLINE_FIX) wurde zurückgesetzt, um eine neue Baseline zu ermöglichen (crrev.com/c/4401451). - Der Inhaber des ChromeDriver-Testskripts wurde aktualisiert und es wurden Anpassungen vorgenommen, um die Konfigurations-JSON ausschließlich für Pinpoint zu generieren (crrev.com/c/4437492, crrev.com/c/4298554).
- Ein fehlender Include-Befehl (
<cstring>) fürstd::strleninweb_view_impl.ccwurde hinzugefügt, um ein IWYU-Build-Problem zu beheben (crrev.com/c/4376772). - Eine nicht verwendete Testdatei (
orientation_test.html) wurde entfernt (crrev.com/c/4335668).
ChromeDriver 113.0.5672.63
Unterstützt Chrome-Version 113
- Behobenes Problem 4205: Dieselben Objekt-IDs in Classic und BiDi [Pri-1]
- Problem 4302 behoben: Es wird nicht davon ausgegangen, dass sich Mapper auf dem ersten Tab in „ExecuteGetWindowHandles“ befindet [Pri-1]
- Problem 4356 behoben: Chrome 110 verwendet den Einstellungs-Wert „download.default_directory“ nicht [Pri-1]
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 113.0.5672.24
Unterstützt Chrome-Version 113
- Behobenes Problem 4205: Dieselben Objekt-IDs in Classic und BiDi [Pri-1]
- Problem 4302 behoben: Es wird nicht davon ausgegangen, dass sich Mapper auf dem ersten Tab in „ExecuteGetWindowHandles“ befindet [Pri-1]
- Problem 4356 behoben: Chrome 110 verwendet den Einstellungs-Wert „download.default_directory“ nicht [Pri-1]
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 112.0.5615.49
Unterstützt Chrome-Version 112
- Problem 3517 behoben: Druckfunktion für nicht-headless [Pri-] aktivieren
- Problem 4419 behoben: Hoher Overhead bei Speedometer bei Verwendung von Chromedriver [Pri-3]
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 112.0.5615.28
Unterstützt Chrome-Version 112
- Behobenes Problem 4357: Chromedriver-Version 110.0.5481.77 – Sitzungsproblem mit den Optionen „--headless“ und „--user-data-dir“. [Pri-1]
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 111.0.5563.64
Unterstützt Chrome-Version 111
- Behobenes Problem 4216: ChromeDriver mit benutzerdefiniertem BiDiMapper ausführen [Pri-]
- Problem 4300 behoben: Fenster-Handle ist zwischen Classic und BiDi interoperabel [Pri-]
- Behobenes Problem 4325: Die Verarbeitung von „toJSON“ in „jsonSerialize“ von „call_function.js“ weicht vom Standard ab. [Pri-]
- Problem 4330 behoben: DCHECK schlägt bei DevToolsClientImpl::AddListener fehl [Pri-]
- Behobenes Problem 4357: ChromeDriver-Sitzungsproblem mit den Optionen „--headless“ und „--user-data-dir“ [Pri-1]
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 111.0.5563.41
Unterstützt Chrome-Version 111
- Behobenes Problem 4357: ChromeDriver-Sitzungsproblem mit den Optionen „--headless“ und „--user-data-dir“ [Pri-1]
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 111.0.5563.19
Unterstützt Chrome-Version 111
- Behobenes Problem 4216: ChromeDriver mit benutzerdefiniertem BiDiMapper ausführen [Pri-]
- Problem 4300 behoben: Fenster-Handle ist zwischen Classic und BiDi interoperabel [Pri-]
- Behobenes Problem 4325: Die Verarbeitung von „toJSON“ in „jsonSerialize“ von „call_function.js“ weicht vom Standard ab. [Pri-]
- Problem 4330 behoben: DCHECK schlägt bei DevToolsClientImpl::AddListener fehl [Pri-]
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 110.0.5481.77
Unterstützt Chrome-Version 110
- Problem 4193 behoben: Neue Sitzung konnte unter Android 13 nicht gestartet werden [Pri-]
- Problem 4272 behoben: WebSocket sollte code=0 als Hinweis auf FIN behandeln [Pri-]
- Problem 4276 behoben: Verbindungsprobleme in ChromeDriver behoben [Pri-]
- Behobenes Problem 4295: ChromeDriver mit
"webSocketUrl": trueist racy [Pri-] - Problem 4297 behoben: ChromeDriver Bidi serialisiert falsch [Pri-]
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 110.0.5481.30
Unterstützt Chrome-Version 110
- Problem 4193 behoben: Neue Sitzung konnte unter Android 13 nicht gestartet werden [Pri-]
- Problem 4272 behoben: WebSocket sollte code=0 als Hinweis auf FIN behandeln [Pri-]
- Problem 4276 behoben: Verbindungsprobleme in ChromeDriver behoben [Pri-]
- Behobenes Problem 4295: ChromeDriver mit
"webSocketUrl": trueist racy [Pri-] - Problem 4297 behoben: ChromeDriver Bidi serialisiert falsch [Pri-]
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 109.0.5414.74
Unterstützt Chrome-Version 109
- Behobenes Problem 4179: BiDi-Sitzung muss mehrere Verbindungen unterstützen [Pri-]
- Behobenes Problem 4203: Informationen zu Credits verbessern [Pri-]
- Problem 4263 behoben: Absturz bei Meta+A [Pri-]
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 109.0.5414.25
Unterstützt Chrome-Version 109
- Behobenes Problem 4179: BiDi-Sitzung muss mehrere Verbindungen unterstützen [Pri-]
- Behobenes Problem 4203: Informationen zu Credits verbessern [Pri-]
- Problem 4263 behoben: Absturz bei Meta+A [Pri-]
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 108.0.5359.71
Unterstützt Chrome-Version 108 Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 108.0.5359.22
Unterstützt Chrome-Version 108
- Problem 4204 behoben: Fehler im WPT-Test „test_top_level_and_one_child“ behoben [Pri-]
- Behobenes Problem 4215: Build „chromedriver_mac64_m1“ in „chromedriver_mac_arm64“ umbenennen [Pri-]
- Problem 4221 behoben: Absturz, wenn der Browser durch einen Klickbefehl geschlossen wird [Pri-]
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 107.0.5304.62
Unterstützt Chrome-Version 107
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 107.0.5304.18
Unterstützt Chrome-Version 107
- Problem 4180 behoben: Die Verarbeitung von BiDi-Befehlen wird erst gestartet, wenn eine Benachrichtigung erfolgt, dass BiDiMapper gestartet wurde [Pri-]
- Behobenes Problem 4198: ChromeDriver BiDi sollte nicht davon ausgehen, dass sich BiDiMapper immer auf dem ersten Tab befindet [Pri-]
- Behobenes Problem 4207: WebDriver-Fehler beim Ausführen von WPT [Pri-1]
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 106.0.5249.61
Unterstützt Chrome-Version 106
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 106.0.5249.21
Unterstützt Chrome-Version 106
- Behobenes Problem 4016: Grundlegende BiDi-Unterstützung für ChromeDriver (Mapper-basiert) hinzufügen [Pri-1]
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 105.0.5195.52
Unterstützt Chrome-Version 105
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 105.0.5195.19
Unterstützte Chrome-Version
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 104.0.5112.79
Unterstützt Chrome-Version 104
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 104.0.5112.29
Unterstützt Chrome-Version 104
- Problem 4121 behoben: WebDriver-Befehl schlägt manchmal mit „unexpected command response“ (unerwartete Befehlsantwort) fehl [Pri-1]
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 104.0.5112.20
Unterstützt Chrome-Version 104
- Problem 4121 behoben: WebDriver-Befehl schlägt manchmal mit „unexpected command response“ (unerwartete Befehlsantwort) fehl [Pri-1]
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 103.0.5060.134
Unterstützt Chrome-Version 103
- Problem 4048 behoben: target frame detached [Pri-]
- Problem 4121 behoben: WebDriver-Befehl schlägt manchmal mit „unexpected command response“ (unerwartete Befehlsantwort) fehl [Pri-1]
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 103.0.5060.53
Unterstützt Chrome-Version 103
- Problem 4048 behoben: target frame detached [Pri-]
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 103.0.5060.24
Unterstützt Chrome-Version 103
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 102.0.5005.61
Unterstützt Chrome-Version 102
- Problem 1309282 behoben: „chromedriver“ unterstützt keine Switches mit mehreren Werten [Pri-1]
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 102.0.5005.27
Unterstützt Chrome-Version 102
- Problem 1309282 behoben: „chromedriver“ unterstützt keine Switches mit mehreren Werten [Pri-1]
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 101.0.4951.41
Unterstützt Chrome-Version 101
- Problem 4046 behoben: DCHECK wird beim Anhängen eines leeren umzäunten Frames ausgelöst [Pri-]
- Problem 4080 behoben: Wechsel zu verschachteltem Frame schlägt fehl [Pri-]
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 101.0.4951.15
Unterstützt Chrome-Version 101
- Problem 4046 behoben: DCHECK wird beim Anhängen eines leeren umzäunten Frames ausgelöst [Pri-]
- Problem 4080 behoben: Wechsel zu verschachteltem Frame schlägt fehl [Pri-]
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 100.0.4896.60
Unterstützt Chrome-Version 100
- Problem 4002 behoben: Unterstützung für Fenced Frames [Pri-]
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 100.0.4896.20
Unterstützt Chrome-Version 100
- Problem 4002 behoben: Unterstützung für Fenced Frames [Pri-]
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 99.0.4844.51
Unterstützt Chrome-Version 99
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 99.0.4844.35
Unterstützt Chrome-Version 99
- RÜCKGEBUCHT!!! Problem 2269 behoben: Nicht-BMP-Zeichen (Codepunkte über U+FFFF) können nicht verwendet werden [Pri-3]
- Behobenes Problem 1295243: Regression in ChromeDriver sendKeys [Pri-1]
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 99.0.4844.17
Unterstützt Chrome-Version 99
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 98.0.4758.102
Unterstützt Chrome-Version 98
- Problem 3933 behoben: Klick am Rand des Viewports ist ohne Fehler ineffektiv [Pri-]
- RÜCKGEBUCHT!!! Problem 2269 behoben: Nicht-BMP-Zeichen (Codepunkte über U+FFFF) können nicht verwendet werden [Pri-3]
- Behobenes Problem 1295243: Regression in ChromeDriver sendKeys [Pri-1]
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 98.0.4758.80
Unterstützt Chrome-Version 98
- Problem 3933 behoben: Klick am Rand des Viewports ist ohne Fehler ineffektiv [Pri-]
- Problem 2269 behoben: Nicht-BMP-Zeichen (Codepunkte über U+FFFF) können nicht verwendet werden [Pri-3]
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 98.0.4758.48
Unterstützt Chrome-Version 98
- Problem 3933 behoben: Klick am Rand des Viewports ist ohne Fehler ineffektiv [Pri-]
- Problem 2269 behoben: Nicht-BMP-Zeichen (Codepunkte über U+FFFF) können nicht verwendet werden [Pri-3]
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 97.0.4692.71
Unterstützt Chrome-Version 97
- Behobenes Problem 3878: Bessere Verarbeitung von Koordinaten mit Nachkommastellen für Elementklicks [Pri-]
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 97.0.4692.36
Unterstützt Chrome-Version 97
- Problem 3878 behoben: Bessere Verarbeitung von Koordinaten mit Nachkommastellen für Elementklicks [Pri-]
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 97.0.4692.20
Unterstützt Chrome-Version 97
- Problem 3878 behoben: Bessere Verarbeitung von Koordinaten mit Nachkommastellen für Elementklicks [Pri-]
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 96.0.4664.45
Unterstützt Chrome 96
- Problem 3445 behoben: Es ist nicht möglich, auf Elemente in einem iFrame innerhalb eines Shadow Root zuzugreifen [Pri-3]
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 96.0.4664.35
Unterstützt Chrome 96
- Problem 3445 behoben: Es ist nicht möglich, auf Elemente in einem iFrame innerhalb eines Shadow Root zuzugreifen [Pri-3]
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 96.0.4664.18
Unterstützt Chrome 96
- Problem 3445 behoben: Es ist nicht möglich, auf Elemente in einem iFrame innerhalb eines Shadow Root zuzugreifen [Pri-3]
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 95.0.4638.69
Unterstützt Chrome-Version 95
- Behobenes Problem 3857: Host-Header oder Origin-Header ist angegeben und nicht auf der weißen Liste oder localhost [Pri-1]
--allowed-origins-Argument hinzugefügt
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 95.0.4638.54
Unterstützt Chrome-Version 95
- Behobenes Problem 3857: Host-Header oder Origin-Header ist angegeben und nicht auf der weißen Liste oder localhost [Pri-1]
--allowed-origins-Argument hinzugefügt
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 95.0.4638.17
Unterstützt Chrome-Version 95
- Behobenes Problem 3857: Host-Header oder Origin-Header ist angegeben und nicht auf der weißen Liste oder localhost [Pri-1]
--allowed-origins-Argument hinzugefügt
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 95.0.4638.10
Unterstützt Chrome-Version 95
- Behobenes Problem 3857: Host-Header oder Origin-Header ist angegeben und nicht auf der weißen Liste oder localhost [Pri-1]
--allowed-origins-Argument hinzugefügt
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 94.0.4606.113
Unterstützt Chrome-Version 94
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 94.0.4606.61
Unterstützt Chrome-Version 94
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 94.0.4606.41
Unterstützt Chrome-Version 94
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 93.0.4577.63
Unterstützt Chrome-Version 93
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 93.0.4577.15
Unterstützt Chrome-Version 93
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 92.0.4515.107
Unterstützt Chrome-Version 92
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 92.0.4515.43
Unterstützt Chrome-Version 92
- Behobenes Problem 3389: Hostvalidierung für ChromeDriver-Anfragen
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 91.0.4472.101
Unterstützt Chrome-Version 91
- Behobenes Problem 1205107: Attributwert für Felder in der Webanwendung kann nicht abgerufen werden.
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 91.0.4472.19
Unterstützt Chrome-Version 91
- Behobenes Problem 3744: SendKeys() und Click() schlagen nach der Linknavigation ohne Fehlermeldung fehl
- Behobenes Problem 3746: Werte werden am Attributendpunkt fälschlicherweise aktualisiert
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 90.0.4430.24
Unterstützt Chrome-Version 90
- Problem 3708 behoben: „inView“ von „GetElementLocation“ schlägt für Elemente im Shadow DOM fehl
- Behobenes Problem 3721: Leistungsprotokoll für Service Worker erfassen, wenn aktiviert
- Behobenes Problem 3731: „AdbImpl::GetPidByName“ funktioniert nicht richtig auf nicht standardmäßigen Android-Betriebssystemen wie OnePlus.
- Behobenes Problem 3733: Schwerwiegender Fehler bei Domain auf localhost
- Problem 3734 behoben: Der Treiber sollte einen Fehler ausgeben, wenn versucht wird, ein Cookie für die falsche Domain festzulegen.
- Problem 3743 behoben: Call-Funktion überarbeitet und Problem beim Entfernen von Elementen behoben
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 89.0.4389.23
Unterstützt Chrome-Version 89
- Gelöstes Problem 3667: Zeitüberschreitung beim Empfangen einer Nachricht vom Renderer
- Problem 3675 behoben: „GetElementLocation“ verwendet die Methode „inView“, die boolesche Werte als Array falsch verarbeitet.
- Problem 3682 wurde behoben: „GetElementRegion“ gibt für Elemente, die sich teilweise außerhalb des Darstellungsbereichs befinden, die falsche Größe zurück.
- Behobenes Problem 3690: ChromeDriver schlägt fehl, wenn Erweiterungen die chrome.windows API verwenden
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 88.0.4324.96
Unterstützt Chrome-Version 88
- Problem 3641 behoben: Seite wird nicht geladen/gerendert, wenn das Browserfenster mit Chrome Beta v87 und Chromedriver v(87/86) nicht im Vordergrund ist
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 88.0.4324.27
Unterstützt Chrome-Version 88
- Problem 3611 behoben:
getText()-Ausgabe in Protractor unterscheidet sich von<element>.innerText - Problem 3625 behoben: Kompatibilität von Element-Screenshots verbessert
- Problem 3628 behoben: „Stale Element Reference“ und falsche URL werden zurückgegeben, wenn eine URL eine andere URL als Teil ihres Pfads enthält.
- Behobenes Problem 3631: Unterstützung für die Funktion
webauthn:extension:largeBlobhinzugefügt - Problem 3635 behoben: Chromedriver 86 – Das Unload-Ereignis wird anscheinend nicht richtig übergeben
chromedriver.quit() - Problem 3649 behoben: Das Kopieren von ausgewähltem Text in die Zwischenablage funktioniert unter Windows 10 im Headless-Modus nicht.
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 87.0.4280.88
Unterstützt Chrome-Version 87
- Problem 3641 behoben: Seite wird nicht geladen/gerendert, wenn das Browserfenster mit Chrome Beta v87 und Chromedriver v(87/86) nicht im Vordergrund ist
- Problem 3657 behoben: Zeitüberschreitung beim Screenshot-Hintergrundbrowser
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 87.0.4280.20
Unterstützt Chrome-Version 87
- Problem 2421 behoben: Alte Portweiterleitungskanäle auf dem Android-ADB-Server löschen
- Behobenes Problem 3474: Liste der emulierten Mobilgeräte muss aktualisiert werden
- Behobenes Problem 3507: „get computed role“ implementieren
- Problem 3508 behoben: „get computed label“ implementieren
- Behobenes Problem 3584: Befehlszeilenoption „--whitelisted-ips“ von ChromeDriver umbenennen
- Gelöstes Problem 3588: Bidirektionale WebSocket-Verbindung
- Problem 3594 behoben: Die Navigation wird vorzeitig abgeschlossen, wenn das OOPIF vor der Hauptseite geladen wird.
- Behobenes Problem 3598: Befehlszeilenoption für den DevTools-Port, der an den Socket „webview_devtools_remote“ weitergeleitet werden soll
- Problem 3608 behoben: „Chromedriver debuggerAddress doesn't support ipv6“ (Chromedriver-DebuggerAddress unterstützt kein IPv6)
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 86.0.4240.22
Unterstützt Chrome-Version 86
- Problem 3370 behoben: Chrome wird ordnungsgemäß heruntergefahren, andernfalls wird das Cookie nicht korrekt in der SQLite-Datei gespeichert.
- Behobenes Problem 3401: Mit „Get Element Location JS“ wird nicht der sichtbare Mittelpunkt des Elements ermittelt.
- Problem 3462 behoben: Bei „sendKeys“ funktioniert die CMD-Taste auf dem Mac nicht.
- Behobenes Problem 3541: Protokollierung zwischen Client und ChromeDriver verbessern
- Problem 3559 behoben: Chrome-Version ausgeben, wenn ChromeDriver als inkompatibel gemeldet wird
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 85.0.4183.87
Unterstützt Chrome-Version 85
- Problem 3578 behoben: In Chrome 85 ist keine reibungslose Interaktion mit Fenstern mehr möglich, wenn ein Benachrichtigungsdialogfeld geöffnet ist.
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 85.0.4183.83
Unterstützt Chrome-Version 85
- Behobenes Problem 3577: ChromeDriver 85 erkennt das geänderte Chrome-Verzeichnis (C:\Programme) nicht.
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 85.0.4183.38
Unterstützt Chrome-Version 85
- Behobenes Problem 3214: ChromeDriver78: Sendkeys setzt die Textauswahl mit contenteditable zurück
- Behobenes Problem 3376: „LaunchApp“-Befehl aus ChromeDriver entfernen
- Problem 3432 behoben: Manchmal erkennt
NavigationTrackernicht, wenn das Laden der Seite abgeschlossen ist. - Problem 3481 behoben: Neuer Druckendpunkt gemäß W3C-Spezifikation
- Problem 3488 behoben: „driver.get“ löst keinen Fehler aus, wenn der Proxy falsch konfiguriert ist
- Behobenes Problem 3502: Mit
document.hasFocus()prüfen, ob das Element den Fokus hat - Behobenes Problem 3515: selenium.common.exceptions.WebDriverException: Message: unknown error: bad inspector message
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 84.0.4147.30
Unterstützt Chrome-Version 84
- Problem 3420 behoben: Nach dem Wechsel zum Druckfenster reagiert der Chromedriver nicht mehr
- Problem 3421 behoben: Der Treiber gibt kyrillischen Text ohne Formatierungen zurück.
- Problem 3422 behoben: „GetElementText“ funktioniert nicht mit Prototype 1.6.0.3
- Behobenes Problem 3434: „assert“-Meldungen können nicht aus den „browser“-Logs abgerufen werden
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 83.0.4103.39
Unterstützt Chrome-Version 83
- Chromedriver wurde aktualisiert, damit er korrekt mit prototype.js funktioniert.
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 83.0.4103.14
Unterstützt Chrome-Version 83
- Behobenes Problem 1778: launchApp aus ChromeDriver entfernen
- Problem 2520 behoben: „InitSession“ kann unendlich lange warten, wenn Chrome nicht reagiert
- Gelöstes Problem 3120: Download im monitorlosen Modus über neuen Tab
- Behobenes Problem 3234: Bestätigen, dass vor dem Teilstring ein Semikolon gefunden wurde
- Behobenes Problem 3240: „ExecuteGetElementRect“ prüft den zurückgegebenen Status von „GET_SIZE“ nicht
- Behobenes Problem 3331: Die
get_cookies()-Methode gibt „expiry“-Schlüssel vom Typ „double“ zurück, sollte im W3C-Modus aber „int64“ zurückgeben. - Gelöstes Problem 3332: Zeitüberschreitung bei Wiederholungsversuch als schwerwiegend protokolliert
- Problem 3339 behoben: Chromedriver wurde unerwartet mit dem Code „null“ und dem Signal „SIGTRAP“ beendet.
- Behobenes Problem 3351: Meldung zu Sicherheitsaspekten verbessern
- Gelöstes Problem 3352: SendKeys für Farbelemente unterstützen
- Behobenes Problem 3353: „Wait for Pending Navigation“ wird fortgesetzt, nachdem der Frame-Kontext zerstört wurde
- Behobenes Problem 3375: Chromedriver v80 bleibt auf einigen Websites bei getPageSource hängen
- Behobenes Problem 3383: ChromeDriver 80+ unter Windows beendet oder stoppt bei bestimmten Element- oder Klickbefehlen
- Gelöstes Problem 3399: Entfernen der „wasThrown“-Prüfung
ChromeDriver 81.0.4044.138
Unterstützt Chrome-Version 81
- Chromedriver wurde aktualisiert, damit er korrekt mit prototype.js funktioniert.
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 81.0.4044.69
Unterstützt Chrome-Version 81
- Behoben: Chromedriver stürzt auf einigen Websites bei getPageSource ab.
- Behoben: ChromeDriver stürzt bei bestimmten Element- oder Klickbefehlen ab.
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 81.0.4044.20
Unterstützt Chrome-Version 81
- Ein Fehler beim Versuch, den Speicherort eines HTML-Elements abzurufen, wurde behoben.
- Die Befehle „Get Cookie“ und „Add Cookie“ sind jetzt framespezifisch.
- Es wurden einige Probleme behoben, die bei Websites auftreten, auf denen Standard-JavaScript-Objekte neu definiert werden.
- ChromeDriver wartet weiterhin auf den Abschluss des Ladevorgangs, nachdem eine Meldung vom Typ „Target Closed“ empfangen wurde.
- Chromedriver gibt jetzt einen spezifikationskonformen Fehlercode für Zeitüberschreitungen zurück
- Behoben: Unerwartet langsame Reaktionszeit von ChromeDriver beim Befehl „NewSession“.
- Benutzerdefinierte Zeitüberschreitungen von mehr als 10 Minuten werden jetzt unterstützt.
- Behoben: ChromeDriver konnte aufgrund einer Diskrepanz zwischen IPv4 und IPv6 keine Verbindung zu den Entwicklertools herstellen.
- Die Suchreihenfolge für das Chrome-Binärprogramm unter Linux wurde wiederhergestellt.
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 80.0.3987.106
Unterstützt Chrome-Version 80
- Wiederherstellung der Suchreihenfolge für das Chrome-Binärprogramm unter Linux
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 80.0.3987.16
Unterstützt Chrome-Version 80
- Das Problem, dass das Laden der Seite bei Verwendung eines Proxys abgebrochen wurde, wurde behoben.
- Chromedriver wartet jetzt, bis der aktuelle Frame geladen ist.
- Das ChromeDriver-Log enthält den vom Treiber verwendeten Port.
- „SetGeoLocation“ für den W3C-Modus aktiviert.
- Es wurde der fehlende Warnungstext für den Status „UnexpectedAlertOpen“ hinzugefügt.
- Die Meldung beim Laden einer CRX2-Erweiterung wurde verbessert.
- Es wurde eine potenzielle Race-Bedingung in „ExecuteGetPageSource“ behoben.
- ChromeDriver fügt das Flag „--ignore-certificate-errors“ hinzu, wenn die Funktion „acceptInsecureCerts“ auf „true“ gesetzt ist.
- Fehlermeldung und Rückgabestatus für „no such execution context“ aktualisiert
- Behoben: ChromeDriver kann unbegrenzt blockieren, während auf eine ausstehende Navigation gewartet wird.
- Das SameSite-Attribut wurde zu AddCookie und GetCookie hinzugefügt.
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 79.0.3945.36
Unterstützt Chrome-Version 79
Enthält die folgende Änderung gegenüber Version 79.0.3945.16:
- Falsche Berechnung der Elementkoordinaten korrigiert
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 79.0.3945.16
Unterstützt Chrome-Version 79
- Behebung eines ChromeDriver-Absturzes, der durch einen JavaScript-Hinweis ausgelöst wurde, der während der Befehlsausführung ausgelöst wurde
- Ein Fehler wurde behoben, der dazu führte, dass Chromedriver gesperrt wurde, wenn beim Erstellen eines Screenshots eine Warnung ausgelöst wurde.
- „--ignore-certificate-errors“ aus dem Chrome-Startbefehl entfernt
- „platform“ und „platformName“ in „windows“ unter Win10 geändert
- Fehler behoben: „window.navigator.webdriver“ war nicht definiert, wenn „enable-automation“ ausgeschlossen wurde
- Der WPT-Test „test_not_editable_inputs[hidden]“ wurde korrigiert.
- Das Problem „Element is not clickable“ (Element ist nicht klickbar) bei Verwendung des monitorlosen Modus wurde behoben.
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 78.0.3904.105
Unterstützt Chrome-Version 78
Enthält die folgende Änderung gegenüber Version 78.0.3904.70: * Falsche Berechnung von Elementkoordinaten behoben
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 78.0.3904.70
Unterstützt Chrome-Version 78
Enthält die folgende Änderung gegenüber Version 78.0.3904.11:
- Die Änderung zur Anpassung der Screenshot-Größe auf Retina-Displays wurde aufgrund mehrerer gemeldeter Probleme rückgängig gemacht.
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 78.0.3904.11
Unterstützt Chrome-Version 78
- Es wurden mehrere Probleme bei der Serialisierung von JavaScript-Objekten behoben.
- Fehler bei der Zuordnung von Funktionen für Chrome auf Android-Geräten behoben
- Automatisierung von Berechtigungen implementiert
- Feste Screenshot-Größe auf Retina-Display
- Problem mit Zeitüberschreitung beim Seitenaufbau in bestimmten Szenarien behoben
- Verbesserter Abgleich von „platformName“-Funktionen
- Der Fehlercode, der beim Bewegen des Mauszeigers auf Drop-down-Listenoptionen zurückgegeben wurde, wurde behoben.
- Ein Problem beim Herunterladen im monitorlosen Modus wurde behoben.
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 77.0.3865.40
Unterstützt Chrome-Version 77
Enthält die folgenden Änderungen gegenüber Version 77.0.3865.10:
- Zwei Fehler bei der Serialisierung und Deserialisierung von JavaScript-Objekten wurden behoben.
- Behoben: Fehlerhafte Verarbeitung von „platformName: android“ beim Abgleichen von Funktionen
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 77.0.3865.10
Unterstützt Chrome-Version 77
- Es wurden mehrere Probleme bei der Implementierung der Actions API behoben.
- Verbesserte Ausführung von JavaScript-Code und Verarbeitung von Ergebnissen
- Es wurde ein Fehler behoben, durch den POST-Anfragen mit leerem Text im OSS-Modus fälschlicherweise abgelehnt wurden.
- Ein robusterer Navigationstracker
- Eager-Strategie für den Seitenaufbau unterstützen
- Befehl „New Window“ aus der W3C WebDriver-Spezifikation hinzugefügt
- Unterstützung für das Speichern von Dateidownloads im Headless-Modus
- Unterstützung für das Laden von CRX3-Erweiterungen hinzugefügt
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 76.0.3809.126
Unterstützt Chrome-Version 76
Enthält die folgenden Änderungen gegenüber Version 76.0.3809.68:
- Zwei Fehler bei der Serialisierung und Deserialisierung von JavaScript-Objekten wurden behoben.
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 76.0.3809.68
Unterstützt Chrome-Version 76
Enthält die folgenden Änderungen gegenüber Version 76.0.3809.25:
- Es wurde ein Fehler bei der Erkennung von zirkulären Verweisen in JavaScript-Objekten behoben.
- Ein Fehler wurde behoben, der dazu führte, dass ChromeDriver bei bestimmten Arten von JavaScript-Fehlern abstürzte.
- Es wurde ein Fehler behoben, der verhindert, dass die Actions API mit Elementen im Shadow DOM interagiert.
- Ein Fehler wurde behoben, der dazu führte, dass der Status der Modifikatortaste zwischen API-Befehlen für Aktionen nicht richtig erfasst wurde.
- Ein Fehler beim Erfassen der Zeigerpositionen zwischen Aktionen-API-Befehlen wurde behoben.
- Fehler „Cannot call non W3C standard command while in W3C mode“ (Nicht-W3C-Standardbefehl kann im W3C-Modus nicht aufgerufen werden) in der Logdatei speichern, wenn er auftritt
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 76.0.3809.25
Unterstützt Chrome-Version 76
Enthält die folgenden Änderungen gegenüber Version 76.0.3809.12:
- Es wurde ein Fehler behoben, durch den POST-Anfragen mit leerem Text im OSS-Modus fälschlicherweise abgelehnt wurden.
- Neue Endpunkte zum Abrufen von Chrome-Protokollen hinzugefügt
- Endpunkt für den Befehl „Is Displayed“ im W3C-Modus hinzugefügt
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 76.0.3809.12
Unterstützt Chrome-Version 76
- Implementierung der Actions API abgeschlossen
- Verbesserte Spezifikationskonformität der Verarbeitung von Script-Timeouts
- Verbesserte Serialisierung von Ergebnissen des Befehls „Execute Script“
- Probleme beim Scrollen von Elementen in die Ansicht behoben
- Unterstützung für die Verarbeitung der in der WebDriver-Spezifikation definierten Abbrechen-Taste wurde hinzugefügt.
- Die Verarbeitung von unbehandelten Fehlermeldungen für Benachrichtigungen wurde korrigiert.
- Feste Verarbeitung des
<details>-Elements - Die Option „excludeSwitches“ wurde aktualisiert, um optionale führende Bindestriche in Schalternamen zuzulassen.
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 75.0.3770.140
Unterstützt Chrome-Version 75
Enthält die folgenden Änderungen gegenüber Version 75.0.3770.90:
- Ein Fehler wurde behoben, der dazu führte, dass ChromeDriver abstürzte, wenn bestimmte Arten von JavaScript-Fehlern auftraten.
- Ein Fehler wurde behoben, bei dem der Status der Modifikatortaste zwischen Aktionen nicht beibehalten wurde.
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 75.0.3770.90
Unterstützt Chrome-Version 75
Enthält die folgenden Änderungen gegenüber Version 75.0.3770.8:
- Es wurde ein Fehler behoben, durch den POST-Anfragen mit leerem Text im OSS-Modus fälschlicherweise abgelehnt wurden.
- Neue Endpunkte zum Abrufen von Chrome-Logs hinzugefügt
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 75.0.3770.8
Unterstützt Chrome-Version 75
Die auffälligste Änderung ist, dass ChromeDriver jetzt standardmäßig im W3C-Standard-kompatiblen Modus ausgeführt wird. Weitere Änderungen:
- Ein Fehler wurde behoben, der dazu führte, dass das Blur-Ereignis beim Löschen von Elementen zweimal ausgelöst wurde.
- Die Funktion „loggingPrefs“ wurde in „goog:loggingPrefs“ umbenannt, wie vom W3C-Standard gefordert.
- Fehlerbehandlung im W3C-Modus korrigiert
- Korrektes Erstellen von Cookies ohne vorangestellten Punkt im Domainnamen
- Ermöglicht Null für das Skript-Zeitlimit
- Der Befehl „Element Send Keys“ wurde für die Dateieingabe mit dem Attribut „multiple“ korrigiert.
- Der Befehl „Get Active Element“ gibt jetzt den Fehler „no such element“ zurück, wenn kein aktives Element vorhanden ist.
- Die Navigation zu einer fehlerhaften URL wurde korrigiert, sodass der Fehler „invalid argument“ zurückgegeben wird.
- HTTP-Statuscode bei Empfang einer ungültigen Sitzungs-ID korrigiert
- Fehlerantwort behoben, wenn der Eingabeparameter fehlt oder fehlerhaft ist
- Der Befehl „Skript ausführen“ wurde korrigiert, um zeilenorientierte JavaScript-Kommentare zu verarbeiten.
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 74.0.3729.6
Unterstützt Chrome-Version 74
- Ein Fehler wurde behoben, durch den unter Windows eine unerwartete Datei „debug.log“ generiert wurde.
- Probleme mit Mausklicks und Drag-and-drop-Vorgängen in SVG-Dokumenten wurden behoben.
- Cache-Control-Header in Antworten von ChromeDriver hinzugefügt
- Der Fehlertyp wurde korrigiert, der auftritt, wenn ein Klick von einem anderen Element abgefangen wird.
- Ein Fehler wurde behoben, der dazu führte, dass ChromeDriver auf Linux-Geräten ohne /dev/shm fehlschlug.
- Einige Arten von Doppelklickereignissen wurden korrigiert
- Befehl „Get Sessions“ korrigiert
- Fehlerprüfung im Befehl „Zu Frame wechseln“ korrigiert
- Befehl „Get Page Source“ korrigiert
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 73.0.3683.68
Unterstützt Chrome-Version 73
- Ein Fehler wurde behoben, durch den unter Windows eine unerwartete Datei „debug.log“ generiert wurde.
- Der Fehlercode, der in einigen Szenarien vom Befehl „Skript ausführen“ zurückgegeben wurde, wurde korrigiert.
- Cache-Control-Header in Antworten von ChromeDriver hinzugefügt
- HTTP-Server behält Verbindung standardmäßig aktiv
- Der Befehl „Fenster schließen“ wurde korrigiert, um Nutzeraufforderungen richtig zu verarbeiten.
- Der Fehlercode, der beim Senden von Tasten an ein deaktiviertes Element zurückgegeben wurde, wurde korrigiert.
- Verbesserte Spezifikationskonformität bei der Verarbeitung von Zeitlimitwerten
- Bessere Spezifikationskonformität des Befehls „Cookie hinzufügen“
- Längere Warteschlange für HTTP-Server
- Der Befehl „Is Element Displayed“ (Wird Element angezeigt?) wurde in v0 Shadow DOM korrigiert.
- Warnung zur Verhaltensänderung des Befehls „Element Clear“ in der Logdatei hinzugefügt
- Der Befehl „Skript ausführen“ wurde korrigiert, um „document.all“ korrekt in das JSON-Format zu konvertieren.
- Verbesserte Verarbeitung von ungültigen Elementreferenzen
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 2.46
Unterstützt Chrome 71 bis 73
- Der Fehlercode, der in einigen Szenarien vom Befehl „Skript ausführen“ zurückgegeben wurde, wurde korrigiert.
- HTTP-Server behält Verbindung standardmäßig aktiv
- Der Befehl „Fenster schließen“ wurde korrigiert, um Nutzeraufforderungen richtig zu verarbeiten.
- Der Fehlercode, der beim Senden von Tasten an ein deaktiviertes Element zurückgegeben wurde, wurde korrigiert.
- Verbesserte Spezifikationskonformität bei der Verarbeitung von Zeitlimitwerten
- Bessere Spezifikationskonformität des Befehls „Cookie hinzufügen“
- Verbesserte Spezifikationskonformität des Befehls „Switch to Frame“
- Längere Warteschlange für HTTP-Server
- Der Befehl „Is Element Displayed“ (Wird Element angezeigt?) wurde im v0-Shadow-DOM korrigiert.
- Befehl „Fixed Element Double Click“
- Warnung zur Verhaltensänderung des Befehls „Element Clear“ in der Logdatei hinzugefügt
- Der Befehl „Skript ausführen“ wurde korrigiert, um „document.all“ korrekt in das JSON-Format zu konvertieren.
- Verbesserte Verarbeitung von ungültigen Elementreferenzen
Weitere Informationen finden Sie in den Versionshinweisen.
ChromeDriver 2.45
Unterstützt Chrome 70 bis 72
- Behoben: „Neue Sitzung“ entspricht nicht der Spezifikation
- Fehler behoben: ChromeDriver sollte Chrome nicht starten, wenn die Versionen von Chrome und ChromeDriver inkompatibel sind
- Der Befehl „Element suchen“ gibt jetzt den richtigen Fehlercode zurück, wenn ein ungültiger Locator verwendet wird.
- Einige ChromeDriver-Statuscodes sind falsch
- Kompilierungsfehler in JS in WebViewImpl::DispatchTouchEventsForMouseEvents behoben
- Befehle für die feste Fenstergröße sollten Nutzerprompts verarbeiten
- Fehler behoben: ChromeDriver startet Chrome nicht richtig mit der Chrome-Option „user-data-dir=“
- Der Befehl „Fixed Status“ entspricht nicht der Spezifikation
- Unterstützung für „strictFileInteractability“ hinzugefügt
ChromeDriver 2.44
Unterstützt Chrome 69 bis 71
- Problem mit „Fenster maximieren“ auf dem Mac behoben
- Falscher Fehler „alert open error“ für Fensterhandle-Aufruf behoben
- Das Problem, dass „Element Send Keys“ im W3C-Modus die Property „text“ nicht abrufen konnte, wurde behoben.
- Der XML-Sonderfall „Is Element Enabled“ wird nicht gemäß Spezifikation behandelt.
- Der XML-Sonderfall von „Get Element CSS Value“ wird nicht gemäß Spezifikation behandelt.
- Behoben: „Set Window Rect“ muss auf ungültige Eingaben prüfen
- Es wurden neue unhandledPromptBehavior-Modi unterstützt.
ChromeDriver 2.43
Unterstützt Chrome 69 bis 71
Die Änderungen umfassen:
- Die Analyse der Proxykonfiguration ist nicht standardkonform
- Behoben: Befehl zum Starten der App ist unzuverlässig
- Problem behoben: Screenshot eines Elements im iFrame wird falsch aufgenommen
- ChromeDriver unterstützt jetzt das Ändern der Fenstergröße über eine Remote-Verbindung
- Fehlercodes werden in „Clear element“ nicht verarbeitet
- Behoben: Es wird nicht gewartet, bis das Element sichtbar ist
- „Get element property“ ist nicht implementiert
- „Switch to Frame“ entspricht nicht der Spezifikation
- Behoben: „Execute Async Script“ gibt keine spezifikationskonformen Fehlercodes zurück
- Fehler behoben: „Execute Script“ gibt keine spezifikationskonformen Fehlercodes zurück
- Der Fehlercode in „ExecuteGet“ entspricht nicht der Spezifikation.
- Problem behoben: „Send Alert Text“ gibt keine spezifikationskonformen Fehlercodes zurück
- Fehler behoben: clear() für input type="date" gibt vor, dass das Element nicht vom Nutzer bearbeitet werden kann
- Chromedriver ruft das Fensterhandle für den manuell geöffneten Tab ab
- Fehler behoben: Anhängen oder Starten einer neuen Protokolldatei für Chromedriver zulassen
- Behoben: „New Session“ ruft den W3C-Modus nicht auf, wenn das Flag in „firstMatch“ enthalten ist.
ChromeDriver 2.42
Unterstützt Chrome 68 bis 70
Die Änderungen umfassen:
- Korrektur des ClickElement in der Mobilemulation
- Feste IP-Adressen auf der Zulassungsliste mit IPv4
- Fehler beim Starten von ChromeDriver mit dem Flag „whitelisted-ips“ unter Mac OS behoben
- Fehler behoben: SetTimeout akzeptiert jetzt sowohl das Format vor W3C als auch das W3C-Format.
- Screenshot von Take-Elementen korrigiert
- ChromeDriver sucht jetzt auch in einem System-PATH nach Chrome-Binärdateien
- „Fenster maximieren“ und „Vollbild“ korrigiert
- Die Logwiedergabe wurde implementiert. ( funktioniert noch nicht für Android und Remote Browser )
- Einige Fehlercodes entsprachen nicht dem W3C-Standard.
- Problem behoben: console.log mit mehreren Argumenten wurde nicht richtig verarbeitet
- „GetElementRect“ sollte Gleitkommazahlen zulassen
- Feste Touchemulation
ChromeDriver 2.41
Unterstützt Chrome 67 bis 69
Die Änderungen umfassen:
- Ein Problem wurde behoben, das auftrat, wenn ChromeDriver mit der Option „whitelisted-ips“ ausgeführt wurde.
- Der Remote-Debugging-Port wird in den Funktionen zurückgegeben.
- Abrufen der Fenstergröße unter Android implementiert
- Verbesserte Fehlermeldungen beim Start von Chrome auf dem Computer
- ChromeDriver schlägt schnell fehl, wenn Chrome-Binärdateien nicht gestartet werden können
- Der Rückgabewert von „Close Window“ entspricht der Spezifikation.