Versi Chrome yang lebih lama
Untuk versi Chrome yang lebih lama, berikut adalah versi ChromeDriver yang mendukungnya.
Untuk mengetahui informasi selengkapnya tentang cara memilih versi ChromeDriver yang tepat, lihat halaman Pemilihan Versi.
ChromeDriver 148
Perbaikan bug
- Akses DOM: Memperbaiki error yang terjadi saat menyimulasikan klik tombol di dalam iframe yang sendiri disarangkan di dalam root bayangan tertutup. JavaScript yang sebelumnya digunakan untuk menemukan ID elemen frame pemilik tidak dapat menembus root shadow tertutup; penerapan baru secara langsung menggunakan format
f.X.d.Y.e.Zuntuk menyelesaikan frame (crrev.com/c/7594919, Bug: 469831357). - Keamanan: Memperkuat sanitasi argumen Chrome untuk mencegah potensi kerentanan yang melibatkan injeksi argumen posisional (crrev.com/c/7695604, Bug: 494464734).
- Pengujian: Meningkatkan waktu tunggu
kImplicitWaituntuk pengujianFindElement(s)WhileNavigatingdicommands_unittestsaat dijalankan di AddressSanitizer (ASAN). Waktu tunggu 3 detik default tidak cukup bagi loop percobaan ulang untuk menggunakan semua error tiruan dalam beban kerja ASAN, sehingga menyebabkan ketidakstabilan (crrev.com/c/7657276).
Perubahan dan refaktor internal
- Standar C++: Mengganti include
base/functional/callback_forward.hyang berlebihan di seluruh file//chrome.cc, menerapkan penggunaancallback.hsaat callback benar-benar digunakan (crrev.com/c/7200285, Bug: 40318405). Memindahkanlogging::LoggingSettingsdaribase/logging.hke headernya sendiribase/logging/logging_settings.huntuk meningkatkan efisiensi kompilasi (crrev.com/c/7173024, membatalkan perubahan crrev.com/c/7160150 setelah mengembalikan crrev.com/c/7170750). Mengatasi berbagai error IWYU terkaitbase/logging.h(crrev.com/c/7730403, Bug: 499476145). - Standar C++: Mengganti pemeriksaan peta
count(key)yang berlebihan diikuti dengan pencarian menggunakan akses iteratorfind(key)yang lebih efisien (crrev.com/c/7705392, crrev.com/c/7693277, Bug: 452950815). MenyuntikkanThreadDelegatemelalui konstruktorThreaduntuk meningkatkan enkapsulasi, dan menambahkan opsiRestartablekeThreaduntuk mengakomodasi kasus saat thread perlu dimulai ulang (crrev.com/c/7696887, Bug: 40881604). - Keamanan memori: Mengonversi
#pragma allow_unsafe_buffersdi seluruh file menjadi makroUNSAFE_TODO()terperinci di seluruhchrome/(crrev.com/c/7132241, Bug: 409340989). MemperpendekIOBuffer->span().first()menjadiIOBuffer->first()(crrev.com/c/7159119). - Dependensi: Menggunakan dependensi
crossbench, yang menghadirkan perbaikan untuk menemukan biner ChromeDriver yang dibuat secara lokal di macOS dan Android (crrev.com/c/7673978). - Pengujian: Mengaktifkan kembali skema
moduledichromedriver_py_testssetelah perbaikan pada build dan infrastruktur pengujian yang mendasarinya (crrev.com/c/7707960).
ChromeDriver 147
Perbaikan bug
- Pengujian: Menambahkan pengujian regresi hermetik untuk memverifikasi bahwa
ElementClickmenangani klik dengan benar di iframe lintas origin dengan elemen overlay, khususnya dalam skenario isolasi situs. Hal ini memastikan bahwa klik tidak salah diarahkan ke konten sematan, bukan ke overlay yang terlihat (crrev.com/c/7261984, Bug: 42321834, Bug: 42322220).
Perubahan dan refaktor internal
- Standar C++: Mengganti nama fungsi dan mode decoding URL agar sesuai dengan panduan gaya C++ Google, mengubah
DecodeURLModemenjadiDecodeUrlModedanDecodeURLEscapeSequences()menjadiDecodeUrlEscapeSequences()(crrev.com/c/7593238). Memperkenalkanurl::UrlEscapeDecoderuntuk menyederhanakan penggunaan decoding URL di seluruh codebase (crrev.com/c/7610180). Menghapus penyertaanbuild/branding_buildflags.hyang tidak diperlukan dari file//chrome(crrev.com/c/7595125, Bug: 40318405). Menghapus logikaBUILDFLAG(IS_FUCHSIA)dari//chrome, kecuali dalam ChromeDriver (crrev.com/c/5485913, Bug: 41481724). - Keamanan memori (spanifikasi): Memperbaiki penanda
UNSAFE_TODOdi utilitas ChromeDriver, memigrasikannya ke penerapan berbasis rentang yang aman (crrev.com/c/7562602, Bug: 435317390).
ChromeDriver 146
Perbaikan bug
- Stabilitas: Memperbaiki error ChromeDriver yang dapat terjadi saat memproses perintah jika jendela ditutup secara bersamaan (misalnya, saat menunggu navigasi selesai). Perbaikan ini memperoleh kunci pada objek
WebViewuntuk mencegahnya dibuang sebelum waktunya (crrev.com/c/7257074, Bug: 468228355). - Keamanan: Menambahkan pemeriksaan header
Originuntuk koneksi WebSocket masuk ke server HTTP ChromeDriver, sehingga mencegah potensi pembajakan lintas origin (crrev.com/c/7538400, Bug: 478783560). - Pengujian: Memindahkan
testWebviewDetactedDuringClickke filter tidak stabil, melewati semua proses, bukan hanya mode tanpa tampilan (crrev.com/c/7545378, Bug: 481485821).
Perubahan dan refaktor internal
- Standar C++: Mengganti nama
base::DictValuedanbase::ListValuedengan nama yang lebih modern (base::Value::Dictdanbase::Value::List) di seluruh//chrome(crrev.com/c/7515855, crrev.com/c/7514475, Bug: 478100525). Mengganti penggunaanbase::Contains()denganstd::ranges::contains()(crrev.com/c/7461026, Bug: 470391351). Memigrasikanstd::setdanstd::unordered_setkebase::fixed_flat_setjika sesuai (crrev.com/c/7521991, Bug: 473916362). Merefaktor panggilanbase::JSONReader::Readyang tidak menentukan opsi parsing (crrev.com/c/6990988, crrev.com/c/6980533, Bug: 446188265). Mengganti berbagai panggilanbase::JSONWriter::Write()denganbase::WriteJson()(crrev.com/c/6969134, crrev.com/c/6929101, Bug: 443929217). Membersihkan pesanan#include(crrev.com/c/7366868). Referensi bug yang dimigrasikan dalam komentar untuk menggunakan ID Buganizer, bukan ID Monorail (crrev.com/c/7528268, Bug: 321899722). Mengganti nama tanda buildIS_OZONE_*menjadiSUPPORTS_OZONE_*agar lebih jelas (crrev.com/c/7535923). - Keamanan memori (spanifikasi): Mengganti penggunaan pointer yang tidak aman dengan
base::spandibase/strings/utf_string_conversion_utils.cc(crrev.com/c/7496410, Bug: 439964610, Bug: 40284755). Mengubah lebih banyak penggunaanbase::Filedalam pengujian//chrome(crrev.com/c/7489592, Bug: 435317390). Menggantimemsetdengan inisialisasi gabungan di seluruh//chrome(crrev.com/c/6875520, Bug: 435317390). Mengonversi penanda#pragma allow_unsafe_buffersyang tersisa keUNSAFE_TODO(crrev.com/c/7132241, Bug: 409340989). - Pemanasan DSE: Mengaktifkan fitur
DSEPrewarmdifieldtrial_testing_config.jsonuntuk macOS dan Windows, karena masalah ketidakstabilan pengujian ChromeDriver terkait telah diatasi (crrev.com/c/7489009, meluncurkan kembali crrev.com/c/7002185 setelah mengembalikan crrev.com/c/7452344). (Catatan: Reland ini kemudian dibatalkan lagi karena peningkatan durasi proses pengujian di Windows (crrev.com/c/7517985, Bug: 478888140)). - Diagnostik: Menambahkan pelacakan lokasi pemanggil ke peristiwa rekaman aktivitas
WaitableEventdanConditionVariableuntuk kemampuan pen-debug-an yang lebih baik (crrev.com/c/7487755, Bug: 476408124).
ChromeDriver 145
Fitur baru
- Pengujian: Memperbarui framework pengujian
run_py_tests.pyuntuk menerima pengujian string deterministik dengan berbagai panjang (misalnya, 53, 101, dan 501 karakter) yang menargetkan elemeninput,textarea, dancontenteditable. Hal ini memberikan cakupan regresi yang memastikan tidak ada karakter yang dihilangkan selama operasisend_keysyang panjang (crrev.com/c/7221410, Bug: 428116078). - Pengujian: Menambahkan pengujian khusus untuk elemen
<selectlist>HTML (crrev.com/c/7420729, Bug: 342889200).
Perbaikan bug
- Screenshot: Mengembalikan penskalaan screenshot elemen, karena spesifikasi WebDriver tidak menetapkan penskalaan dan tidak konsisten dengan fungsi screenshot lainnya (crrev.com/c/7409603, Bug: 42323022).
- Pengujian: Memperbaiki kegagalan di
testClientHintsDeviceNameIPhoneXdantestClientHintsDeviceNameIPaddengan memperbarui ekspektasi pengujian ChromeDriver agar sesuai dengan nilai benar terbaru (untuk kolom platform, platformVersion, model, dan mobile) yang diperkenalkan di Frontend DevTools (crrev.com/c/7408699, Bug: 474179501).
Perubahan dan refaktor internal
- Standar C++: Memigrasikan berbagai penggunaan
base::Contains()kestd::ranges::contains()di seluruh//chrome(crrev.com/c/7411011, Bug: 470391351), termasuk perbaikan pemformatan yang diperlukan (crrev.com/c/7247217). Parameter string yang diubah kestd::string_viewuntuk menghindari alokasi string yang tidak perlu saat menggunakansubstr()(crrev.com/c/7350716). Menghapus penyertaan<map>yang tidak diperlukan dari header//chrome(crrev.com/c/7225838, Bug: 40318405). Memperbaiki urutan penyertaan di beberapa file (crrev.com/c/7366868). Mengganti callbackBodyAsStringCallbackDeprecatedlama dalam penggunaanSimpleURLLoaderdenganBodyAsStringCallbackyang menggunakanstd::optional, bukanstd::unique_ptr(crrev.com/c/7210000, Bug: 40258809). - Pengujian: Melakukan relanding konfigurasi uji coba lapangan
InfobarPrioritization, termasuk perbaikan untuk mencegah error dalam pengujian browser ChromeDriver saat menangani infobar tertunda yang belum ditambahkan ke hierarki tampilan (crrev.com/c/7223590, Bug: 447176374). Menerapkan kembali pemfilteran negara dan lokalitas untuk fitur Glic, yang sebelumnya dikembalikan karena kegagalan pengujian yang tidak terkait (crrev.com/c/7245749, menerapkan kembali crrev.com/c/7148759 setelah dikembalikan crrev.com/c/7233767, Bug: 454431875).
ChromeDriver 144
Fitur baru
- Izin: Memperbarui perintah
SetPermissionagar sesuai dengan spesifikasi W3C terbaru, menggunakan URL frame saat ini (origin sematan) selain origin level teratas. Hal ini mengonfigurasi izin dengan benar sepertistorage-accessyang mengandalkan konteks sematan (crrev.com/c/7106801, relanding crrev.com/c/7093216 setelah mengembalikan crrev.com/c/7104484, Bug: 384959114). - Pengujian: Menambahkan
testMetadata(termasuk nama pengujian) ke payload upload pengujian ChromeDriver untuk mendukung pemberi rekomendasi ketidakstabilan saat menggunakan ID pengujian terstruktur (crrev.com/c/7124354, Bug: 456432041).
Perbaikan bug
- Target Siklus Proses: Memperbaiki bug yang menyebabkan ChromeDriver terhenti jika frame induk terlepas saat frame turunan sedang menunggu respons perintah. ChromeDriver kini secara eksplisit melepaskan frame turunan secara transitif saat
WebViewImplinduk dikunci dan ditandai sebagai dilepaskan selama pemrosesan perintah (crrev.com/c/7080912, Bug: 438436830). - Pengelolaan Jendela: Menonaktifkan latar belakang jendela yang tertutup secara khusus untuk sesi ChromeDriver. Hal ini menyelesaikan masalah di WebDriver BiDi yang menyebabkan pengujian dapat gagal jika browser secara keliru menganggap jendela terhalang dan membatasi kecepatannya (crrev.com/c/7128058, Bug: 458027819).
Perubahan dan refaktor internal
- Standar C++: Menghapus include
base/functional/callback_forward.hyang berlebihan di seluruh file//chrome.cc, menerapkan penggunaancallback.hsaat callback benar-benar digunakan (crrev.com/c/7200285, Bug: 40318405). Memindahkanlogging::LoggingSettingsdaribase/logging.hke headerbase/logging/logging_settings.h-nya sendiri untuk meningkatkan efisiensi kompilasi (crrev.com/c/7173024, membatalkan perubahan crrev.com/c/7160150 setelah mengembalikan crrev.com/c/7170750). Memigrasikan penggunaanbase::HexEncodekebase::HexEncodeLoweryang lebih baru (crrev.com/c/7103100, Bug: 456472080). - Keamanan memori (spanifikasi): Memigrasikan
WriteToPipedanWriteToPipeNoBestEffortdalam pengujian unitPipeBuilderdanPipeConnectionuntuk menerimabase::span, memperbaiki penggunaan buffer yang tidak aman (crrev.com/c/7090293, Bug: 455758227). Mengonversi#pragma allow_unsafe_buffersdi seluruh file menjadi makroUNSAFE_TODO()terperinci dichrome/(crrev.com/c/7132241, Bug: 409340989). MemperpendekIOBuffer->span().first()menjadiIOBuffer->first()(crrev.com/c/7159119).
ChromeDriver 143
Perbaikan bug
- Stabilitas: Memperbaiki error Use-After-Free (UAF) dalam
OverrideNetworkConditions. Pointer mentah yang disimpan untuk penerapan berikutnya akan dibebaskan di antara panggilan berurutan; kini dikelola dengan benar (crrev.com/c/7047422, Bug: 42323833). - Pengujian: Memperbaiki pengujian sentuh Android ChromeDriver yang tidak stabil dengan memanfaatkan API
WaitForConditionuntuk sinkronisasi yang lebih andal (crrev.com/c/6978928, Bug: 42321861). - Pemanasan DSE: Menonaktifkan fitur
Prewarmdi ChromeDriver secara default melalui tombol--disable-features=Prewarm, sehingga mencegah halaman yang dipanaskan mengganggu eksekusi pengujian dan penemuan target (crrev.com/c/7007072, Bug: 431928370).
Perubahan dan refaktor internal
- Standar C++: Menukar
ref_counted.hdenganscoped_refptr.hdi header//chromeyang hanya menggunakan pointer pintar, sehingga meningkatkan efisiensi kompilasi (crrev.com/c/7080753, Bug: 40245294). Memigrasikan aksesorGURLke varianGet*(misalnya,GetSpec(), bukanspec()) untuk menunjukkan alokasi string dengan jelas, sehingga mencegah penalti performa yang tidak disengaja (crrev.com/c/7002119, Bug: 448174617). - Pengujian: Menghapus pola pemeriksaan yang berlebihan di
devtools_client_impl_unittest.ccmenggunakanADD_FAILURE()(crrev.com/c/6998270). Menambahkan uji regresi untukcrbug.com/413382905(crrev.com/c/6879417).
ChromeDriver 142
Fitur baru
- Diagnostik: Menambahkan status
TERMINATION_STATUS_EVICTED_FOR_MEMORYuntuk membedakan proses yang dihentikan secara proaktif oleh browser (untuk menghemat memori) dari proses yang error karena error kehabisan memori (OOM). Saat ini, perilaku ini sama dengan error OOM (menampilkan tab sedih), tetapi meletakkan dasar untuk penanganan yang berbeda pada masa mendatang (crrev.com/c/6991933, Bug: 394092280). - Diagnostik: Menambahkan kemampuan
goog:processIDke respons WebDriver, yang menampilkan ID proses utama browser desktop. Hal ini menyelaraskan ChromeDriver denganmoz:processIDFirefox dan membantu menguji API aksesibilitas platform (crrev.com/c/5825307, Bug: 438884256). - Pengujian: Menambahkan dukungan untuk upload ID pengujian terstruktur ke ResultSink untuk pengujian integrasi Python ChromeDriver (crrev.com/c/6916708, Bug: 418015486).
Perbaikan bug
- Diagnostik: Mengubah perilaku ChromeDriver saat keluar dari Chrome secara normal agar tidak lagi memunculkan pesan error umum yang membingungkan terkait penggunaan
user-data-dir. Sekarang, pesan tersebut secara eksplisit menyatakan bahwa instance telah dihentikan dan mengarahkan pengguna ke log verbose untuk error tertentu yang ditampilkan oleh Chrome (crrev.com/c/6977507, Bug: 42323434). - Inisialisasi: Memperbarui struktur inisialisasi ChromeDriver agar tetap kompatibel dengan perubahan Selenium WebDriver v4.16.0 (crrev.com/c/6630600).
- Android: Memperbaiki
CheckAppInstalledpada versi Android lama (lebih lama dari Android 11) saat tanda--user curtidak didukung oleh pengelola paket (crrev.com/c/6785949, Bug: 433885051). - Pengujian: Memperbaiki bug yang menyebabkan
IgnoreDuplicateNavssalah menggantikan pengalihan kemampuan default di ChromeDriver. Fitur ini telah dinonaktifkan untuk sesi ChromeDriver, dan logikaSwitches::SetFromSwitchestelah diperbaiki (crrev.com/c/6949166, Bug: 445332809).
Perubahan dan refaktor internal
- Standar C++: Mengganti beberapa panggilan
base::JSONWriter::Write()yang tidak digunakan lagi denganbase::WriteJson(), mempertahankan perilaku menampilkan string kosong saat terjadi kegagalan jika nilai yang ditampilkan tidak diperiksa (crrev.com/c/6969134, crrev.com/c/6929101, Bug: 443929217). Memerlukan keikutsertaan eksplisit untuk opsi penguraian JSON yang tidak mematuhi (misalnya, mengizinkan komentar) dibase::JSONReader::Readdanbase::JSONReader::ReadAndReturnValueWithError(crrev.com/c/6990988, crrev.com/c/6980533, Bug: 446188265). Menghapus pragma#pragma allow_unsafe_buffersdi seluruh file setelah upaya spanifikasi manual (crrev.com/c/6778035, Bug: 409340989). Membersihkan penggunaan makroLazyInstanceyang menyebabkan kebocoran (crrev.com/c/6781377, Bug: 432815283). Menyertakan header yang tidak ada untukhttp_response_headers.hmelalui IWYU (crrev.com/c/6894196, Bug: 40216326). - Keamanan memori (spanifikasi): Secara otomatis melakukan spanifikasi banyak pointer di direktori
chrome/untuk build Linux, dengan menambahkanCHECKnon-fatal jika parameter ukuran dianggap berlebihan (crrev.com/c/6734592, Bug: 431824299). - Pengujian: Menonaktifkan
testDoesntCrashOnClosingBrowserFromAsyncScriptuntuk sementara di macOS (crrev.com/c/6995358, Bug: 446461733). Memperbaiki kesalahan ketik pada nama metode pengujian yang melibatkan "Certificates" (crrev.com/c/6950683). File GN yang diformat otomatis//chrome/test(crrev.com/c/6789277, Bug: 40760278). - FedCM: Memperkenalkan fungsi
ShouldShowAccountsPassiveDialogkeIdentityDialogControlleruntuk memeriksa secara sinkron apakah dialog akun harus ditampilkan, sehingga memperbaiki error terkait pemeriksaan asinkron dan instrumentasi DevTools (crrev.com/c/6780413, Bug: 425801332). - Pemanasan DSE: Menambahkan
Page.setPrewarmingAllowedke DevTools Protocol sebagai solusi jangka pendek untuk mengaktifkan atau menonaktifkan pemanasan secara manual, memperbaiki pengujian terkait untuk memastikan pengujian tersebut berinteraksi dengan halaman utama dengan benar (crrev.com/c/6847287, Bug: 431928370). Mengaktifkan fiturDSEPrewarmdifieldtrial_testing_config.jsonuntuk macOS dan Windows setelah mengatasi masalah ketidakstabilan (crrev.com/c/6951835, Bug: 431928370, Bug: 435621391). (Catatan: Perintah CDP dan pengaktifan uji coba lapangan dibatalkan karena merupakan perubahan yang merusak bagi pengguna WebDriver yang mengekspos target yang tidak terduga, dan menyebabkan masalah hilir lainnya (crrev.com/c/6966133, crrev.com/c/6966161, Bug: 445883308)). - Pembersihan: Menghapus referensi yang tersisa ke project
WebLayeryang tidak didukung dalam kode Android (crrev.com/c/6792520, Bug: 40272607).
ChromeDriver 141
Fitur baru
- Pengujian: Menambahkan dukungan untuk tanda
--enable-per-test-tracingkerun_wpt_tests.py, yang cocok dengan perilakurun_web_tests.py. Tindakan ini mengambil peristiwa rekaman aktivitas JSON dari buffer ChromeDriver internal dan menyimpannya ke direktori hasil pengujian (crrev.com/c/6820247, Bug: 434017035).
Perbaikan bug
- Diagnostik: Mencegah ChromeDriver mencetak stack trace internalnya sendiri saat menampilkan error
kTabCrashed. Hal ini menghindari kebingungan pengguna, sekaligus memastikan stack trace error perender tetap ada di log (crrev.com/c/6841669, Bug: 395131239).
Perubahan dan refaktor internal
- Standar C++: Mengganti panggilan
memsetyang berpotensi tidak aman dengan inisialisasi agregat C++ standar (instance = {}) di seluruhchrome/untuk menghindari melewati konstruktor dan memastikan keamanan memori (crrev.com/c/6875520, Bug: 435317390). Menambahkan direktif#includeyang tidak ada untuk//base/time/time.hmelalui IWYU (crrev.com/c/6832689, Bug: 40216326). Menulis ulang pragma buffer tidak aman yang dipaksakan (crrev.com/c/6828538). - Pengujian: Menambahkan uji regresi untuk
crbug.com/413382905(crrev.com/c/6879417). - Transisi tampilan: Memperbaiki kembali perbaikan transisi tampilan yang memperbarui pekerjaan yang dilakukan sebelum promise selesai diselesaikan, setelah pembatalan spekulatif sebelumnya yang terkait dengan kegagalan pengujian ChromeDriver terbukti salah (crrev.com/c/6846765, memperbaiki kembali crrev.com/c/6806850 setelah pembatalan crrev.com/c/6808537).
ChromeDriver 140
Perbaikan bug
- Pemilihan target: Memperbaiki masalah saat jendela DevTools dapat bersaing dengan halaman utama untuk dipilih sebagai jendela utama saat Chrome diluncurkan dengan
--auto-open-devtools-for-tabs. ChromeDriver kini secara eksplisit mengecualikan target berawalandevtools://selama penentuan jendela utama (crrev.com/c/6769505, Bug: 427908560). - Pemilihan target: Mencegah ChromeDriver salah menghitung titik tengah elemen yang terlihat dengan mengabaikan pemangkasan
overflow:hiddenyang diterapkan oleh elemen induk. Hal ini menyelaraskan penghitungan dengan spesifikasi WebDriver dan skenarioPerformActionslainnya (crrev.com/c/6735230, Bug: 42322257). - Android: Memperbaiki fungsi
CheckAppInstalledpada versi Android yang lebih lama (sebelum Android 11) saat tanda--user curuntuk pengelola paket tidak didukung (crrev.com/c/6785949, Bug: 433885051). - Pengujian: Memperbaiki ketidakstabilan di rangkaian pengujian
chromedriver_py_testsyang disebabkan oleh fiturDSEPrewarm. ChromeDriver kini menonaktifkan pemicu pra-pemanasan saat klien CDP terhubung untuk mencegah jumlah target yang tidak terduga selama pengujian (crrev.com/c/6764274, Bug: 423465927, Bug: 431928370). - Pengujian: Mengembalikan penambahan fungsi
ShouldShowAccountsPassiveDialogkeIdentityDialogController(bagian dari FedCM), yang menyebabkan regresi (crrev.com/c/6780413, Bug: 425801332).
Perubahan dan refaktor internal
- Standar C++: Menambahkan
std::vector#includeyang tidak ada melalui Include What You Use (IWYU) (crrev.com/c/6652818, Bug: 40216326). Menghapus includegurl.h(crrev.com/c/6578272) dan<queue>(crrev.com/c/6570349, Bug: 40318405) yang tidak diperlukan di seluruh header//chrome. MengatasiIWYUuntukNOTIMPLEMENTED()di//chrome(crrev.com/c/6655452, Bug: 41493641). - Keamanan memori (spanifikasi): Menjalankan alat spanifikasi pointer otomatis di seluruh build Linux, memperbarui kode untuk menggunakan rentang yang ukurannya diketahui (crrev.com/c/6734592, Bug: 431824299). Menghapus pragma
#pragma allow_unsafe_buffersdi seluruh file dichrome/setelah penyelesaian migrasi (crrev.com/c/6778035, Bug: 409340989). Mengecualikan targetchrome/testdari peringatan-Wexit-time-destructorsuntuk memungkinkan pengaktifan peringatan secara global (crrev.com/c/6736532, Bug: 40031409, Bug: 430332953). Membersihkan penggunaanLazyInstanceyang bocor di bawah//chrome(crrev.com/c/6781377, Bug: 432815283). - Pembersihan: Menghapus tanda CLI
--debug-bidi-mapper, karena transisi ke menjalankan Pemeta BiDi di target tersembunyi telah selesai dan stabil (crrev.com/c/6672011, Bug: 408992812). - Pembersihan: Menghapus referensi yang tersisa ke project
WebLayeryang tidak didukung (crrev.com/c/6792520, Bug: 40272607). File//chrome/testGN yang diformat otomatis untuk memperpendek referensi target (crrev.com/c/6789277, Bug: 40760278). - Pengujian: Menambahkan pengujian penerimaan untuk memverifikasi perbaikan masalah
PerformActionspointerMove(crrev.com/c/6648646, Bug: 42322257). - Pengujian: Mengomentari segmen pembuatan driver paralel dari pengujian
testBrowserWithUsedUserDataDir(dan mengajukan bug pelacakan) karena menyebabkan kegagalan di macOS terkait penguncian eksklusif saat menggunakanchrome-headless-shell(crrev.com/c/6470455, Bug: 411407649, Bug: 380903149). - Pengujian: Memperbarui wrapper
run_cwt_chromedriver.pyuntuk iOS guna mendukung argumen--platform-type(crrev.com/c/6771517, Bug: 427548014). - PEMILIK: Menghapus
nvitkovdari filechrome/test/chromedriver/OWNERS(crrev.com/c/6771413).
ChromeDriver 139
Perbaikan bug
- Struktur inisialisasi: Memperbarui struktur inisialisasi ChromeDriver agar tetap kompatibel dengan update Selenium WebDriver v4.16.0 (crrev.com/c/6630600).
- Penguraian argumen: Menggabungkan beberapa argumen
--js-flags(mirip dengan cara penanganan--enable-features) alih-alih hanya mengambil argumen terakhir yang diberikan. Hal ini meningkatkan kegunaan saat meneruskan tanda V8 yang kompleks (crrev.com/c/6612042, Bug: 421941798).
Perubahan dan refaktor internal
- Keamanan memori (spanifikasi): Mengganti penggunaan
base::MakeStringPiece()yang tidak digunakan lagi denganstd::string_viewdi seluruh//chrome/test(crrev.com/c/6628089, Bug: 422940464). Menyertakanbase/strings/string_view_util.hsaatbase::as_string_view()digunakan, sebagai persiapan untuk migrasi namespace pada masa mendatang (crrev.com/c/6625024, Bug: 423048781). - Standar C++: Peningkatan kepatuhan Include What You Use (IWYU) di seluruh
//chromedengan menyertakan<vector>secara eksplisit (crrev.com/c/6652818),base/notimplemented.h(dan menghapusbase/notreached.hjika tidak digunakan) (crrev.com/c/6655452, Bug: 41493641),base/strings/string_util.h(crrev.com/c/6607646),base/strings/string_number_conversions.h(crrev.com/c/6593576), dan menghapus penyertaanbase/debug/stack_trace.hyang tidak diperlukan (crrev.com/c/6622838). - Pengujian: Memindahkan opsi
--driver-loggingkerun_wpt_tests.py, sehingga skrip dapat membuang ChromeDriver danstderrbrowser bahkan pada tingkat kejelasan yang lebih rendah (crrev.com/c/6608138, Bug: 421262910). - Pengujian: Mengaktifkan kembali pengujian integrasi ChromeDriver yang sebelumnya dinonaktifkan: pengujian screenshot (
testTakeElementScreenshot*) (crrev.com/c/6598797, Bug: 42321815), pengujian penutupan jendela melalui Javascript (testCloseWindowUsingJavascript*) (crrev.com/c/6598978, Bug: 42321150), dan pengujian ukuran jendelaheadless-shell(crrev.com/c/6621336, Bug: 42323661). - Pengujian: Memperbaiki
run_wpt_tests.py --stableagar dapat mengidentifikasi dan menggunakan versi stabil Clank (Android) saat ini dengan benar melalui parsing APK, dan memperbarui skrip untuk mendownload versi ChromeDriver yang sesuai dari Chrome for Testing (CfT) ke direktori sementara, bukan mencemari checkout (crrev.com/c/6635694, Bug: 402548382). - Infrastruktur build: Menghapus dependensi build yang tidak perlu pada
write_build_config.pydengan melarang targetandroid_resources()memiliki manifes, karena penggabungan manifes dan penamaan paket R.java kini ditangani oleh atribut khusus (crrev.com/c/6625266, Bug: 413331591). - FedCM: Memperbaiki flag fitur konfigurasi Finch yang terkait dengan FedCM (crrev.com/c/6614137, Bug: 421959289).
ChromeDriver 138
Fitur baru
- Pengelolaan fitur tampilan: Perilaku ChromeDriver yang diperbarui untuk segmen area tampilan agar sesuai dengan resolusi terbaru CSS Working Group: kini secara konsisten menampilkan array dengan satu segmen saat perangkat foldable digunakan dalam posisi datar, atau untuk semua perangkat non-foldable. Hal ini sesuai dengan perilaku kueri media dan memitigasi risiko pembuatan sidik jari (crrev.com/c/6469455, Bug: 414430842).
- Preferensi & status lokal (Android): Menambahkan dukungan untuk kemampuan
localStatedanprefssaat menjalankan ChromeDriver terhadap perangkat Android. Hal ini bergantung pada ADB dan memerlukan tandauser-data-dirkustom; saat ini, tanda tersebut menginisialisasi status dengan template default (crrev.com/c/6397155, Bug: 406427226).
Perbaikan bug
- Stabilitas: Memperbaiki error ChromeDriver yang terjadi di macOS saat pengguna menutup dialog Pengalaman Penggunaan Pertama (FRE) melalui tombol "lanjutkan". Error terjadi karena mengganti status error
kTargetDetacheddan mencoba mengaksesWebViewyang tidak valid (crrev.com/c/6538867, Bug: 410599467). - Pengujian performa: Memperbaiki runner pengujian
crossbenchdi bot pinpoint Windows yang secara keliru mencoba menemukan biner ChromeDriver menggunakan jalur../Release_x64yang sudah tidak berlaku saat--browser=release_x64diteruskan, sehingga menyebabkan bot kembali mendownload biner yang lebih lama, bukan menggunakan build lokal (crrev.com/c/6502134).
Perubahan dan refaktor internal
- Keamanan memori (spanifikasi): Mengganti pointer yang tidak diperiksa di
WebSocket::OnReadDuringHandshakedanWebSocket::OnReadDuringOpendenganbase::span, mengatasi peringatanunsafe-buffer-usage(crrev.com/c/6557346, Bug: 354307328). Menghapus pragma#pragma allow_unsafe_buffersyang tidak perlu di seluruhchrome/test/chromedriveryang tidak lagi diperlukan setelah migrasi lainnya (crrev.com/c/6503154, Bug: 414858406). - Standar C++: Menghapus arahan
#include "url/gurl.h"dan#include <queue>yang tidak diperlukan di seluruh headerchrome/, menambahkan deklarasi penerusan jika sesuai untuk meningkatkan waktu kompilasi (crrev.com/c/6578272, crrev.com/c/6570349, Bug: 40318405). - Migrasi API: Memigrasikan
RSAPrivateKeykecrypto::PrivateKeydanSHA256HashStringkecrypto::Sha256, membersihkan kasus penanganan error yang sudah tidak berlaku karena API pembuatan kunci baru tidak mungkin salah (crrev.com/c/6490294, Bug: 372283556). - Pengujian: Menambahkan atribut
OwnContributionEstimateke perintah otomatisasi Compute Pressure API (implementasi CDP dan testdriver) (crrev.com/c/6373001, Bug: 402033762). - Pengujian: Memperbaiki pengujian integrasi yang memverifikasi
ClearDisplayFeaturesdi bot Continuous Integration (CFT) dengan menyederhanakan pernyataan untuk memeriksa apakah segmen area tampilan dikosongkan kembali ke ukuran area tampilan default (crrev.com/c/6535067, Bug: 417195296). - Pengujian: Meningkatkan waktu tunggu untuk pengujian WebDriver Protected Audience guna mengatasi ketidakstabilan pada bot CI yang lebih lambat (crrev.com/c/6494277).
ChromeDriver 137
Fitur baru
- Pengelolaan fitur tampilan: Menambahkan perintah ChromeDriver untuk mengemulasi dan menghapus fitur tampilan, serta menerapkan persyaratan otomatisasi untuk Viewport Segments API (CSS dan JS). Hal ini memungkinkan developer menguji skenario lipatan atau engsel secara terprogram di perangkat dua layar atau foldable (crrev.com/c/6368674, Bug: 40137084).
- BiDi: Memperbarui ChromeDriver untuk menjalankan BiDi Mapper dalam target tersembunyi secara default. Hal ini mencegah halaman
data:,mapper mengganggu eksekusi dan visibilitas pengujian. Untuk men-debug mapper, klien dapat meneruskan tanda--debug-bidi-mapperuntuk menjalankannya di tab yang terlihat (crrev.com/c/6441064, relanding crrev.com/c/6433672 setelah dikembalikan crrev.com/c/6439633, Bug: 402339952).
Perbaikan bug
- BiDi: Mencegah ChromeDriver menutup seluruh sesi browser secara tidak benar saat memproses perintah BiDi (seperti
browsingContext.close) jika kehilangan jejak target yang dibuat oleh sesi CDP atau BiDi lainnya. Sekarang, tab tingkat teratas disinkronkan secara eksplisit sebelum memutuskan untuk menghentikan browser (crrev.com/c/6440293, Bug: 42323838). - BiDi: Selaras dengan spesifikasi BiDi WebDriver upstream dengan memastikan ChromeDriver menghapus kemampuan
goog:channeljika diteruskan sebagai string kosong, memperlakukannya secara identik dengan channel yang tidak ada (crrev.com/c/6438865, Bug: 409282307). - Input: Memperbaiki masalah yang menyebabkan peristiwa sentuh dan pointer gagal atau berperilaku tidak benar dengan mengupdate ChromeDriver untuk mendukung koordinat x dan y pecahan (floating-point) dalam perintah gerakan pointer (crrev.com/c/6440834, Bug: 409684333).
- Pemilihan target: Mencegah iframe di luar proses (OOPIF) PDF yang dibuka di tampilan tamu (saat fitur
PdfOopifdinonaktifkan) agar tidak meluas ke daftar target tingkat teratas. Logika pemfilteran diperluas untuk mengecualikan target yang diawali denganchrome-extension://ini dengan benar (crrev.com/c/6383500, Bug: 396611138).
Perubahan dan refaktor internal
- Standar C++: Melakukan kembali perubahan untuk menggunakan
std::string_viewuntuk nama file dalamLogMessagedan peristiwa rekaman aktivitas, sehingga menyelesaikan masalah penanganan string yang dihentikan null yang menyebabkan pengembalian sebelumnya (crrev.com/c/6430129, melakukan kembali crrev.com/c/6395097, melakukan kembali crrev.com/c/6387020 setelah pengembalian crrev.com/c/6383699). - Standar C++: Memodernisasi panggilan
Environment::GetVardi seluruh//chromeuntuk menggunakan API yang menampilkanstd::optional, bukan parameter luar (crrev.com/c/6417343, Bug: 400758498). - Standar C++: Memfaktorkan ulang helper handle khusus Windows dari
win_util.hke headerwindows_handle_util.hkhusus untuk menghindari masalah dependensi melingkar (crrev.com/c/6418805, Bug: 406023316). - Pengujian: Menambahkan handler domain
Browserkhusus Android dan menerapkanBrowser.getWindowForTargetAPI untuk mendukung pengujian pembuatan jendela Android (crrev.com/c/6427605, Bug: 404932444). - Pengujian: Memperbaiki ketidakstabilan dalam pengujian macOS yang disebabkan oleh inisialisasi ekstensi yang terlalu lama (crrev.com/c/6423229, Bug: 407804497).
- Pengujian: Menonaktifkan sementara pembuatan
user-data-dirparalel ditestBrowserWithUsedUserDataDirsaat dijalankan terhadapchrome-headless-shell, karena bertentangan dengan penguncian eksklusif di macOS (crrev.com/c/6470455, Bug: 411407649, Bug: 380903149). - Ekstensi: Mengupdate pengujian Chrome agar lulus saat uji coba lapangan
ExtensionManifestV2Unsupporteddiaktifkan. Ini adalah langkah mendasar, meskipun uji coba itu sendiri tetap dinonaktifkan sambil menunggu update di repositori lain (crrev.com/c/6415997, Bug: 367395349). (Catatan: Upaya sebelumnya untuk mengaktifkan uji coba ini melalui konfigurasi telah dikembalikan crrev.com/c/6397497 yang mengembalikan crrev.com/c/6358257). - Dependensi: Secara manual meluncurkan dependensi
catapultdan memperbarui filepydepsterkait serta referensidevil_util(crrev.com/c/6480814, crrev.com/c/6466865, meluncurkan kembali crrev.com/c/6406098 setelah mengembalikan crrev.com/c/6448910, Bug: 397459590).
ChromeDriver 136
Fitur baru
- Siklus proses browser: Menambahkan kemampuan khusus Chrome
quitGracefullyyang memaksa ChromeDriver untuk mencoba menghentikan browser dengan benar (menggunakanBrowser.closeatau SIGTERM) alih-alihSIGKILLdefault. Hal ini memberi waktu bagi debugger sepertirruntuk mendownload rekaman sebelum proses berakhir (crrev.com/c/6322538, meluncurkan kembali crrev.com/c/6269180 setelah pengembalian singkat crrev.com/c/6320536, Bug: 339644807). - Pengujian: Menyalurkan argumen
run_wpt_tests.py --wrapperdengan membuat skrip wrapper sementara yang menambahkan awalan debugger (misalnya,rr) dan argumennya ke biner browser. Hal ini mengatasi ketidakmampuan ChromeDriver untuk mengganti biner secara langsung saatargsdiproses sebagai switch (crrev.com/c/6271108, Bug: 339644807). - Pengujian: Mengaktifkan terjemahan berdasarkan preferensi di
TranslateEnabledTestuntuk mendukung lingkungan pengujian tempat ChromeDriver mengelola proses browser dan melewati batasan--remote-debugging-portbaru saat--user-data-dirbersifat implisit (crrev.com/c/6354089, Bug: 327797500). - DevTools: Menambahkan dukungan untuk fitur multi-instance DevTools guna membuka tab baru di jendela lain di Android (crrev.com/c/6352169, Bug: 401269942, Bug: 382183406).
Perbaikan bug
- Pemilihan target: Memperbaiki masalah saat iframe di luar proses (OOPIF) PDF yang dibuka di tampilan tamu tidak difilter dari daftar target tingkat teratas saat fitur
PdfOopifdinonaktifkan. Filter diperluas untuk menyertakan awalanchrome-extension, yang menyelesaikan bug dan menyertakan cakupan untuk ekstensi Chrome MV3 yang membuat tab (crrev.com/c/6383500, Bug: 396611138). - Pemilihan target: Memperbaiki regresi yang menyebabkan perintah
getWindowHandles()gagal dengan statusconnection refusedsaat menargetkan Aplikasi Chrome yang dikemas (crrev.com/c/6317161, Bug: 396622746).
Perubahan dan refaktor internal
- Standar C++: Mengembalikan perubahan yang menggunakan
std::string_viewuntuk nama file dalamLogMessagedan peristiwa rekaman aktivitas, sehingga meningkatkan kompatibilitas dengan struktur logging Rust yang tidak menjamin string yang dihentikan null (crrev.com/c/6387020, mengembalikan crrev.com/c/5765705 setelah dikembalikan crrev.com/c/6383699 dan dikembalikan lagi crrev.com/c/6395097). - Standar C++: Mengganti panggilan
base::Value::Clone()yang berlebihan untuk mengoptimalkan performa (crrev.com/c/6361818). Menghapus peringatan-Wunsafe-buffers-in-libc-callstambahan dalam file khusus Windows untuk membersihkan output build (crrev.com/c/6369920, Bug: 390223051). - Ekstensi: Mengembalikan penambahan entri
fieldtrial_testing_config.jsonuntuk faseExtensionManifestV2Unsupportedkarena masalah (crrev.com/c/6397497, mengembalikan crrev.com/c/6358257, Bug: 367395349, Bug: 406523920). - Dokumentasi: Peningkatan dokumentasi pengujian ChromeDriver khusus Android (crrev.com/c/6354040).
ChromeDriver 135
Fitur baru
- BiDi: Memperbarui Pemeta BiDi untuk mewarisi izin ChromeDriver saat
--enable-unsafe-extension-debuggingditentukan. Hal ini memungkinkan klien WebDriver BiDi menguji ekstensi secara efektif yang memerlukan izin yang biasanya dimiliki oleh klien WebDriver (crrev.com/c/6288627, Bug: 393500934).
Perbaikan bug
- Pengujian: Mengaktifkan kembali dan memperbarui ekspektasi untuk beberapa pengujian WDSpec yang sebelumnya ditandai sebagai gagal. Tindakan ini memulihkan cakupan kepatuhan spesifikasi untuk pengujian yang lulus (crrev.com/c/6310420).
Perubahan dan refaktor internal
- Pembersihan: Menghapus semua jejak Lacros (termasuk
IS_CHROMEOS_LACROSdan data pengujian terkait) darichrome/test/karena Lacros tidak digunakan lagi, dan menstandarkanIS_CHROMEOS(crrev.com/c/6284446, Bug: 354842935). - Pembersihan: Menghapus semua jejak utilitas
md5sumsetelah diganti dengandevil_util, membersihkan dependensi build lama (crrev.com/c/6309939, Bug: 397452007). - Standar C++: Menghapus namespace
chrome::dariResultCodedanIsNormalResultCode(), memindahkannya ke namespace global, dan menghapus impor startup ChromeOS yang sudah tidak digunakan (crrev.com/c/6196899, Bug: 41050580). - Keamanan memori: Menyederhanakan panggilan
std::lower_bounddi ChromeDriver dengan memanfaatkanstd::ranges::lower_bound(crrev.com/c/6223172, Bug: 392116519). Menekan peringatanunsafe_libc_calluntuk file yang awalnya diidentifikasi tidak mematuhi kebijakan sebagai persiapan untuk penegakan kebijakan di masa mendatang (crrev.com/c/6187925, Bug: 390223051). Menandai nilai yang ditampilkanstd::to_arraysebagaiconstexpruntuk meningkatkan keamanan dan evaluasi waktu kompilasi (crrev.com/c/6298909).
ChromeDriver 134
Fitur baru
- Mitigasi Pelacakan Pantulan (DIPS): Mendapatkan kembali dukungan ChromeDriver untuk Mitigasi Pelacakan Pantulan, dengan memanfaatkan perintah
RunBounceTrackingMitigations. Pengujian integrasi disusun ulang untuk menggunakan halaman yang berbeda, sehingga memastikan pentalan stateful dicatat dengan benar sebelum perintah dijalankan. Fitur ini mendukung spesifikasinav-tracking-mitigationsdan diimplementasikan di//chrome(crrev.com/c/4935955, Bug: 1474656). (Catatan: Awalnya ditambahkan di crrev.com/c/4873672 dan kemudian dikembalikan). - BiDi: Mengupdate ChromeDriver untuk menggunakan properti ekstensi BiDi WebDriver standar dengan awalan
goog:, yang selaras dengan perubahanchromium-bidiupstream. Propertichannellama tidak lagi diizinkan (crrev.com/c/6179410). - Windows: Menambahkan resource versi ke biner
chromedriver.exedi Windows (crrev.com/c/6114586, Bug: 385300323).
Perbaikan bug
- MPArch/Targets: Memperbaiki regresi saat target Ekstensi Chrome (
chrome-extension://) ditemukan dan dilampirkan secara salah selama penentuan target utama di ChromeOS, yang menyebabkan perintah berikutnya (seperti navigasi) gagal. Target ekstensi kini dilewati dengan benar selama fase awal ini (crrev.com/c/6183202, Bug: 385241097). - MPArch/Targets: Memperbaiki regresi lain yang menyebabkan target tab untuk Ekstensi
background_pagetidak difilter dengan benar dari tampilan web tingkat teratas saat dukungan target ekstensi dinonaktifkan (crrev.com/c/6160774, Bug: 385731198). - MPArch/Navigasi: Memperbaiki masalah saat tab dapat sesaat tidak memiliki halaman aktif yang terlampir selama aktivasi MPArch, sehingga ChromeDriver salah melihatnya sebagai status error. ChromeDriver kini menunggu tab untuk mendapatkan halaman baru dan menyelesaikan navigasinya sebelum menyelesaikan status (crrev.com/c/6177606).
- Pemrosesan Log: Memperbaiki error (kegagalan
DCHECKdibase::Value()) yang disebabkan oleh pemotongan string log yang tidak tepat yang berisi karakter multibyte. Logika telah diperbarui untuk menggunakan deteksi batasUnicodeString, bukan pemeriksaan panjangstd::stringsederhana, sehingga memastikan titik kode yang valid (crrev.com/c/6210809, Bug: 367752739). - Pengujian: Memigrasikan sebagian besar WPT terkait pra-rendering (kecuali beberapa WPT dengan masalah API yang diketahui) dari
content_shellkeheadless_shell, karena refaktor MPArch baru-baru ini memungkinkan ChromeDriver untuk menjalankannya dengan benar (crrev.com/c/6168830, Bug: 42323502, Bug: 366257368).
Perubahan dan refaktor internal
- Standar C++: Mengganti penggunaan
base::rangesdenganstd::rangesstandar (crrev.com/c/6200893, crrev.com/c/6177197, Bug: 386918226). Menulis ulang polab ? "true" : "false"untuk menggunakanbase::ToString(bool)jika memungkinkan (crrev.com/c/6165810, Bug: 335797528). Menghapus fungsiStringPrintfNonConstexpr()yang tidak aman dan menggantinya dengan alternatif pemformatan string yang lebih aman (crrev.com/c/6149756). Mengganti aritmatika pointer (+ std::size) dengan iteratorbegin/endstandar untuk mengatasi peringatan buffer yang tidak aman (crrev.com/c/6217045, Bug: 392116519). - Pembersihan: Menghapus flag fitur
FedCmIdpSigninStatusdan flag runtime-nya (crrev.com/c/6111321, Bug: 381211734). (Catatan: Upaya penghapusan sebelumnya dibatalkan crrev.com/c/6082405 karena kerusakan).
ChromeDriver 133
Fitur baru
- Arsitektur: Mengubah kode ChromeDriver untuk mendukung Arsitektur Multi-Halaman (MPArch) dan target tab.
WebViewImplkini terhubung ke target tab melaluiAutoAttach. Perintah yang sebelumnya menahan halaman kini mencari halaman aktif di tab. Perubahan ini memungkinkan introspeksi halaman latar belakang Ekstensi, yang kini dapat ditargetkan melalui kemampuanenable_extension_targets(secara default, target ekstensi dilewati) (crrev.com/c/5961156, Bug: 379767670, Bug: 42323502). Memperbaiki regresi yang menyebabkan halaman URLchrome-extension://disertakan secara salah sebagai target ekstensi; pilihan dikembalikan hanya ketype=background_page(crrev.com/c/6093588, Bug: 383141569). MemindahkanenableExtensionTargetske Opsi Chrome, bukan kemampuan tingkat teratas (crrev.com/c/6093032). - Klasik: Memperkenalkan kembali dukungan untuk referensi elemen multi-kunci. Fitur yang tidak didokumentasikan ini, yang sering digunakan untuk membuat referensi yang kompatibel dengan mode W3C dan non-W3C, kini didukung secara resmi dan tercakup dalam uji integrasi (crrev.com/c/6063257, Bug: 379584343).
Perbaikan bug
- Stabilitas: Mencegah ChromeDriver memblokir tanpa batas waktu saat menangani perintah
browsingContext.close. Dengan menggunakan mekanisme yang berbeda untuk menentukan apakah browser perlu ditutup, ChromeDriver kini dapat menangani perintahbeforeunloaddengan benar tanpa terhenti (crrev.com/c/6080431, Bug: 42323838, Bug: 379049702). - Navigasi: Memperbaiki bug yang menyebabkan halaman dummy dengan URL
about:blank?testmenyebabkan penghentian. Heuristik yang dimaksudkan untuk mengidentifikasi jendela baru yang tidak responsif (baseURL==about:blankdandocumentURL!=about:blank) kini menangani URL string kueri ini dengan benar sebagai kasus khusus (crrev.com/c/6038039, Bug: 377410086). - Navigasi: Menambahkan logika untuk mencoba ulang perintah yang gagal dengan error
AbortedByNavigation. ChromeDriver kini akan mencoba perintah beberapa kali sebelum menyerah dengan errorTimeoutstandar (crrev.com/c/6012427, Bug: 42323825). - Diagnostik: Meneruskan error
kTargetCrashedsecara langsung melaluiNavigationTracker. Jika target mengalami error selama deteksi navigasi, error khusus ini kini ditampilkan kepada pengguna, bukan waktu tunggu habis umum, sehingga meningkatkan diagnostik (crrev.com/c/6032612, Bug: 377410086). - Android: Memperbaiki pencarian target tab di
chrome_android_impl.cc(crrev.com/c/6110492, Bug: 384781876). - Pengujian: Memperbaiki kegagalan dalam beberapa pengujian pengubahan ukuran jendela di
win11-arm64(misalnya, mengklik elemen yang terhalang). Pengujian kini mengkueri ukuran jendela dalam berulang kali setelah operasi pengubahan ukuran hingga mendaftarkan tinggi positif dengan benar, yang memperhitungkan pengecatan ulang jendela yang lambat (crrev.com/c/6012658, Bug: 378470046). - Pengujian: Memperbaiki beberapa kegagalan dalam pengujian integrasi dengan memetakan error koneksi Python generik ke
WebSocketConnectionClosedException, menyederhanakan penanganan error (crrev.com/c/6054134), menghindari kondisi persaingan dengan menggunakanSendCommand, bukanPostCommand, jika efek samping langsung diharapkan (crrev.com/c/6054137), dan mengganti ketergantungan pada efek langsungExecuteScriptdengan mekanisme deteksi navigasi yang lebih andal (crrev.com/c/6063040, Bug: 42323825). - Pengujian: Mengembalikan penghapusan tanda fitur
FedCmIdpSigninStatus, karena penghapusannya menyebabkan kerusakan (crrev.com/c/6082405, mengembalikan crrev.com/c/6078693, Bug: 384866916, Bug: 381211734). - Alat: Menambahkan dukungan untuk perintah
Printdalam skriplog_replay(crrev.com/c/6010809, Bug: 378451938).
Perubahan dan refaktor internal
- Standar C++: Menghapus histogram
Mojo.InvalidUTF8String, sehingga memungkinkan pembersihan header mojo publik dan rangkaian IWYU berikutnya (crrev.com/c/6133861, Bug: 40509710, Bug: 386793084). - Standar C++: Menghindari alokasi di
WaitableEvent::Wait()dengan beralih daristd::listkebase::circular_deque(crrev.com/c/6097198). - Standar C++: Konstruktor dan destruktor kosong yang ditentukan pengguna secara default di seluruh codebase
chrome/jika memungkinkan (crrev.com/c/6101911, crrev.com/c/6056220, Bug: 381119547). - Keamanan memori (spanifikasi): Memigrasikan array gaya C ke
std::arraydi seluruhchrome/sebagai bagian dari upaya yang lebih luas untuk mengatasi peringatan-Wunsafe-buffer-usage(crrev.com/c/6043879, Bug: 378069401). Menyediakan penggunaansize_tyang ketat dalam fungsi rentang (crrev.com/c/6026238, crrev.com/c/6020621). - Pengujian: Mengirimkan
{ref,crash}testslayar penuh kembali kewpt_internal/karenatestdriverkini mendukungnya (crrev.com/c/6088404). - Pengujian: Memperbaiki
wptrunneruntuk iOS agar dapat menemukan wrapper ChromeDriver dengan benar saat menggunakan direktori output non-default (misalnya,//out/*-ios-wpt-fyi-rel/) dengan menyalurkan--build-directorydengan benar (crrev.com/c/6014940, Bug: 374199289, Bug: 355218109). - Pengujian: Menambahkan uji integrasi
testBrowserCrashWhileWaitingForEventsuntuk mendemonstrasikan kasus regresi saat error fatal tidak diketahui oleh klien (crrev.com/c/6025145, Bug: 379049702). - Pengujian: Menekan WPT tertentu yang error saat dijalankan di bawah
headless_shellyang dikombinasikan dengan ChromeDriver untuk menstabilkan builder (crrev.com/c/6032163, Bug: 377410086).
ChromeDriver 132
Fitur baru
- Pengujian: Menambahkan dukungan untuk parameter command line
repeatdanretry-limitke pengujian integrasi ChromeDriver, memetakannya ke argumenisolated-script-test-repeatdanisolated-script-test-launcher-retry-limitstandar (crrev.com/c/5938195, Bug: 374681919). Untuk pengujian yang dijalankan secara lokal (non-CI),retry-limitdefault telah diubah menjadi 0 (crrev.com/c/5953326, Bug: 374681919). - WebSockets: Menerapkan
WebSocketConnectiondan class terkait diEmbeddedTestServer, sehingga pengujian terkait WebSocket dapat dimigrasikan dariSpawnedTestServer. Hal ini mencakup pembingkaian sesuai dengan protokol dan pendaftaran handler yang disederhanakan (crrev.com/c/5849732, Bug: 40812029).
Perbaikan bug
- Stabilitas: Memperbaiki error ChromeDriver yang dapat terjadi jika perintah klik menyebabkan browser ditutup, dengan menangani status error
kTargetDetachedyang diperkenalkan dalam refaktor sebelumnya dengan benar (crrev.com/c/5934524, Bug: 42323264). - Stabilitas: Memperbaiki error sesekali dalam uji integrasi
testClickNavigateRemoteToLocaldi Mac ARM64 dengan menyelesaikan kondisi persaingan (crrev.com/c/5975526, Bug: 375971185). - Navigation: Memperbaiki perintah
GoBackdanGoForward, yang sebelumnya gagal jikaPage.getNavigationHistorydipanggil saat dokumen bertransisi dari status aktif (menunjukkan navigasi yang sedang berlangsung). ChromeDriver kini mencoba kembali perintah dengan benar dalam skenario ini (crrev.com/c/6011739, Bug: 378433873). - Eksekusi skrip: Memastikan bahwa skrip yang memicu navigasi atau menutup jendela menampilkan error
ScriptTimeoutstandar dengan benar jika sisi browser tidak menjamin hasil, sehingga meminta pengguna untuk menghindari struktur pengujian yang ambigu (crrev.com/c/5934265, Bug: 372883701). - Eksekusi skrip: Memperbaiki masalah saat fungsi pemutaran ulang log gagal dengan error "respons perintah yang tidak terduga" (crrev.com/c/5961142, Bug: 42323342).
- Kode error: Memperbaiki penanganan error ChromeDriver agar tidak lagi secara paksa membungkus semua pengecualian dengan properti "code" ke dalam "error javascript" generik. Hal ini memastikan error standar seperti "referensi elemen tidak valid" (dari
call_function.js) dan "status elemen tidak valid" (dari fungsi Selenium AtomsCLEAR) disebarkan secara akurat kepada pengguna (crrev.com/c/5937893, Bug: 42323409). Penanganan error yang ditingkatkan diGetElementTagNameuntuk menafsirkan informasi nama tag yang tidak ada dengan benar sebagai "object is not an Element" (crrev.com/c/5929087). - BiDi: Memperbaiki masalah saat sesi BiDi gagal diinisialisasi saat profil pengguna kustom digunakan. Halaman yang dimuat profil kustom dapat mencegah BiDiMapper dimulai; ChromeDriver kini memastikan tab pertama selalu memuat
data:,untuk menyediakan kondisi awal yang bersih bagi pemeta (crrev.com/c/5960656, Bug: 366886096). - Mode samaran: Memperbaiki bug yang mencegah ChromeDriver membuat tab baru saat beroperasi dalam mode Samaran (crrev.com/c/5952980, Bug: 42323352).
- Pengujian: Memperbaiki ketidakstabilan dalam uji integrasi
testScriptNavigateRemoteToLocal(yang gagal dengan tingkat 8,33%) dan menambahkan uji integrasi C++ untuk mereproduksi dan memverifikasi perbaikan kondisi race (crrev.com/c/6010867, Bug: 378387680). - Pengujian: Mengaktifkan kembali banyak pengujian integrasi yang sebelumnya tidak stabil di Mac (
testWindowMinimize) dan Windows (ChromeDownloadDirTest.testFileDownloadAfterTab,InvalidCertificateTest.*), dan secara global (testShadowDomFindElement, pengujian screenshot elemen). Memindahkan sementara pengujian WPTcss/css-scrollbars/yang tidak stabil kembali ke shell konten dari shell tanpa UI (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).
Perubahan dan refaktor internal
- BiDi: Memperbarui dependensi mapper
chromium-bidiuntuk menggabungkan perbaikan upstream dan update protokol terbaru (crrev.com/c/5953339, crrev.com/c/5865478, Bug: 4226). (Catatan: Peningkatan kualitas pemetaan sempat dibatalkan karena kegagalan WPT dan kemudian diluncurkan kembali (crrev.com/c/5961113)). - Arsitektur: Meminimalkan penggunaan objek sesi thread-lokal di seluruh ChromeDriver untuk mencegah bug berbagi status antar-pengujian dan menyederhanakan penanganan sesi eksplisit (crrev.com/c/5978486, Bug: 42323555). Memfaktorkan ulang pengujian integrasi C++ untuk menggunakan fixture pengujian bersama (crrev.com/c/5971474, Bug: 42323555).
- Pembersihan: Menghapus solusi sementara yang tidak digunakan lagi yang khusus untuk mode "headless lama", karena kode
chrome-headless-shelllama tidak lagi ada di Chrome (crrev.com/c/5961602, Bug: 42323387). - Pembersihan: Menghapus file
java_tests.txtyang tidak digunakan, sisa dari pengujian penerimaan ChromeDriver yang sebelumnya dikeluarkan (crrev.com/c/5970994, Bug: 357737793). - Pengujian: Menambahkan uji integrasi C++ untuk memverifikasi bahwa ChromeDriver tidak secara keliru membuat sesi paralel dengan
user-data-diryang sama atau membocorkan URL antar-sesi, yang dapat menyebabkan ketidakstabilan (crrev.com/c/5961137, Bug: 375312517). - Pengujian: Memastikan bahwa instance ChromeDriver sementara yang dibuat oleh pengujian integrasi dimatikan secepat mungkin untuk membebaskan resource (crrev.com/c/5997970, Bug: 375974725).
ChromeDriver 131
Fitur baru
- BiDi: Mengubah dependensi pemeta
chromium-bidike v0.8.0, yang menggabungkan update protokol dan perbaikan bug terbaru (crrev.com/c/5899240, crrev.com/c/5865478, Bug: 4226). - Akses DOM: Menambahkan dukungan untuk root bayangan tertutup dalam perintah
GetElementShadowRoot. Sebelumnya, perintah ini menampilkan errorNoSuchShadowRootsaat mencoba mengakses root shadow tertutup (crrev.com/c/5923865, Bug: 372834222). - Akses DOM: Mengimplementasikan dukungan untuk ID jendela dan frame, sehingga memungkinkan referensi ke jendela atau frame (termasuk Iframe OOP) ditampilkan dari skrip yang dieksekusi untuk dereferensi lebih lanjut (crrev.com/c/5890437, crrev.com/c/5923555, Bug: 366272556, Bug: 40229283).
- WebAuthn: Memperluas WebAuthn Automation API untuk menyertakan properti
userNamedanuserDisplayName(crrev.com/c/5905423, Bug: 367915823).
Perbaikan bug
- Input: Memperbaiki kondisi persaingan dengan klik mouse pada frame jarak jauh dengan merutekan peristiwa mouse ke ancestor asal yang sama tertinggi dari frame target, bukan hanya mengirimkannya ke frame paling atas (crrev.com/c/5836968, Bug: 42323535).
- Input: Memperbaiki format stempel waktu yang dikirim dengan perintah
Input.dispatchTouchEventdari milidetik menjadi detik, sehingga memperbaiki error dalam pengujian peristiwa pointer WPT (crrev.com/c/5924253, Bug: 360918166). - Pengujian: Mengaktifkan kembali banyak pengujian ChromeDriver di Mac (crrev.com/c/5923569, crrev.com/c/5922823, crrev.com/c/5921444, crrev.com/c/5920851, crrev.com/c/5921442) dan Windows (crrev.com/c/5923955) karena kegagalan ketidakstabilan terkait tidak dapat direproduksi lagi.
Perubahan dan refaktor internal
- Keamanan memori (spanifikasi): Mengganti penggunaan pointer yang tidak aman dengan
base::spandinet::HttpUtil(crrev.com/c/5854420), dan memigrasikanbase::File::WriteAtCurrentPos()ke padanannya berbasis rentang (crrev.com/c/5818972). Menulis ulang nilai penunjuk peta (misalnya, distd::map,std::unordered_map) menjadiraw_ptr(crrev.com/c/5867189, Bug: 329428315). - Standar C++: Mengganti makro atribut Abseil (
ABSL_ATTRIBUTE_*) dengan makrobase/standar (crrev.com/c/5852373). Menghindari salinan yang tidak diinginkan dengan mengganti string/vektor pass-by-value denganstd::string_viewatau referensi const jika sesuai, dan menghapus kualifikasiconstyang tidak diperlukan dari argumenstd::string_view(crrev.com/c/5914620, crrev.com/c/5906184, Bug: 369952985). - Infrastruktur: Mengonfigurasi Fuchsia untuk menggunakan ChromeDriver guna mengontrol
web-engine(crrev.com/c/5867896, Bug: 40935291). - Pengujian: Memigrasikan pengujian WebAuthn frame tertutup dari runner shell konten lama ke Chrome tanpa UI dengan ChromeDriver, karena runner lama akan segera menghentikan dukungan untuk WebAuthn testdriver API (crrev.com/c/5920770, Bug: 372169469).
ChromeDriver 130
Fitur baru
- BiDi: Mengganti dependensi BiDi Mapper, mengambil update protokol dan perbaikan bug terbaru dari upstream
chromium-bidi(crrev.com/c/5850570, meluncurkan kembali crrev.com/c/5837065 setelah mengembalikan crrev.com/c/5840080; crrev.com/c/5717956, Bug: 4226). - BiDi: ChromeDriver yang diperbarui untuk menyediakan
unhandledPromptBehaviorlangsung ke Mapper melalui perintahsession.newsaat menginisialisasi sesi BiDi. Hal ini menyelesaikan migrasi dariMapperOptions(crrev.com/c/5682934, crrev.com/c/5766077, Bug: 42323841, Bug: 356371297). - Pengujian: Menambahkan dukungan untuk argumen
--chromedriverke skripbisect-builds.pyuntuk build desktop, sehingga skrip dapat otomatis mendownload dan menggunakan versi ChromeDriver yang benar selama biseksi untuk pengujian yang bergantung pada WebDriver/ChromeDriver (crrev.com/c/5861048, Bug: 352344089).
Perubahan dan refaktor internal
- Standar C++: Menyelesaikan masalah "rule-of-five" di berbagai class. Karena plugin gaya Chrome bersikeras menggunakan destruktor di luar baris tanpa juga menerapkan konstruktor pemindahan di luar baris, compiler secara implisit menghapus operator pemindahan dan secara diam-diam melakukan fallback ke salinan. Deklarasi yang hilang ini telah ditambahkan (crrev.com/c/5846757, Bug: 364788123).
- Pengujian: Membersihkan ringkasan hasil pengujian
wptrunnerdengan mengganti stringchromeyang dikodekan secara permanen dengan produk sebenarnya yang digunakan dan menyembunyikan artefakcommandyang bertele-tele dari output ringkasan (crrev.com/c/5825633, Bug: 41494889). - Pengujian: Memperbaiki kegagalan pengujian besar-besaran dalam pengujian integrasi ChromeDriver di macOS 15 (Mac15) dengan menggandakan waktu tunggu tertentu, karena pengujian di OS ini memerlukan waktu yang jauh lebih lama daripada di Mac14. Empat pengujian sensor virtual juga ditambahkan ke daftar yang diabaikan karena tidak stabil (crrev.com/c/5817455, Bug: 354939744).
- Pengujian: Menonaktifkan pengujian
ChromeDriverSiteIsolation.testClickNavigateLocalToLocalyang tidak stabil di Mac (crrev.com/c/5806894, Bug: 361521805) dan pengujianChromeDriverTest.testClickElement*ObscuredByScrollBaryang tidak stabil di Windows 11 (crrev.com/c/5804083, Bug: 360058651). - Pengujian: Menghapus pengujian penerimaan ChromeDriver (yang mendownload versi Chrome lama untuk diuji terhadap ChromeDriver saat ini) karena beberapa masalah infrastruktur. Library ini dapat ditambahkan kembali nanti di CI dengan autoroll (crrev.com/c/5812142, Bug: 357737793).
ChromeDriver 129
Fitur baru
- BiDi: Memperbarui helper inisialisasi sesi ChromeDriver untuk mengirim perintah
session.newke Pemetaan BiDi, sehingga pemeta dapat menangani kemampuan secara langsung. Ini adalah langkah pertama untuk menghapusMapperOptions(crrev.com/c/5741432, Bug: 356371297). (Catatan: Perubahan terkait crrev.com/c/5754093 yang menyediakanunhandledPromptBehavioryang diproses telah dikembalikan crrev.com/c/5755744 karena penurunan cakupan pengujian). - Tekanan Komputasi: Menambahkan perintah ekstensi baru untuk pengelolaan sumber tekanan virtual, menerapkan bagian Otomatisasi dari spesifikasi Tekanan Komputasi. Perintah ini diuraikan dan diteruskan ke lapisan CDP (crrev.com/c/5666583, Bug: 347031400).
- Ekstensi MV2: Mengupdate pengujian yang melatih perilaku MV2 untuk menggunakan
ScopedTestMV2Enablersebagai bagian dari uji coba lapangan penghentian penggunaan Manifes V2 Ekstensi yang sedang berlangsung (crrev.com/c/5685054, Bug: 339061151).
Perbaikan bug
- Serialisasi klasik: Melacak objek yang terlihat saat melakukan serialisasi
Setdalam hasil eksekusi skrip WebDriver Classic, mencegah loop tak terbatas, dan mentoleransi penggantianArray.prototype.includes(crrev.com/c/5765833, Bug: 357472850). (Catatan: Perubahan ini kemudian dibatalkan crrev.com/c/5773175 karena regresi WPT).
Perubahan dan refaktor internal
- BiDi: Mengubah versi dependensi BiDi Mapper untuk menyertakan perbaikan bug dan update protokol terbaru dari
chromium-bidi(crrev.com/c/5756587, crrev.com/c/5717956, Bug: 4226). - Keamanan memori (spanifikasi): Mengganti penggunaan buffer yang tidak aman di
WebSocketFrameParser::Decode,MaskWebSocketFramePayload, danWriteWebSocketFrameHeaderdenganbase::span(crrev.com/c/5764863, crrev.com/c/5743019, crrev.com/c/5722108, Bug: 40284755, Bug: 354307327). Menambahkan#pragma allow_unsafe_buffersdi seluruhchrome/*sebagai persiapan untuk perbaikan lebih lanjut (crrev.com/c/5717950, Bug: 40285824), dan mengonversi makroUNSAFE_BUFFERS()yang tidak sesuai menjadiUNSAFE_TODO()(crrev.com/c/5786346). Menulis ulang kolombase::spanmenjadibase::raw_span(crrev.com/c/5515096, Bug: 332587642). - Standar C++: Menghapus penggunaan array panjang variabel (VLA) yang berbahaya dalam codebase dengan menandai panjang array secara eksplisit sebagai
constexpr(crrev.com/c/5738737, Bug: 349656479). Menyertakan header<unordered_map>yang diperlukan yang sebelumnya ditarik secara transitif (crrev.com/c/5792881). - Arsitektur: Membatalkan fork implementasi
WebSocketEncoderdengan mengembalikan migrasinya yang tertunda ke//services/network/public/cpp/serverdan memusatkan kembali logika dalam//net/serveruntuk memastikan update yang konsisten (crrev.com/c/5768214, Bug: 40205564).
ChromeDriver 128
Fitur baru
- Kemampuan: Mengizinkan penggunaan kamus untuk kemampuan
unhandledPromptBehavior, yang selaras dengan struktur kemampuan standar, meskipun belum sepenuhnya dipatuhi oleh Mapper (crrev.com/c/5692204, crrev.com/c/5682934, Bug: 42323841). - Startup: Menambahkan argumen command line
--ignore-explicit-portke ChromeDriver. Solusi sementara ini memaksa ChromeDriver untuk mengabaikan port yang diberikan secara eksplisit dan sebagai gantinya menemukan serta mengikat ke port kosong, sehingga menyelesaikan persaingan port TCP selama eksekusi pengujian platform web (akan dihapus setelah M132) (crrev.com/c/5724574, crrev.com/c/5703976, Bug: 42323836).
Perbaikan bug
- Sensor: Memperbaiki perintah
ExecuteUpdateVirtualSensoragar menggunakanSendCommand(), bukanSendCommandAndGetResult(), karena perintah CDPsetSensorOverrideReadingstidak menampilkan nilai (crrev.com/c/5703589). - FedCM: Memperbaiki kondisi race dalam pengujian ChromeDriver FedCM dengan tidak lagi menegaskan bahwa
NoSuchDialogditampilkan saat dialog benar-benar diharapkan, sehingga mencegah kegagalan jika dialog muncul terlalu cepat (crrev.com/c/5713515, Bug: 346530330). - Pengujian: Mengaktifkan kembali pengujian autentikator virtual WebAuthn di Mac setelah masalah yang mendasarinya (crbug.com/40233722) diperbaiki (crrev.com/c/5635806, Bug: 329130177).
- Pesan Error: Memperbaiki kesalahan ketik dalam pesan error untuk perintah
execute/async(crrev.com/c/5697913).
Perubahan dan refaktor internal
- BiDi: Mengganti dependensi BiDi Mapper, yang menghadirkan fitur protokol terbaru, perbaikan bug, dan update ekspektasi WPT dari project
chromium-bidiupstream (crrev.com/c/5717956, crrev.com/c/5644823, crrev.com/c/5630727, crrev.com/c/5615110, crrev.com/c/5614670, Bug: 4226, Bug: 347863537, Bug: 324436866). - Mengganti penggunaan metode
GrowableIOBuffer::StartOfBufferyang tidak digunakan lagi denganspan, sehingga meningkatkan keamanan memori dengan menghilangkan pointer yang tidak diperiksa (crrev.com/c/5706088, Bug: 329476354). - Menggunakan metode
DecodeWebSocketFrameParseruntuk meningkatkan keamanan memori (crrev.com/c/5722108, Bug: 354307327). - Membersihkan sisa-sisa
absl::optionaldengan menghapus header Abseil yang sudah tidak digunakan, bermigrasi kestd::optional(crrev.com/c/5691505, Bug: 40242125). - Mengubah ChromeDriver untuk menangani semua jenis target yang tidak diketahui (termasuk
shared_storage_worklet) sebagaiWebViewInfo::kOther, bukan memperlakukannya sebagai error. Hal ini memungkinkan Chrome memperkenalkan jenis target baru tanpa langsung merusak WPT (crrev.com/c/5680542, crrev.com/c/5679146, Bug: 42323839). - Menambahkan target penginstal untuk builder
linux-builder-perfguna menghasilkan biner yang dihapus simbolnya untuk arsip biseksi, dan mengonfigurasi builder pinpoint agar menerimaadditional_compile_targetsyang bervariasi (crrev.com/c/5668198, Bug: 344643694). - Memperbarui
run_performance_tests.pyuntuk menemukan dan meneruskan lokasi ChromeDriver kecrossbenchselama build performa (crrev.com/c/5624538, Bug: 338629299). - Mengganti dependensi
crossbench(crrev.com/c/5681849). - Menandai
FedCmSpecificTest.testClickErrorMoreDetailsdanFedCmSpecificTest.testClickErrorGotItsebagai tidak stabil di Mac (crrev.com/c/5704320, crrev.com/c/5677564, Bug: 352821422, Bug: 346530330). - Menonaktifkan pengujian
BidiTest.testFocusInFirstTabyang tidak stabil (crrev.com/c/5676686, Bug: 350916212).
ChromeDriver 127
Perbaikan bug
- Stabilitas: Memperbaiki error ChromeDriver yang terjadi saat perintah
target.detachFromTarget(atau peristiwatarget.detachedFromTarget) diterima saat klien DevTools secara aktif memproses perintah lain, sehingga mencegah rilis prematur objekWebViewdanDevToolsClient(crrev.com/c/5527584, Bug: 339773537). - Stabilitas: Memperbaiki masalah saat perintah
Switch To Windowdapat salah menampilkan "error tidak diketahui" jika tampilan web terlepas selama eksekusi perintah; kini perintah tersebut dengan benar mengabaikan error internal "tampilan web tidak ditemukan", sehingga menghasilkan respons "tidak ada jendela seperti itu" standar jika jendela target memang ditutup (crrev.com/c/5583730, Bug: 338616700). - Stabilitas: Memastikan ChromeDriver dapat menangani pelepasan target saat memperbarui daftar WebView internal. Jika target dilepas selama update, ChromeDriver kini akan mencoba lagi, bukan menampilkan error non-standar, sehingga mengurangi ketidakstabilan di lingkungan tempat jendela dibuat dan dihancurkan dengan cepat (crrev.com/c/5565103, Bug: 338616700, Bug: 4771).
- Navigasi: Menambahkan logika ke ChromeDriver untuk menunggu navigasi yang terdeteksi oleh ujung jarak jauh saat menelusuri elemen. Hal ini mencegah ChromeDriver menampilkan error non-standar atau mengalami error dengan
DCHECKsaat navigasi bertepatan dengan operasi penemuan elemen (crrev.com/c/5563113, mengembalikan crrev.com/c/5563420, meluncurkan kembali crrev.com/c/5562089, Bug: 4771). - BiDi: Memperbaiki kondisi persaingan antara ChromeDriver dan BiDiMapper selama pembuatan sesi. ChromeDriver kini menunggu perintah
browsingContext.getTreemenampilkan daftar yang tidak kosong sebelum mengakhiri perintah NewSession, sehingga memastikan tab default yang baru dibuat terdaftar dengan benar (crrev.com/c/5575497, Bug: 341048786, Bug: 1503101). - BiDi: Memperbaiki masalah saat fokus tetap berada di tab latar belakang BiDiMapper setelah pembuatan sesi, bukan di tab pengguna aktif dengan memberikan fokus secara eksplisit ke tab pengguna pertama (crrev.com/c/5594070, Bug: 341048786, Bug: 1503101).
- BiDi: Menghentikan ChromeDriver agar tidak mencoba melampirkan Target saat menangani perintah BiDi (seperti
browsingContext.close) untuk mencegah perintah CDP terhenti tanpa batas waktu jika dialog pengguna terbuka, mendelegasikan penanganan sepenuhnya ke lapisan BiDi yang sudah terhubung (crrev.com/c/5541915, mengembalikan crrev.com/c/5539818, meluncurkan kembali crrev.com/c/5522393, Bug: 4758). - FedCM: Memperbaiki kegagalan pengujian WPT
fedcm-loginhint.https.htmlsaat dialog salah ditandai sebagai ditutup; status kini hanya diperbarui jika operasiselectAccountbenar-benar berhasil (crrev.com/c/5398379, Bug: 331237776). - Pengujian: Memperbaiki kegagalan
DCHECKselama penguraian JSON saat karakter tepat mengenai bataskExtendedASCIIStart(crrev.com/c/5565276, Bug: 40284755). - Pengujian: Memperbaiki pengujian WPT
scrollend-event-fires-to-iframe-window.htmldengan menggunakan elemen iframe sebagai origin scroll dan membulatkan input gerakan penunjuk ke bilangan bulat, sehingga mencegah error ChromeDriver dengan posisi sentuh fraksional (crrev.com/c/5570150, Bug: 340956654). - Pengujian: Peningkatan diagnostik dalam pengujian integrasi ChromeDriver dengan mencetak jalur yang dicoba saat
run_py_tests.pygagal menemukan biner browser (crrev.com/c/5604204, Bug: 4781).
Perubahan dan refaktor internal
- BiDi: Memperbarui dependensi BiDi Mapper, mengikuti update protokol dan perbaikan bug terbaru (crrev.com/c/5614670, crrev.com/c/5593796, crrev.com/c/5537892, crrev.com/c/5471839, Bug: 4226).
- Mengganti penggunaan
NOTREACHED()denganNOTREACHED_IN_MIGRATION()di seluruh direktorichrome/sebagai persiapan untuk membuatNOTREACHED()menjadi[[noreturn]]secara ketat (crrev.com/c/5539004, Bug: 40580068). - Mengaktifkan pembuatan
THIRD_PARTY_NOTICES.txtuntuk ChromeDriver menggunakan alatlicenses.pyagar mematuhi persyaratan distribusi (crrev.com/c/5596355, Bug: 4777). - Menghapus dukungan
run_wpt_tests.pyuntukcontent_shell, karena cakupan WPT Chromium sepenuhnya beralih keheadless_shell+ ChromeDriver (crrev.com/c/5589930). Mengatur ulang tombolwptrunneragar spesifik untuk embedder guna mengakomodasi perubahan ini tanpa dampak fungsional (crrev.com/c/5589793, Bug: 338412391). - Menggabungkan logika untuk deteksi dan penanganan dialog JavaScript dengan memindahkannya dari
JavaScriptDialogManagerlangsung keDevToolsClientImpl, sehingga tidak memerlukan class pengelola terpisah untuk menyederhanakan pengujian dan penalaran (crrev.com/c/5545630, Bug: 4757). - Menonaktifkan
PureBidiTest.testBrowsingContextTreeIsNotEmptydi Mac karena tidak stabil (crrev.com/c/5588665, Bug: 343891977). - Memperbarui ekspektasi WPT BiDi untuk memperhitungkan update Mapper terbaru (crrev.com/c/5615110, Bug: 4226, Bug: 324436866).
- Menambahkan pengujian unit untuk
WebView::SendBidiCommanddanBidiTrackerguna meningkatkan cakupan kode (crrev.com/c/5588400, Bug: 341048786, Bug: 1503101).
ChromeDriver 126
Fitur baru
- BiDi: Mengupdate ChromeDriver untuk menyediakan switch
--disable-background-timer-throttlingsaat meluncurkan browser untuk sesi BiDi WebDriver, sehingga mencegah tab latar belakang di-throttle (crrev.com/c/5515013, Bug: 4762). - BiDi: Menambahkan dukungan untuk BiDi Mapper guna mengirim pesan debug (
sendDebugMessage) saat logging panjang diperlukan. ChromeDriver menandai peristiwa ini sebagaibidi messagesuntuk diuraikan, meskipunBidiTrackersaat ini mengabaikannya (crrev.com/c/5465782, Bug: 4753). - Klasik: Menerapkan penerimaan otomatis dialog
beforeunload(peringatan) apa pun, dengan mematuhi standar WebDriver yang menyatakan bahwa dialog tersebut tidak boleh ditampilkan dalam sesi Klasik (crrev.com/c/5517510, Bug: 4757).
Perbaikan bug
- Klasik: Menghapus batasan upaya maksimum yang berlebihan dalam logika pengambilan elemen. Pengambilan kini hanya dibatasi oleh waktu tunggu implisit, sehingga mencegah skenario saat operasi dapat gagal sebelum waktunya dan salah menampilkan error
NoSuchExecutionContextnon-standar (crrev.com/c/5478668, Bug: 4379). - Klasik: Memperbaiki regresi yang menyebabkan ChromeDriver merespons dengan error
javascript error, bukaninvalid selector, saat permintaan pengambilan menggunakan strategi lokasi yang tidak valid (crrev.com/c/5490662, Bug: 4743). - Klasik: Memastikan perintah jendela di Android (Maksimalkan, Minimalkan, Layar Penuh) menampilkan error
unsupported operationyang sesuai dengan standar, bukan melanjutkan, karena tindakan ini tidak didukung oleh browser Android (crrev.com/c/5490224, Bug: 4689). - Klasik: Memperbaiki ChromeDriver agar tidak pernah menampilkan kode error internal
kChromeNotReachable; kini ChromeDriver menampilkan errorkSessionNotCreatedstandar dengan benar saat klien HTTP tidak dapat terhubung ke browser (crrev.com/c/5476390, Bug: 4379). - Classic: Memperbaiki ChromeDriver agar tidak pernah menampilkan error
kNoSuchExecutionContextnon-standar saat menjalankan perintah jendela (crrev.com/c/5483606, Bug: 4379). - Klasik: Menghapus kode error
kForbiddenyang tidak digunakan dan tidak didukung dari daftar kode error yang didukung (crrev.com/c/5476927, Bug: 4379). - BiDi: Mengupdate ChromeDriver untuk meminta pengguna sebelum menutup tab Mapper khusus, yang selaras dengan perubahan
chromium-bidiupstream (crrev.com/c/5508600, Bug: 4761).
Perubahan dan refaktor internal
- BiDi: Meningkatkan dependensi BiDi Mapper, menghadirkan fitur dan perbaikan bug terbaru dari project
chromium-bidiupstream (crrev.com/c/5490428, crrev.com/c/5471839, crrev.com/c/5509316, crrev.com/c/5458234, Bug: 4226). (Catatan: Peningkatan mapper sempat dikembalikan oleh gardener, lalu diluncurkan kembali (crrev.com/c/5374839, crrev.com/c/5374366)). - Mengganti penggunaan
base::StringPiecedenganstd::string_viewdi seluruh//chrome(crrev.com/c/5467746, Bug: 40506050). - Menghapus penggunaan
std::to_string()di//chrome, menggantinya denganbase::NumberToString()ataubase::FormatNumber()(crrev.com/c/5505593, Bug: 335672557). - Menghapus dukungan untuk tombol
--remote-debugging-addressdalam mode headless lama, karena akses jarak jauh yang tidak dilindungi ke Chrome DevTools Protocol dianggap terlalu berbahaya (crrev.com/c/5512634, Bug: 327558594). - Menghapus aturan build Fuchsia dari
//chrome, kecuali untuk ChromeDriver (crrev.com/c/5473870, Bug: 41481724). - Memigrasikan referensi
TODO(crbug.com/...)lama di seluruh codebase ke format ID pelacak masalah baru (TODO(b/...)) (crrev.com/c/5492605, crrev.com/c/5486477, crrev.com/c/5461380, Bug: 321899722). - Menonaktifkan pengujian WebAuthn (pengautentikasi) di Mac (baik untuk headless maupun
chromedriver_py_tests) karena bug pokok yang kompleks, sehingga tidak menghalangi upgrade bot ke macOS 14 (crrev.com/c/5525435, crrev.com/c/5518820, Bug: 329130177). - Menonaktifkan builder WPT untuk
content_shellkarena kesulitan menjalankan WPT dengan ChromeDriver dan Content Shell secara bersamaan (crrev.com/c/5512439, Bug: 40214293). - Melakukan kembali perubahan yang memperbarui WPT
focus-navigationuntuk menggunakanShift+Tabmelaluitest_driver.action_sequence()untuk navigasi mundur. Memperbaiki bug difocus-utils.jsyang menggunakan kode tombol yang salah (E050, bukanE008) untuk tombol Shift (crrev.com/c/5467843, mengembalikan crrev.com/c/5466531, meluncurkan kembali crrev.com/c/5463903, Bug: 40597271). - Menambahkan
crossbenchdanchromedriverke target build performa (crrev.com/c/5521874, Bug: 338627700).
ChromeDriver 125
Fitur baru
- Postur Perangkat: Menambahkan perintah ChromeDriver untuk pengelolaan postur perangkat, yang mendukung bagian Otomatisasi spesifikasi Postur Perangkat. Hal ini memungkinkan penggantian postur perangkat yang ditetapkan hardware dan menghapus penggantian melalui perintah ekstensi (crrev.com/c/5437993, Bug: 330376761).
Perbaikan bug
- BiDi: Mengubah penyimpanan sementara perintah BiDi yang masuk
iddariDoublemenjadibase::Value. Hal ini memastikaniddikembalikan secara tepat dalam respons tanpa titik desimal atau bagian pecahan yang tidak terduga setelah serialisasi JSON (crrev.com/c/5444225, Bug: 4676). - FedCM: Mengembalikan perubahan untuk mengaktifkan CORS di endpoint pernyataan ID setelah IdP siap (crrev.com/c/5440132, mengembalikan crrev.com/c/5381316, mengembalikan crrev.com/c/5370086, Bug: 40284123).
- FedCM: Memperbaiki bug saat dialog salah ditandai sebagai ditutup dengan memastikan dialog hanya ditandai sebagai ditutup jika perintah
selectAccountberhasil. Perubahan ini menyelesaikan kegagalan pengujian saatselectAccountdipanggil tanpa pemilih akun yang diharapkan (crrev.com/c/5398379, Bug: 331237776). Menghindari panggilanfedcm_get_and_select_first_accountsaat pemilih akun tidak diharapkan untuk mencegah pemicuan bug ini (crrev.com/c/5398800). - Pengujian: Memperbaiki kegagalan dalam pengujian WPT
popover-light-dismiss.htmldengan menggabungkan urutan tindakan dan menggunakan dokumen frame utama sebagai asal untuk tindakanpointerUp, sehingga mencegah ChromeDriver mengirim peristiwapointerUpserentak secara tidak benar di seluruh frame (crrev.com/c/5402096, Bug: 325981758). - Pengujian: Memperbaiki
wptrunneragar meneruskan outputstderrdengan benar (termasuk log browser yang ditulis saat menggunakan--enable-chrome-logs) ke artefakstderr, bukancrash_log, dan memindahkan error harness (yang berisi stack trace browser) kecrash_log(crrev.com/c/5437023, Bug: 41494889). - Pengujian: Memperbaiki
wptrunneruntuk merutekan log browser ke artefak pengujian yang benar dengan mengelompokkan output menurut proses ChromeDriver, sehingga mencegah log yang saling terkait dan tidak memiliki induk selama eksekusi pengujian paralel (crrev.com/c/5320681, Bug: 41494889).
Perubahan dan refaktor internal
- BiDi: Memperbarui dependensi BiDi Mapper, mengintegrasikan peningkatan protokol dan perbaikan bug terbaru (crrev.com/c/5433300, crrev.com/c/5393442, Bug: 4226). (Catatan: Peningkatan sebelumnya crrev.com/c/5374366 telah dikembalikan crrev.com/c/5374839 dan selanjutnya diluncurkan kembali dengan pengujian tidak stabil yang dinonaktifkan dan lisensi yang diupdate crrev.com/c/5374914).
- Diagnostik: Menyalurkan
StackTraceChrome ke pengecualian ChromeDriver. Hal ini menampilkan pelacakan tumpukan browser dalam pesan error saat sesi dihapus karena error halaman/tab (misalnya, pointer yang tidak terhubung di Mac), sehingga meningkatkan kemampuan proses debug secara signifikan (crrev.com/c/5374371, Bug: 330009945). - Pengujian: Menonaktifkan sementara uji integrasi
testTakeLargeElementViewportScreenshotyang tidak stabil di Mac (khususnyamac-arm64) (crrev.com/c/5447515, Bug: 333826980). - Pengujian: Memperbarui argumen peluncuran ChromeDriver di lingkungan pengujian (CEL) agar sesuai dengan sintaksis Selenium 4+ (crrev.com/c/5448812, Bug: 308885357).
- Pengujian: Mengekstrak command line
chromeyang tepat yang digunakan untuk menjalankan setiap pengujian WPT dari logchromedriverke dalam artefak ResultDB bernamacommand. Hal ini memfasilitasi proses debug manual denganrun_blink_wptserve.py(crrev.com/c/5441189, Bug: 41494889). - Dependensi: Menghapus
Closuredari daftar dependensiselenium-atoms, sehingga menghapusnya dari pemberitahuan pihak ketiga ChromeDriver (crrev.com/c/5424804, Bug: 4226). - Dependensi: Menghapus dependensi yang tidak digunakan di
dynamic_annotationsdi seluruh repositori dasar (crrev.com/c/3398908, Bug: 1282422). - Pemformatan: Menerapkan konfigurasi
clang-formatbaru ke header Windows yang bermasalah (crrev.com/c/5367127, Bug: 329138753).
ChromeDriver 124
Fitur baru
- BiDi: Menambahkan langkah build untuk meminimalkan skrip
BiDiMappersebelum menyematkannya ke ChromeDriver, karena pemeta sumber kini didownload tanpa diminimalkan dari CIPD (crrev.com/c/5310075, Bug: 4226). - WebAuthn: Menambahkan perintah
SetCredentialProperties, yang memungkinkan klien memperbarui flag pencadangan untuk kredensial WebAuthn (crrev.com/c/5296389, Bug: 40945430). - WebAuthn: Mengekspos flag pencadangan WebAuthn melalui WebDriver dengan menambahkan
defaultBackupEligibilitydandefaultBackupStateke perintah "Tambahkan Pengautentikasi Virtual", sertabackupEligibilitydanbackupStateke perintah "Tambahkan Kredensial" (crrev.com/c/5297117, Bug: 40945430). - Pengujian: Menambahkan dukungan untuk argumen command line
--failfastke pengujian integrasi Python ChromeDriver, menghentikan eksekusi pengujian pada error pertama untuk membantu proses penelusuran bug (crrev.com/c/5374546). - Pengujian: Menambahkan dukungan content-shell untuk perintah webdriver
SetRPHRegistrationModemelalui APItestdriver-vendor.js(crrev.com/c/5205730, Bug: 1359103).
Perbaikan bug
- Stabilitas: Memindahkan pemeriksaan habis masa berlaku waktu tunggu di dalam isi loop polling dan tunggu di
ChromeImpl::SetWindowBounds. Perbaikan ini mengatasi masalah saat, di bawah beban tinggi, waktu tunggu dapat berakhir sebelum iterasi loop pertama terjadi (crrev.com/c/5366899, Bug: 4642). - Performa: Meminimalkan waktu tunggu di
ChromeImpl::SetWindowBoundshanya dengan menerapkan waktu tunggu mundur eksponensial jika batas jendela belum mencapai status yang diinginkan, sehingga mengurangi latensi penyiapan WPT (crrev.com/c/5366457, Bug: 4642). - Startup: Mengupdate ChromeDriver untuk menggunakan
--user-data-dir, bukan--data-pathsaat menentukan direktori data untukcontent_shell, yang selaras dengan cara membaca port DevTools aktif (crrev.com/c/5226609, Bug: 1295373).
Perubahan dan refaktor internal
- BiDi: Memperbarui dependensi BiDi Mapper, yang mencakup perbaikan dan fitur protokol terbaru (crrev.com/c/5374366, crrev.com/c/5349491, crrev.com/c/5317650, Bug: 4226). (Catatan: Peningkatan versi sempat dibatalkan dan kemudian dilanjutkan karena kegagalan pengujian crrev.com/c/5374839, crrev.com/c/5368680, crrev.com/c/5319423).
- Mengganti penggunaan
absl::optionaldenganstd::optionaldi seluruh codebase setelah transisiabsl::optionalke alias jenis (crrev.com/c/5296147, Bug: 1500249). - Memperluas cakupan
MiraclePtr(raw_ptr) ke penampung standar tambahan termasukstd::list,std::unordered_set,base::flat_set,std::stack, danstd::queue(crrev.com/c/5306923, Bug: 325302189). - Mengonversi
WriteBigEndian()untuk menggunakan konversi bytebase::numericsatauBigEndianWriter(yang kini menerimabase::span), sehingga meningkatkan keamanan saat menulis byte big-endian (crrev.com/c/5202348, Bug: 1490484). - Beralih menggunakan ChromeDriver untuk menjalankan Web Platform Tests (WPT) dengan
content_shell(tidak termasuk pengujian virtual dan reftes yang menunggu perbaikan bug upstream) (crrev.com/c/5347371, Bug: 40214293). - Mengonversi semua pengujian web Sensor Generik yang ada untuk menggunakan
test_driver.jsdan sensor virtual, bukan tiruan JS/Mojo, yang selaras dengan bagian Otomatisasi baru dalam spesifikasi Sensor Generik (crrev.com/c/4770867, Bug: 1278377, Bug: 1471996). - Meningkatkan pembuatan lisensi dengan menambahkan
append_notices.pyuntuk membuat kredit bagi dependensiBiDiMapperdan memperbarui pemanggilanlicenses.pyagar sepenuhnya mengandalkan READMEselenium-atomsuntuk pemberitahuan pihak ketiga (crrev.com/c/5350601, crrev.com/c/5339957, Bug: 4729, Bug: 4735).
ChromeDriver 123
Fitur baru
- FedCM: Menampilkan dialog modal untuk alur tombol akun tunggal, termasuk menambahkan dukungan untuk tampilan modal di antarmuka otomatisasi (crrev.com/c/5231438, Bug: 1518356).
- FedCM: Menerapkan dukungan ChromeDriver untuk membuka link dalam dialog FedCM, memperlakukannya sebagai tombol untuk menyederhanakan otomatisasi (crrev.com/c/5225543, Bug: 1513520).
- Sensor: Mengubah perintah sensor virtual WebDriver untuk membaca sudut Euler (alfa-beta-gamma) dan bukan quaternion, sesuai dengan update spesifikasi sensor orientasi terbaru. Lapisan CDP dan layanan internal masih menggunakan kuaternion melalui langkah konversi (crrev.com/c/5229177, Bug: 1506995, Bug: 1520912, Bug: 1520919).
Perbaikan bug
- Klasik: Memperbaiki masalah saat menampilkan node dari frame yang berbeda melalui skrip yang salah menghasilkan error
StaleElementReference; kini menampilkanJavaScriptErrordengan benar untuk mematuhi standar WebDriver (crrev.com/c/5222746, Bug: 4668). - Pengujian: Memperbaiki pengujian peristiwa overscroll yang gagal di Chrome/ChromeDriver karena penarikan sentuh meluas di luar batas jendela; penarikan kini dibatasi dengan benar (crrev.com/c/5297676, Bug: 40832230).
- Pengujian: Memperbaiki pengujian MIDI
open-close.https.htmlagar tidak membuat promise yang tidak perlu, sehingga menghindari penolakan promise yang tidak tertangani yang menyebabkan ChromeDriver gagal dalam pengujian (crrev.com/c/5239869, Bug: 1499775). - Pengujian: Memperbaiki set izin dalam pengujian
wpt_internal/system-wake-lock/idlharness*saattest_driver.set_permission(...)salah meneruskanfalse, bukannullatauWindowProxy, sehingga membingungkan ChromeDriver (crrev.com/c/5271087, Bug: 40287920).
Perubahan dan refaktor internal
- BiDi: Memperbarui dependensi BiDi Mapper, mengambil perbaikan dan fitur terbaru (crrev.com/c/5205452, crrev.com/c/5255321, crrev.com/c/5238148, crrev.com/c/5237125, Bug: 4226). (Catatan: Peningkatan versi sempat dikembalikan dan kemudian diterapkan kembali karena kegagalan build crrev.com/c/5238855).
- Meningkatkan kualitas kode ChromeDriver dengan menghilangkan transmisi statis yang tidak aman dari class dasar ke class turunan di
ChromeImpldanDevToolsClientImpl, sehingga mencegah potensi perilaku yang tidak terdefinisi (crrev.com/c/5277062, crrev.com/c/5272562, Bug: 4702). - Menghilangkan transmisi tidak aman di
WebViewImpl(crrev.com/c/5272230, Bug: 4702). - Menghapus bentuk
base::Base64Encode()yang tidak digunakan lagi, bermigrasi kestd::stringyang lebih baru yang menampilkan varian, bukan menggunakan parameter out (crrev.com/c/5179900, crrev.com/c/5246585, Bug: 1486214). - Memperbarui semua direktif
#includeuntukbase/...agar menggunakan"", bukan<>, demi konsistensi (crrev.com/c/5237376, Bug: 1500249). - Memigrasikan semua file
DIR_METADATAdichrome/test/ke Buganizer (crrev.com/c/5284119, Bug: 1518875). - Mencegah wptrunner membuat file
-lokal saat meneruskan-vvvdengan menghapus switchchromedriver --log-path=-yang tidak perlu, karena stderr sudah dialihkan ke stdout (crrev.com/c/5282721). - Meningkatkan wptrunner untuk meringkas hasil pengujian saat terjadi regresi, termasuk secara eksplisit hasil subpengujian dan stack trace ChromeDriver langsung dalam output ringkasan (crrev.com/c/5238662, Bug: 1521922).
- Menyederhanakan proses debug pengujian integrasi ChromeDriver dengan memperkenalkan parameter
--remote-chromedriver-portkerun_py_tests.py, sehingga memungkinkan koneksi ke instance yang ada yang berjalan di bawah debugger (crrev.com/c/5237254, Bug: 4693). - Menghindari panggilan
base::HexEncode()danRandBytes()dua argumen agar compiler dapat menyimpulkan ukuran yang benar, sehingga menyederhanakan kode (crrev.com/c/5241357).
ChromeDriver 122
Perbaikan bug
- BiDi: Memperbarui serialisasi node dalam untuk menyertakan
loaderId, sehingga ChromeDriver dan BiDi Mapper dapat mereferensikan dan membatalkan referensi node dengan benar tanpa perjalanan pulang pergi yang berlebihan (crrev.com/c/5116240, Bug: 1420968). - Kemampuan: Mengupdate ChromeDriver untuk meneruskan kemampuan
acceptInsecureCertske Pemeta BiDi segera setelah dimulai, sehingga mencegah kondisi persaingan yang dapat menyebabkan kemampuan diterapkan terlalu lambat (crrev.com/c/5125711, Bug: 4643). - Klasik: Merekonstruksi pembuatan referensi elemen untuk menggunakan format
<frame_id>.<loader_id>.<backend_node_id>; hal ini memungkinkan ChromeDriver membedakan secara pasti antara referensi elemen yang valid, tidak diketahui, dan tidak aktif di seluruh navigasi frame dan update DOM (crrev.com/c/5094519, Bug: 4379). - Klasik: Memperbaiki masalah saat perintah
window/handlesdapat gagal dengan error "no such window" jika target yang baru dibuat menutup sendiri (misalnya, dalam kondisi persaingan) sebelum ChromeDriver dapat melampirkan ke target tersebut (crrev.com/c/5147409, Bug: 1506833). - FedCM: Menambahkan pemroses peristiwa internal untuk memberi tahu saat dialog FedCM ditutup, sehingga mencegah perintah
dialogtypemenampilkan data yang tidak berlaku jika dialog ditutup secara eksternal (misalnya, melaluiAbortController.abort) (crrev.com/c/5067504, Bug: 1506292). - FedCM: Menghapus awalan vendor dari perintah
ClickDialogButtonkarena kini telah disetujui dalam spesifikasi FedCM (crrev.com/c/5092527, Bug: 1499341).
Perubahan dan refaktor internal
- BiDi: Mengupgrade dependensi BiDi Mapper ke versi terbaru (crrev.com/c/5205452, Bug: 4226).
- Mengurangi traffic ChromeDriver dan Chrome DevTools Protocol (CDP) dengan menghapus panggilan
Page.enableyang berlebihan yang dikirim dari setiapDevToolsEventListener, karenaDevToolsClientImplsudah menanganinya per target (crrev.com/c/5088789, Bug: 4600). - Mengubah semua builder Wptrunner untuk
content_shellke status eksperimental karena menjalankan pengujian dalam mode protokol saat ini tidak sepenuhnya didukung saat integrasi ChromeDriver sedang berlangsung (crrev.com/c/5225148, Bug: 1474702). - Melewati pengujian yang memerlukan
window.test_driver_internal.get_computed_roledicontent_shellkarena belum diterapkan, sehingga mencegah kegagalanTypeError(crrev.com/c/5189678, Bug: 1517744). - Memperbaiki refaktor untuk menggunakan tanda
IS_OZONE_{X11, WAYLAND}yang independen dari platform, bukanOZONE_PLATFORM_*(crrev.com/c/5086329, Bug: 1500494). - Mengubah dependensi
selenium-atomske revisi terbaru (crrev.com/c/5110808, Bug: 4662). - Memperbaiki logika dalam pengujian SnapEvents saat dijalankan terhadap biner Chrome lengkap dengan membulatkan input gerakan penunjuk, menerapkan parameter
originuntuk scroll, dan menggunakan pernyataan perkiraan (assert_approx_equals) untuk menangani perbedaan scroll/offset fraksional (crrev.com/c/5097343). - Menambahkan helper
StringPrintfNonConstexpr()untuk membedakan dariStringPrintf()saat string format bukan konstanta waktu kompilasi (crrev.com/c/4950568, Bug: 1371963). - Memastikan bahwa escape makro Rust
chromium::import!menggunakan fungsi injektif untuk mencegah konflik dalam nama target GN yang dihasilkan (crrev.com/c/5132119, Bug: 1512174). - Membersihkan penerapan
ScopedTempDirWithRetrydengan menambahkan konstruktor dan pengembalian awal di destruktor (crrev.com/c/5113843).
ChromeDriver 121
Fitur baru
- Pengujian: Menambahkan dukungan untuk menjalankan pengujian terintegrasi ChromeDriver (
chromedriver_py_test) terhadapchrome-headless-shellselain browser Chrome standar di bot build. Hal ini mencakup kemampuan untuk menemukan biner browser berdasarkan parameter--browser-namedan menjalankan set pengujian tertentu secara bersyarat (crrev.com/c/4995189, crrev.com/c/4989442, Bug: 4358).
Perbaikan bug
- Stabilitas: Menginisialisasi
KeyboardLayoutEnginedefault sebagaiStubKeyboardLayoutEngineuntuk mencegah error ChromeDriver yang disebabkan oleh hitDCHECKdiKeyboardLayoutEngineManager::SetKeyboardLayoutEngine(crrev.com/c/5017859, Bug: 4625). - Stabilitas: Memperbaiki masalah ketidakstabilan saat ChromeDriver dapat mengalami error jika thread sesi meminta untuk menutup koneksi setelah klien telah meminta untuk menutup koneksi yang sama (crrev.com/c/4994636, Bug: 4606).
- Pengelolaan Resource: Memperbaiki kebocoran resource dalam uji integrasi ChromeDriver (
RemoteBrowserTest) dengan memastikan proses browser dihentikan meskipun pengecualian terjadi oleh perintah ChromeDriver (crrev.com/c/5009554, Bug: 4614). - Pengelolaan Resource: Menerapkan logika dalam uji integrasi ChromeDriver untuk mendeteksi dan menghentikan proses browser yang ditinggalkan oleh proses ChromeDriver (crrev.com/c/5014093, Bug: 4617).
- Startup: Memperbaiki masalah saat
chrome-headless-shellmenampilkan daftar target kosong, sehingga mencegah pembuatan sesi, dengan menambahkan argumendata:,ke command line browser saat nama browser adalahchrome-headless-shell(crrev.com/c/5010392, crrev.com/c/5009535, Bug: 4615, Bug: 4358). - FedCM: Menambahkan peristiwa baru untuk memberi tahu saat dialog FedCM ditutup, sehingga
dialogtypedan perintah lainnya tidak menampilkan data yang sudah tidak berlaku jika dialog ditutup secara eksternal (misalnya, melaluiAbortController.abort) (crrev.com/c/5067504, Bug: 1506292). - Pengujian: Memperbaiki dan mengaktifkan kembali semua uji integrasi ChromeDriver yang sebelumnya dinonaktifkan untuk
chrome-headless-shelldi Windows (crrev.com/c/5027594, Bug: 4358). - Pengujian: Memperlemah pernyataan yang terlalu ketat di
testElementRegionTestagar selaras dengan standar WebDriver, sehingga mengatasi ketidakstabilan yang disebabkan oleh keunikan rendering browser (crrev.com/c/5017865, Bug: 4526).
Perubahan dan refaktor internal
- BiDi: Memperbarui dependensi BiDi Mapper (crrev.com/c/4994305, Bug: 4226).
- Mengembalikan penggunaan
IS_OZONE_{X11, WAYLAND}keOZONE_PLATFORM_*karena adanya bug (crrev.com/c/5086571, mengembalikan crrev.com/c/5083096, Bug: 1500494). - Memigrasikan kode di
commands_unittest.ccuntuk menggunakanbase::BindLambdaForTesting, bukanbase::Passedyang tidak digunakan lagi (crrev.com/c/5078589, Bug: 1326449). - Memfaktorkan ulang
session.newuntuk mengekstrak penanganan kemampuan boilerplate (misalnya,testName,binary,browserName) ke dalam metode khusus dan memastikan perintah menghormati kemampuan dengan cara yang sama seperti perintah klasik (crrev.com/c/5004665, crrev.com/c/5001510, Bug: 4358, Bug: 4610). - Menghapus penggunaan header
base/strings/string_piece_forward.hyang tidak digunakan lagi (crrev.com/c/5008994, Bug: 691162). - Mempersiapkan transisi
net::IOBufferke class yang tidak memiliki dengan menggunakannet::IOBufferWithSizeuntuk kasus kepemilikan (crrev.com/c/4996470, Bug: 1493389). - Memperkenalkan dan menggunakan
base::RandBytesAsVector()untuk menghindari penyimpanan nilai biner dalam string (crrev.com/c/5018451). - Menonaktifkan beberapa uji integrasi Python yang terus gagal di Mac untuk mencegahnya menyebabkan build hijau karena pembebasan analisis LUCI (crrev.com/c/4998771, Bug: 1486604, Bug: 1486520, Bug: 1486474, Bug: 1481915).
- Mengganti nama
webdriver_tests_suite(danwpt_tests_suite) menjadichrome_wpt_testsuntuk menstandardisasi konvensi penamaan rangkaian WPT pada builder percobaan Linux (crrev.com/c/5014293, Bug: 1474702). - Menggunakan kembali perintah webdriver FedCM
ConfirmIdpLoginmenjadi perintahClickDialogButtonyang lebih dapat di-extend yang menerima parameterDialogButton(crrev.com/c/5003255, Bug: 1499341). - Memperbarui dependensi
crossbenchdengan berbagai perbaikan dan fitur, termasuk parsing jenis driver yang lebih baik, stub jaringan, dan dukungan iOS (crrev.com/c/5009937). - Menambahkan
#include <string>yang tidak ada kechrome_finder.huntuk kepatuhan IWYU (crrev.com/c/4994605, Bug: 957519).
ChromeDriver 120
Fitur baru
- BiDi: Menambahkan dukungan untuk perintah
session.newdansession.end, yang memungkinkan pengguna membuat dan mengakhiri sesi secara langsung melalui perintah BiDi (crrev.com/c/4941941, Bug: 4496). - BiDi: Menambahkan dukungan untuk perintah
session.statusPureBiDi, yang memungkinkan pengguna membuat koneksi WebSocket yang tidak terikat ke sesi apa pun dan mengambil status sesi (crrev.com/c/4938596, Bug: 4496). (Dilakukan lagi setelah sebelumnya dibatalkan di crrev.com/c/4922097) - BiDi: Memperbarui dependensi BiDi Mapper dan menyelaraskan dengan proses Mapper baru yang disederhanakan (crrev.com/c/4952609, Bug: 4226).
- Sensor: Menerapkan perintah sensor virtual di
browser_protocol.pdldan lapisan CDP (Domain emulasi), menambahkan dukungan untuk bagian Otomatisasi pada spesifikasi Sensor Generik (crrev.com/c/4770864, Bug: 1278377). - Sensor: Menambahkan perintah ekstensi ChromeDriver untuk pengelolaan sensor virtual, menerjemahkan parameter WebDriver ke panggilan CDP baru (crrev.com/c/4770866, Bug: 1278377).
- Sensor: Menambahkan jalur kode
content_shelluntuk manipulasi sensor virtual melaluitestdriver.js, yang sepenuhnya melewati ChromeDriver untuk pengujian web (crrev.com/c/4770865, Bug: 1278377). - Mitigasi Pelacakan: Menambahkan dukungan ChromeDriver untuk Mitigasi Pelacakan Pantulan (DIPS), yang memungkinkan otomatisasi spesifikasi
nav-tracking-mitigations(crrev.com/c/4873672, Bug: 1474656). (Catatan: Perubahan ini sempat dibatalkan karena kegagalan pengujian di Mac pada crrev.com/c/4938394)
Perbaikan bug
- Startup: Menambahkan penemuan Headless Shell ke ChromeDriver, sehingga ChromeDriver dapat menelusuri biner
chrome-headless-shelljika diminta melalui kemampuan dan tidak ada jalur eksplisit yang diberikan (crrev.com/c/4987262, Bug: 4358). (Relanded setelah dikembalikan sebelumnya di crrev.com/c/4984449) - WebSockets: Menerapkan dukungan parsial untuk WebSocket Closing Handshake, memastikan ChromeDriver merespons dengan frame
CLOSEsaat diterima dari ujung jarak jauh (crrev.com/c/4931500, Bug: 4499). - Izin: Menampilkan
options.disclaim_responsibilitysebagai tanda build untuk memungkinkan build vendor (seperti Microsoft Teams) menonaktifkannya, sehingga mencegah perintah izin macOS menghentikan otomatisasi pengujian (crrev.com/c/4929495, Bug: 1223643). - Kepatuhan terhadap standar C++: Memperbaiki perilaku tidak terdefinisi (UB) yang ditangkap oleh UBSan saat melakukan casting ganda di luar rentang ke int dengan menambahkan pemeriksaan rentang (crrev.com/c/4980055, Bug: 1394755).
- FedCM: Menghapus dukungan untuk sintaks header lama, sehingga memastikan kepatuhan terhadap sintaks
login-status-httpstandar (crrev.com/c/4957073, Bug: 1381501).
Perubahan dan refaktor internal
- Menambahkan uji integrasi
testReturnFrameElementuntuk memverifikasi perilaku ChromeDriver terkait memperlakukanwindow.frameElementsebagai referensi yang tidak valid (crrev.com/c/4983549, Bug: 4477). - Peningkatan logging dengan memastikan ChromeDriver mencatat jalur spesifik tempat ia mencoba menemukan biner browser (crrev.com/c/4976116, Bug: 4539).
- Mengganti nama berbagai fungsi
base::Timeagar lebih deskriptif (misalnya,FromDoubleT()menjadiFromSecondsSinceUnixEpoch()) (crrev.com/c/4956111). - Memfaktorkan ulang constructor
net::StringIOBufferdan instansiasiIOBufferuntuk menghindari salinan string yang tidak perlu dan alokasi panjang nol (crrev.com/c/4938384, crrev.com/c/4959174). - Membersihkan penanganan string dengan mengganti
base::StrCatdengan+jika berlaku dan menggunakanbase::AppendHexEncodedByte()(crrev.com/c/4963465, crrev.com/c/4977165). - Mengganti nama
DIR_SOURCE_ROOTmenjadiDIR_SRC_TEST_DATA_ROOTdi seluruh pengujian//chrome*agar lebih jelas (crrev.com/c/4916045, Bug: 1264897). - Menonaktifkan pengujian
PureBidiTestyang tidak stabil di builder Mac (crrev.com/c/4983555, Bug: 1496826).
ChromeDriver 119
Fitur baru
- BiDi: Menerapkan dukungan untuk menyelesaikan referensi objek lokal lemah yang ditampilkan oleh ujung jarak jauh selama panggilan fungsi jarak jauh (crrev.com/c/4886760, Bug: 4536).
- FedCM: Menambahkan perintah
confirmidpsigninberawalan vendor untuk mendukung uji coba origin IDP Sign-In Status API (crrev.com/c/4811725, Bug: 1451884).
Perbaikan bug
- Emulasi seluler: Memperbaiki masalah saat perangkat yang telah ditentukan sebelumnya tanpa Petunjuk Klien (misalnya, konfigurasi yang lebih lama) rusak karena diisi dengan nilai default yang wajar (crrev.com/c/4887254, Bug: 4550).
- Klasik: Memperbaiki serialisasi objek
MapdanSet; objek tersebut kini diserialisasi dengan benar sebagaiObject, bukanCollection, karena tidak memiliki propertilength(crrev.com/c/4881378, Bug: 4031). - Klasik: Mengembalikan logika untuk selalu mendownload dan menggunakan ChromeDriver versi terbaru yang kompatibel selama pengujian, dan kembali ke versi tertentu hanya jika masalah kompatibilitas muncul (crrev.com/c/4779613, mengembalikan crrev.com/c/4778973).
- FedCM: Menstandardisasi perintah otomatisasi browser dengan mengganti nama
SigninmenjadiLogin(confirmidplogin) agar selaras dengan diskusi spesifikasi FedCM terbaru (crrev.com/c/4901302, Bug: 1451884). - Pengujian: Memperbaiki pengujian FedCM yang gagal saat cookie pihak ketiga dinonaktifkan dengan mengaktifkan API Status Login IDP secara eksplisit selama eksekusi pengujian (crrev.com/c/4889802, Bug: 1484833).
- Pengujian: Mengganti placeholder URL yang tidak valid
~NOTFOUNDdengan^NOTFOUNDdi peluncur pengujian agar mematuhi perubahan penerapan standar URL Chromium yang akan datang (crrev.com/c/4845589, Bug: 1416013).
Perubahan dan refaktor internal
- BiDi: Memperbarui dependensi BiDi Mapper ke versi 0.4.27, yang menghadirkan perbaikan dan fitur terbaru (crrev.com/c/4862031, crrev.com/c/4890322).
- Mengganti beberapa API pointer/panjang di
//urldenganstd::string_viewuntuk meningkatkan keamanan dan kenyamanan (crrev.com/c/4897456). - Mengubah utilitas
generateWebDriverValueuntuk menggunakan opsi serialisasi dalam (serializationOptions.serialization: deep) yang disediakan secara native oleh protokol BiDi (crrev.com/c/4889644). - Menambahkan pengujian integrasi untuk memverifikasi bahwa penelusuran di bawah referensi elemen yang tidak valid akan menampilkan error "referensi elemen yang tidak valid" dengan benar (crrev.com/c/4886793, Bug: 4440).
- Peningkatan pemformatan gaya kode di
call_function.js(crrev.com/c/4882511, Bug: 4031). - Meningkatkan kualitas masukan pengguna dengan memberi tahu pengguna secara eksplisit saat mereka terhubung melalui WebSockets bahwa saluran didukung dan direkomendasikan untuk keandalan dan keamanan yang lebih baik (crrev.com/c/4882626, Bug: 3480).
- Memperbarui konfigurasi rangkaian WPT untuk mengarsipkan
results.htmluntuk pengujianwebdriver_tests_suite, sehingga memberikan UI yang lebih baik untuk melihat hasil (crrev.com/c/4873223). - Memperbaiki integrasi DevTools dengan WebView dengan menandai WebContents WebView dan menyetel jenis DevTools-nya ke
popup_page, bukanother(crrev.com/c/4842093). - Mengganti nama target build WPT
chrome_wptmenjadichrome_wpt_testsagar konsisten dan menghapus targetwebdriver_wpt_testsyang berlebihan (crrev.com/c/4847474, Bug: 1474702). - Memigrasikan
run_py_tests.pydari libraryoptparseyang tidak digunakan lagi keargparse(crrev.com/c/4849411, Bug: 4557).
ChromeDriver 118
Fitur baru
- Pengujian Integrasi: Memperkenalkan pengujian integrasi C++ untuk ChromeDriver, yang memungkinkan pengujian kelas tertentu terhadap traffic CDP sebenarnya, sehingga mengisi kesenjangan antara pengujian unit dan pengujian integrasi Python (crrev.com/c/4707855, Bug: 4528).
- Crossbench: Memperbarui dependensi
crossbenchdengan berbagai peningkatan, termasuk artikel tolok ukur daya baru, dukungan platform dan perangkat yang lebih baik, peningkatan penelusuran bug, dan berbagai perbaikan (crrev.com/c/4803743).
Perbaikan bug
- Kemampuan: Memperbaiki masalah saat
debuggerAddresstidak ada dalam kemampuan yang ditampilkan dalam konfigurasi default; kini ditampilkan dengan benar untuk mendukung komunikasi BiDi berbasis CDP Selenium (crrev.com/c/4789068, Bug: 4533). - Kemampuan: Memastikan ChromeDriver menampilkan nilai
platformNamestandar (misalnya, 'linux', 'windows', 'mac') sebagaimana diwajibkan oleh spesifikasi WebDriver (crrev.com/c/4797735, Bug: 4548).
Perubahan dan refaktor internal
- Kode yang dimigrasikan di
MockSocketlebih memilihbase::span<>daripada pointer mentah untuk meningkatkan keamanan (crrev.com/c/4832086). - Menghapus penggunaan
base::raw_ptrdanbase::raw_refyang tidak digunakan lagi dan menggantinya dengan bentuk yang tidak memenuhi syaratraw_ptrdanraw_refmelalui pembersihan otomatis (crrev.com/c/4773481). - Untuk sementara mengembalikan perubahan yang selalu menggunakan ChromeDriver terbaru, karena menyebabkan error di saluran stabil/beta Windows (crrev.com/c/4778973, mengembalikan crrev.com/c/4777430).
- Penyesuaian konfigurasi WPT (Web Platform Tests), termasuk menekan kegagalan khusus debug di
pointer_touch.pydan menerapkan verifikasi fokus sisi browser untuk frame tertutup (crrev.com/c/4844810, crrev.com/c/4572517). - Menambahkan
#include <vector>yang tidak ada keclient_hints.huntuk kepatuhan IWYU (crrev.com/c/4767547). - Memigrasikan jenis dasar khusus Apple (
ScopedTypeRef,ScopedCFTypeRef,scoped_nsautorelease_pool) ke namespacebase::apple::, dengan menyisakan header penerusan sementara untuk Crashpad (crrev.com/c/4799213, crrev.com/c/4790744, crrev.com/c/4790741, crrev.com/c/4784010).
ChromeDriver 117
Fitur baru
- Komunikasi melalui Saluran: Mengubah mode komunikasi default antara ChromeDriver dan Chrome dari WebSockets ke saluran (
--remote-debugging-in-pipedan--remote-debugging-out-pipe) di semua platform yang didukung, termasuk Windows (crrev.com/c/4634299, crrev.com/c/4628834, crrev.com/c/4635378, Bug: 3480). - BiDi: Memperbarui dependensi BiDi Mapper (crrev.com/c/4670516, Bug: 4226).
Perbaikan bug
- Stabilitas: Memperbaiki akses penunjuk null yang menyebabkan ChromeDriver error, yang pada gilirannya mengakibatkan error
ConnectionRefusedselama menjalankan pengujian (crrev.com/c/4675633, Bug: 1457101). - Navigasi: Memperbaiki masalah saat error
NoSuchExecutionContextdanNoSuchWindowChrome selama navigasi tidak ditangani secara seragam; keduanya kini dipetakan dengan benar untuk mencoba lagi operasi (crrev.com/c/4667156, Bug: 4459). - Emulasi seluler: Memperbaiki logika inferensi untuk
clientHints.mobile; kini disimpulkan dengan benar dariuserAgentdi Android dan secara default bernilai salah di platform lain, sehingga memperbaiki masalah saat tablet salah dilaporkan sebagai perangkat seluler (crrev.com/c/4649348, Bug: 4243). - Pembuatan sesi: Pembuatan sesi yang diperbarui untuk menampilkan kode error
SessionNotCreatedstandar dengan benar jika gagal, yang secara ketat mematuhi spesifikasi W3C WebDriver (crrev.com/c/4638223, Bug: 4379). Catatan: Perubahan ini kemudian dibatalkan karena beberapa jalur kode tertentu memerlukan kode error yang berbeda (crrev.com/c/4651188).
Perubahan dan refaktor internal
- Menghilangkan skrip proses rilis ChromeDriver manual, karena ChromeDriver kini terintegrasi sepenuhnya ke dalam proses rilis Chrome dan tersedia melalui infrastruktur Chrome untuk Pengujian (crrev.com/c/4520687, Bug: 4142).
- Memigrasikan infrastruktur WPT (Web Platform Tests) untuk menggunakan harness
wptrunnerresmi, bukanrun_webdriver_tests.pykhusus, sehingga meningkatkan kecepatan dan keandalan eksekusi secara signifikan, serta memastikan ChromeDriver di-respawn di antara pengujian untuk mengisolasi error (crrev.com/c/4723147, crrev.com/c/4676070, crrev.com/c/4639168). - Memfaktorkan ulang
ChromeLauncherdan class terkait secara ekstensif untuk mendukung transisi ke pipe, mengurangi coupling denganDevToolsHttpClient, dan memindahkan logika WebSocket ke cabang khusus (crrev.com/c/4632801, crrev.com/c/4674345). - Mengganti nama kolom
BrowserInfo.is_headlessyang menyesatkan menjadiBrowserInfo.is_headless_shellagar lebih jelas (crrev.com/c/4650452, Bug: 4358). - Mengganti berbagai metode
base::Valueyang tidak digunakan lagi dengan metodebase::Value::Dictmodern yang setara (misalnya,FindDouble(),Set(),size()) di seluruh codebase (crrev.com/c/4258936, crrev.com/c/4336805, crrev.com/c/4461067).112.0.5603.0, 113.0.5653.0, 114.0.5733.0 - Menghapus penggunaan
[w]ctype.hdan menggantinya dengan utilitas string dasar yang lebih aman serta menerapkan fasilitas baru untukbase::expected(crrev.com/c/4749459, crrev.com/c/4755226). - Menerapkan perintah otomatisasi
get_fedcm_dialog_titledanselect_fedcm_accountdiTestDriveruntuk WPT FedCM (crrev.com/c/4618303). - Memperbarui skrip build pemeta BiDi agar berfungsi dengan benar, terlepas dari direktori kerja saat ini (crrev.com/c/4670550).
- Mengonversi file
/chrome/test/chromedriveruntuk menggunakan ARC (Automatic Reference Counting) dalam build macOS, menambahkan boilerplate yang diperlukan (crrev.com/c/4663602). - Mencoba menonaktifkan komunikasi saluran secara default melalui commit stempel karet otomatis, tetapi perubahan hanya menyentuh konfigurasi tanpa mengubah perilaku saluran secara default yang diperkenalkan sebelumnya (crrev.com/c/4683947).
ChromeDriver 116
Fitur baru
- FedCM: Menambahkan kemampuan baru yang memungkinkan klien memeriksa apakah ChromeDriver mendukung perintah FedCM tanpa perlu mengeksekusinya dan menangkap error (crrev.com/c/4624924, Bug: 1356159).
- Pengujian: Mengaktifkan penggunaan ulang jendela pengujian untuk tes testharness yang dijalankan melalui ChromeDriver di
wptrunneruntuk mengevaluasi dampaknya terhadap performa dan ketidakstabilan (crrev.com/c/4515180, Bug: 1394572).
Perbaikan bug
- Kepatuhan terhadap standar C++: Memperbaiki perilaku tidak terdefinisi yang disebabkan oleh penggunaan enumerasi tercakup (class enum) secara langsung dalam string format yang salah, mengatasi peringatan compiler Clang baru (crrev.com/c/4628112, Bug: 1456289).
- FedCM: Mengatasi potensi penyebab ketidakstabilan pengujian dengan memperbaiki kasus ekstrem yang mencegah
setdelayenabledberfungsi dengan benar (crrev.com/c/4606064, Bug: 1453412).
Perubahan dan refaktor internal
- BiDi: Mengubah versi dependensi BiDi Mapper dan mengupdate skrip build untuk menarik revisi terbaru dari 'main' secara default (crrev.com/c/4615087, crrev.com/c/4615791, Bug: 4226).
- Mengubah ChromeDriver untuk membuka dan menulis semua file menggunakan encoding UTF-8 secara eksplisit (crrev.com/c/4614522).
- Memfaktorkan ulang
ChromeImpluntuk menghilangkan dependensinya padaDevToolsHttpClientdan mengurangi penggunaanSyncWebSocketFactorydanBrowserInfosebagai persiapan untuk berkomunikasi melalui saluran, bukan WebSockets (crrev.com/c/4571690, crrev.com/c/4571199, Bug: 3480). - Menghapus "mode default" yang tidak digunakan lagi untuk frame tertutup dan memperbarui pengujian terkait untuk mengaktifkan tanda fitur baru, melanjutkan migrasi ke lelang FLEDGE (crrev.com/c/4558645).
- Meningkatkan kualitas pengujian FedCM dengan mengganti pernyataan
WaitForConditiongenerik denganassertTrueuntuk menunjukkan dengan jelas kapan waktu tunggu habis (crrev.com/c/4590211). - Menandai peringatan
raw_ptryang diketahui tidak stabil di pengujian unitlinux-rel(crrev.com/c/4598070). - Memperbarui file OWNERS untuk pemeta BiDi (crrev.com/c/4614518).
ChromeDriver 115
Fitur baru
- Emulasi perangkat seluler: Menerapkan dukungan untuk Petunjuk Klien User-Agent dalam emulasi perangkat seluler, sehingga ChromeDriver dapat mengurai petunjuk klien dari kemampuan dan preset, lalu meneruskannya ke Chrome (crrev.com/c/4498667, crrev.com/c/4466129, Bug: 4243).
- Emulasi seluler: Memperbarui preset emulasi seluler untuk menggunakan versi utama browser host, bukan versi ChromeDriver saat mengganti string format
%sdi agen pengguna (crrev.com/c/4502850, Bug: 4243). - Penyiapan: Menambahkan dukungan untuk mendownload versi ChromeDriver tertentu untuk saluran tertentu, sehingga meningkatkan skenario otomatisasi saat ChromeDriver berjalan di platform yang berbeda (seperti Android/WebView) dengan host (crrev.com/c/4550281).116.0.5791.0
Perbaikan bug
- Klasik: Memperbaiki masalah saat kegagalan penyelesaian node akan salah menampilkan error
UnknownError, bukan errorNoSuchElementstandar (crrev.com/c/4508952, Bug: 4440). - Emulasi seluler: Menambahkan pernyataan yang lebih ketat ke preset emulasi seluler untuk memastikan bahwa tanda
clientHints.mobileharus benar jika stringuserAgentberisi 'Mobile' (crrev.com/c/4507142, Bug: 4243). - Emulasi seluler: Memigrasikan penggantian
DeviceMetricsuntuk menggunakan perintah CDPEmulation.setDeviceMetricsOverride, bukan penggantian domainPageyang tidak digunakan lagi (crrev.com/c/4502614, Bug: 4243).
Perubahan dan refaktor internal
- BiDi: Memperbarui dependensi BiDi Mapper, yang memungkinkan fitur serialisasi mendalam (crrev.com/c/4535936, crrev.com/c/4512195).
- Menghapus metode
Connectyang tidak digunakan lagi dariDevToolsClientsebagai persiapan untuk memigrasikan ChromeDriver agar berkomunikasi melalui saluran (crrev.com/c/4521485, Bug: 3480). - Memigrasikan codebase untuk lebih memilih
base::Value::Dictdaripadabase::Valuedan mengganti metode yang tidak digunakan lagi sepertiFindStringKey(),SetKey(), danSetByDottedPath()(crrev.com/c/4529788, crrev.com/c/4522701, crrev.com/c/4515800, crrev.com/c/4507150). - Beralih menggunakan fungsi
string_util.hsebagai pengganti[w]ctype.huntuk konversi jenis yang lebih aman (crrev.com/c/4529187). - Mengubah logika pemuatan file seed untuk menggunakan jalur absolut guna memastikan konsistensi saat skrip dan Chrome berjalan di lokasi yang berbeda (crrev.com/c/4504656).
- Menghapus metode
CallAsyncFunction()yang tidak digunakan dariweb_view.h(crrev.com/c/4518363, Bug: 3376). - Menerapkan penggantian nama otomatis dari
base::raw_ptrmenjadiraw_ptruntuk mengikuti preferensi panduan gaya (crrev.com/c/4476651).
ChromeDriver 114
Fitur baru
- Klasik: Meneruskan informasi
MobileDevicekeMobileEmulationOverrideManageruntuk mempersiapkan Client Hints dan penggantian UserAgent di masa mendatang (crrev.com/c/4447524). - Pengujian: Menambahkan fixture pengujian untuk ChromeDriver (crrev.com/c/4459939).
Perbaikan bug
- Tanpa Head: Memperbaiki error dalam mode tanpa head baru dengan mengabaikan permintaan pratinjau cetak yang di-script secara diam-diam (misalnya,
window.print()), menyelaraskan perilaku dengan mode tanpa head lama (crrev.com/c/4436313, Bug: 4385). - Kemampuan: Memperbaiki bug use-after-move di kemampuan ChromeDriver (crrev.com/c/4462094, Bug: 4243).
- DevTools: Menghapus
DCHECKdiDevToolsClientImpl::SendCommandInternaluntuk mencegah error saat koneksi DevTools terputus, karena ini bukan pelanggaran invarian (crrev.com/c/4370486, Bug: 4385).
Perubahan dan refaktor internal
- BiDi: Memperbarui dependensi BiDi Mapper (crrev.com/c/4418727).
- Mengatasi beberapa peringatan pointer yang tidak terhubung selama eksekusi pengujian unit dengan mengelola referensi yang tidak dimiliki dan penghapusan lokal dengan benar dalam pengujian
WebViewImpldan logger performa (crrev.com/c/4374824, crrev.com/c/4368179). - Memigrasikan codebase untuk menggunakan
base::Valuev2 API baru, menggantikan metode yang tidak digunakan lagi sepertiValue::SetPath(),Value::SetStringPath(), danbase::ListValue(crrev.com/c/4452309, crrev.com/c/4431420, crrev.com/c/4422897, crrev.com/c/4377520). - Mengganti semua penggunaan
base::GUIDdenganbase::Uuidagar selaras dengan penggantian nama library dasar inti (crrev.com/c/4455083). - Melakukan pembersihan kode lain-lain, termasuk mempersingkat kode, menggunakan operasi monadik untuk
expected, menghapus kode yang tidak digunakan, dan memperbaiki pelanggaran gaya (crrev.com/c/4475368, crrev.com/c/4464199). - Memperbarui pengujian yang melibatkan frame tertutup untuk menggunakan atribut
config, bukan atributsrcyang tidak digunakan lagi (crrev.com/c/4382231). - Menghapus penggunaan
ShadowDOMV0yang tidak efektif (crrev.com/c/4388302). - Mengembalikan penambahan tanda untuk perbaikan PDF Skia (
SK_IGNORE_PDF_EOF_NEWLINE_FIX) agar dapat melakukan rebaselining (crrev.com/c/4401451). - Memperbarui pemilik skrip pengujian ChromeDriver dan melakukan penyesuaian untuk membuat JSON konfigurasi secara eksklusif untuk pinpoint (crrev.com/c/4437492, crrev.com/c/4298554).
- Menambahkan include yang hilang (
<cstring>) untukstd::strlendiweb_view_impl.ccguna memperbaiki masalah build IWYU (crrev.com/c/4376772). - Menghapus file pengujian yang tidak digunakan (
orientation_test.html) (crrev.com/c/4335668).
ChromeDriver 113.0.5672.63
Mendukung Chrome versi 113
- Menyelesaikan masalah 4205: ID objek yang sama di Classic dan BiDi [Pri-1]
- Masalah 4302 telah diselesaikan: Jangan menganggap bahwa Mapper berada di tab pertama di ExecuteGetWindowHandles [Pri-1]
- Memecahkan masalah 4356: Chrome 110 tidak menggunakan nilai preferensi "download.default_directory" [Pri-1]
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 113.0.5672.24
Mendukung Chrome versi 113
- Menyelesaikan masalah 4205: ID objek yang sama di Classic dan BiDi [Pri-1]
- Masalah 4302 telah diselesaikan: Jangan menganggap bahwa Mapper berada di tab pertama di ExecuteGetWindowHandles [Pri-1]
- Memecahkan masalah 4356: Chrome 110 tidak menggunakan nilai preferensi "download.default_directory" [Pri-1]
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 112.0.5615.49
Mendukung Chrome versi 112
- Masalah 3517 yang telah diselesaikan: Mengaktifkan fitur cetak untuk non-headless [Pri-]
- Menyelesaikan masalah 4419: Overhead besar pada Speedometer saat menggunakan chromedriver [Pri-3]
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 112.0.5615.28
Mendukung Chrome versi 112
- Masalah 4357 yang telah diselesaikan: Masalah sesi Chromedriver versi 110.0.5481.77 dengan opsi --headless dan --user-data-dir. [Pri-1]
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 111.0.5563.64
Mendukung Chrome versi 111
- Masalah 4216 yang telah diselesaikan: Menjalankan ChromeDriver dengan BiDiMapper kustom [Pri-]
- Masalah 4300 telah diselesaikan: Handle jendela dapat beroperasi antara Klasik dan BiDi [Pri-]
- Masalah 4325 yang diselesaikan: Penanganan toJSON di jsonSerialize call_function.js berbeda dari standar. [Pri-]
- Menyelesaikan masalah 4330: DCHECK gagal di DevToolsClientImpl::AddListener [Pri-]
- Masalah 4357 yang telah diselesaikan: Masalah sesi ChromeDriver dengan opsi --headless dan --user-data-dir [Pri-1]
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 111.0.5563.41
Mendukung Chrome versi 111
- Masalah 4357 yang telah diselesaikan: Masalah sesi ChromeDriver dengan opsi --headless dan --user-data-dir [Pri-1]
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 111.0.5563.19
Mendukung Chrome versi 111
- Masalah 4216 yang telah diselesaikan: Menjalankan ChromeDriver dengan BiDiMapper kustom [Pri-]
- Masalah 4300 telah diselesaikan: Handle jendela dapat beroperasi antara Klasik dan BiDi [Pri-]
- Masalah 4325 yang diselesaikan: Penanganan toJSON di jsonSerialize call_function.js berbeda dari standar. [Pri-]
- Menyelesaikan masalah 4330: DCHECK gagal di DevToolsClientImpl::AddListener [Pri-]
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 110.0.5481.77
Mendukung Chrome versi 110
- Masalah 4193 yang telah diselesaikan: Gagal memulai sesi baru di Android 13 [Pri-]
- Menyelesaikan masalah 4272: WebSocket harus memperlakukan code=0 sebagai indikasi FIN [Pri-]
- Menyelesaikan masalah 4276: Memperbaiki masalah konektivitas di ChromeDriver [Pri-]
- Menyelesaikan masalah 4295: ChromeDriver dengan
"webSocketUrl": truerentan terhadap kondisi persaingan [Pri-] - Memperbaiki masalah 4297: ChromeDriver Bidi melakukan serialisasi dengan tidak benar [Pri-]
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 110.0.5481.30
Mendukung Chrome versi 110
- Masalah 4193 yang telah diselesaikan: Gagal memulai sesi baru di Android 13 [Pri-]
- Menyelesaikan masalah 4272: WebSocket harus memperlakukan code=0 sebagai indikasi FIN [Pri-]
- Menyelesaikan masalah 4276: Memperbaiki masalah konektivitas di ChromeDriver [Pri-]
- Menyelesaikan masalah 4295: ChromeDriver dengan
"webSocketUrl": truerentan terhadap kondisi persaingan [Pri-] - Memperbaiki masalah 4297: ChromeDriver Bidi melakukan serialisasi dengan tidak benar [Pri-]
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 109.0.5414.74
Mendukung Chrome versi 109
- Memecahkan masalah 4179: Sesi BiDi harus mendukung beberapa koneksi [Pri-]
- Masalah 4203 yang telah diselesaikan: Meningkatkan kualitas informasi kredit [Pri-]
- Menyelesaikan masalah 4263: Error pada Meta+A [Pri-]
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 109.0.5414.25
Mendukung Chrome versi 109
- Memecahkan masalah 4179: Sesi BiDi harus mendukung beberapa koneksi [Pri-]
- Masalah 4203 yang telah diselesaikan: Meningkatkan kualitas informasi kredit [Pri-]
- Menyelesaikan masalah 4263: Error pada Meta+A [Pri-]
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 108.0.5359.71
Mendukung Chrome versi 108 Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 108.0.5359.22
Mendukung Chrome versi 108
- Masalah 4204 yang telah diselesaikan: Memperbaiki WPT test_top_level_and_one_child yang gagal [Pri-]
- Masalah 4215 yang telah diselesaikan: Mengganti nama build chromedriver_mac64_m1 menjadi chromedriver_mac_arm64 [Pri-]
- Menyelesaikan masalah 4221: Error saat perintah klik menutup browser [Pri-]
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 107.0.5304.62
Mendukung Chrome versi 107
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 107.0.5304.18
Mendukung Chrome versi 107
- Memecahkan masalah 4180: Melarang penanganan perintah BiDi apa pun hingga diberi tahu bahwa BiDiMapper telah dimulai [Pri-]
- Memecahkan masalah 4198: BiDi ChromeDriver tidak boleh mengasumsikan bahwa BiDiMapper selalu ada di tab pertama [Pri-]
- Menyelesaikan masalah 4207: Error WebDriver saat menjalankan WPT [Pri-1]
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 106.0.5249.61
Mendukung Chrome versi 106
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 106.0.5249.21
Mendukung Chrome versi 106
- Masalah 4016 yang telah diselesaikan: Menambahkan dukungan BiDi dasar ke ChromeDriver (berbasis Mapper) [Pri-1]
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 105.0.5195.52
Mendukung Chrome versi 105
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 105.0.5195.19
Mendukung versi Chrome
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 104.0.5112.79
Mendukung Chrome versi 104
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 104.0.5112.29
Mendukung Chrome versi 104
- Menyelesaikan masalah 4121: Perintah WebDriver terkadang gagal dengan "respons perintah yang tidak terduga" [Pri-1]
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 104.0.5112.20
Mendukung Chrome versi 104
- Menyelesaikan masalah 4121: Perintah WebDriver terkadang gagal dengan "respons perintah yang tidak terduga" [Pri-1]
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 103.0.5060.134
Mendukung Chrome versi 103
- Memperbaiki masalah 4048: target frame detached [Pri-]
- Menyelesaikan masalah 4121: Perintah WebDriver terkadang gagal dengan "respons perintah yang tidak terduga" [Pri-1]
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 103.0.5060.53
Mendukung Chrome versi 103
- Memperbaiki masalah 4048: target frame detached [Pri-]
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 103.0.5060.24
Mendukung Chrome versi 103
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 102.0.5005.61
Mendukung Chrome versi 102
- Memecahkan masalah 1309282: chromedriver tidak mendukung switch bernilai banyak [Pri-1]
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 102.0.5005.27
Mendukung Chrome versi 102
- Memecahkan masalah 1309282: chromedriver tidak mendukung switch bernilai banyak [Pri-1]
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 101.0.4951.41
Mendukung Chrome versi 101
- Menyelesaikan masalah 4046: DCHECK terjadi saat menambahkan frame tertutup kosong [Pri-]
- Menyelesaikan masalah 4080: Gagal beralih ke frame bertingkat [Pri-]
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 101.0.4951.15
Mendukung Chrome versi 101
- Menyelesaikan masalah 4046: DCHECK terjadi saat menambahkan frame tertutup kosong [Pri-]
- Menyelesaikan masalah 4080: Gagal beralih ke frame bertingkat [Pri-]
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 100.0.4896.60
Mendukung Chrome versi 100
- Menyelesaikan masalah 4002: Mendukung Frame yang Dibatasi [Pri-]
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 100.0.4896.20
Mendukung Chrome versi 100
- Menyelesaikan masalah 4002: Mendukung Frame yang Dibatasi [Pri-]
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 99.0.4844.51
Mendukung Chrome versi 99
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 99.0.4844.35
Mendukung Chrome versi 99
- DIKEMBALIKAN!!! Menyelesaikan masalah 2269: Tidak dapat menggunakan karakter non-BMP (titik kode di atas U+FFFF) [Pri-3]
- Masalah yang diselesaikan chromium:1295243: Regresi di ChromeDriver sendKeys [Pri-1]
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 99.0.4844.17
Mendukung Chrome versi 99
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 98.0.4758.102
Mendukung Chrome versi 98
- Masalah 3933 telah diselesaikan: Klik di tepi area tampilan tidak efektif tanpa error [Pri-]
- DIKEMBALIKAN!!! Menyelesaikan masalah 2269: Tidak dapat menggunakan karakter non-BMP (titik kode di atas U+FFFF) [Pri-3]
- Masalah yang diselesaikan chromium:1295243: Regresi di ChromeDriver sendKeys [Pri-1]
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 98.0.4758.80
Mendukung Chrome versi 98
- Masalah 3933 telah diselesaikan: Klik di tepi area tampilan tidak efektif tanpa error [Pri-]
- Menyelesaikan masalah 2269: Tidak dapat menggunakan karakter non-BMP (titik kode di atas U+FFFF) [Pri-3]
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 98.0.4758.48
Mendukung Chrome versi 98
- Masalah 3933 telah diselesaikan: Klik di tepi area tampilan tidak efektif tanpa error [Pri-]
- Menyelesaikan masalah 2269: Tidak dapat menggunakan karakter non-BMP (titik kode di atas U+FFFF) [Pri-3]
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 97.0.4692.71
Mendukung Chrome versi 97
- Masalah 3878 yang telah diselesaikan: Penanganan koordinat elemen fraksional yang lebih baik untuk klik elemen [Pri-]
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 97.0.4692.36
Mendukung Chrome versi 97
- Masalah 3878 yang telah diselesaikan: Penanganan koordinat elemen fraksional yang lebih baik untuk klik elemen [Pri-]
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 97.0.4692.20
Mendukung Chrome versi 97
- Masalah 3878 yang telah diselesaikan: Penanganan koordinat elemen fraksional yang lebih baik untuk klik elemen [Pri-]
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 96.0.4664.45
Mendukung Chrome versi 96
- Menyelesaikan masalah 3445: Tidak dapat mengakses elemen di iframe dalam shadow root [Pri-3]
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 96.0.4664.35
Mendukung Chrome versi 96
- Menyelesaikan masalah 3445: Tidak dapat mengakses elemen di iframe dalam shadow root [Pri-3]
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 96.0.4664.18
Mendukung Chrome versi 96
- Menyelesaikan masalah 3445: Tidak dapat mengakses elemen di iframe dalam shadow root [Pri-3]
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 95.0.4638.69
Mendukung Chrome versi 95
- Masalah 3857 yang telah diselesaikan: Header host atau header asal ditentukan dan tidak diizinkan atau localhost [Pri-1]
- Menambahkan argumen
--allowed-origins
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 95.0.4638.54
Mendukung Chrome versi 95
- Masalah 3857 yang telah diselesaikan: Header host atau header asal ditentukan dan tidak diizinkan atau localhost [Pri-1]
- Menambahkan argumen
--allowed-origins
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 95.0.4638.17
Mendukung Chrome versi 95
- Masalah 3857 yang telah diselesaikan: Header host atau header asal ditentukan dan tidak diizinkan atau localhost [Pri-1]
- Menambahkan argumen
--allowed-origins
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 95.0.4638.10
Mendukung Chrome versi 95
- Masalah 3857 yang telah diselesaikan: Header host atau header asal ditentukan dan tidak diizinkan atau localhost [Pri-1]
- Menambahkan argumen
--allowed-origins
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 94.0.4606.113
Mendukung Chrome versi 94
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 94.0.4606.61
Mendukung Chrome versi 94
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 94.0.4606.41
Mendukung Chrome versi 94
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 93.0.4577.63
Mendukung Chrome versi 93
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 93.0.4577.15
Mendukung Chrome versi 93
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 92.0.4515.107
Mendukung Chrome versi 92
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 92.0.4515.43
Mendukung Chrome versi 92
- Menyelesaikan masalah 3389: Validasi host untuk permintaan ChromeDriver
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 91.0.4472.101
Mendukung Chrome versi 91
- Masalah 1205107 yang telah diselesaikan: Tidak dapat mengambil nilai atribut untuk kolom di aplikasi web.
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 91.0.4472.19
Mendukung Chrome versi 91
- Memperbaiki masalah 3744: SendKeys() dan Click() gagal secara diam-diam setelah navigasi link
- Masalah 3746 telah diselesaikan: endpoint atribut memperbarui nilai secara keliru
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 90.0.4430.24
Mendukung Chrome versi 90
- Masalah 3708 yang telah diselesaikan: GetElementLocation's inView gagal untuk elemen di shadow DOM
- Masalah 3721 yang telah diselesaikan: Mengumpulkan log performa untuk pekerja layanan saat diaktifkan
- Masalah 3731 telah diselesaikan: AdbImpl::GetPidByName tidak berfungsi dengan benar di OS Android non-standar seperti di OnePlus
- Masalah 3733 telah diselesaikan: Kegagalan fatal dengan domain di localhost
- Menyelesaikan masalah 3734: Driver akan Error saat Mencoba menyetel Cookie di Domain yang Salah
- Menyelesaikan masalah 3743: Memfaktorkan ulang fungsi panggilan dan memperbaiki masalah penghapusan elemen
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 89.0.4389.23
Mendukung Chrome versi 89
- Memecahkan masalah 3667: Waktu tunggu habis saat menerima pesan dari perender
- Masalah 3675 telah diselesaikan: GetElementLocation menggunakan metode inView yang salah menangani boolean sebagai array
- Menyelesaikan masalah 3682: GetElementRegion menampilkan ukuran yang salah untuk elemen yang sebagian berada di luar area tampilan
- Masalah 3690 yang telah diselesaikan: ChromeDriver gagal jika ekstensi menggunakan chrome.windows API
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 88.0.4324.96
Mendukung Chrome versi 88
- Masalah 3641 telah diselesaikan: Halaman tidak dimuat/dirender saat jendela browser tidak dalam fokus dengan Chrome Beta v87 dan chromedriver v(87/86)
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 88.0.4324.27
Mendukung Chrome versi 88
- Masalah 3611 telah diselesaikan: Output
getText()di protraktor berbeda dengan<element>.innerText - Masalah 3625 telah diselesaikan: Meningkatkan kompatibilitas screenshot elemen
- Menyelesaikan masalah 3628: Referensi Elemen Usang dan URL salah dilaporkan kembali dengan URL yang memiliki URL lain sebagai bagian dari jalurnya
- Masalah 3631 yang terselesaikan: Menambahkan dukungan untuk kemampuan
webauthn:extension:largeBlob - Menyelesaikan masalah 3635: Chromedriver 86 -
chromedriver.quit()tampaknya tidak meneruskan peristiwa pelepasan dengan benar - Mengatasi masalah 3649: Menyalin teks yang dipilih ke papan klip tidak berfungsi di Windows 10 saat menggunakan mode tanpa tampilan
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 87.0.4280.88
Mendukung Chrome versi 87
- Masalah 3641 telah diselesaikan: Halaman tidak dimuat/dirender saat jendela browser tidak dalam fokus dengan Chrome Beta v87 dan chromedriver v(87/86)
- Memecahkan masalah 3657: Browser latar belakang screenshot kehabisan waktu
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 87.0.4280.20
Mendukung Chrome versi 87
- Menyelesaikan masalah 2421: Menghapus saluran penerusan port lama di adb-server android
- Masalah 3474 telah diselesaikan: Daftar perangkat seluler yang diemulasi perlu diperbarui
- Masalah 3507 diselesaikan: Menerapkan "get computed role" (mendapatkan peran yang dikomputasi)
- Menyelesaikan masalah 3508: Menerapkan "get computed label"
- Memecahkan masalah 3584: Mengganti nama opsi command line ChromeDriver --whitelisted-ips
- Menyelesaikan masalah 3588: Koneksi WebSocket Bidi
- Menyelesaikan masalah 3594: Navigasi selesai sebelum waktunya jika OOPIF dimuat sebelum halaman utama
- Masalah 3598 telah diselesaikan: Opsi command line untuk port devtools yang akan diteruskan ke soket webview_devtools_remote
- Menyelesaikan masalah 3608: debuggerAddress Chromedriver tidak mendukung ipv6
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 86.0.4240.22
Mendukung Chrome versi 86
- Masalah 3370 telah diselesaikan: Tutup Chrome dengan benar atau cookie tidak akan disimpan dengan benar ke file persistensi SQLite
- Masalah 3401 yang telah diselesaikan: Get Element Location JS tidak menemukan pusat elemen yang terlihat
- Menyelesaikan masalah 3462: Untuk sendKeys, tombol CMD tidak berfungsi untuk MAC
- Menyelesaikan masalah 3541: Meningkatkan kualitas log antara Klien dan ChromeDriver
- Masalah 3559 telah diselesaikan: Menampilkan versi Chrome saat ChromeDriver melaporkan tidak kompatibel
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 85.0.4183.87
Mendukung Chrome versi 85
- Masalah 3578 telah diselesaikan: Chrome 85 tidak lagi mengizinkan interaksi yang lancar dengan jendela saat dialog pemberitahuan terbuka
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 85.0.4183.83
Mendukung Chrome versi 85
- Masalah 3577 yang telah diselesaikan: ChromeDriver 85 tidak mendeteksi perubahan direktori Chrome (C:\Program Files)
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 85.0.4183.38
Mendukung Chrome versi 85
- Masalah 3214 telah diselesaikan: ChromeDriver78: Sendkeys mereset pemilihan teks dengan contenteditable
- Masalah 3376 yang telah diselesaikan: Menghapus perintah LaunchApp dari ChromeDriver
- Masalah 3432 telah diselesaikan: Terkadang
NavigationTrackergagal mendeteksi saat halaman selesai dimuat - Menyelesaikan masalah 3481: Endpoint Print baru sesuai dengan spesifikasi w3c
- Memecahkan masalah 3488: driver.get tidak memunculkan error saat proxy dikonfigurasi dengan salah
- Masalah 3502 yang diselesaikan: Menggunakan
document.hasFocus()untuk memeriksa apakah elemen difokuskan - Masalah 3515 yang telah diselesaikan: selenium.common.exceptions.WebDriverException: Message: unknown error: bad inspector message
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 84.0.4147.30
Mendukung Chrome versi 84
- Memperbaiki masalah 3420: setelah beralih ke jendela cetak, chromedriver berhenti merespons
- Mengatasi masalah 3421: Driver menampilkan teks Sirilik tanpa gaya
- Menyelesaikan masalah 3422: GetElementText rusak dengan prototipe 1.6.0.3
- Masalah 3434 telah diselesaikan: Tidak dapat memperoleh pesan 'assert' dari log 'browser'
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 83.0.4103.39
Mendukung Chrome versi 83
- Memperbarui Chromedriver agar berfungsi dengan benar dengan prototype.js.
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 83.0.4103.14
Mendukung Chrome versi 83
- Masalah 1778 yang diselesaikan: Menghentikan penggunaan launchApp dari ChromeDriver
- Masalah 2520 telah diselesaikan: InitSession dapat menunggu selamanya saat Chrome tidak merespons
- Menyelesaikan masalah 3120: Download mode Headless dari tab baru
- Masalah 3234 yang telah diselesaikan: Mengonfirmasi titik koma ditemukan sebelum substring
- Masalah 3240 yang telah diselesaikan: ExecuteGetElementRect tidak memeriksa status yang ditampilkan dari GET_SIZE
- Masalah 3331 yang telah diselesaikan: Metode
get_cookies()menampilkan kunci 'expiry' berjenis ganda, tetapi seharusnya int64 dalam mode w3c - Menyelesaikan masalah 3332: Waktu tunggu coba lagi dicatat sebagai parah
- Mengatasi masalah 3339: Chromedriver keluar secara tiba-tiba dengan kode null, sinyal SIGTRAP
- Masalah 3351 yang telah diselesaikan: Meningkatkan pesan Pertimbangan Keamanan
- Menyelesaikan masalah 3352: Mendukung SendKeys untuk elemen warna
- Memecahkan masalah 3353: Wait for Pending Navigation berlanjut setelah konteks frame dimusnahkan
- Menyelesaikan masalah 3375: Chromedriver v80 berhenti di getPageSource di beberapa situs
- Masalah 3383 yang telah diselesaikan: ChromeDriver 80+ di Windows tampaknya keluar atau terhenti pada perintah klik atau elemen tertentu
- Masalah 3399 yang sudah diselesaikan: Menghapus pemeriksaan wasThrown
ChromeDriver 81.0.4044.138
Mendukung Chrome versi 81
- Memperbarui Chromedriver agar berfungsi dengan benar dengan prototype.js.
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 81.0.4044.69
Mendukung Chrome versi 81
- Diperbaiki: Chromedriver error pada getPageSource di beberapa situs.
- Diperbaiki: ChromeDriver mengalami error pada perintah klik atau elemen tertentu.
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 81.0.4044.20
Mendukung Chrome versi 81
- Memperbaiki error saat mencoba mendapatkan lokasi elemen HTML.
- Perintah Get and Add Cookie kini khusus untuk frame.
- Menyelesaikan beberapa masalah yang terjadi pada situs yang mendefinisikan ulang objek JavaScript standar.
- ChromeDriver akan terus menunggu pemuatan selesai setelah menerima pesan Target Ditutup.
- Chromedriver kini menampilkan kode error yang sesuai dengan spesifikasi untuk waktu tunggu
- Diperbaiki: Waktu respons ChromeDriver yang Lambat dan Tidak Terduga pada Perintah NewSession.
- Waktu tunggu yang ditentukan pengguna lebih dari 10 menit kini didukung.
- Diperbaiki: ChromeDriver tidak dapat terhubung ke DevTools karena ketidakcocokan IPv4 vs IPv6.
- Memulihkan urutan penelusuran untuk biner Chrome di Linux.
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 80.0.3987.106
Mendukung Chrome versi 80
- Memulihkan urutan penelusuran untuk biner Chrome di Linux
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 80.0.3987.16
Mendukung Chrome versi 80
- Memperbaiki pemuatan halaman dibatalkan saat menggunakan proxy.
- Chromedriver kini menunggu hingga Frame saat ini dimuat.
- Log ChromeDriver akan menyertakan port yang digunakan oleh driver.
- Mengaktifkan SetGeoLocation untuk mode w3c.
- Menambahkan teks Alert yang hilang untuk status UnexpectedAlertOpen.
- Pesan yang lebih baik saat Ekstensi CRX2 dimuat.
- Memperbaiki potensi kondisi race di ExecuteGetPageSource.
- ChromeDriver akan menambahkan tanda --ignore-certificate-errors saat kemampuan acceptInsecureCerts bernilai benar (true)
- Memperbarui pesan error dan status yang ditampilkan untuk tidak ada konteks eksekusi tersebut
- Diperbaiki: ChromeDriver dapat memblokir tanpa batas waktu saat menunggu navigasi yang tertunda.
- Menambahkan atribut SameSite ke AddCookie dan GetCookie.
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 79.0.3945.36
Mendukung Chrome versi 79
Mencakup perubahan berikut dari versi 79.0.3945.16:
- Memperbaiki penghitungan koordinat elemen yang salah
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 79.0.3945.16
Mendukung Chrome versi 79
- Error ChromeDriver yang disebabkan oleh dialog JavaScript yang muncul selama eksekusi perintah telah diperbaiki
- Memperbaiki bug yang menyebabkan Chromedriver terkunci saat pemberitahuan ditampilkan saat mengambil screenshot
- Menghapus --ignore-certificate-errors dari perintah peluncuran Chrome
- Mengubah platform dan platformName menjadi windows di Win10
- Memperbaiki window.navigator.webdriver yang tidak ditentukan saat "enable-automation" dikecualikan
- Memperbaiki pengujian WPT "test_not_editable_inputs[hidden]"
- Memperbaiki "Element is not clickable" saat menggunakan mode headless
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 78.0.3904.105
Mendukung Chrome versi 78
Mencakup perubahan berikut pada versi 78.0.3904.70: * Memperbaiki penghitungan koordinat elemen yang salah
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 78.0.3904.70
Mendukung Chrome versi 78
Mencakup perubahan berikut pada versi 78.0.3904.11:
- Mengembalikan perubahan untuk menyesuaikan ukuran screenshot pada layar retina, karena beberapa masalah dilaporkan
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 78.0.3904.11
Mendukung Chrome versi 78
- Memperbaiki beberapa masalah dalam serialisasi objek JavaScript
- Memperbaiki bug dalam pencocokan kemampuan untuk Chrome di Android
- Menerapkan otomatisasi izin
- Ukuran screenshot tetap pada layar retina
- Memperbaiki waktu tunggu pemuatan halaman yang habis dalam beberapa skenario
- Pencocokan kemampuan platformName yang ditingkatkan
- Memperbaiki kode error yang ditampilkan saat memindahkan penunjuk ke opsi daftar drop-down
- Memperbaiki masalah yang memengaruhi download dalam mode headless
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 77.0.3865.40
Mendukung Chrome versi 77
Mencakup perubahan berikut pada versi 77.0.3865.10:
- Memperbaiki dua bug dalam serialisasi dan deserialisasi objek JavaScript
- Memperbaiki penanganan platformName: android saat mencocokkan kemampuan
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 77.0.3865.10
Mendukung Chrome versi 77
- Memperbaiki beberapa masalah dalam penerapan Actions API
- Peningkatan eksekusi kode JavaScript dan penanganan hasil
- Memperbaiki bug yang salah menolak permintaan POST dengan isi kosong dalam mode OSS
- Pelacak navigasi yang lebih andal
- Mendukung strategi pemuatan halaman yang segera
- Menambahkan perintah New Window dari spesifikasi W3C WebDriver
- Dukungan untuk menyimpan download file dalam mode tanpa tampilan
- Menambahkan dukungan untuk memuat ekstensi CRX3
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 76.0.3809.126
Mendukung Chrome versi 76
Mencakup perubahan berikut pada versi 76.0.3809.68:
- Memperbaiki dua bug dalam serialisasi dan deserialisasi objek JavaScript
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 76.0.3809.68
Mendukung Chrome versi 76
Mencakup perubahan berikut dibandingkan versi 76.0.3809.25:
- Memperbaiki bug dalam mendeteksi referensi melingkar di objek JavaScript
- Memperbaiki bug yang menyebabkan ChromeDriver error saat jenis error JavaScript tertentu terjadi
- Memperbaiki bug yang mencegah API tindakan berinteraksi dengan elemen di dalam DOM bayangan
- Memperbaiki bug dalam melacak status tombol pengubah antara perintah API tindakan
- Memperbaiki bug dalam melacak lokasi penunjuk di antara perintah API tindakan
- Menyimpan error "Cannot call non W3C standard command while in W3C mode" ke file log saat terjadi
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 76.0.3809.25
Mendukung Chrome versi 76
Mencakup perubahan berikut dibandingkan versi 76.0.3809.12:
- Memperbaiki bug yang salah menolak permintaan POST dengan isi kosong dalam mode OSS
- Menambahkan endpoint baru untuk mengambil log Chrome
- Menambahkan endpoint untuk perintah Is Displayed dalam mode W3C
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 76.0.3809.12
Mendukung Chrome versi 76
- Implementasi Actions API selesai
- Peningkatan kepatuhan spesifikasi penanganan waktu tunggu skrip
- Peningkatan serialisasi hasil dari perintah Execute Script
- Memperbaiki masalah saat men-scroll elemen agar muncul
- Menambahkan penanganan tombol Batal yang ditentukan dalam spesifikasi WebDriver
- Memperbaiki pemrosesan respons error pemberitahuan yang tidak tertangani
- Memperbaiki pemrosesan elemen
<details> - Opsi excludeSwitches yang diperbarui untuk mengizinkan tanda hubung di awal nama switch
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 75.0.3770.140
Mendukung Chrome versi 75
Mencakup perubahan berikut dibandingkan versi 75.0.3770.90:
- Memperbaiki bug yang menyebabkan ChromeDriver error saat terjadi beberapa jenis error JavaScript
- Memperbaiki bug dalam mempertahankan status tombol pengubah di antara tindakan
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 75.0.3770.90
Mendukung Chrome versi 75
Mencakup perubahan berikut pada versi 75.0.3770.8:
- Memperbaiki bug yang salah menolak permintaan POST dengan isi kosong dalam mode OSS
- Menambahkan endpoint baru untuk mengambil log Chrome
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 75.0.3770.8
Mendukung Chrome versi 75
Perubahan yang paling mencolok adalah ChromeDriver kini berjalan dalam mode yang kompatibel dengan standar W3C secara default. Perubahan lainnya meliputi:
- Memperbaiki bug yang menyebabkan peristiwa blur dimunculkan dua kali selama penghapusan elemen
- Mengganti nama kemampuan loggingPrefs menjadi goog:loggingPrefs, seperti yang diwajibkan oleh standar W3C
- Memperbaiki penanganan error dalam mode W3C
- Penanganan yang benar dalam membuat cookie tanpa tanda titik di awal nama domain
- Mengizinkan nilai null untuk waktu tunggu skrip
- Memperbaiki perintah Fixed Element Send Keys untuk memasukkan file dengan atribut 'multiple'
- Memperbaiki perintah Get Active Element untuk menampilkan error "no such element" jika tidak ada elemen aktif
- Memperbaiki navigasi ke URL yang salah format untuk menampilkan error "argumen tidak valid"
- Memperbaiki kode status HTTP saat ID sesi yang tidak valid diterima
- Memperbaiki respons error saat parameter input tidak ada atau salah format
- Memperbaiki perintah Execute Script untuk menangani komentar JavaScript berorientasi baris
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 74.0.3729.6
Mendukung Chrome versi 74
- Memperbaiki bug yang menghasilkan file debug.log yang tidak terduga di Windows
- Memperbaiki klik dan tarik / lepas mouse di dalam dokumen SVG
- Menambahkan header cache-control dalam respons dari ChromeDriver
- Memperbaiki jenis error saat klik dicegat oleh elemen lain
- Memperbaiki bug yang menyebabkan ChromeDriver gagal di perangkat Linux tanpa /dev/shm
- Memperbaiki beberapa jenis peristiwa klik ganda
- Memperbaiki perintah Get Sessions
- Memperbaiki pemeriksaan error dalam perintah Switch To Frame
- Memperbaiki perintah Get Page Source
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 73.0.3683.68
Mendukung Chrome versi 73
- Memperbaiki bug yang menghasilkan file debug.log yang tidak terduga di Windows
- Memperbaiki kode error yang ditampilkan dari perintah Execute Script dalam beberapa skenario
- Menambahkan header cache-control dalam respons dari ChromeDriver
- Membuat server HTTP mempertahankan koneksi tetap aktif secara default
- Memperbaiki perintah Tutup Jendela untuk menangani perintah pengguna dengan benar
- Memperbaiki kode error yang ditampilkan saat mengirim kunci ke elemen yang dinonaktifkan
- Meningkatkan kepatuhan spesifikasi penanganan nilai waktu tunggu
- Peningkatan kepatuhan spesifikasi perintah Tambahkan Cookie
- Meningkatkan panjang antrean pendengar server HTTP
- Memperbaiki perintah Is Element Displayed di shadow DOM v0
- Menambahkan peringatan tentang perubahan perilaku perintah Hapus Elemen dalam file log
- Memperbaiki perintah Execute Script untuk mengonversi document.all dengan benar ke dalam format JSON
- Peningkatan penanganan referensi elemen yang buruk
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 2.46
Mendukung Chrome v71-73
- Memperbaiki kode error yang ditampilkan dari perintah Execute Script dalam beberapa skenario
- Membuat server HTTP mempertahankan koneksi tetap aktif secara default
- Memperbaiki perintah Tutup Jendela untuk menangani perintah pengguna dengan benar
- Memperbaiki kode error yang ditampilkan saat mengirim kunci ke elemen yang dinonaktifkan
- Meningkatkan kepatuhan spesifikasi penanganan nilai waktu tunggu
- Meningkatkan kepatuhan spesifikasi perintah Tambahkan Cookie
- Peningkatan kepatuhan spesifikasi perintah Beralih ke Frame
- Meningkatkan panjang antrean pendengar server HTTP
- Memperbaiki perintah Is Element Displayed di shadow DOM v0
- Perintah Klik Ganda Elemen Tetap
- Menambahkan peringatan tentang perubahan perilaku perintah Hapus Elemen dalam file log
- Memperbaiki perintah Execute Script untuk mengonversi document.all dengan benar ke dalam format JSON
- Peningkatan penanganan referensi elemen yang buruk
Untuk mengetahui detail selengkapnya, lihat catatan rilis.
ChromeDriver 2.45
Mendukung Chrome v70-72
- Fixed New Session tidak sesuai dengan spesifikasi
- Memperbaiki ChromeDriver tidak boleh meluncurkan Chrome jika versi Chrome dan ChromeDriver tidak kompatibel
- Memperbaiki perintah Temukan Elemen yang menampilkan kode error yang salah saat menggunakan lokator yang tidak valid
- Memperbaiki Beberapa kode status ChromeDriver salah
- Memperbaiki error Kompilasi di JS dalam WebViewImpl::DispatchTouchEventsForMouseEvents
- Perintah ukuran Jendela Tetap harus menangani perintah pengguna
- Memperbaiki ChromeDriver tidak memulai Chrome dengan benar dengan opsi Chrome "user-data-dir="
- Perintah Status Tetap tidak sesuai dengan spesifikasi
- Memperbaiki Menambahkan dukungan untuk strictFileInteractability
ChromeDriver 2.44
Mendukung Chrome v69-71
- Memperbaiki WindowMaximize di Mac
- Memperbaiki 'error pembukaan dialog' yang salah untuk panggilan handle jendela
- Fixed Element Send Keys harus mendapatkan properti "text" dalam mode W3C
- Kasus khusus XML tetap Is Element Enabled tidak ditangani sesuai spesifikasi
- Memperbaiki kasus khusus XML dari Get Element CSS Value yang tidak ditangani sesuai spesifikasi
- Memperbaiki Set Window Rect yang perlu memeriksa input yang tidak valid
- Memperbaiki Dukungan untuk mode unhandledPromptBehavior baru
ChromeDriver 2.43
Mendukung Chrome v69-71
Perubahan meliputi:
- Memperbaiki Parsing konfigurasi proxy tidak sesuai standar
- Memperbaiki perintah Luncurkan aplikasi yang tidak stabil
- Memperbaiki Screenshot elemen di dalam iFrame yang diambil dengan tidak benar
- Menambahkan dukungan ChromeDriver untuk mengubah ukuran jendela melalui koneksi jarak jauh
- Memperbaiki Kode error tidak ditangani di elemen Hapus
- Memperbaiki Tidak menunggu hingga elemen terlihat
- Properti elemen Get tetap tidak diterapkan
- Fixed Switch to Frame tidak sesuai dengan spesifikasi
- Memperbaiki masalah Execute Async Script tidak menampilkan kode error yang sesuai dengan spesifikasi
- Memperbaiki masalah Execute Script tidak menampilkan kode error yang sesuai dengan spesifikasi
- Memperbaiki Kode error di ExecuteGet tidak sesuai dengan spesifikasi
- Memperbaiki masalah Teks Pemberitahuan Kirim tidak menampilkan kode error yang sesuai dengan spesifikasi
- Memperbaiki clear() pada input type="date" yang berpura-pura elemen tidak dapat diedit pengguna
- Chromedriver tetap mendapatkan handle jendela untuk tab yang dibuka secara manual
- Memperbaiki Izinkan penambahan atau mulai file log baru untuk chromedriver
- Memperbaiki Sesi Baru tidak memanggil mode w3c jika flag ada di firstMatch
ChromeDriver 2.42
Mendukung Chrome v68-70
Perubahan meliputi:
- Memperbaiki ClickElement dalam Emulasi seluler
- IP yang diizinkan tetap dengan IPv4
- Memperbaiki ChromeDriver yang dimulai dengan tanda whitelisted-ips di Mac OS
- Memperbaiki SetTimeout agar menerima format pra-W3C dan W3C
- Memperbaiki screenshot elemen pengambilan
- ChromeDriver tetap juga mencari biner Chrome di PATH sistem
- Memperbaiki Maksimalkan jendela dan Layar Penuh
- Menerapkan fitur pemutaran ulang log. ( belum berfungsi untuk Android dan Remote Browser )
- Memperbaiki beberapa kode error yang tidak sesuai dengan standar W3C
- Memperbaiki console.log dengan beberapa argumen yang tidak ditangani dengan benar
- Memperbaiki GetElementRect yang seharusnya mengizinkan ganda
- Emulasi sentuhan tetap
ChromeDriver 2.41
Mendukung Chrome v67-69
Perubahan meliputi:
- Memperbaiki masalah saat ChromeDriver berjalan dengan opsi "whitelisted-ips"
- Port Proses Debug Jarak Jauh ditampilkan dalam kemampuan
- Menerapkan pengambilan ukuran jendela di Android
- Pesan error peluncuran Chrome Desktop ditingkatkan
- ChromeDriver gagal dengan cepat jika tidak dapat memulai biner Chrome
- Nilai yang ditampilkan Close Window sesuai dengan spesifikasi