גרסאות קודמות של Chrome
בגרסאות קודמות של Chrome, אלה הגרסאות של ChromeDriver שתומכות בהן.
מידע נוסף על בחירת הגרסה הנכונה של ChromeDriver זמין בדף בחירת גרסה.
ChromeDriver 148
תיקוני באגים
- גישה ל-DOM: תוקנה קריסה שהתרחשה כשסימולצו לחיצות על לחצנים בתוך iframe שהיה בעצמו מוטמע בתוך shadow root סגור. ה-JavaScript ששימש בעבר למציאת מזהה רכיב המסגרת של הבעלים לא הצליח לחדור לשורשי צל סגורים. ההטמעה החדשה משתמשת ישירות בפורמט
f.X.d.Y.e.Zכדי לפתור את המסגרת (crrev.com/c/7594919, Bug: 469831357). - אבטחה: חיזקנו את ניקוי הארגומנטים ב-Chrome כדי למנוע פגיעות פוטנציאלית שקשורה להחדרת ארגומנטים מיקומיים (crrev.com/c/7695604, באג: 494464734).
- בדיקות: הגדלנו את
kImplicitWaitהזמן הקצוב לתפוגה של בדיקותFindElement(s)WhileNavigatingב-commands_unittestכשמריצים אותן ב-AddressSanitizer (ASAN). זמן קצוב לתפוגה שמוגדר כברירת מחדל (3 שניות) לא הספיק ללולאת הניסיון החוזר כדי לצרוך את כל השגיאות המדומות ב-ASAN, ולכן נוצרה תנודתיות (crrev.com/c/7657276).
שינויים פנימיים ושינויים במבנה הקוד
- תקני C++: הוסרו הצהרות include מיותרות של
base/functional/callback_forward.hב-//chromeקבצים.cc, ונאכף השימוש ב-callback.hכשמשתמשים בפועל בפונקציות callback (crrev.com/c/7200285, באג: 40318405). העברנו אתlogging::LoggingSettingsמ-base/logging.hלכותרת משלוbase/logging/logging_settings.hכדי לשפר את יעילות ההידור (crrev.com/c/7173024, חזרה לגרסה הקודמת crrev.com/c/7160150 אחרי ביטול השינוי crrev.com/c/7170750). טופלו שגיאות שונות של IWYU שקשורות ל-base/logging.h(crrev.com/c/7730403, Bug: 499476145). - תקני C++: החלפנו בדיקות מיותרות של מיפוי
count(key)שבוצעו אחרי חיפושים בגישות יעילות יותר של איטרטורfind(key)(crrev.com/c/7705392, crrev.com/c/7693277, Bug: 452950815). הוזרקThreadDelegateדרך הבונהThreadכדי לשפר את האנקפסולציה, והוספה אפשרותRestartableל-Threadכדי להתאים למקרים שבהם צריך להפעיל מחדש את השרשורים (crrev.com/c/7696887, Bug: 40881604). - בטיחות הזיכרון: בוצעה המרה של פקודות מאקרו
#pragma allow_unsafe_buffersברמת הקובץ לפקודות מאקרוUNSAFE_TODO()גרנולריות ב-chrome/(crrev.com/c/7132241, באג: 409340989). בוצע קיצור שלIOBuffer->span().first()ל-IOBuffer->first()(crrev.com/c/7159119). - תלויות: בוצע עדכון של התלות ב-
crossbench, שכולל תיקונים לגילוי קבצים בינאריים של ChromeDriver שנבנו באופן מקומי ב-macOS וב-Android (crrev.com/c/7673978). - בדיקות: הפעלנו מחדש את סכימת
moduleב-chromedriver_py_testsאחרי שביצענו תיקונים בתשתית הבנייה והבדיקה הבסיסית (crrev.com/c/7707960).
ChromeDriver 147
תיקוני באגים
- בדיקה: נוספה בדיקת רגרסיה הרמטית כדי לוודא ש-
ElementClickמטפל בקליקים על iframe ממקורות שונים עם רכיבי שכבת-על בצורה נכונה, במיוחד בתרחישים של בידוד של אתר. כך מוודאים שהקליקים לא מנותבים בטעות לתוכן המוטמע במקום לשכבת-העל הגלויה (crrev.com/c/7261984, באג: 42321834, באג: 42322220).
שינויים פנימיים ושינויים במבנה הקוד
- תקני C++: שונה השם של מצבי הפענוח ושל הפונקציות של כתובות URL כדי להתאים למדריך הסגנון של Google C++. השינויים הם מ-
DecodeURLModeל-DecodeUrlModeומ-DecodeURLEscapeSequences()ל-DecodeUrlEscapeSequences()(crrev.com/c/7593238). הוספנו אתurl::UrlEscapeDecoderכדי לפשט את השימוש בפענוח כתובות URL בכל בסיס הקוד (crrev.com/c/7610180). הוסרו הצהרות מיותרות מסוגbuild/branding_buildflags.hinclude מקבצים מסוג//chrome(crrev.com/c/7595125, Bug: 40318405). הוסרה הלוגיקה שלBUILDFLAG(IS_FUCHSIA)מ-//chrome, למעט ב-ChromeDriver (crrev.com/c/5485913, Bug: 41481724). - בטיחות הזיכרון (spanification): תוקנו סמני
UNSAFE_TODOבכלי השירות של ChromeDriver, והם הועברו להטמעות בטוחות שמבוססות על span (crrev.com/c/7562602, Bug: 435317390).
ChromeDriver 146
תיקוני באגים
- יציבות: תוקנה קריסה של ChromeDriver שיכולה להתרחש במהלך עיבוד פקודה אם החלון נסגר בו-זמנית (למשל, בזמן ההמתנה לסיום הניווט). התיקון מקבל נעילה באובייקט
WebViewכדי למנוע את הסרתו לפני הזמן (crrev.com/c/7257074, באג: 468228355). - אבטחה: נוספה בדיקה של כותרת
Originלחיבורי WebSocket נכנסים לשרת ה-HTTP של ChromeDriver, כדי למנוע חטיפה פוטנציאלית של בקשות ממקורות שונים (crrev.com/c/7538400, באג: 478783560). - בדיקות: הועבר
testWebviewDetactedDuringClickלמסנן של בדיקות לא יציבות, והוא ידלג על הבדיקה בכל ההרצות ולא רק במצב ללא ראש (crrev.com/c/7545378, באג: 481485821).
שינויים פנימיים ושינויים במבנה הקוד
- תקני C++: שמות הפונקציות
base::DictValueו-base::ListValueשונו לשמות המקבילים המודרניים שלהן (base::Value::Dictו-base::Value::List) ב-//chrome(crrev.com/c/7515855, crrev.com/c/7514475, Bug: 478100525). החלפנו את השימוש ב-base::Contains()ב-std::ranges::contains()(crrev.com/c/7461026, Bug: 470391351). הועברוstd::setו-std::unordered_setאלbase::fixed_flat_setבמקרים המתאימים (crrev.com/c/7521991, Bug: 473916362). הוצאו קריאות שלbase::JSONReader::Readשלא צוינו בהן אפשרויות ניתוח (crrev.com/c/6990988, crrev.com/c/6980533, Bug: 446188265). החלפנו קריאות שונות שלbase::JSONWriter::Write()ב-base::WriteJson()(crrev.com/c/6969134, crrev.com/c/6929101, Bug: 443929217). ניקוי הזמנה#include(crrev.com/c/7366868). הפניות לבאגים בהערות הועברו לשימוש במזהי Buganizer במקום במזהי Monorail (crrev.com/c/7528268, Bug: 321899722). לשם הבהרה, שונה השם של דגלי ה-buildIS_OZONE_*ל-SUPPORTS_OZONE_*(crrev.com/c/7535923). - בטיחות הזיכרון (spanification): שימוש לא בטוח במצביעים הוחלף ב-
base::spanב-base/strings/utf_string_conversion_utils.cc(crrev.com/c/7496410, Bug: 439964610, Bug: 40284755). הוספנו עוד שימושים ב-Spanified בבדיקות שלbase::File(crrev.com/c/7489592, Bug: 435317390).//chromeהוחלףmemsetבאתחול מצטבר ב-//chrome(crrev.com/c/6875520, Bug: 435317390). המרת שאר#pragma allow_unsafe_buffersלסמניUNSAFE_TODO(crrev.com/c/7132241, באג: 409340989). - DSE Prewarm: הפעלנו את התכונה
DSEPrewarmב-fieldtrial_testing_config.jsonל-macOS ול-Windows, אחרי שטיפלנו בבעיה של חוסר יציבות בבדיקות שקשורות ל-ChromeDriver (crrev.com/c/7489009, relanding crrev.com/c/7002185 אחרי ביטול crrev.com/c/7452344). (הערה: השינוי הזה בוטל שוב לאחר מכן בגלל זמני ריצה ארוכים יותר של בדיקות ב-Windows (crrev.com/c/7517985, באג: 478888140)). - אבחון: נוסף מעקב אחרי מיקום המתקשר לאירועי מעקב של
WaitableEventו-ConditionVariableכדי לשפר את יכולת ניפוי הבאגים (crrev.com/c/7487755, באג: 476408124).
ChromeDriver 145
תכונות חדשות
- בדיקות: עודכן
run_py_tests.pyframework הבדיקות כך שיקבל בדיקות מחרוזות דטרמיניסטיות באורכים שונים (לדוגמה, 53, 101 ו-501 תווים) שמטרגטות רכיבים שלinput,textareaו-contenteditable. הבדיקה הזו מספקת כיסוי רגרסיה כדי לוודא שלא מושמטים תווים במהלך פעולות ארוכות שלsend_keys(crrev.com/c/7221410, Bug: 428116078). - בדיקה: נוספה בדיקה ספציפית לרכיב HTML
<selectlist>(crrev.com/c/7420729, באג: 342889200).
תיקוני באגים
- צילומי מסך: ביטלנו את שינוי הגודל של צילומי מסך של רכיבים, כי במפרט של WebDriver לא נקבע שינוי גודל והוא לא היה עקבי עם פונקציות אחרות של צילומי מסך (crrev.com/c/7409603, באג: 42323022).
- בדיקות: תוקנו כשלים ב-
testClientHintsDeviceNameIPhoneXוב-testClientHintsDeviceNameIPadעל ידי עדכון הציפיות של בדיקות ChromeDriver כך שיתאימו לערכים הנכונים האחרונים (לשדות platform, platformVersion, model ו-mobile) שהוצגו ב-DevTools Frontend (crrev.com/c/7408699, באג: 474179501).
שינויים פנימיים ושינויים במבנה הקוד
- תקני C++: בוצעה העברה של שימושים שונים ב-
base::Contains()אלstd::ranges::contains()ב-//chrome(crrev.com/c/7411011, באג: 470391351), כולל תיקונים של עיצובים נדרשים (crrev.com/c/7247217). בוצע רפקטורינג של פרמטרים מסוג מחרוזת ל-std::string_viewכדי להימנע מהקצאות מיותרות של מחרוזות כשמשתמשים ב-substr()(crrev.com/c/7350716). הוסרו פריטי<map>includes מיותרים מכותרות//chrome(crrev.com/c/7225838, Bug: 40318405). תוקן הסדר של הכללות בקבצים מסוימים (crrev.com/c/7366868). החלפנו את קריאות החזרה מדור קודםBodyAsStringCallbackDeprecatedבשימושים ב-SimpleURLLoaderב-BodyAsStringCallbackשמשתמש ב-std::optionalבמקום ב-std::unique_ptr(crrev.com/c/7210000, Bug: 40258809). - בדיקה: הוחזרה ההגדרה של ניסוי השדה
InfobarPrioritization, כולל תיקונים למניעת קריסות בבדיקות של דפדפן ChromeDriver כשמטפלים בסרגלי מידע בהמתנה שלא נוספו להיררכיית התצוגה (crrev.com/c/7223590, באג: 447176374). החזרנו את הסינון לפי מדינה ולוקאל לתכונה Glic, אחרי שביטלנו אותו בעבר בגלל כשלים בבדיקות שלא קשורים (crrev.com/c/7245749, החזרה crrev.com/c/7148759 אחרי ביטול crrev.com/c/7233767, באג: 454431875).
ChromeDriver 144
תכונות חדשות
- הרשאות: עודכנה הפקודה
SetPermissionבהתאם למפרט העדכני של W3C, באמצעות כתובת ה-URL של המסגרת הנוכחית (מקור מוטמע) בנוסף למקור מהרמה העליונה. כך מוגדרות הרשאות כמוstorage-accessשמתבססות על ההקשר המוטמע (crrev.com/c/7106801, relanding crrev.com/c/7093216 אחרי revert crrev.com/c/7104484, Bug: 384959114). - בדיקה: נוסף
testMetadata(כולל שם הבדיקה) למטען הייעודי (payload) של העלאת הבדיקה ב-ChromeDriver כדי לתמוך בבודק האמינות (flakiness) כשמשתמשים במזהי בדיקה מובנים (crrev.com/c/7124354, באג: 456432041).
תיקוני באגים
- מחזור החיים של היעד: תוקן באג שגרם ל-ChromeDriver להיתקע אם מסגרת אב ניתקה בזמן שמסגרת צאצא המתינה לתגובה לפקודה. ChromeDriver מנתק עכשיו באופן מפורש את המסגרות הצאצאות באופן טרנזיטיבי כשהמסגרת הראשית
WebViewImplנעולה ומסומנת כמנותקת במהלך עיבוד הפקודה (crrev.com/c/7080912, Bug: 438436830). - ניהול חלונות: השבתנו את ההעברה לרקע של חלונות שמוסתרים, במיוחד בסשנים של ChromeDriver. העדכון הזה פותר בעיות ב-WebDriver BiDi שבהן בדיקות עלולות להיכשל אם הדפדפן קבע באופן שגוי שחלון מסוים הוסתר והגביל את הפעילות שלו (crrev.com/c/7128058, באג: 458027819).
שינויים פנימיים ושינויים במבנה הקוד
- תקני C++: הוסרו הצהרות include מיותרות של
base/functional/callback_forward.hב-//chromeקובצי.cc, ונאכף השימוש ב-callback.hכשנעשה שימוש בפונקציות callback (crrev.com/c/7200285, Bug: 40318405). העברנו אתlogging::LoggingSettingsמ-base/logging.hלכותרת משלוbase/logging/logging_settings.hכדי לשפר את יעילות ההידור (crrev.com/c/7173024, חזרה לגרסה הקודמת crrev.com/c/7160150 אחרי ביטול השינוי crrev.com/c/7170750). העברנו שימושים ב-base::HexEncodeל-base::HexEncodeLowerהחדש יותר (crrev.com/c/7103100, באג: 456472080). - בטיחות הזיכרון (spanification): בוצעה העברה של
WriteToPipeו-WriteToPipeNoBestEffortבבדיקות היחידהPipeBuilderו-PipeConnectionכדי לאפשר קבלתbase::span, וטופלה בעיה של שימוש לא בטוח במאגר (crrev.com/c/7090293, באג: 455758227). המרנו פקודות מאקרו גלובליות#pragma allow_unsafe_buffersלפקודות מאקרו מפורטותUNSAFE_TODO()ב-chrome/(crrev.com/c/7132241, באג: 409340989). בוצע קיצור שלIOBuffer->span().first()ל-IOBuffer->first()(crrev.com/c/7159119).
ChromeDriver 143
תיקוני באגים
- יציבות: תוקנה קריסה מסוג Use-After-Free (UAF) ב-
OverrideNetworkConditions. הסמן הגולמי שנשמר להפעלה עוקבת שוחרר בין קריאות עוקבות; עכשיו הוא מנוהל בצורה תקינה (crrev.com/c/7047422, Bug: 42323833). - בדיקות: תוקנו בדיקות מגע לא יציבות ב-Android ChromeDriver באמצעות API של
WaitForConditionלסנכרון מהימן יותר (crrev.com/c/6978928, Bug: 42321861). - DSE Prewarm: השבתנו את התכונה
Prewarmב-ChromeDriver כברירת מחדל באמצעות המתג--disable-features=Prewarm, כדי למנוע מדפים שהוכנו מראש להפריע להרצת הבדיקות ולגילוי היעד (crrev.com/c/7007072, Bug: 431928370).
שינויים פנימיים ושינויים במבנה הקוד
- תקני C++: הוחלף
ref_counted.hב-scoped_refptr.hבכותרות//chromeשבהן נעשה שימוש רק במצביע החכם, כדי לשפר את יעילות ההידור (crrev.com/c/7080753, באג: 40245294). הועברוGURLפונקציות גישה לגרסאותGet*שלהן (למשל,GetSpec()במקוםspec()) כדי לציין בבירור את הקצאת המחרוזת, וכך למנוע פגיעה בביצועים בטעות (crrev.com/c/7002119, באג: 448174617). - בדיקות: הוסרו דפוסי בדיקה מיותרים ב-
devtools_client_impl_unittest.ccבאמצעותADD_FAILURE()(crrev.com/c/6998270). נוספה בדיקת רגרסיה ל-crbug.com/413382905(crrev.com/c/6879417).
ChromeDriver 142
תכונות חדשות
- אבחון: נוסף הסטטוס
TERMINATION_STATUS_EVICTED_FOR_MEMORYכדי להבדיל בין תהליכים שהופסקו באופן יזום על ידי הדפדפן (כדי לחסוך בזיכרון) לבין תהליכים שקרסו בגלל שגיאות חוסר זיכרון (OOM). בשלב הזה, ההתנהגות זהה לקריסת OOM (מוצג כרטיסייה עצובה), אבל היא מכינה את הקרקע לטיפול נפרד בעתיד (crrev.com/c/6991933, Bug: 394092280). - אבחון: נוספה היכולת
goog:processIDלתגובת WebDriver, שמחזירה את מזהה התהליך הראשי של דפדפן המחשב. השינוי הזה מאפשר התאמה של ChromeDriver ל-moz:processIDשל Firefox, ועוזר בבדיקת ממשקי API של נגישות לפלטפורמה (crrev.com/c/5825307, Bug: 438884256). - בדיקות: נוספה תמיכה בהעלאות של מזהי בדיקות מובְנים אל ResultSink לבדיקות השילוב של Python ב-ChromeDriver (crrev.com/c/6916708, Bug: 418015486).
תיקוני באגים
- אבחון: שונה אופן הפעולה של ChromeDriver ביציאה רגילה מ-Chrome, כך שלא תוצג יותר הודעת שגיאה כללית ומבלבלת שקשורה לשימוש ב-
user-data-dir. עכשיו מצוין במפורש שהמופע הסתיים, והמשתמש מופנה ליומני הרישום המפורטים כדי לראות את השגיאה הספציפית שמוחזרת על ידי Chrome (crrev.com/c/6977507, באג: 42323434). - הפעלה: מבנה ההפעלה של ChromeDriver עודכן כדי לשמור על תאימות לשינויים ב-Selenium WebDriver v4.16.0 (crrev.com/c/6630600).
- Android: תוקן באנדרואיד בגרסאות מדור קודם (ישנות מגרסה Android 11) שבהן הדגל
--user curלא נתמך על ידי מנהל החבילות (crrev.com/c/6785949, באג: 433885051).CheckAppInstalled - בדיקה: תוקן באג שבו
IgnoreDuplicateNavsביטל באופן שגוי את ההגדרות של מתגי היכולות שמוגדרים כברירת מחדל ב-ChromeDriver. התכונה הושבתה בסשנים של ChromeDriver, והלוגיקה שלSwitches::SetFromSwitchesתוקנה (crrev.com/c/6949166, Bug: 445332809).
שינויים פנימיים ושינויים במבנה הקוד
- תקני C++: החלפנו כמה קריאות
base::JSONWriter::Write()שהוצאו משימוש ב-base::WriteJson(), תוך שמירה על ההתנהגות של החזרת מחרוזת ריקה במקרה של כשל, כשערך ההחזרה לא נבדק (crrev.com/c/6969134, crrev.com/c/6929101, Bug: 443929217). נדרש אישור מפורש להצטרפות לאפשרויות ניתוח JSON שלא עומדות בדרישות (למשל, אפשרות להוספת הערות) ב-base::JSONReader::Readוב-base::JSONReader::ReadAndReturnValueWithError(crrev.com/c/6990988, crrev.com/c/6980533, Bug: 446188265). הוסרו פראגמות#pragma allow_unsafe_buffersברמת הקובץ בעקבות מאמצים ידניים להוספת תגי span (crrev.com/c/6778035, Bug: 409340989). בוצע ניקוי של השימוש במאקרוLazyInstanceעם דליפת נתונים (crrev.com/c/6781377, באג: 432815283). נוספו כותרות חסרות ל-http_response_headers.hדרך IWYU (crrev.com/c/6894196, באג: 40216326). - בטיחות הזיכרון (spanification): בוצע spanification אוטומטי של מספר רב של מצביעים בספרייה
chrome/בגרסאות ל-Linux, והוספוCHECKs לא קריטיים במקומות שבהם פרמטרים של גודל נחשבו למיותרים (crrev.com/c/6734592, באג: 431824299). - בדיקה: השבתה זמנית של
testDoesntCrashOnClosingBrowserFromAsyncScriptב-macOS (crrev.com/c/6995358, באג: 446461733). תוקנו שגיאות הקלדה בשמות של שיטות בדיקה שקשורות ל'אישורים' (crrev.com/c/6950683). קבצי GN עם עיצוב אוטומטי (//chrome/testcrrev.com/c/6789277, באג: 40760278). - FedCM: נוספה פונקציה
ShouldShowAccountsPassiveDialogל-IdentityDialogControllerכדי לבדוק באופן סינכרוני אם צריך להציג תיבת דו-שיח של חשבונות. כך תוקנה קריסה שקשורה לבדיקות אסינכרוניות ולמכשור של כלי הפיתוח (crrev.com/c/6780413, באג: 425801332). - חימום מראש של DSE: נוסף
Page.setPrewarmingAllowedלפרוטוקול DevTools כפתרון לטווח קצר להפעלה או להשבתה ידנית של חימום מראש, ותוקנו בדיקות קשורות כדי לוודא שהן פועלות עם הדף הראשי בצורה תקינה (crrev.com/c/6847287, באג: 431928370). הפעלנו את התכונהDSEPrewarmב-fieldtrial_testing_config.jsonל-macOS ול-Windows אחרי שפתרנו בעיות של חוסר יציבות (crrev.com/c/6951835, Bug: 431928370, Bug: 435621391). (הערה: הפקודה CDP והפעלת הניסוי בשטח בוטלו כי הם גרמו לשינויים ששברו את התאימות למשתמשי WebDriver, חשפו יעדים לא צפויים וגרמו לבעיות אחרות בהמשך (crrev.com/c/6966133, crrev.com/c/6966161, Bug: 445883308)). - ניקוי: הוסרו הפניות שנותרו לפרויקט
WebLayerשלא נתמך בקוד Android (crrev.com/c/6792520, באג: 40272607).
ChromeDriver 141
תכונות חדשות
- בדיקה: נוספה תמיכה בדגל
--enable-per-test-tracingל-run_wpt_tests.py, בהתאם להתנהגות שלrun_web_tests.py. הפעולה הזו מאחזרת אירועי מעקב בפורמט JSON ממאגר פנימי של ChromeDriver ושומרת אותם בספריית תוצאות הבדיקה (crrev.com/c/6820247, Bug: 434017035).
תיקוני באגים
- אבחון: נמנעה הדפסה של דוח קריסות פנימי של ChromeDriver כשמוחזרת שגיאת
kTabCrashed. כך לא נבלבל את המשתמשים, ועדיין נוכל לוודא שדוח קריסת מנוע הרינדור יישאר ביומנים (crrev.com/c/6841669, באג: 395131239).
שינויים פנימיים ושינויים במבנה הקוד
- תקני C++: החלפנו קריאות פוטנציאליות לא בטוחות ל-
memsetבאתחול מצטבר של C++ רגיל (instance = {}) ב-chrome/כדי למנוע עקיפה של בנאים ולהבטיח בטיחות זיכרון (crrev.com/c/6875520, באג: 435317390). נוספו הנחיות חסרות של#includeל-//base/time/time.hדרך IWYU (crrev.com/c/6832689, באג: 40216326). שיכתוב של פרגמות מאולצות של מאגר לא בטוח (crrev.com/c/6828538). - בדיקות: נוספה בדיקת רגרסיה ל-
crbug.com/413382905(crrev.com/c/6879417). - מעברים בין תצוגות: הוחזר תיקון של מעברים בין תצוגות, שמעדכן את העבודה שבוצעה לפני שההבטחה הסתיימה, אחרי שהוכח שביטול ספקולטיבי קודם שקשור לכשלים בבדיקה של ChromeDriver היה שגוי (crrev.com/c/6846765, החזרה של crrev.com/c/6806850 אחרי ביטול crrev.com/c/6808537).
ChromeDriver 140
תיקוני באגים
- בחירת יעד: תוקנה בעיה שבה חלון כלי הפיתוח יכול היה להתחרות עם הדף הראשי על הבחירה כחלון הראשי כש-Chrome הופעל עם
--auto-open-devtools-for-tabs. ChromeDriver לא כולל עכשיו באופן מפורש יעדים עם הקידומתdevtools://במהלך קביעת החלון הראשי (crrev.com/c/6769505, Bug: 427908560). - בחירת יעד: נמנעה טעות בחישוב של ChromeDriver של נקודת המרכז של רכיבים בתצוגה, על ידי התעלמות מכל חיתוך
overflow:hiddenשהוטל על ידי רכיבי אב. השינוי הזה מיישר קו עם החישוב במפרט של WebDriver ועם תרחישים אחרים שלPerformActions(crrev.com/c/6735230, Bug: 42322257). - Android: תוקנה הפונקציה
CheckAppInstalledבגרסאות ישנות יותר של Android (לפני Android 11) שבהן הדגל--user curשל מנהל החבילות לא נתמך (crrev.com/c/6785949, באג: 433885051). - בדיקה: תוקנה בעיה של חוסר יציבות בחבילת הבדיקה
chromedriver_py_testsשנגרמה בגלל התכונהDSEPrewarm. ChromeDriver משבית עכשיו את טריגר החימום המוקדם בזמן שלקוח CDP מצורף כדי למנוע ספירות יעד לא צפויות במהלך בדיקות (crrev.com/c/6764274, Bug: 423465927, Bug: 431928370). - בדיקה: ביטלנו את ההוספה של הפונקציה
ShouldShowAccountsPassiveDialogאלIdentityDialogController(חלק מ-FedCM), שגרמה לרגרסיה (crrev.com/c/6780413, Bug: 425801332).
שינויים פנימיים ושינויים במבנה הקוד
- תקני C++: נוספו
std::vector#includeחסרים באמצעות Include What You Use (IWYU) (crrev.com/c/6652818, באג: 40216326). הוסרו הכללות מיותרות שלgurl.h(crrev.com/c/6578272) ושל<queue>(crrev.com/c/6570349, Bug: 40318405) בכותרות//chrome. הבעיהIWYUנפתרה בגרסהNOTIMPLEMENTED()של//chrome(crrev.com/c/6655452, באג: 41493641). - בטיחות הזיכרון (spanification): הפעלנו את הכלי האוטומטי spanification של מצביעים בגרסאות של Linux, ועדכנו את הקוד לשימוש בטווחים שבהם הגדלים ידועים (crrev.com/c/6734592, באג: 431824299). הוסרו פקודות
#pragma allow_unsafe_bufferspragmas בכל הקובץ ב-chrome/לאחר סיום ההעברה (crrev.com/c/6778035, Bug: 409340989). הוסרו יעדיםchrome/testמהאזהרה-Wexit-time-destructorsכדי לאפשר הפעלה של האזהרה באופן גלובלי (crrev.com/c/6736532, באג: 40031409, באג: 430332953). בוצע ניקוי של שימושים ב-LazyInstanceעם דליפות ב-//chrome(crrev.com/c/6781377, Bug: 432815283). - ניקוי: הוסר הדגל
--debug-bidi-mapperשל CLI, כי המעבר להפעלת BiDi Mapper ביעד מוסתר הושלם והוא יציב (crrev.com/c/6672011, באג: 408992812). - ניקוי: הוסרו הפניות שנותרו לפרויקט
WebLayerשלא נתמך (crrev.com/c/6792520, באג: 40272607). בוצע עיצוב אוטומטי של קובצי GN כדי לקצר הפניות ליעדים (crrev.com/c/6789277, באג: 40760278).//chrome/test - בדיקה: נוספה בדיקת קבלה כדי לאמת את התיקון של הבעיה
PerformActionspointerMove(crrev.com/c/6648646, באג: 42322257). - בדיקה: הוספנו הערה לקטע של יצירת מנהל התקן מקביל בבדיקה
testBrowserWithUsedUserDataDir(ויצרנו באג למעקב), כי הוא גרם לכשלים ב-macOS שקשורים לנעילה בלעדית כשמשתמשים ב-chrome-headless-shell(crrev.com/c/6470455, Bug: 411407649, Bug: 380903149). - בדיקה: עודכן ה-wrapper
run_cwt_chromedriver.pyל-iOS כדי לתמוך בארגומנט--platform-type(crrev.com/c/6771517, באג: 427548014). - בעלים: הוסר
nvitkovמהקובץchrome/test/chromedriver/OWNERS(crrev.com/c/6771413).
ChromeDriver 139
תיקוני באגים
- מבנה האתחול: מבנה האתחול של ChromeDriver עודכן כדי לשמור על תאימות לעדכונים של Selenium WebDriver v4.16.0 (crrev.com/c/6630600).
- ניתוח ארגומנטים: בוצע איחוד של כמה ארגומנטים מסוג
--js-flags(בדומה לטיפול ב---enable-features) במקום לקחת רק את האחרון שסופק. השינוי הזה משפר את נוחות השימוש כשמעבירים דגלי V8 מורכבים (crrev.com/c/6612042, Bug: 421941798).
שינויים פנימיים ושינויים במבנה הקוד
- בטיחות הזיכרון (spanification): שימוש ב-
base::MakeStringPiece()שהוצא משימוש הוחלף ב-std::string_viewב-//chrome/test(crrev.com/c/6628089, Bug: 422940464). הוספנוbase/strings/string_view_util.hבמקומות שבהם נעשה שימוש ב-base::as_string_view(), כדי להתכונן למיגרציות עתידיות של מרחבי שמות (crrev.com/c/6625024, Bug: 423048781). - תקני C++: שיפור התאימות ל-Include What You Use (IWYU) ב-
//chromeעל ידי הכללה מפורשת של<vector>(crrev.com/c/6652818), base/notimplemented.h(והסרה שלbase/notreached.hבמקומות שבהם הוא לא בשימוש) (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), והסרה של הכללות מיותרות שלbase/debug/stack_trace.h(crrev.com/c/6622838). - בדיקה: העברנו את האפשרות
--driver-loggingאלrun_wpt_tests.py, כדי לאפשר לסקריפט להעביר מידע על ChromeDriver ועל הדפדפןstderrגם ברמות דרגת מלל נמוכות יותר (crrev.com/c/6608138, באג: 421262910). - בדיקות: הפעלנו מחדש בדיקות שילוב של ChromeDriver שהושבתו בעבר: בדיקות צילומי מסך (
testTakeElementScreenshot*) (crrev.com/c/6598797, באג: 42321815), בדיקות של סגירת חלון באמצעות Javascript (testCloseWindowUsingJavascript*) (crrev.com/c/6598978, באג: 42321150) ובדיקות של גודל חלוןheadless-shell(crrev.com/c/6621336, באג: 42323661). - בדיקות: תוקן באפשרות
run_wpt_tests.py --stableזיהוי נכון של הגרסה היציבה הנוכחית של Clank (Android) ושימוש בה על ידי ניתוח ה-APK. בנוסף, הסקריפט עודכן כך שיוריד את הגרסה המתאימה של ChromeDriver מ-Chrome for Testing (CfT) לספרייה זמנית, במקום להוסיף אותה לספריית התשלומים (crrev.com/c/6635694, באג: 402548382). - יצירת תשתית: הוסרה תלות מיותרת ב-build ב-
write_build_config.pyעל ידי ביטול האפשרות של יעדיandroid_resources()לכלול מניפסטים, כי מיזוג המניפסטים ומתן שמות לחבילות R.java מטופלים עכשיו על ידי מאפיינים ייעודיים (crrev.com/c/6625266, באג: 413331591). - FedCM: תוקן דגל תכונה בהגדרות Finch שקשור ל-FedCM (crrev.com/c/6614137, Bug: 421959289).
ChromeDriver 138
תכונות חדשות
- הצגת ניהול התכונות: התנהגות מעודכנת של ChromeDriver לגבי פלחים של אזור התצוגה כדי להתאים להחלטה של קבוצת העבודה של CSS: עכשיו מוחזר באופן עקבי מערך עם פלח יחיד כשמשתמשים במכשיר מתקפל במצב שטוח, או בכל המכשירים שלא מתקפלים. ההתנהגות הזו תואמת להתנהגות של שאילתות מדיה ומצמצמת את הסיכונים של טכניקות לזיהוי ייחודי (crrev.com/c/6469455, באג: 414430842).
- העדפות ומצב מקומי (Android): נוספה תמיכה ביכולות
localStateו-prefsכשמריצים את ChromeDriver במכשירי Android. הפעולה הזו מתבססת על ADB ודורשת שימוש בדגלuser-data-dirמותאם אישית. בשלב הזה, המצב מאותחל באמצעות תבניות ברירת מחדל (crrev.com/c/6397155, Bug: 406427226).
תיקוני באגים
- יציבות: תוקן קראש של ChromeDriver שמתרחש ב-macOS כשמשתמש סוגר את תיבת הדו-שיח של חוויית ההפעלה הראשונה (FRE) באמצעות הלחצן 'המשך'. הקריסה נגרמה כתוצאה מביטול של מצב שגיאה
kTargetDetachedומניסיון לגשת ל-WebViewלא תקין (crrev.com/c/6538867, באג: 410599467). - בדיקות ביצועים: תוקן רכיב ההפעלה של בדיקות
crossbenchבבוטים של Windows pinpoint, שניסו באופן שגוי לאתר את קובץ ה-ChromeDriver הבינארי באמצעות נתיב../Release_x64שיצא משימוש כשנתיב--browser=release_x64הועבר. כתוצאה מכך, הבוטים חזרו להורדת קובץ בינארי ישן יותר במקום להשתמש בגרסה המקומית (crrev.com/c/6502134).
שינויים פנימיים ושינויים במבנה הקוד
- בטיחות הזיכרון (spanification): החלפנו מצביעים לא מסומנים ב-
WebSocket::OnReadDuringHandshakeוב-WebSocket::OnReadDuringOpenב-base::span, כדי לטפל באזהרותunsafe-buffer-usage(crrev.com/c/6557346, באג: 354307328). הוסרו הצהרות pragma מיותרות ב-chrome/test/chromedriverשלא היו נחוצות יותר אחרי העברות אחרות (crrev.com/c/6503154, Bug: 414858406).#pragma allow_unsafe_buffers - תקני C++: הוסרו הנחיות מיותרות
#include "url/gurl.h"ו-#include <queue>בכותרותchrome/, והוספו הצהרות קדימה במקומות המתאימים כדי לשפר את זמני ההידור (crrev.com/c/6578272, crrev.com/c/6570349, Bug: 40318405). - העברת API: בוצעה העברה של
RSAPrivateKeyאלcrypto::PrivateKeyושלSHA256HashStringאלcrypto::Sha256, ובוצע ניקוי של מקרה טיפול בשגיאות שיצא משימוש, כי ממשקי API חדשים ליצירת מפתחות הם חסיני תקלות (crrev.com/c/6490294, באג: 372283556). - בדיקות: נוסף מאפיין
OwnContributionEstimateלפקודות האוטומציה של Compute Pressure API (גם ב-CDP וגם בהטמעות של testdriver) (crrev.com/c/6373001, Bug: 402033762). - בדיקות: תוקנו בדיקות שילוב שמאמתות את
ClearDisplayFeaturesבבוטים של Continuous Integration (CFT) על ידי פישוט של הצהרות כדי לבדוק שהקטעים של אזור התצוגה מנוקים בחזרה לגודל ברירת המחדל של אזור התצוגה (crrev.com/c/6535067, באג: 417195296). - בדיקות: הגדלנו את הזמן הקצוב לתפוגה של בדיקות Protected Audience WebDriver כדי לטפל בבעיות של חוסר יציבות בבוטים איטיים של CI (crrev.com/c/6494277).
ChromeDriver 137
תכונות חדשות
- ניהול תכונות התצוגה: נוספו פקודות ChromeDriver כדי לבצע אמולציה של תכונות התצוגה ולנקות אותן, וכך ליישם את דרישות האוטומציה של ממשקי ה-API של פלחים באזור התצוגה (CSS ו-JS). האפשרות הזו מאפשרת למפתחים לבדוק באופן פרוגרמטי תרחישים של קיפול או ציר במכשירים עם מסך כפול או במכשירים מתקפלים (crrev.com/c/6368674, באג: 40137084).
- BiDi: עודכן ChromeDriver כך שיפעיל את BiDi Mapper ביעד מוסתר כברירת מחדל. כך נמנעת הפרעה מצד הדף של כלי המיפוי
data:,להרצת הבדיקה ולחשיפה שלה. כדי לנפות באגים בממפה, לקוחות יכולים להעביר את הדגל--debug-bidi-mapperכדי להפעיל אותו בכרטיסייה גלויה (crrev.com/c/6441064, חזרה ל-crrev.com/c/6433672 אחרי ביטול השינוי crrev.com/c/6439633, באג: 402339952).
תיקוני באגים
- BiDi: נמנעה סגירה שגויה של כל סשן הדפדפן על ידי ChromeDriver במהלך עיבוד פקודות BiDi (כמו
browsingContext.close) אם הוא איבד את המעקב אחר יעדים שנוצרו על ידי סשנים אחרים של CDP או BiDi. הוא מסנכרן עכשיו באופן מפורש כרטיסיות ברמה העליונה לפני שהוא מחליט לסיים את הדפדפן (crrev.com/c/6440293, Bug: 42323838). - BiDi: כדי להתאים למפרט של WebDriver BiDi, ChromeDriver מסיר את היכולת
goog:channelאם היא מועברת כמחרוזת ריקה, ומתייחס אליה באופן זהה לערוץ חסר (crrev.com/c/6438865, Bug: 409282307). - קלט: תוקנה בעיה שבה אירועי מגע ואירועי מצביע נכשלו או התנהגו בצורה לא תקינה. הבעיה תוקנה על ידי עדכון ChromeDriver לתמיכה בקואורדינטות חלקיות (נקודה צפה) של x ו-y בפקודות להזזת מצביע (crrev.com/c/6440834, באג: 409684333).
- בחירת יעד: נמנעה חדירה של מסמכי PDF ב-iframe מחוץ לתהליך (OOPIF) שנפתחו בתצוגות אורח (כשהתכונה
PdfOopifמושבתת) לרשימת היעדים ברמה העליונה. הלוגיקה של הסינון הורחבה כדי להחריג בצורה נכונה את יעדי הטירגוט האלה עם הקידומתchrome-extension://(crrev.com/c/6383500, Bug: 396611138).
שינויים פנימיים ושינויים במבנה הקוד
- תקני C++: החזרנו את השינוי לשימוש ב-
std::string_viewלשמות קבצים ב-LogMessageובאירועי מעקב, כדי לפתור את הבעיות בטיפול במחרוזות שמסתיימות בערך null שגרמו לביטולים קודמים (crrev.com/c/6430129, החזרה של crrev.com/c/6395097, החזרה של crrev.com/c/6387020 אחרי ביטול crrev.com/c/6383699). - תקני C++: בוצע עדכון של קריאות ל-
Environment::GetVarב-//chromeכדי להשתמש בממשק API מחזיר במקום בפרמטרים חיצוניים (crrev.com/c/6417343, Bug: 400758498).std::optional - תקני C++: בוצע רפקטורינג של כלי עזר לטיפול ב-Windows מתוך
win_util.hאל כותרת ייעודיתwindows_handle_util.hכדי למנוע בעיות של תלות מעגלית (crrev.com/c/6418805, באג: 406023316). - בדיקות: נוסף handler של דומיין ספציפי ל-Android
Browserוהוטמע ה-APIBrowser.getWindowForTargetכדי לתמוך בבדיקות של יצירת חלונות ב-Android (crrev.com/c/6427605, Bug: 404932444). - בדיקות: תוקנה בעיה של חוסר יציבות בבדיקות ב-macOS שנגרמה בגלל הרחבות שלוקח להן יותר מדי זמן לאתחל (crrev.com/c/6423229, Bug: 407804497).
- בדיקה: השבתנו באופן זמני יצירה מקבילה של
user-data-dirב-testBrowserWithUsedUserDataDirכשמריצים מולchrome-headless-shell, כי הייתה התנגשות עם נעילה בלעדית ב-macOS (crrev.com/c/6470455, Bug: 411407649, Bug: 380903149). - תוספים: עדכנו את הבדיקות של Chrome כדי שהן יעברו כשהניסוי
ExtensionManifestV2Unsupportedמופעל. זהו שלב בסיסי, אבל תקופת הניסיון עצמה מושבתת עד לעדכונים במאגרים אחרים (crrev.com/c/6415997, באג: 367395349). (הערה: ניסיון קודם להפעיל את תקופת הניסיון הזו באמצעות הגדרה בוטל crrev.com/c/6397497 ביטול crrev.com/c/6358257). - תלויות: בוצע עדכון ידני של התלות
catapultועדכון של קובציpydepsקשורים והפניותdevil_util(crrev.com/c/6480814, crrev.com/c/6466865, relanding crrev.com/c/6406098 אחרי החזרה crrev.com/c/6448910, Bug: 397459590).
ChromeDriver 136
תכונות חדשות
- מחזור החיים של הדפדפן: נוספה יכולת ספציפית ל-Chrome
quitGracefullyשמאלצת את ChromeDriver לנסות לעצור את הדפדפן בצורה מסודרת (באמצעותBrowser.closeאו SIGTERM) במקום ברירת המחדלSIGKILL. כך יש לכלי לניפוי באגים כמוrrזמן להעביר מידע מההקלטות שלהם לפני שהתהליך מסתיים (crrev.com/c/6322538, relanding crrev.com/c/6269180 אחרי חזרה קצרה crrev.com/c/6320536, Bug: 339644807). - בדיקה: העברנו את הארגומנט
run_wpt_tests.py --wrapperעל ידי יצירת סקריפט זמני של wrapper שמוסיף קידומת לבינארי של הדפדפן עם מאתר הבאגים (למשל,rr) והארגומנטים שלו. הפתרון הזה מאפשר לעקוף את הבעיה שמונעת מ-ChromeDriver להחליף את הקובץ הבינארי ישירות כשמעבדים אתargsכמתגים (crrev.com/c/6271108, Bug: 339644807). - בדיקה: הפעלנו את התרגום באמצעות העדפה ב-
TranslateEnabledTestכדי לתמוך בסביבת בדיקה שבה ChromeDriver מנהל את תהליך הדפדפן ועוקף את ההגבלה החדשה של--remote-debugging-portכש---user-data-dirמשתמע (crrev.com/c/6354089, באג: 327797500). - DevTools: נוספה תמיכה בתכונת כמה מופעים במקביל של DevTools כדי לפתוח כרטיסייה חדשה בחלון אחר ב-Android (crrev.com/c/6352169, באג: 401269942, באג: 382183406).
תיקוני באגים
- בחירת יעדים: תוקנה בעיה שבה מסגרות iframe של PDF מחוץ לתהליך (OOPIF) שנפתחו בתצוגות אורח לא סוננו מרשימת היעדים ברמה העליונה כשהתכונה
PdfOopifהושבתה. המסנן הורחב כך שיכלול את הקידומתchrome-extension, וכך הבאג נפתר והכיסוי כולל תוספים של Chrome MV3 שיוצרים כרטיסיות (crrev.com/c/6383500, באג: 396611138). - בחירת יעד: תוקנה רגרסיה שגרמה לפקודה
getWindowHandles()להיכשל עם סטטוסconnection refusedכשמטרגטים אפליקציות Chrome ארוזות (crrev.com/c/6317161, באג: 396622746).
שינויים פנימיים ושינויים במבנה הקוד
- תקני C++: החזרנו את השינוי שמשתמש ב-
std::string_viewלשמות קבצים ב-LogMessageובאירועי מעקב, כדי לשפר את התאימות למבני רישום ב-Rust שלא מבטיחים מחרוזות שמסתיימות בערך null (crrev.com/c/6387020, החזרה של crrev.com/c/5765705 אחרי ביטול crrev.com/c/6383699 וביטול נוסף crrev.com/c/6395097). - תקני C++: החלפנו קריאות מיותרות ל-
base::Value::Clone()כדי לשפר את הביצועים (crrev.com/c/6361818). הוסרו אזהרות נוספות-Wunsafe-buffers-in-libc-callsבקבצים ספציפיים ל-Windows כדי לנקות את פלט הבנייה (crrev.com/c/6369920, Bug: 390223051). - תוספים: בוטלה ההוספה של הרשומה
fieldtrial_testing_config.jsonלשלבExtensionManifestV2Unsupportedבגלל בעיה (crrev.com/c/6397497, ביטול crrev.com/c/6358257, באג: 367395349, באג: 406523920). - תיעוד: שיפרנו את תיעוד הבדיקות של ChromeDriver ל-Android (crrev.com/c/6354040).
ChromeDriver 135
תכונות חדשות
- BiDi: עודכן BiDi Mapper כדי לרשת הרשאות של ChromeDriver כשמציינים
--enable-unsafe-extension-debugging. השינוי הזה מאפשר ללקוחות WebDriver BiDi לבדוק ביעילות תוספים שנדרשות להם הרשאות שבדרך כלל יש ללקוח WebDriver (crrev.com/c/6288627, באג: 393500934).
תיקוני באגים
- בדיקה: הפעלנו מחדש ועדכנו את הציפיות לגבי כמה בדיקות WDSpec שסומנו בעבר כבדיקות שנכשלו. הפעולה הזו משחזרת את הכיסוי של התאמה למפרט לבדיקות שעוברות (crrev.com/c/6310420).
שינויים פנימיים ושינויים במבנה הקוד
- ניקוי: הוסרו כל העקבות של Lacros (כולל
IS_CHROMEOS_LACROSונתוני בדיקה קשורים) מ-chrome/test/כי Lacros יוצא משימוש, והסטנדרט הואIS_CHROMEOS(crrev.com/c/6284446, Bug: 354842935). - ניקוי: הוסרו כל העקבות של כלי השירות
md5sumאחרי שהוחלף ב-devil_util, ובוצע ניקוי של תלות בגרסאות קודמות (crrev.com/c/6309939, באג: 397452007). - תקני C++: הוסר מרחב השמות
chrome::מ-ResultCodeומ-IsNormalResultCode(), והועבר למרחב השמות הגלובלי. בנוסף, הוסרו ייבואים מיושנים של הפעלה ב-ChromeOS (crrev.com/c/6196899, Bug: 41050580). - בטיחות הזיכרון: פשטנו קריאה ל-
std::lower_boundב-ChromeDriver באמצעותstd::ranges::lower_bound(crrev.com/c/6223172, באג: 392116519). הוסתרו אזהרותunsafe_libc_callלגבי קבצים לא תואמים שזוהו בהתחלה, לקראת אכיפה עתידית (crrev.com/c/6187925, באג: 390223051). סימנו את ערך ההחזרה שלstd::to_arrayכ-constexprכדי לשפר את הבטיחות ואת ההערכה בזמן הקומפילציה (crrev.com/c/6298909).
ChromeDriver 134
תכונות חדשות
- Bounce Tracking Mitigations (DIPS): נוספה תמיכה ב-ChromeDriver ב-Bounce Tracking Mitigations, באמצעות הפקודה
RunBounceTrackingMitigations. במסגרת הבדיקה המשולבת, בוצע שינוי במבנה כך שישתמש בדפים נפרדים, כדי להבטיח שמעברים עם שמירת מצב יתועדו בצורה נכונה לפני הפעלת הפקודה. התכונה הזו תומכת במפרטnav-tracking-mitigationsומיושמת ב-//chrome(crrev.com/c/4935955, Bug: 1474656). (הערה: נוסף במקור ב-crrev.com/c/4873672 ואחר כך בוטל). - BiDi: עודכן ChromeDriver כך שישתמש במאפייני תוסף סטנדרטיים של WebDriver BiDi עם הקידומת
goog:, בהתאם לשינויים ב-upstreamchromium-bidi. המאפייןchannelמדור קודם כבר לא מותר (crrev.com/c/6179410). - Windows: נוסף משאב גרסה לקובץ הבינארי
chromedriver.exeב-Windows (crrev.com/c/6114586, Bug: 385300323).
תיקוני באגים
- MPArch/Targets: תוקנה רגרסיה שבה יעדים של תוספי Chrome (
chrome-extension://) זוהו וצורפו באופן שגוי במהלך קביעת היעד הראשי ב-ChromeOS, מה שגרם לכשל בפקודות הבאות (כמו ניווט). בשלב הראשוני הזה, המערכת מדלגת עכשיו על יעדי התוספים כמו שצריך (crrev.com/c/6183202, באג: 385241097). - MPArch/Targets: תוקנה רגרסיה נוספת שבה יעדי הכרטיסיות של תוסף
background_pageלא סוננו כראוי מתצוגות אינטרנט ברמה העליונה כשביטלו את התמיכה ביעדי תוספים (crrev.com/c/6160774, באג: 385731198). - MPArch/Navigation: תוקנה בעיה שבה לכרטיסייה לא היה דף פעיל מצורף באופן זמני במהלך הפעלה של MPArch, ולכן ChromeDriver זיהה אותה באופן שגוי כמצב שגיאה. ChromeDriver ממתין עכשיו עד שהכרטיסייה תטען דף חדש ותסיים את הניווט לפני שהוא פותר את המצב (crrev.com/c/6177606).
- עיבוד יומנים: תוקן קריסה (
DCHECKfailure ב-base::Value()) שנגרמה בגלל חיתוך לא תקין של מחרוזות יומן שמכילות תווים מרובי-בייט. הלוגיקה עודכנה כך שתשתמש בזיהוי גבולות שלUnicodeStringבמקום בבדיקות פשוטות של אורךstd::string, כדי להבטיח נקודות קוד תקינות (crrev.com/c/6210809, באג: 367752739). - בדיקות: העברנו את רוב בדיקות WPT שקשורות לעיבוד מראש (חוץ מכמה בדיקות עם בעיות ידועות ב-API) מ-
content_shellל-headless_shell, כי שינוי המבנה האחרון של MPArch מאפשר ל-ChromeDriver להריץ אותן בצורה תקינה (crrev.com/c/6168830, Bug: 42323502, Bug: 366257368).
שינויים פנימיים ושינויים במבנה הקוד
- תקני C++: הוחלפו השימושים ב-
base::rangesבשימוש בתקןstd::ranges(crrev.com/c/6200893, crrev.com/c/6177197, Bug: 386918226). שכתוב של תבניותb ? "true" : "false"לשימוש ב-base::ToString(bool)במקרים שבהם הדבר אפשרי (crrev.com/c/6165810, באג: 335797528). הוסרה הפונקציה הלא בטוחהStringPrintfNonConstexpr()והוחלפה בחלופות בטוחות יותר לעיצוב מחרוזות (crrev.com/c/6149756). הוחלף חישוב אריתמטי של מצביעים (+ std::size) באיטרטורים רגילים שלbegin/endכדי לפתור אזהרות לגבי מאגרים לא בטוחים (crrev.com/c/6217045, באג: 392116519). - ניקוי: הוסר ה-feature flag
FedCmIdpSigninStatusוה-runtime flag שלו (crrev.com/c/6111321, Bug: 381211734). (הערה: ניסיון קודם להסרה בוטל crrev.com/c/6082405 בגלל בעיות).
ChromeDriver 133
תכונות חדשות
- ארכיטקטורה: בוצע רפקטורינג ב-ChromeDriver כדי לתמוך בארכיטקטורה של דפים מרובים (MPArch) ובכרטיסיות יעד.
WebViewImplמתחבר עכשיו ליעדי כרטיסיות דרךAutoAttach. פקודות שבעבר הציגו דף, מחפשות עכשיו את הדף הפעיל בכרטיסייה. השינוי הזה מאפשר לבדוק את דפי הרקע של התוסף, שאפשר עכשיו לטרגט אותם באמצעות היכולתenable_extension_targets(כברירת מחדל, דילוג על יעדי התוסף) (crrev.com/c/5961156, באג: 379767670, באג: 42323502). תוקנה רגרסיה שבה דפיchrome-extension://URL נכללו באופן שגוי כיעדים של תוספים. הבחירה הוחזרה ל-type=background_pageבלבד (crrev.com/c/6093588, באג: 383141569). האפשרותenableExtensionTargetsהועברה אל Chrome Options במקום להיות יכולת ברמה העליונה (crrev.com/c/6093032). - בגרסה הקלאסית: חידשנו את התמיכה בהפניות לרכיבים עם כמה מפתחות. התכונה הזו, שלא תועדה, משמשת לעיתים קרובות ליצירת הפניות שתואמות למצבי W3C ולמצבים שאינם W3C. עכשיו היא נתמכת באופן רשמי ומכוסה על ידי בדיקות שילוב (crrev.com/c/6063257, באג: 379584343).
תיקוני באגים
- יציבות: נמנעה חסימה ללא הגבלת זמן של ChromeDriver כשמטפלים בפקודה
browsingContext.close. באמצעות מנגנון שונה לקביעה אם צריך לסגור את הדפדפן, ChromeDriver יכול עכשיו לטפל בהנחיותbeforeunloadבצורה תקינה בלי להיתקע (crrev.com/c/6080431, באג: 42323838, באג: 379049702). - ניווט: תוקנה באג שבו דף פיקטיבי עם כתובת ה-URL
about:blank?testגרם להשהיה. ההיוריסטיקה שמיועדת לזיהוי חלון חדש שלא מגיב (baseURL==about:blankו-documentURL!=about:blank) מטפלת עכשיו בצורה נכונה בכתובות URL עם מחרוזת שאילתה כמקרה מיוחד (crrev.com/c/6038039, באג: 377410086). - ניווט: נוספה לוגיקה לניסיון חוזר של פקודות שנכשלות עם שגיאה
AbortedByNavigation. ChromeDriver ינסה להריץ את הפקודה כמה פעמים לפני שיציג שגיאה רגילהTimeout(crrev.com/c/6012427, Bug: 42323825). - אבחון: העברנו את השגיאה
kTargetCrashedישירות דרךNavigationTracker. אם יעד קורס במהלך זיהוי הניווט, השגיאה הספציפית הזו מוצגת עכשיו למשתמש במקום זמן קצוב לתפוגה כללי, וכך משתפר האבחון (crrev.com/c/6032612, באג: 377410086). - Android: תוקנו חיפושים של יעד כרטיסייה ב-
chrome_android_impl.cc(crrev.com/c/6110492, Bug: 384781876). - בדיקה: תוקנו בעיות של חוסר יציבות בכמה בדיקות של שינוי גודל חלון ב-
win11-arm64(למשל, קליקים על רכיבים מוסתרים). הבדיקות שולחות עכשיו שאילתות לגבי הגודל הפנימי של החלון שוב ושוב אחרי פעולת שינוי גודל, עד שהן רושמות גובה חיובי בצורה נכונה, תוך התחשבות בצביעה מחדש איטית של החלון (crrev.com/c/6012658, Bug: 378470046). - בדיקות: תוקנו כמה בעיות בבדיקות שילוב על ידי מיפוי שגיאות חיבור כלליות של Python ל-
WebSocketConnectionClosedException, מה שמפשט את הטיפול בשגיאות (crrev.com/c/6054134), הימנעות מתנאי מירוץ על ידי שימוש ב-SendCommandבמקום ב-PostCommandבמקרים שבהם צפויות תופעות לוואי מיידיות (crrev.com/c/6054137), והחלפת ההסתמכות על השפעות מיידיות שלExecuteScriptבמנגנונים אמינים יותר לזיהוי ניווט (crrev.com/c/6063040, Bug: 42323825). - בדיקה: ביטלנו את ההסרה של feature flag
FedCmIdpSigninStatus, כי ההסרה שלו גרמה לבעיות (crrev.com/c/6082405, ביטול crrev.com/c/6078693, באג: 384866916, באג: 381211734). - כלים: נוספה תמיכה בפקודה
Printבסקריפטlog_replay(crrev.com/c/6010809, באג: 378451938).
שינויים פנימיים ושינויים במבנה הקוד
- תקני C++: הוסרה
Mojo.InvalidUTF8Stringהיסטוגרמה, מה שמאפשר לנקות את כותרות ה-mojo הציבוריות ואת הקסקדות הבאות של IWYU (crrev.com/c/6133861, באג: 40509710, באג: 386793084). - תקני C++: בוצע מעבר מ-
std::listל-base::circular_deque(crrev.com/c/6097198) כדי להימנע מהקצאות ב-WaitableEvent::Wait(). - תקני C++: הוגדרו כברירת מחדל בנאים ודסטרוקטורים ריקים שהוגדרו על ידי המשתמש בכל בסיס הקוד של
chrome/, איפה שאפשר (crrev.com/c/6101911, crrev.com/c/6056220, Bug: 381119547). - בטיחות הזיכרון (spanification): בוצעה העברה של מערכים בסגנון C אל
std::arrayב-chrome/כחלק מהמאמץ הרחב יותר לטפל באזהרות-Wunsafe-buffer-usage(crrev.com/c/6043879, Bug: 378069401). הוספנו שימוש קפדני ב-size_tבפונקציות של span (crrev.com/c/6026238, crrev.com/c/6020621). - בדיקה: מודעות במסך מלא הועברו מ-
{ref,crash}testsל-wpt_internal/כיtestdriverתומך בהן עכשיו (crrev.com/c/6088404). - בדיקות: תוקן
wptrunnerל-iOS כדי לאתר נכון את ChromeDriver wrapper כשמשתמשים בספריות פלט שאינן ברירת המחדל (למשל,//out/*-ios-wpt-fyi-rel/) על ידי חיבור נכון של--build-directory(crrev.com/c/6014940, Bug: 374199289, Bug: 355218109). - בדיקה: נוספה בדיקת השילוב
testBrowserCrashWhileWaitingForEventsכדי להדגים מקרים של רגרסיה שבהם לקוחות לא מבחינים בשגיאות חמורות (crrev.com/c/6025145, באג: 379049702). - בדיקות: בוצע דיכוי של בדיקות WPT ספציפיות שגורמות לקריסה כשהן מופעלות ב-
headless_shellבשילוב עם ChromeDriver, כדי לייצב את כלי הבנייה (crrev.com/c/6032163, Bug: 377410086).
ChromeDriver 132
תכונות חדשות
- בדיקות: נוספה תמיכה בפרמטרים של שורת הפקודה
repeatו-retry-limitלבדיקות שילוב של ChromeDriver, עם מיפוי שלהם לארגומנטים הרגיליםisolated-script-test-repeatו-isolated-script-test-launcher-retry-limit(crrev.com/c/5938195, באג: 374681919). בבדיקות שמופעלות באופן מקומי (לא CI), ערך ברירת המחדל שלretry-limitהשתנה ל-0 (crrev.com/c/5953326, Bug: 374681919). - WebSockets: הטמענו את
WebSocketConnectionואת המחלקות הקשורות ב-EmbeddedTestServer, כדי לאפשר העברה של בדיקות שקשורות ל-WebSocket מ-SpawnedTestServer. זה כולל מסגור בהתאם לפרוטוקול ורישום פשוט של מטפלים (crrev.com/c/5849732, Bug: 40812029).
תיקוני באגים
- יציבות: תוקן קריסת ChromeDriver שיכולה להתרחש אם פקודת לחיצה גורמת לדפדפן להיסגר, על ידי טיפול נכון במצב השגיאה
kTargetDetachedשהוצג בשינויי קוד קודמים (crrev.com/c/5934524, Bug: 42323264). - יציבות: תוקנה קריסה לסירוגין בבדיקת השילוב של
testClickNavigateRemoteToLocalב-Mac ARM64 על ידי פתרון מרוץ תהליכים (crrev.com/c/5975526, באג: 375971185). - ניווט: תוקנו הפקודות
GoBackו-GoForward, שנכשלו קודם אם בוצעה קריאה לפונקציהPage.getNavigationHistoryבזמן שהמסמך עבר ממצב פעיל (מה שמצביע על ניווט מתמשך). ChromeDriver מנסה עכשיו שוב לבצע את הפקודה בתרחיש הזה (crrev.com/c/6011739, Bug: 378433873). - הרצת סקריפט: דאגנו לכך שסקריפטים שמפעילים ניווט או סוגרים חלון יחזירו שגיאת
ScriptTimeoutסטנדרטית אם הצד של הדפדפן לא מבטיח תוצאה, כדי שהמשתמשים יוכלו להימנע ממבני בדיקה לא חד-משמעיים (crrev.com/c/5934265, באג: 372883701). - הפעלת סקריפט: תוקנה בעיה שבה הפונקציונליות של הפעלת יומן חוזרת נכשלה עם השגיאה 'תגובת פקודה לא צפויה' (crrev.com/c/5961142, Bug: 42323342).
- קודי שגיאה: תוקן הטיפול בשגיאות ב-ChromeDriver כך שלא יכלול יותר בכוח את כל החריגים עם מאפיין 'code' ב'שגיאת JavaScript' כללית. כך אפשר לוודא ששגיאות סטנדרטיות כמו 'הפניה לרכיב לא עדכני' (מ-
call_function.js) ו'מצב רכיב לא תקין' (מהפונקציה Selenium AtomsCLEAR) מועברות למשתמש בצורה מדויקת (crrev.com/c/5937893, באג: 42323409). שיפרנו את הטיפול בשגיאות ב-GetElementTagNameכדי לפרש בצורה נכונה מידע חסר על שם התג כ'האובייקט הוא לא רכיב' (crrev.com/c/5929087). - BiDi: תוקנה בעיה שבה סשנים של BiDi נכשלו באתחול כשנעשה שימוש בפרופיל משתמש מותאם אישית. יכול להיות שהדף שנטען בפרופיל המותאם אישית ימנע את ההפעלה של BiDiMapper. עכשיו ChromeDriver מוודא שהכרטיסייה הראשונה תמיד נטענת
data:,כדי לספק למיפוי לוח חלק (crrev.com/c/5960656, באג: 366886096). - מצב פרטי: תוקן באג שמונע מ-ChromeDriver ליצור כרטיסיות חדשות בזמן הפעלה במצב פרטי (crrev.com/c/5952980, Bug: 42323352).
- בדיקות: תוקנה בעיה בבדיקת השילוב
testScriptNavigateRemoteToLocal(שנכשלה בשיעור של 8.33%) והוספו בדיקות שילוב ב-C++ כדי לשחזר ולאמת את התיקון של מרוץ התהליכים (crrev.com/c/6010867, באג: 378387680). - בדיקות: הפעלנו מחדש בדיקות אינטגרציה רבות שהיו בעייתיות בעבר ב-Mac (
testWindowMinimize) וב-Windows (ChromeDownloadDirTest.testFileDownloadAfterTab, InvalidCertificateTest.*), וגם באופן גלובלי (testShadowDomFindElement, בדיקות צילומי מסך של רכיבים). העברנו באופן זמני בחזרה את בדיקות WPT הלא יציבות שלcss/css-scrollbars/אל content shell מ-headless shell (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).
שינויים פנימיים ושינויים במבנה הקוד
- BiDi: העלנו את התלות של
chromium-bidimapper כדי לשלב את התיקונים האחרונים ואת עדכוני הפרוטוקול (crrev.com/c/5953339, crrev.com/c/5865478, Bug: 4226). (הערה: שינוי במיפוי בוטל לזמן קצר בגלל כשלים ב-WPT, ואז הוחזר (crrev.com/c/5961113)). - ארכיטקטורה: צמצמנו את השימוש באובייקט הסשן המקומי של השרשור ב-ChromeDriver כדי למנוע באגים בשיתוף מצב בין בדיקות ולפשט את הטיפול בסשן מפורש (crrev.com/c/5978486, באג: 42323555). בוצע רפקטורינג של בדיקות שילוב ב-C++ כדי להשתמש ב-test fixture משותף (crrev.com/c/5971474, באג: 42323555).
- ניקוי: הוסרו פתרונות עקיפים שהוצאו משימוש וספציפיים למצב 'ישן ללא ראש', כי קוד
chrome-headless-shellמדור קודם כבר לא קיים ב-Chrome (crrev.com/c/5961602, באג: 42323387). - ניקוי: הוסר הקובץ
java_tests.txtשלא היה בשימוש, שריד של בדיקות הקבלה של ChromeDriver שהוסרו בעבר (crrev.com/c/5970994, באג: 357737793). - בדיקה: נוספה בדיקת שילוב של C++ כדי לוודא ש-ChromeDriver לא יוצר בטעות סשנים מקבילים עם אותו
user-data-dirאו כתובות URL שמשותפות בין סשנים, מה שעלול לגרום לחוסר יציבות (crrev.com/c/5961137, באג: 375312517). - בדיקות: מוודאים שמופעלות דוגמאות זמניות של ChromeDriver על ידי בדיקות שילוב, ושהן נסגרות במהירות האפשרית כדי לפנות משאבים (crrev.com/c/5997970, באג: 375974725).
ChromeDriver 131
תכונות חדשות
- BiDi: העלינו את התלות של מיפוי
chromium-bidiלגרסה 0.8.0, שכוללת את העדכונים האחרונים של הפרוטוקול ותיקוני באגים (crrev.com/c/5899240, crrev.com/c/5865478, Bug: 4226). - גישה ל-DOM: נוספה תמיכה בשורשי צל סגורים בפקודה
GetElementShadowRoot. בעבר, הפקודה הזו החזירה שגיאהNoSuchShadowRootכשניסו לגשת לשורש צל סגור (crrev.com/c/5923865, באג: 372834222). - גישה ל-DOM: הוטמעה תמיכה במזהים של חלונות ומסגרות, שמאפשרת להחזיר הפניות לחלונות או למסגרות (כולל OOP Iframes) מסקריפטים שהופעלו לצורך ביטול הפניה נוסף (crrev.com/c/5890437, crrev.com/c/5923555, Bug: 366272556, Bug: 40229283).
- WebAuthn: הרחבנו את WebAuthn Automation API כך שיכלול את המאפיינים
userNameו-userDisplayName(crrev.com/c/5905423, Bug: 367915823).
תיקוני באגים
- קלט: תוקן מרוץ תהליכים שקשור לקליקים בעכבר על מסגרות מרוחקות. כדי לתקן את הבעיה, אירועי העכבר מנותבים לישות האב של מסגרת היעד מאותו מקור, במקום פשוט לשלוח אותם למסגרת העליונה ביותר (crrev.com/c/5836968, באג: 42323535).
- קלט: תוקן פורמט חותמת הזמן שנשלח עם הפקודה
Input.dispatchTouchEventמאלפיות השנייה לשניות, כדי לתקן קריסות בבדיקות של אירועי מצביע WPT (crrev.com/c/5924253, באג: 360918166). - בדיקות: הפעלנו מחדש בדיקות רבות של ChromeDriver ב-Mac (crrev.com/c/5923569, crrev.com/c/5922823, crrev.com/c/5921444, crrev.com/c/5920851, crrev.com/c/5921442) וב-Windows (crrev.com/c/5923955), כי כבר אי אפשר לשחזר את הכשלים הקשורים אליהן.
שינויים פנימיים ושינויים במבנה הקוד
- בטיחות הזיכרון (spanification): החלפנו שימוש במצביעים לא בטוחים ב-
base::spanב-net::HttpUtil(crrev.com/c/5854420), והעברנו אתbase::File::WriteAtCurrentPos()למקבילה מבוססת-הטווח שלה (crrev.com/c/5818972). שיכתוב של ערכי מצביעים במפה (לדוגמה, ב-std::map,std::unordered_map) ל-raw_ptr(crrev.com/c/5867189, באג: 329428315). - תקני C++: הוחלפו פקודות מאקרו של מאפייני Abseil (
ABSL_ATTRIBUTE_*) בפקודות מאקרו רגילות שלbase/(crrev.com/c/5852373). כדי למנוע עותקים לא מכוונים, מחליפים מחרוזות או וקטורים של העברת ערך ב-std::string_viewאו בהפניות קבועות במקומות המתאימים, ומסירים מסיפיconstמיותרים מארגומנטים שלstd::string_view(crrev.com/c/5914620, crrev.com/c/5906184, Bug: 369952985). - תשתית: הגדרנו את Fuchsia כך שישתמש ב-ChromeDriver כדי לשלוט ב-
web-engine(crrev.com/c/5867896, Bug: 40935291). - בדיקות: בוצעה העברה של בדיקת WebAuthn של fenced frames מהרצת מעטפת תוכן מדור קודם אל Chrome ללא ממשק משתמש עם ChromeDriver, כי בקרוב יוסר מהרצת התוכן מדור קודם התמיכה ב-WebAuthn testdriver API (crrev.com/c/5920770, Bug: 372169469).
ChromeDriver 130
תכונות חדשות
- BiDi: עודכנה התלות ב-BiDi Mapper, ואחזור העדכונים האחרונים של הפרוטוקול ותיקוני הבאגים מ-upstream
chromium-bidi(crrev.com/c/5850570, relanding crrev.com/c/5837065 after revert crrev.com/c/5840080; crrev.com/c/5717956, Bug: 4226). - BiDi: עודכן ChromeDriver כדי לספק
unhandledPromptBehaviorישירות ל-Mapper באמצעות הפקודהsession.newכשמפעילים סשן BiDi. כך מסתיימת ההעברה מ-MapperOptions(crrev.com/c/5682934, crrev.com/c/5766077, Bug: 42323841, Bug: 356371297). - בדיקות: נוספה תמיכה בארגומנט
--chromedriverלסקריפטbisect-builds.pyעבור גרסאות למחשב, שמאפשר לסקריפט להוריד באופן אוטומטי את הגרסה הנכונה של ChromeDriver ולהשתמש בה במהלך חלוקות חוצות לבדיקות שתלויות ב-WebDriver/ChromeDriver (crrev.com/c/5861048, באג: 352344089).
שינויים פנימיים ושינויים במבנה הקוד
- תקני C++: נפתרו בעיות שקשורות לכלל חמשת ה-C's בכמה מחלקות. מכיוון שהתוסף בסגנון Chrome מתעקש על הרסנים מחוץ לשורה בלי גם לאכוף בנאים להעברה מחוץ לשורה, הקומפיילר מחק באופן מרומז אופרטורים להעברה וחזר באופן שקט לעותקים. ההצהרות החסרות האלה נוספו (crrev.com/c/5846757, Bug: 364788123).
- בדיקה: ניקוי סיכום תוצאות הבדיקה של
wptrunnerעל ידי החלפת המחרוזתchromeשמוגדרת בהגדרות קשיחות במוצר בפועל שבו נעשה שימוש, והסתרת הארטיפקט המפורטcommandמפלט הסיכום (crrev.com/c/5825633, באג: 41494889). - בדיקה: תוקנו כשלים רבים בבדיקות האינטגרציה של ChromeDriver ב-macOS 15 (Mac15) על ידי הכפלת פסק זמן ספציפי, כי הבדיקות במערכת ההפעלה הזו דרשו הרבה יותר זמן מאשר ב-Mac14. בנוסף, ארבע בדיקות של חיישנים וירטואליים נוספו לרשימת קטעי הקוד להתעלמות בגלל חוסר יציבות (crrev.com/c/5817455, Bug: 354939744).
- בדיקות: השבתנו את הבדיקה הלא יציבה
ChromeDriverSiteIsolation.testClickNavigateLocalToLocalב-Mac (crrev.com/c/5806894, באג: 361521805) ואת הבדיקות הלא יציבותChromeDriverTest.testClickElement*ObscuredByScrollBarב-Windows 11 (crrev.com/c/5804083, באג: 360058651). - בדיקות: הוסר ChromeDriver acceptance tests (שמורידים גרסאות ישנות יותר של Chrome כדי לבדוק אותן מול הגרסה הנוכחית של ChromeDriver) בגלל כמה בעיות בתשתית. יכול להיות שהם יתווספו מחדש בהמשך ל-CI עם autoroll (crrev.com/c/5812142, Bug: 357737793).
ChromeDriver 129
תכונות חדשות
- BiDi: העזר לאתחול סשן של ChromeDriver עודכן כדי לשלוח פקודה
session.newל-BiDi Mapper, וכך לאפשר ל-Mapper לטפל ביכולות ישירות. זהו השלב הראשון בהסרתMapperOptions(crrev.com/c/5741432, Bug: 356371297). (הערה: שינוי קשור crrev.com/c/5754093 שסיפק אתunhandledPromptBehaviorשעבר עיבוד בוטל crrev.com/c/5755744 בגלל ירידה בכיסוי הבדיקה). - עומס מחשוב: נוספו פקודות חדשות לתוסף לניהול מקורות וירטואליים של עומס, בהתאם לסעיף האוטומציה במפרט של עומס המחשוב. הפקודות האלה מנותחות ומועברות לשכבת ה-CDP (crrev.com/c/5666583, באג: 347031400).
- Extensions MV2: עודכנו בדיקות שבודקות את ההתנהגות של MV2 כדי להשתמש ב-
ScopedTestMV2Enablerכחלק מהניסוי המתמשך בנושא הוצאה משימוש של Manifest V2 (crrev.com/c/5685054, Bug: 339061151).
תיקוני באגים
- סדרות קלאסיות: מעקב אחרי אובייקטים שנצפו כשמבצעים סריאליזציה של
Setבתוצאות של הפעלת סקריפט WebDriver Classic, כדי למנוע לולאות אינסופיות ולאפשר ביטולים שלArray.prototype.includes(crrev.com/c/5765833, באג: 357472850). (הערה: השינוי הזה בוטל בהמשך crrev.com/c/5773175 בגלל רגרסיה ב-WPT).
שינויים פנימיים ושינויים במבנה הקוד
- BiDi: הועברה התלות ב-BiDi Mapper כדי לכלול את תיקוני הבאגים ואת עדכוני הפרוטוקול האחרונים מ-
chromium-bidi(crrev.com/c/5756587, crrev.com/c/5717956, Bug: 4226). - בטיחות הזיכרון (spanification): שימוש לא בטוח במאגר הוחלף ב-
WebSocketFrameParser::Decode, ב-MaskWebSocketFramePayloadוב-WriteWebSocketFrameHeaderב-base::span(crrev.com/c/5764863, crrev.com/c/5743019, crrev.com/c/5722108, Bug: 40284755, Bug: 354307327). נוספה#pragma allow_unsafe_buffersבכלchrome/*כהכנה לתיקונים נוספים (crrev.com/c/5717950, Bug: 40285824), והמרנו פקודות מאקרו שלUNSAFE_BUFFERS()שלא תואמות ל-UNSAFE_TODO()(crrev.com/c/5786346). שכתוב של שדותbase::spanלשדותbase::raw_span(crrev.com/c/5515096, Bug: 332587642). - תקני C++: הוסר השימוש במערכים מסוכנים באורך משתנה (VLAs) בבסיס הקוד על ידי סימון מפורש של אורכי המערכים כ-
constexpr(crrev.com/c/5738737, Bug: 349656479). נכללו כותרות<unordered_map>נדרשות שנמשכו בעבר באופן טרנזיטיבי (crrev.com/c/5792881). - ארכיטקטורה: ביטלנו את הפיצול של ההטמעה של
WebSocketEncoderעל ידי החזרת המיגרציה התקועה שלה ל-//services/network/public/cpp/serverוריכוז הלוגיקה בחזרה ב-//net/serverכדי להבטיח עדכונים עקביים (crrev.com/c/5768214, באג: 40205564).
ChromeDriver 128
תכונות חדשות
- יכולות: אפשרנו להשתמש במילון ליכולת
unhandledPromptBehavior, בהתאם למבני היכולות הסטנדרטיים, למרות שהמיפוי עדיין לא מכבד את זה באופן מלא (crrev.com/c/5692204, crrev.com/c/5682934, Bug: 42323841). - הפעלה: נוסף הארגומנט
--ignore-explicit-portשל שורת הפקודה ל-ChromeDriver. הפתרון הזמני הזה מאלץ את ChromeDriver להתעלם מכל יציאה שסופקה באופן מפורש, ובמקום זאת למצוא יציאה פנויה ולקשר אליה. כך נפתרות בעיות של הקצאת יציאות TCP במהלך הפעלת בדיקות של פלטפורמת אינטרנט (הפתרון הזה יוסר אחרי גרסה M132) (crrev.com/c/5724574, crrev.com/c/5703976, Bug: 42323836).
תיקוני באגים
- חיישנים: תוקנה הפקודה
ExecuteUpdateVirtualSensorכך שתשתמש ב-SendCommand()במקום ב-SendCommandAndGetResult(), כי הפקודהsetSensorOverrideReadingsCDP לא מחזירה ערך (crrev.com/c/5703589). - FedCM: תוקן מרוץ תהליכים בבדיקות FedCM ChromeDriver. המערכת לא תטען יותר את
NoSuchDialogאם צפויה תיבת דו-שיח, כדי למנוע כשלים אם תיבת הדו-שיח מופיעה מהר מדי (crrev.com/c/5713515, Bug: 346530330). - בדיקות: הפעלנו מחדש בדיקות של אמצעי אימות וירטואליים של WebAuthn ב-Mac אחרי שהבעיה הבסיסית (crbug.com/40233722) תוקנה (crrev.com/c/5635806, Bug: 329130177).
- הודעות שגיאה: תוקנה שגיאת הקלדה בהודעת השגיאה של הפקודה
execute/async(crrev.com/c/5697913).
שינויים פנימיים ושינויים במבנה הקוד
- BiDi: עודכנה התלות ב-BiDi Mapper, כך שנוספו תכונות הפרוטוקול העדכניות, תיקוני באגים ועדכונים של ציפיות WPT מהפרויקט
chromium-bidi(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). - השימוש בשיטה
GrowableIOBuffer::StartOfBufferשהוצאה משימוש הוחלף בשימוש בשיטהspan, וכך שופרה הבטיחות של הזיכרון על ידי ביטול מצביעים לא מסומנים (crrev.com/c/5706088, באג: 329476354). - בוצעו שינויים בשיטות
DecodeשלWebSocketFrameParserכדי לשפר את בטיחות הזיכרון (crrev.com/c/5722108, באג: 354307327). - בוצע ניקוי של שרידים שנותרו מ-
absl::optionalעל ידי הסרת כותרות Abseil שיצאו משימוש, והועברה ל-std::optional(crrev.com/c/5691505, Bug: 40242125). - בוצע שינוי ב-ChromeDriver כך שיטפל בכל סוגי היעדים הלא ידועים (כולל
shared_storage_worklet) כ-WebViewInfo::kOtherבמקום להתייחס אליהם כשגיאות. כך Chrome יכול להציג סוגים חדשים של יעדים בלי לשבור באופן מיידי את WPT (crrev.com/c/5680542, crrev.com/c/5679146, Bug: 42323839). - הוספנו יעד להתקנה ל-
linux-builder-perfbuilder כדי ליצור קבצים בינאריים עם סמלים שהוסרו לארכיונים של bisect, והגדרנו את pinpoint builders לקבל ערכים שונים שלadditional_compile_targets(crrev.com/c/5668198, Bug: 344643694). - בוצע עדכון של
run_performance_tests.pyכדי למצוא את המיקום של ChromeDriver ולהעביר אותו אלcrossbenchבמהלך בניית ביצועים (crrev.com/c/5624538, Bug: 338629299). - הוספה של התלות
crossbench(crrev.com/c/5681849). - Marked
FedCmSpecificTest.testClickErrorMoreDetailsandFedCmSpecificTest.testClickErrorGotItas flaky on Mac (crrev.com/c/5704320, crrev.com/c/5677564, Bug: 352821422, Bug: 346530330). - הושבתה הבדיקה הלא יציבה
BidiTest.testFocusInFirstTab(crrev.com/c/5676686, Bug: 350916212).
ChromeDriver 127
תיקוני באגים
- יציבות: תוקן קריסת ChromeDriver שהתרחשה כשפקודה מסוג
target.detachFromTarget(או אירוע מסוגtarget.detachedFromTarget) התקבלה בזמן שלקוח כלי הפיתוח עיבד באופן פעיל פקודות אחרות, וכך נמנעה השחרור המוקדם של האובייקטיםWebViewו-DevToolsClient(crrev.com/c/5527584, באג: 339773537). - יציבות: תוקנה בעיה שבה הפקודה
Switch To Windowיכלה להחזיר באופן שגוי את השגיאה 'לא ידוע' אם תצוגת אינטרנט נותקה במהלך ביצוע הפקודה. עכשיו הפקודה מתעלמת באופן תקין מהשגיאה הפנימית 'לא נמצאה תצוגת אינטרנט', וכתוצאה מכך מחזירה תגובה רגילה של 'לא נמצא חלון כזה' אם חלון היעד אכן נסגר (crrev.com/c/5583730, באג: 338616700). - יציבות: הובטח ש-ChromeDriver יסבול ניתוק של יעד בזמן עדכון רשימת ה-WebView הפנימית. אם יעד מתנתק במהלך העדכון, ChromeDriver ינסה שוב במקום להחזיר שגיאה לא סטנדרטית. כך יצטמצם הסיכון לבעיות בסביבות שבהן חלונות נוצרים ונמחקים במהירות (crrev.com/c/5565103, Bug: 338616700, Bug: 4771).
- ניווט: נוספה לוגיקה ל-ChromeDriver כדי להמתין לניווט שזוהה על ידי הקצה המרוחק בזמן חיפוש רכיבים. השינוי הזה מונע מ-ChromeDriver להחזיר שגיאה לא רגילה או לקרוס עם
DCHECKכשניווט מתבצע במקביל לפעולת חיפוש רכיב (crrev.com/c/5563113, החזרה לגרסה קודמת crrev.com/c/5563420, חזרה לגרסה קודמת crrev.com/c/5562089, באג: 4771). - BiDi: תוקן מרוץ תהליכים בין ChromeDriver לבין BiDiMapper במהלך יצירת סשן. ChromeDriver מחכה עכשיו שהפקודה
browsingContext.getTreeתחזיר רשימה לא ריקה לפני שהוא מסיים את הפקודה NewSession, כדי לוודא שהכרטיסייה החדשה שנוצרה כברירת מחדל רשומה בצורה תקינה (crrev.com/c/5575497, באג: 341048786, באג: 1503101). - BiDi: תוקנה בעיה שבה המיקוד נשאר בכרטיסיית הרקע של BiDiMapper אחרי יצירת סשן, במקום בכרטיסיית המשתמש הפעילה. הבעיה תוקנה על ידי הענקת מיקוד מפורש לכרטיסיית המשתמש הראשונה (crrev.com/c/5594070, Bug: 341048786, Bug: 1503101).
- BiDi: ChromeDriver לא מנסה יותר לצרף Target כשמטפלים בפקודות BiDi (כמו
browsingContext.close) כדי למנוע מצב שבו פקודות CDP נתקעות ללא הגבלת זמן אם מוצגת למשתמש הנחיה. הטיפול בפקודות מועבר באופן מלא לשכבת BiDi שכבר מחוברת (crrev.com/c/5541915, החזרה לגרסה הקודמת crrev.com/c/5539818, החזרה לגרסה הקודמת crrev.com/c/5522393, באג: 4758). - FedCM: תוקן הכשל בבדיקת WPT
fedcm-loginhint.https.htmlשבו תיבת דו-שיח סומנה באופן שגוי כסגורה. עכשיו הסטטוס מתעדכן רק אם הפעולהselectAccountמצליחה בפועל (crrev.com/c/5398379, Bug: 331237776). - בדיקות: תוקנה שגיאת
DCHECKבמהלך ניתוח JSON כשתו מסוים הגיע בדיוק לגבולkExtendedASCIIStart(crrev.com/c/5565276, באג: 40284755). - בדיקה: תוקנה הבדיקה
scrollend-event-fires-to-iframe-window.htmlWPT באמצעות שימוש ברכיב iframe כמקור הגלילה ועיגול של קלט תנועת המצביע למספרים שלמים, כדי למנוע שגיאות ב-ChromeDriver עם מיקומי מגע חלקיים (crrev.com/c/5570150, Bug: 340956654). - בדיקות: שיפרנו את האבחון בבדיקות השילוב של ChromeDriver על ידי הדפסת הנתיבים שניסו להשתמש בהם כש-
run_py_tests.pyלא מצליח לאתר את הקובץ הבינארי של הדפדפן (crrev.com/c/5604204, באג: 4781).
שינויים פנימיים ושינויים במבנה הקוד
- BiDi: עודכנה התלות של BiDi Mapper, כדי להתעדכן בתיקוני הבאגים ובעדכוני הפרוטוקול האחרונים (crrev.com/c/5614670, crrev.com/c/5593796, crrev.com/c/5537892, crrev.com/c/5471839, Bug: 4226).
- החלפנו את השימוש ב-
NOTREACHED()ב-NOTREACHED_IN_MIGRATION()בספרייהchrome/, לקראת הפיכתNOTREACHED()ל-[[noreturn]]בלבד (crrev.com/c/5539004, Bug: 40580068). - הפעלנו את יצירת
THIRD_PARTY_NOTICES.txtעבור ChromeDriver באמצעות הכליlicenses.pyכדי לעמוד בדרישות ההפצה (crrev.com/c/5596355, Bug: 4777). - הוסר
run_wpt_tests.pyהתמיכה ב-content_shell, כי הכיסוי של WPT ב-Chromium עובר באופן מלא ל-headless_shell+ ChromeDriver (crrev.com/c/5589930). ארגנו מחדש את המתגיםwptrunnerכך שיהיו ספציפיים למטמיע כדי להתאים לשינוי הזה בלי להשפיע על הפונקציונליות (crrev.com/c/5589793, Bug: 338412391). - הלוגיקה של זיהוי תיבות דו-שיח ב-JavaScript וטיפול בהן אוחדה. היא הועברה מ-
JavaScriptDialogManagerישירות אלDevToolsClientImpl, וכך בוטל הצורך במחלקת ניהול נפרדת, כדי לפשט את הבדיקה וההסקה (crrev.com/c/5545630, באג: 4757). - הושבתה
PureBidiTest.testBrowsingContextTreeIsNotEmptyב-Mac בגלל חוסר יציבות (crrev.com/c/5588665, באג: 343891977). - עודכנו הציפיות של BiDi WPT כדי להתאים לעדכונים האחרונים של Mapper (crrev.com/c/5615110, Bug: 4226, Bug: 324436866).
- נוספו בדיקות יחידה ל-
WebView::SendBidiCommandול-BidiTrackerכדי להגדיל את רמת הכיסוי של הקוד (crrev.com/c/5588400, Bug: 341048786, Bug: 1503101).
ChromeDriver 126
תכונות חדשות
- BiDi: עודכן ChromeDriver כדי לספק את המתג
--disable-background-timer-throttlingכשמפעילים את הדפדפן עבור סשן WebDriver BiDi, וכך למנוע הגבלת מהירות של כרטיסיות ברקע (crrev.com/c/5515013, באג: 4762). - BiDi: נוספה תמיכה ב-BiDi Mapper לשליחת הודעות ניפוי באגים (
sendDebugMessage) כשנדרש רישום מפורט ביומן. ChromeDriver מסמן את האירועים האלה כ-bidi messagesלצורך ניתוח, אבל בשלב הזהBidiTrackerמתעלם מהם (crrev.com/c/5465782, באג: 4753). - קלאסי: הטמענו אישור אוטומטי של כל תיבות הדו-שיח (התראות) של
beforeunload, בהתאם לתקן WebDriver שמחייב שהן לעולם לא יוצגו בסשן קלאסי (crrev.com/c/5517510, באג: 4757).
תיקוני באגים
- בגרסה הקלאסית: הוסרה המגבלה המיותרת על מספר הניסיונות המקסימליים בלוגיקה של אחזור הרכיבים. השליפה מוגבלת עכשיו רק על ידי זמן קצוב לתפוגה המרומז, וכך נמנעים תרחישים שבהם הפעולה עלולה להיכשל לפני הזמן ולהחזיר שגיאת
NoSuchExecutionContextלא סטנדרטית (crrev.com/c/5478668, באג: 4379). - גרסה קלאסית: תוקן באג שגרם ל-ChromeDriver להגיב עם שגיאה
javascript errorבמקום שגיאהinvalid selectorכשבקשת אחזור השתמשה באסטרטגיית מיקום לא חוקית (crrev.com/c/5490662, באג: 4743). - קלאסי: פקודות חלון ב-Android (הגדלה, מזעור, מסך מלא) מחזירות את השגיאה
unsupported operationהתואמת לתקן במקום להמשיך, כי הפעולות האלה לא אפשריות בדפדפן Android (crrev.com/c/5490224, באג: 4689). - גרסה קלאסית: תוקן ChromeDriver כך שהוא אף פעם לא מחזיר את קוד השגיאה הפנימי
kChromeNotReachable. עכשיו הוא מחזיר את השגיאה הרגילהkSessionNotCreatedבצורה תקינה כשלקוח ה-HTTP לא מצליח להתחבר לדפדפן (crrev.com/c/5476390, באג: 4379). - Classic: תוקן ChromeDriver כך שהוא אף פעם לא יחזיר את השגיאה הלא סטנדרטית
kNoSuchExecutionContextכשמבצעים פקודות חלון (crrev.com/c/5483606, Bug: 4379). - קלאסי: הוסר קוד השגיאה
kForbiddenשלא בשימוש ושלא נתמך מהרשימה של קודי השגיאה הנתמכים (crrev.com/c/5476927, באג: 4379). - BiDi: עודכן ChromeDriver כך שתוצג למשתמש הנחיה לפני סגירת הכרטיסייה הייעודית של Mapper, בהתאם לשינויים ב-upstream
chromium-bidi(crrev.com/c/5508600, Bug: 4761).
שינויים פנימיים ושינויים במבנה הקוד
- BiDi: עודכנה התלות ב-BiDi Mapper, והוספו התיקונים והתכונות האחרונים מהפרויקט
chromium-bidi(crrev.com/c/5490428, crrev.com/c/5471839, crrev.com/c/5509316, crrev.com/c/5458234, Bug: 4226). (הערה: שינוי במאפיין mapper בוטל לזמן קצר על ידי gardener ואז הוחזר (crrev.com/c/5374839, crrev.com/c/5374366)). - השימוש ב-
base::StringPieceהוחלף ב-std::string_viewב-//chrome(crrev.com/c/5467746, Bug: 40506050). - השימוש ב-
std::to_string()הוסר מ-//chromeוהוחלף ב-base::NumberToString()או ב-base::FormatNumber()(crrev.com/c/5505593, באג: 335672557). - הוסרה התמיכה במתג
--remote-debugging-addressבמצב הישן של Headless Chrome, כי גישה מרחוק לא מוגנת לפרוטוקול כלי פיתוח ל-Chrome נחשבה למסוכנת מדי (crrev.com/c/5512634, באג: 327558594). - הוסרו כללי בנייה של Fuchsia מ-
//chrome, למעט ChromeDriver (crrev.com/c/5473870, Bug: 41481724). - הועברו הפניות מדור קודם
TODO(crbug.com/...)בכל בסיס הקוד לפורמט החדש של מזהה הכלי למעקב אחרי בעיות (TODO(b/...)) (crrev.com/c/5492605, crrev.com/c/5486477, crrev.com/c/5461380, Bug: 321899722). - השבתנו בדיקות של WebAuthn (מאמת) ב-Mac (גם ב-headless וגם ב-
chromedriver_py_tests) בגלל באג מורכב בבסיס, וכך ביטלנו את החסימה של שדרוג בוטים ל-macOS 14 (crrev.com/c/5525435, crrev.com/c/5518820, Bug: 329130177). - השבתנו את כלי ה-WPT ל-
content_shellבגלל קשיים בהרצת WPT עם ChromeDriver ו-Content Shell ביחד (crrev.com/c/5512439, Bug: 40214293). - הוחזר שינוי שמעדכן את
focus-navigationWPTs לשימוש ב-Shift+Tabדרךtest_driver.action_sequence()לניווט אחורה. תוקן באג ב-focus-utils.jsשבו נעשה שימוש בקוד מקש שגוי (E050במקוםE008) למקש Shift (crrev.com/c/5467843, החזרה ל-crrev.com/c/5466531, החזרה ל-crrev.com/c/5463903, באג: 40597271). - נוספו
crossbenchו-chromedriverליעדי בניית הביצועים (crrev.com/c/5521874, Bug: 338627700).
ChromeDriver 125
תכונות חדשות
- מצב המכשיר: נוספו פקודות של ChromeDriver לניהול מצב המכשיר, עם תמיכה בקטע 'אוטומציה' במפרט של מצב המכשיר. האפשרות הזו מאפשרת לבטל את ההגדרה של מצב המכשיר שנקבעה בחומרה, ולהסיר את הביטול באמצעות פקודות של תוסף (crrev.com/c/5437993, Bug: 330376761).
תיקוני באגים
- BiDi: שונה האחסון הזמני של פקודת BiDi הנכנסת
idמ-Doubleל-base::Value. כך אפשר לוודא שהערךidיוחזר בדיוק בתגובה ללא נקודה עשרונית או חלק עשרוני לא צפויים אחרי סריאליזציה של JSON (crrev.com/c/5444225, באג: 4676). - FedCM: החזרנו את השינוי להפעלת CORS בנקודת הקצה של הצהרת הזהות אחרי שהספקים של שירותי הזהות היו מוכנים (crrev.com/c/5440132, ביטול השינוי crrev.com/c/5381316, החזרה crrev.com/c/5370086, באג: 40284123).
- FedCM: תוקן באג שבו תיבת דו-שיח סומנה כסגורה בצורה לא תקינה. כדי לפתור את הבעיה, דאגנו שהיא תסומן כסגורה רק אם הפקודה
selectAccountמצליחה. הבעיה הזו נפתרת כשקוראים ל-selectAccountבלי בורר חשבונות צפוי (crrev.com/c/5398379, Bug: 331237776). נמנעת קריאה ל-fedcm_get_and_select_first_accountכשלא צפוי שיוצג בוחר חשבונות, כדי למנוע הפעלה של הבאג הזה (crrev.com/c/5398800). - בדיקה: תוקנה תקלה בבדיקת WPT
popover-light-dismiss.htmlעל ידי שילוב של רצפי פעולות ושימוש במסמך של המסגרת הראשית כמקור לפעולהpointerUp, וכך נמנעת שליחה שגויה של אירועיpointerUpבו-זמנית על ידי ChromeDriver במסגרות (crrev.com/c/5402096, Bug: 325981758). - בדיקות: תוקן באפשרות
wptrunnerכדי להעביר נכון את הפלט שלstderr(כולל יומני דפדפן שנכתבו כשמשתמשים ב---enable-chrome-logs) לארטיפקטstderrבמקוםcrash_log, והועברו שגיאות של harness (שכוללות את דוח הקריסות של הדפדפן) אלcrash_log(crrev.com/c/5437023, באג: 41494889). - בדיקה: תוקן באג
wptrunnerשגרם לניתוב יומני דפדפן אל ארטיפקט הבדיקה הנכון על ידי קיבוץ הפלט לפי תהליך ChromeDriver, וכך נמנעו יומנים משולבים ויתומים במהלך ביצוע בדיקות מקביליות (crrev.com/c/5320681, באג: 41494889).
שינויים פנימיים ושינויים במבנה הקוד
- BiDi: עודכנה התלות ב-BiDi Mapper, ושולבו שיפורים ותיקוני באגים בפרוטוקול העדכני ביותר (crrev.com/c/5433300, crrev.com/c/5393442, Bug: 4226). (הערה: שינוי קודם crrev.com/c/5374366 בוטל crrev.com/c/5374839 ואחר כך הוחזר עם השבתה של בדיקות לא יציבות ועדכון של הרישיונות crrev.com/c/5374914).
- אבחון: שילבנו את
StackTraceשל Chrome בחריגים של ChromeDriver. הדבר מאפשר להציג את דוח קריסות של הדפדפן בהודעת השגיאה כשפעילות נמחקת בגלל קריסה של דף או כרטיסייה (למשל, מצביעים לא תקינים ב-Mac), וכך משפר באופן משמעותי את יכולת הניפוי (crrev.com/c/5374371, באג: 330009945). - בדיקות: השבתנו באופן זמני את בדיקת השילוב הלא יציבה
testTakeLargeElementViewportScreenshotב-Mac (במיוחד ב-mac-arm64) (crrev.com/c/5447515, באג: 333826980). - בדיקה: עודכנו ארגומנטים להפעלת ChromeDriver בסביבות בדיקה (CEL) כך שיתאימו לתחביר של Selenium 4 ומעלה (crrev.com/c/5448812, באג: 308885357).
- בדיקה: חילצנו את שורת הפקודה המדויקת
chromeששימשה להרצת כל בדיקה של WPT מיומןchromedriverאל ארטיפקט של ResultDB בשםcommand. השינוי הזה מאפשר ניפוי באגים ידני באמצעותrun_blink_wptserve.py(crrev.com/c/5441189, Bug: 41494889). - תלויות: בוצעה הסרה של
Closureמרשימת התלויות שלselenium-atoms, וכתוצאה מכך היא הוסרה מההודעות של צד שלישי ב-ChromeDriver (crrev.com/c/5424804, באג: 4226). - תלויות: הוסרו תלויות לא בשימוש ב-
dynamic_annotationsבמאגר הבסיסי (crrev.com/c/3398908, Bug: 1282422). - עיצוב: הוחלה ההגדרה החדשה
clang-formatעל כותרות בעייתיות ב-Windows (crrev.com/c/5367127, באג: 329138753).
ChromeDriver 124
תכונות חדשות
- BiDi: נוסף שלב בנייה כדי למזער את הסקריפט
BiDiMapperלפני הטמעתו ב-ChromeDriver, כי עכשיו מורידים את מיפוי המקור ללא מזעור מ-CIPD (crrev.com/c/5310075, באג: 4226). - WebAuthn: נוספה הפקודה
SetCredentialProperties, שמאפשרת ללקוחות לעדכן את דגלי הגיבוי של פרטי כניסה של WebAuthn (crrev.com/c/5296389, Bug: 40945430). - WebAuthn: נחשפו דגלי גיבוי של WebAuthn דרך WebDriver על ידי הוספת
defaultBackupEligibilityו-defaultBackupStateלפקודה 'הוספת אמצעי אימות וירטואלי', ו-backupEligibilityו-backupStateלפקודה 'הוספת פרטי כניסה' (crrev.com/c/5297117, באג: 40945430). - בדיקות: נוספה תמיכה בארגומנט
--failfastבשורת הפקודה לבדיקות אינטגרציה של ChromeDriver Python, כדי לעצור את הרצת הבדיקה בשגיאה הראשונה ולעזור בניפוי באגים (crrev.com/c/5374546). - בדיקה: נוספה תמיכה ב-content-shell בפקודה
SetRPHRegistrationModewebdriver דרך ממשקי ה-API שלtestdriver-vendor.js(crrev.com/c/5205730, Bug: 1359103).
תיקוני באגים
- יציבות: העברנו את הבדיקה של תפוגת הזמן הקצוב לביצוע פעולה אל תוך גוף הלולאה של poll-and-wait ב-
ChromeImpl::SetWindowBounds. התיקון הזה פותר בעיה שבה, בעומס גבוה, פסק הזמן יכול לפוג לפני שהאיטרציה הראשונה של הלולאה מתרחשת (crrev.com/c/5366899, Bug: 4642). - ביצועים: צמצום זמן ההמתנה ב-
ChromeImpl::SetWindowBoundsעל ידי החלת השהיה מעריכית לפני ניסיון חוזר רק אם גבולות החלון עדיין לא הגיעו למצב הרצוי, וכך צמצום זמן האחזור של הגדרת WPT (crrev.com/c/5366457, באג: 4642). - הפעלה: ChromeDriver עודכן כך שישתמש ב-
--user-data-dirבמקום ב---data-pathכשמציינים את ספריית הנתונים שלcontent_shell, בהתאם לאופן שבו הוא קורא את יציאת DevTools הפעילה (crrev.com/c/5226609, באג: 1295373).
שינויים פנימיים ושינויים במבנה הקוד
- BiDi: עודכנה התלות ב-BiDi Mapper, כדי לכלול את התיקונים והתכונות האחרונים של הפרוטוקול (crrev.com/c/5374366, crrev.com/c/5349491, crrev.com/c/5317650, Bug: 4226). (הערה: הייתה חזרה קצרה לגרסה קודמת ואז חזרה לגרסה החדשה בגלל כשלים בבדיקות crrev.com/c/5374839, crrev.com/c/5368680, crrev.com/c/5319423).
- החלפנו את השימוש ב-
absl::optionalב-std::optionalבכל בסיס הקוד אחרי המעבר שלabsl::optionalלכינוי סוג (crrev.com/c/5296147, Bug: 1500249). - הוספנו תמיכה ב-
MiraclePtr(raw_ptr) למאגרי נתונים סטנדרטיים נוספים, כוללstd::list, std::unordered_set, base::flat_set, std::stackו-std::queue(crrev.com/c/5306923, Bug: 325302189). - הפונקציה
WriteBigEndian()הומרה לשימוש בהמרות של בייטיםbase::numericsאוBigEndianWriter(שמקבלת עכשיוbase::span), כדי לשפר את הבטיחות כשכותבים בייטים בפורמט big-endian (crrev.com/c/5202348, באג: 1490484). - החל שימוש ב-ChromeDriver להרצת בדיקות של פלטפורמת האינטרנט (WPT) עם
content_shell(לא כולל בדיקות וירטואליות ובדיקות השוואה שממתינות לתיקוני באגים במעלה הזרם) (crrev.com/c/5347371, Bug: 40214293). - המרנו את כל בדיקות האינטרנט הקיימות של Generic Sensor לשימוש ב-
test_driver.jsובחיישנים וירטואליים במקום ב-JS/Mojo mocks, בהתאם לקטע האוטומציה החדש במפרט של Generic Sensor (crrev.com/c/4770867, באג: 1278377, באג: 1471996). - שיפרנו את יצירת הרישיונות על ידי הוספת
append_notices.pyליצירת קרדיטים לתלות ב-BiDiMapperועדכון הקריאה ל-licenses.pyכך שתסתמך אך ורק על קובץ ה-README שלselenium-atomsלהודעות לצד שלישי (crrev.com/c/5350601, crrev.com/c/5339957, Bug: 4729, Bug: 4735).
ChromeDriver 123
תכונות חדשות
- FedCM: הצגת תיבות דו-שיח מודאליות לתהליכי לחצן של חשבון יחיד, כולל הוספת תמיכה בתצוגות מודאליות בממשק האוטומציה (crrev.com/c/5231438, באג: 1518356).
- FedCM: נוספה תמיכה ב-ChromeDriver לפתיחת קישורים בתיבות דו-שיח של FedCM, והם מטופלים כלחצנים כדי לפשט את האוטומציה (crrev.com/c/5225543, Bug: 1513520).
- חיישנים: שונו פקודות של חיישן וירטואלי ב-WebDriver כדי לקרוא זוויות אוילר (אלפא-בטא-גמא) במקום קווטרניונים, בהתאם לעדכונים האחרונים במפרט של חיישן הכיוון. שכבות פנימיות של CDP ושירותים עדיין משתמשות בקוורטניונים באמצעות שלב המרה (crrev.com/c/5229177, באג: 1506995, באג: 1520912, באג: 1520919).
תיקוני באגים
- Classic: תוקנה בעיה שבה החזרת צומת ממסגרת אחרת באמצעות סקריפט הובילה באופן שגוי לשגיאה
StaleElementReference. עכשיו הפונקציה מחזירהJavaScriptErrorבאופן תקין בהתאם לתקן WebDriver (crrev.com/c/5222746, Bug: 4668). - בדיקה: תוקנה בדיקה של אירועי גלילה מעבר לקצה שהייתה נכשלת ב-Chrome/ChromeDriver כי הגרירה במגע הייתה מתרחבת אל מחוץ לגבולות החלון. עכשיו הגרירה מוגבלת בצורה תקינה (crrev.com/c/5297676, באג: 40832230).
- בדיקות: תוקנו בדיקות MIDI כך שלא יבנו אובייקטי promise שלא לצורך, כדי למנוע דחיות של אובייקטי promise שלא טופלו וגרמו ל-ChromeDriver להיכשל בבדיקה (crrev.com/c/5239869, באג: 1499775).
open-close.https.html - בדיקות: תוקנה קבוצת ההרשאות בבדיקות
wpt_internal/system-wake-lock/idlharness*שבהןtest_driver.set_permission(...)העביר באופן שגוי אתfalseבמקוםnullאוWindowProxy, מה שגרם לבלבול ב-ChromeDriver (crrev.com/c/5271087, באג: 40287920).
שינויים פנימיים ושינויים במבנה הקוד
- BiDi: בוצעה העלאה של התלות ב-BiDi Mapper, ואחזור של התיקונים והתכונות האחרונים (crrev.com/c/5205452, crrev.com/c/5255321, crrev.com/c/5238148, crrev.com/c/5237125, Bug: 4226). (הערה: הייתה חזרה זמנית לגרסה קודמת ואז שוב עלייה לגרסה חדשה בגלל כשלים ב-build crrev.com/c/5238855).
- שיפרנו את תקינות הקוד של ChromeDriver על ידי הסרת המרות סטטיות לא בטוחות ממחלקת בסיס למחלקה נגזרת ב-
ChromeImplוב-DevToolsClientImpl, כדי למנוע התנהגות לא מוגדרת פוטנציאלית (crrev.com/c/5277062, crrev.com/c/5272562, Bug: 4702). - הסרנו המרות לא בטוחות ב-
WebViewImpl(crrev.com/c/5272230, Bug: 4702). - הוסרו טפסים שהוצאו משימוש של
base::Base64Encode(), בוצעה העברה ל-std::stringהחדש יותר שבו מוחזרת וריאציה במקום שימוש בפרמטרים של פלט (crrev.com/c/5179900, crrev.com/c/5246585, Bug: 1486214). - עודכנו כל ההוראות של
#includebase/...כך שישתמשו ב-""במקום ב-<>כדי לשמור על עקביות (crrev.com/c/5237376, באג: 1500249). - הועברו כל הקבצים
DIR_METADATAב-chrome/test/אל Buganizer (crrev.com/c/5284119, Bug: 1518875). - נמנעה יצירה של קובץ
-מקומי על ידי wptrunner כשמעבירים את-vvv, על ידי הסרת המתגchromedriver --log-path=-המיותר, כי stderr כבר מופנה ל-stdout (crrev.com/c/5282721). - שיפרנו את wptrunner כדי לסכם את תוצאות הבדיקה כשמתרחשות רגרסיות, כולל תוצאות של בדיקות משנה ועקבות מחסנית של ChromeDriver ישירות בפלט הסיכום (crrev.com/c/5238662, Bug: 1521922).
- הוספנו את הפרמטר
--remote-chromedriver-portל-run_py_tests.pyכדי לפשט את ניפוי הבאגים של בדיקות השילוב של ChromeDriver. כך אפשר להתחבר למופע קיים שפועל בניפוי באגים (crrev.com/c/5237254, Bug: 4693). - בוצעו שינויים כדי להימנע מקריאות עם שני ארגומנטים ל-
base::HexEncode()ול-RandBytes(), כדי לאפשר לקומפיילר להסיק את הגודל הנכון ולפשט את הקוד (crrev.com/c/5241357).
ChromeDriver 122
תיקוני באגים
- BiDi: עודכן תהליך הסריאליזציה של צומת עמוק כדי לכלול את
loaderId, וכך לאפשר ל-ChromeDriver ול-BiDi Mapper להפנות לצמתים ולבטל את ההפניה אליהם בצורה תקינה בלי לבצע יותר מדי הלוך ושוב (crrev.com/c/5116240, Bug: 1420968). - יכולות: בוצע עדכון של ChromeDriver כדי להעביר את היכולת
acceptInsecureCertsל-BiDi Mapper מיד עם ההפעלה, וכך למנוע מצבי מירוץ שבהם יכול להיות שהיכולת תופעל מאוחר מדי (crrev.com/c/5125711, באג: 4643). - Classic: שינוי הארכיטקטורה של יצירת הפניות לרכיבים לשימוש בפורמט
<frame_id>.<loader_id>.<backend_node_id>. השינוי הזה מאפשר ל-ChromeDriver להבחין באופן חד משמעי בין הפניות לרכיבים שהן תקפות, לא ידועות או לא עדכניות, במהלך ניווט בין מסגרות ועדכונים ב-DOM (crrev.com/c/5094519, Bug: 4379). - קלאסי: תוקנה בעיה שבה הפקודה
window/handlesעלולה להיכשל עם השגיאה 'no such window' אם יעד שנוצר לאחרונה נסגר (למשל, במצב של מרוץ תהליכים) לפני ש-ChromeDriver יכול להתחבר אליו (crrev.com/c/5147409, באג: 1506833). - FedCM: נוסף רכיב event listener פנימי כדי לשלוח הודעה כשתיבת דו-שיח של FedCM נסגרת, וכך נמנעת החזרת נתונים לא עדכניים מהפקודה
dialogtypeאם תיבת הדו-שיח נסגרה באופן חיצוני (למשל, באמצעותAbortController.abort) (crrev.com/c/5067504, באג: 1506292). - FedCM: הוסר קידומת הספק מהפקודה
ClickDialogButtonכי היא אושרה במפרט FedCM (crrev.com/c/5092527, Bug: 1499341).
שינויים פנימיים ושינויים במבנה הקוד
- BiDi: העלינו את התלות ב-BiDi Mapper לגרסה האחרונה (crrev.com/c/5205452, Bug: 4226).
- צמצום התנועה של ChromeDriver ושל פרוטוקול כלי הפיתוח ל-Chrome (CDP) על ידי הסרת קריאות מיותרות ל-
Page.enableשנשלחות מכלDevToolsEventListener, כיDevToolsClientImplכבר מטפל בזה לכל יעד (crrev.com/c/5088789, באג: 4600). - שינינו את כל ה-builders של Wptrunner עבור
content_shellלסטטוס ניסיוני, כי כרגע אין תמיכה מלאה בהרצת בדיקות במצב פרוטוקול בזמן שמתבצעת אינטגרציה של ChromeDriver (crrev.com/c/5225148, באג: 1474702). - דילוג על בדיקות שנדרש בהן
window.test_driver_internal.get_computed_roleב-content_shellכי היא עדיין לא הוטמעה, כדי למנוע כשלים ב-TypeError(crrev.com/c/5189678, באג: 1517744). - החזרנו את השינוי המהותי כדי להשתמש בדגלי
IS_OZONE_{X11, WAYLAND}שאינם תלויים בפלטפורמה במקום בדגליOZONE_PLATFORM_*(crrev.com/c/5086329, Bug: 1500494). - הועלתה התלות ב-
selenium-atomsלגרסה האחרונה (crrev.com/c/5110808, Bug: 4662). - תוקן היגיון בבדיקות SnapEvents כשמריצים אותן מול קובץ הבינארי המלא של Chrome על ידי עיגול של קלט תנועת מצביע, אכיפה של הפרמטר
originלגבי גלילה ושימוש בהצהרות קירוב (assert_approx_equals) כדי לטפל בפערים בגלילה או בהיסטור חלקיים (crrev.com/c/5097343). - נוסף העוזר
StringPrintfNonConstexpr()כדי להבחין ביןStringPrintf()לבין מחרוזות פורמט שהן לא קבועות בזמן הקומפילציה (crrev.com/c/4950568, באג: 1371963). - הובטח שפונקציית ההמרה של מאקרו rust
chromium::import!היא פונקציה חד-חד-ערכית כדי למנוע התנגשויות בשמות של יעדי GN שנוצרו (crrev.com/c/5132119, באג: 1512174). - בוצע ניקוי של ההטמעה של
ScopedTempDirWithRetryעל ידי הוספת בנאי והחזרות מוקדמות ב-destructor (crrev.com/c/5113843).
ChromeDriver 121
תכונות חדשות
- בדיקות: נוספה תמיכה בהרצת בדיקות משולבות של ChromeDriver (
chromedriver_py_test) מולchrome-headless-shellבנוסף לדפדפן Chrome הרגיל בבוטים של בנייה. השינויים כוללים את האפשרות לגלות את הקובץ הבינארי של הדפדפן על סמך הפרמטר--browser-nameולהפעיל באופן מותנה קבוצות בדיקה ספציפיות (crrev.com/c/4995189, crrev.com/c/4989442, Bug: 4358).
תיקוני באגים
- יציבות: בוצעה אתחול של ברירת המחדל
KeyboardLayoutEngineכ-StubKeyboardLayoutEngineכדי למנוע קריסות של ChromeDriver שנגרמות כתוצאה מ-DCHECKב-KeyboardLayoutEngineManager::SetKeyboardLayoutEngine(crrev.com/c/5017859, באג: 4625). - יציבות: תוקנה בעיה שגרמה ל-ChromeDriver לקרוס אם השרשור של הסשן ביקש לסגור חיבור אחרי שהלקוח כבר ביקש לסגור את אותו חיבור (crrev.com/c/4994636, באג: 4606).
- ניהול משאבים: תוקנו דליפות משאבים בבדיקות השילוב של ChromeDriver (
RemoteBrowserTest) על ידי הבטחה שתהליך הדפדפן יסתיים גם אם פקודת ChromeDriver תגרום לחריגה (crrev.com/c/5009554, Bug: 4614). - ניהול משאבים: הטמענו לוגיקה בבדיקות השילוב של ChromeDriver כדי לזהות ולסיים תהליכי דפדפן שננטשו על ידי תהליך ChromeDriver (crrev.com/c/5014093, באג: 4617).
- הפעלה: תוקנה בעיה שבה
chrome-headless-shellהחזיר רשימת יעדים ריקה, מה שמנע יצירת סשן, על ידי הוספת הארגומנטdata:,לשורת הפקודה של הדפדפן כשהשם של הדפדפן הואchrome-headless-shell(crrev.com/c/5010392, crrev.com/c/5009535, Bug: 4615, Bug: 4358). - FedCM: נוסף אירוע חדש כדי לשלוח הודעה כשתיבת דו-שיח של FedCM נסגרת, וכך לוודא ש-
dialogtypeופקודות אחרות לא יחזירו נתונים לא עדכניים אם תיבת הדו-שיח נסגרה באופן חיצוני (למשל, באמצעותAbortController.abort) (crrev.com/c/5067504, Bug: 1506292). - בדיקות: תוקנו והופעלו מחדש כל בדיקות השילוב של ChromeDriver שהושבתו בעבר ב-
chrome-headless-shellב-Windows (crrev.com/c/5027594, באג: 4358). - בדיקות: החלשנו טענות מחמירות מדי ב-
testElementRegionTestכדי להתאים לתקן WebDriver, וכך פתרנו בעיות שנובעות ממוזרויות של עיבוד בדפדפן (crrev.com/c/5017865, באג: 4526).
שינויים פנימיים ושינויים במבנה הקוד
- BiDi: עודכן רכיב BiDi Mapper (crrev.com/c/4994305, Bug: 4226).
- הוחזרה לשימוש הפונקציה
IS_OZONE_{X11, WAYLAND}במקוםOZONE_PLATFORM_*בגלל באג (crrev.com/c/5086571, החזרה לגרסה הקודמת crrev.com/c/5083096, באג: 1500494). - הועבר קוד ב-
commands_unittest.ccלשימוש ב-base::BindLambdaForTestingבמקום ב-base::Passedשיצא משימוש (crrev.com/c/5078589, Bug: 1326449). - בוצע refactoring של
session.newכדי לחלץ את הטיפול ביכולות של קוד חוזר (למשל,testName,binary,browserName) לשיטה ייעודית, והובטח שהפקודה תכבד את היכולות באופן דומה לפקודה הקלאסית (crrev.com/c/5004665, crrev.com/c/5001510, Bug: 4358, Bug: 4610). - הוסר השימוש בכותרת
base/strings/string_piece_forward.hשהוצאה משימוש (crrev.com/c/5008994, באג: 691162). - הכנה למעבר של
net::IOBufferלמחלקה ללא בעלות באמצעותnet::IOBufferWithSizeלמקרים של בעלות (crrev.com/c/4996470, באג: 1493389). - הוספנו את
base::RandBytesAsVector()כדי להימנע מאחסון ערכים בינאריים במחרוזות (crrev.com/c/5018451). - השבתנו כמה בדיקות שילוב של Python ב-Mac שנכשלו באופן עקבי, כדי למנוע מהן לגרום לבנייה ירוקה בגלל ניתוח LUCI שזיכה אותן (crrev.com/c/4998771, Bug: 1486604, Bug: 1486520, Bug: 1486474, Bug: 1481915).
- שונה השם של
webdriver_tests_suite(ושלwpt_tests_suite) ל-chrome_wpt_testsכדי ליצור סטנדרטיזציה של מוסכמות למתן שמות לחבילת WPT ב-Linux try builders (crrev.com/c/5014293, Bug: 1474702). - הפקודה
ConfirmIdpLoginFedCM webdriver הותאמה מחדש לפקודהClickDialogButtonעם יכולת הרחבה גדולה יותרClickDialogButtonשמקבלת פרמטרDialogButton(crrev.com/c/5003255, Bug: 1499341). - עדכנו את התלות ב-
crossbenchעם תיקונים ותכונות רבים, כולל ניתוח טוב יותר של סוגי דרייברים, קובצי stub של רשת ותמיכה ב-iOS (crrev.com/c/5009937). - נוסף התג
#include <string>החסר ל-chrome_finder.hלצורך תאימות ל-IWYU (crrev.com/c/4994605, באג: 957519).
ChromeDriver 120
תכונות חדשות
- BiDi: נוספה תמיכה בפקודות
session.newו-session.end, שמאפשרות למשתמשים ליצור ולהפסיק סשנים ישירות באמצעות פקודות BiDi (crrev.com/c/4941941, באג: 4496). - BiDi: נוספה תמיכה בפקודה
session.statusPureBiDi, שמאפשרת למשתמשים ליצור חיבור WebSocket שלא קשור לאף סשן ולאחזר את סטטוס הסשן (crrev.com/c/4938596, Bug: 4496). (הוחזר אחרי ביטול קודם ב-crrev.com/c/4922097) - BiDi: עודכנה התלות ב-BiDi Mapper והותאמה לתהליך ההפעלה החדש והפשוט של Mapper (crrev.com/c/4952609, Bug: 4226).
- חיישנים: הטמענו פקודות של חיישנים וירטואליים ב-
browser_protocol.pdlובשכבת ה-CDP (דומיין האמולציה), והוספנו תמיכה בקטע הפעולות האוטומטיות של מפרט החיישן הכללי (crrev.com/c/4770864, באג: 1278377). - חיישנים: נוספו פקודות הרחבה של ChromeDriver לניהול חיישנים וירטואליים, שמתרגמות פרמטרים של WebDriver לקריאות CDP חדשות (crrev.com/c/4770866, באג: 1278377).
- חיישנים: נוסף נתיב קוד
content_shellלשינוי חיישנים וירטואליים באמצעותtestdriver.js, תוך עקיפה מלאה של ChromeDriver לבדיקות אינטרנט (crrev.com/c/4770865, באג: 1278377). - אמצעים לצמצום מעקב: נוספה תמיכה ב-ChromeDriver באמצעים לצמצום מעקב אחרי הפניה אוטומטית (DIPS), שמאפשרת אוטומציה של מפרט
nav-tracking-mitigations(crrev.com/c/4873672, באג: 1474656). (הערה: השינוי הזה בוטל באופן זמני בגלל כשלים בבדיקות ב-Mac בכתובת crrev.com/c/4938394)
תיקוני באגים
- הפעלה: הוספנו ל-ChromeDriver את האפשרות לאתר את Headless Shell, כך שהוא יכול לחפש את הקובץ הבינארי
chrome-headless-shellאם מתקבלת בקשה דרך היכולות ולא מצוין נתיב מפורש (crrev.com/c/4987262, באג: 4358). (Relanded after a previous revert in crrev.com/c/4984449) - WebSockets: הוטמעה תמיכה חלקית ב-WebSocket Closing Handshake, כדי להבטיח ש-ChromeDriver יגיב עם פריים
CLOSEכשמתקבל פריים כזה מהקצה המרוחק (crrev.com/c/4931500, Bug: 4499). - הרשאות: נחשף
options.disclaim_responsibilityכדגל build כדי לאפשר ל-builds של ספקים (כמו Microsoft Teams) להשבית אותו, וכך למנוע מהנחיות ההרשאה ב-macOS לעכב את האוטומציה של הבדיקות (crrev.com/c/4929495, Bug: 1223643). - תאימות לתקן C++: תוקן התנהגות לא מוגדרת (UB) שזוהתה על ידי UBSan כשמבצעים המרה של ערך double מחוץ לטווח לערך int על ידי הוספת בדיקות טווח (crrev.com/c/4980055, באג: 1394755).
- FedCM: הוסר התמיכה בתחביר הישן של הכותרת, כדי להבטיח תאימות לתחביר הסטנדרטי
login-status-http(crrev.com/c/4957073, באג: 1381501).
שינויים פנימיים ושינויים במבנה הקוד
- נוספה בדיקת שילוב של
testReturnFrameElementכדי לאמת את ההתנהגות של ChromeDriver בנוגע לטיפול ב-window.frameElementכהפניה לא עדכנית (crrev.com/c/4983549, באג: 4477). - שיפור הרישום ביומן על ידי הבטחה ש-ChromeDriver ירשום ביומן את הנתיבים הספציפיים שבהם הוא מנסה לאתר את הקובץ הבינארי של הדפדפן (crrev.com/c/4976116, באג: 4539).
- שונה השם של פונקציות שונות של
base::Timeכדי שיהיה יותר תיאורי (לדוגמה,FromDoubleT()ל-FromSecondsSinceUnixEpoch()) (crrev.com/c/4956111). - בוצע רפקטורינג של הקונסטרקטור
net::StringIOBufferוהמופעיםIOBufferכדי למנוע עותקים מיותרים של מחרוזות והקצאות באורך אפס (crrev.com/c/4938384, crrev.com/c/4959174). - בוצע ניקוי של הטיפול במחרוזות על ידי החלפת
base::StrCatב-+במקומות הרלוונטיים ושימוש ב-base::AppendHexEncodedByte()(crrev.com/c/4963465, crrev.com/c/4977165). - לשיפור הבהירות, השם
DIR_SOURCE_ROOTהוחלף בשםDIR_SRC_TEST_DATA_ROOTבבדיקות//chrome*(crrev.com/c/4916045, Bug: 1264897). - השבתנו בדיקות לא יציבות
PureBidiTestב-Mac builders (crrev.com/c/4983555, Bug: 1496826).
ChromeDriver 119
תכונות חדשות
- BiDi: הוטמעה תמיכה בפתרון של הפניות חלשות לאובייקטים מקומיים שמוחזרות על ידי הקצה המרוחק במהלך קריאות לפונקציות מרוחקות (crrev.com/c/4886760, באג: 4536).
- FedCM: נוספה הפקודה
confirmidpsigninעם הקידומת של הספק כדי לתמוך בגרסת מקור לניסיון של IDP Sign-In Status API (crrev.com/c/4811725, Bug: 1451884).
תיקוני באגים
- אמולציית ניידים: תוקנה בעיה שבה מכשירים מוגדרים מראש ללא איסוף אותות בצד הלקוח (למשל, קונפיגורציות ישנות יותר) נשברו בגלל מילוי שלהם בערכי ברירת מחדל הגיוניים (crrev.com/c/4887254, Bug: 4550).
- קלאסי: סודר באגים בסריאליזציה של אובייקטים מסוג
Mapו-Set. הם עוברים עכשיו סריאליזציה נכונה בתורObjectולא בתורCollection, כי חסרה להם מאפייןlength(crrev.com/c/4881378, באג: 4031). - Classic: הוחזרה הלוגיקה להורדה ולשימוש תמיד בגרסה התואמת העדכנית של ChromeDriver במהלך הבדיקות, עם חזרה לגרסאות ספציפיות רק כשמתעוררות בעיות תאימות (crrev.com/c/4779613, חזרה לגרסה crrev.com/c/4778973).
- FedCM: בוצע סטנדרטיזציה של פקודות האוטומציה של הדפדפן על ידי שינוי השם של
Signinל-Login(confirmidplogin) כדי להתאים לדיונים האחרונים במפרט FedCM (crrev.com/c/4901302, Bug: 1451884). - בדיקות: תוקנו בדיקות FedCM שנכשלו כשקובצי Cookie של צד שלישי הושבתו, על ידי הפעלה מפורשת של IDP Sign-In Status API במהלך ביצוע הבדיקה (crrev.com/c/4889802, באג: 1484833).
- בדיקה: החלפנו את ה-placeholder של כתובת ה-URL הלא תקינה
~NOTFOUNDב-^NOTFOUNDב-test runners כדי לעמוד בדרישות של שינויים קרובים באכיפת תקן כתובות ה-URL של Chromium (crrev.com/c/4845589, Bug: 1416013).
שינויים פנימיים ושינויים במבנה הקוד
- BiDi: עודכן המיפוי של BiDi לתלות בגרסה 0.4.27, עם התיקונים והתכונות העדכניים ביותר (crrev.com/c/4862031, crrev.com/c/4890322).
- החלפנו כמה ממשקי API של מצביעים ואורכים ב-
//urlב-std::string_viewכדי לשפר את הבטיחות והנוחות (crrev.com/c/4897456). - העברנו את כלי השירות
generateWebDriverValueלשימוש באפשרות של סריאליזציה עמוקה (serializationOptions.serialization: deep) שסופקה באופן מקורי על ידי פרוטוקול BiDi (crrev.com/c/4889644). - נוספו בדיקות שילוב כדי לוודא שחיפוש בהפניה לרכיב לא עדכני מחזיר בצורה נכונה שגיאה של הפניה לרכיב לא עדכני (crrev.com/c/4886793, באג: 4440).
- שיפור העיצוב של סגנון הקוד ב-
call_function.js(crrev.com/c/4882511, באג: 4031). - שיפור המשוב מהמשתמשים על ידי הודעה מפורשת למשתמשים כשהם מתחברים באמצעות WebSockets, שלצינורות יש תמיכה ומומלץ להשתמש בהם כדי לשפר את המהימנות והאבטחה (crrev.com/c/4882626, באג: 3480).
- עדכנו את חבילת התצורה של WPT כדי לארכב
results.htmlלבדיקותwebdriver_tests_suite, וכך מספקים ממשק משתמש טוב יותר לצפייה בתוצאות (crrev.com/c/4873223). - תוקן שילוב של כלי הפיתוח עם WebView על ידי סימון WebView WebContents והגדרת סוג כלי הפיתוח שלהם ל-
popup_pageבמקום ל-other(crrev.com/c/4842093). - שינינו את השם של יעד הבנייה WPT
chrome_wptל-chrome_wpt_testsכדי לשמור על עקביות, והסרנו את היעד המיותרwebdriver_wpt_tests(crrev.com/c/4847474, באג: 1474702). - הועבר
run_py_tests.pyמהספרייהoptparseשיצאה משימוש אלargparse(crrev.com/c/4849411, באג: 4557).
ChromeDriver 118
תכונות חדשות
- בדיקות שילוב: הוספנו בדיקות שילוב של C++ ל-ChromeDriver, שמאפשרות לבדוק מחלקות ספציפיות מול תנועה אמיתית של CDP, וכך לגשר על הפער בין בדיקות יחידה לבין בדיקות שילוב של Python (crrev.com/c/4707855, באג: 4528).
- Crossbench: עדכנו את התלות ב-
crossbenchעם שיפורים רבים, כולל סיפורים חדשים של מדדי ביצועים של צריכת חשמל, תמיכה משופרת בפלטפורמות ובמכשירים, ניפוי באגים משופר ותיקונים שונים (crrev.com/c/4803743).
תיקוני באגים
- יכולות: תוקנה בעיה שבה
debuggerAddressהיה חסר ביכולות שהוחזרו בהגדרות ברירת המחדל. עכשיו הוא מוחזר בצורה תקינה כדי לתמוך בתקשורת BiDi מבוססת CDP של Selenium (crrev.com/c/4789068, Bug: 4533). - יכולות: הובטח ש-ChromeDriver יחזיר ערכים סטנדרטיים של
platformName(לדוגמה, 'linux', 'windows', 'mac') כנדרש במפרט של WebDriver (crrev.com/c/4797735, Bug: 4548).
שינויים פנימיים ושינויים במבנה הקוד
- הועבר קוד ב-
MockSocketכדי להעדיףbase::span<>על פני מצביעים גולמיים לשיפור הבטיחות (crrev.com/c/4832086). - הוסרו שימושים מיושנים ב-
base::raw_ptrוב-base::raw_refלטובת הטפסים הלא מוסמכים שלהםraw_ptrו-raw_refבאמצעות ניקוי אוטומטי (crrev.com/c/4773481). - החזרנו באופן זמני שינוי שתמיד השתמש ב-ChromeDriver העדכני ביותר, כי הוא גרם לקריסות בערוצי Windows יציבים/בטא (crrev.com/c/4778973, החזרה crrev.com/c/4777430).
- התאמות בהגדרות של WPT (Web Platform Tests), כולל השבתה של כשלים לניפוי באגים בלבד ב-
pointer_touch.pyוהטמעה של אימות מיקוד בצד הדפדפן עבור מסגרות מגודרות (crrev.com/c/4844810, crrev.com/c/4572517). - נוספה התכונה החסרה
#include <vector>אלclient_hints.hלצורך תאימות ל-IWYU (crrev.com/c/4767547). - הועברו סוגי בסיס ספציפיים ל-Apple (
ScopedTypeRef,ScopedCFTypeRef,scoped_nsautorelease_pool) למרחב השמותbase::apple::, והושארו כותרות זמניות להעברה ב-Crashpad (crrev.com/c/4799213, crrev.com/c/4790744, crrev.com/c/4790741, crrev.com/c/4784010).
ChromeDriver 117
תכונות חדשות
- תקשורת באמצעות צינורות: שינינו את מצב התקשורת שמוגדר כברירת מחדל בין ChromeDriver ל-Chrome מ-WebSockets לצינורות (
--remote-debugging-in-pipeו---remote-debugging-out-pipe) בכל הפלטפורמות הנתמכות, כולל Windows (crrev.com/c/4634299, crrev.com/c/4628834, crrev.com/c/4635378, Bug: 3480). - BiDi: עודכן יחסי התלות של BiDi Mapper (crrev.com/c/4670516, Bug: 4226).
תיקוני באגים
- יציבות: תוקנה גישה למצביע null שגרמה לקריסת ChromeDriver, וכתוצאה מכך לשגיאות
ConnectionRefusedבמהלך הרצת הבדיקות (crrev.com/c/4675633, באג: 1457101). - ניווט: תוקנה בעיה שבה שגיאות
NoSuchExecutionContextו-NoSuchWindowשל Chrome במהלך הניווט לא טופלו באופן אחיד. עכשיו הן ממופות כראוי לניסיון חוזר של הפעולה (crrev.com/c/4667156, Bug: 4459). - אמולציית נייד: תוקן היסק הלוגיקה של
clientHints.mobile. עכשיו הוא מוסק בצורה נכונה מ-userAgentב-Android ומוגדר כברירת מחדל כ-false בפלטפורמות אחרות. כך נפתרה בעיה שבה טאבלטים דווחו בצורה שגויה כניידים (crrev.com/c/4649348, Bug: 4243). - יצירת סשן: עדכנו את יצירת הסשן כדי להחזיר באופן תקין את קוד השגיאה הסטנדרטי
SessionNotCreatedבמקרה של כשל, בהתאם למפרט W3C WebDriver (crrev.com/c/4638223, Bug: 4379). הערה: השינוי הזה בוטל בהמשך, כי נתיבי קוד ספציפיים מסוימים דורשים קודי שגיאה שונים (crrev.com/c/4651188).
שינויים פנימיים ושינויים במבנה הקוד
- הסרנו את הסקריפטים של תהליך ההפצה הידני של ChromeDriver, כי עכשיו ChromeDriver משולב באופן מלא בתהליך ההפצה של Chrome וזמין דרך התשתית של Chrome for Testing (crrev.com/c/4520687, Bug: 4142).
- העברנו את התשתית של WPT (Web Platform Tests) לשימוש ב-
wptrunnerharness הרשמי במקום ב-run_webdriver_tests.pyהמותאם אישית, מה ששיפר משמעותית את מהירות הביצוע והאמינות, ומוודא ש-ChromeDriver מופעל מחדש בין הבדיקות כדי לבודד קריסות (crrev.com/c/4723147, crrev.com/c/4676070, crrev.com/c/4639168). - בוצע רפקטורינג נרחב של
ChromeLauncherושל מחלקות קשורות כדי לתמוך במעבר לצינורות, להפחית את הצימוד ל-DevToolsHttpClientולהעביר את הלוגיקה של WebSocket לענפים ייעודיים (crrev.com/c/4632801, crrev.com/c/4674345). - שונה השם של השדה המטעה
BrowserInfo.is_headlessל-BrowserInfo.is_headless_shellלשם הבהרה (crrev.com/c/4650452, באג: 4358). - החלפנו שיטות שונות שהוצאו משימוש
base::Valueבשיטות מודרניות שוות ערךbase::Value::Dict(לדוגמה,FindDouble(), Set(), size()) בכל בסיס הקוד (crrev.com/c/4258936, crrev.com/c/4336805, crrev.com/c/4461067).112.0.5603.0, 113.0.5653.0, 114.0.5733.0 - הוסר השימוש ב-
[w]ctype.hלטובת כלי מחרוזות בסיסיים בטוחים יותר, והוטמעו אמצעים חדשים ל-base::expected(crrev.com/c/4749459, crrev.com/c/4755226). - הטמענו פקודות אוטומציה של
get_fedcm_dialog_titleו-select_fedcm_accountב-TestDriverעבור WPT של FedCM (crrev.com/c/4618303). - סקריפטים של BiDi mapper build עודכנו כדי לפעול בצורה תקינה ללא קשר לספריית העבודה הנוכחית (crrev.com/c/4670550).
- המרנו קובצי
/chrome/test/chromedriverלשימוש ב-ARC (ספירת הפניות אוטומטית) בגרסאות macOS, והוספנו את ה-boilerplate הנדרש (crrev.com/c/4663602). - נעשה ניסיון להשבית את התקשורת דרך צינורות כברירת מחדל באמצעות קומיט אוטומטי של אישור, אבל השינוי השפיע רק על ההגדרה בלי לשנות את התנהגות הליבה של צינורות כברירת מחדל שהוצגה קודם (crrev.com/c/4683947).
ChromeDriver 116
תכונות חדשות
- FedCM: נוספה יכולת חדשה שמאפשרת ללקוחות לבדוק אם ChromeDriver תומך בפקודות FedCM בלי להריץ אותן ולתפוס שגיאות (crrev.com/c/4624924, Bug: 1356159).
- בדיקה: הופעלה האפשרות לשימוש חוזר בחלון בדיקה לבדיקות testharness שמופעלות דרך ChromeDriver ב-
wptrunnerכדי להעריך את ההשפעה שלה על הביצועים ועל חוסר היציבות (crrev.com/c/4515180, באג: 1394572).
תיקוני באגים
- תאימות לתקן C++: תוקן באג שגרם להתנהגות לא מוגדרת בגלל שימוש לא נכון בספירות מוגבלות (enum class) ישירות במחרוזות פורמט, וטופלו אזהרות חדשות של מהדר Clang (crrev.com/c/4628112, Bug: 1456289).
- FedCM: תוקן מקרה קצה שמנע מ-
setdelayenabledלפעול בצורה תקינה, וכך נפתרה בעיה פוטנציאלית של חוסר יציבות בבדיקות (crrev.com/c/4606064, Bug: 1453412).
שינויים פנימיים ושינויים במבנה הקוד
- BiDi: עודכנה התלות ב-BiDi Mapper וסקריפט הבנייה עודכן כך שימשוך את הגרסה האחרונה מ-'main' כברירת מחדל (crrev.com/c/4615087, crrev.com/c/4615791, Bug: 4226).
- העברנו את ChromeDriver לפתיחה ולכתיבה של כל הקבצים באמצעות קידוד UTF-8 באופן מפורש (crrev.com/c/4614522).
- בוצע רפקטורינג ב-
ChromeImplכדי לבטל את התלות שלה ב-DevToolsHttpClient, והשימוש ב-SyncWebSocketFactoryוב-BrowserInfoצומצם לקראת תקשורת באמצעות צינורות במקום WebSockets (crrev.com/c/4571690, crrev.com/c/4571199, Bug: 3480). - הסרנו את האפשרות 'מצב ברירת מחדל' שהוצאה משימוש עבור מסגרות בלי שיתוף נתונים, ועדכנו את הבדיקות המשויכות כדי להפעיל את feature flag החדש, והמשכנו את המיגרציה למכרזים של FLEDGE (crrev.com/c/4558645).
- שיפור הבדיקות של FedCM על ידי החלפת הצהרות כלליות של
WaitForConditionב-assertTrueכדי לציין בבירור מתי מתרחשים פסק זמן (crrev.com/c/4590211). - סימון אזהרות ידועות על בדיקות יחידה לא יציבות שנותרו ללא מענה ב-
linux-rel(crrev.com/c/4598070).raw_ptr - קובץ הבעלים של כלי המיפוי BiDi עודכן (crrev.com/c/4614518).
ChromeDriver 115
תכונות חדשות
- אמולציית נייד: הוספנו תמיכה באיסוף נתונים מותנה באותות לסוכן המשתמש (UA-CH) באמולציית נייד, כדי לאפשר ל-ChromeDriver לנתח איסוף אותות בצד הלקוח מתוך יכולות והגדרות קבועות מראש, ולהעביר אותן ל-Chrome (crrev.com/c/4498667, crrev.com/c/4466129, Bug: 4243).
- אמולציית נייד: בוצע עדכון של הגדרות קבועות מראש של אמולציית נייד כדי להשתמש בגרסה הראשית של דפדפן המארח במקום בגרסת ChromeDriver, כשמחליפים את מחרוזת הפורמט
%sבסוכן המשתמש (crrev.com/c/4502850, באג: 4243). - הגדרה: נוספה תמיכה בהורדה של גרסה ספציפית של ChromeDriver לערוץ נתון, כדי לשפר תרחישי אוטומציה שבהם ChromeDriver פועל בפלטפורמה שונה (כמו Android/WebView) מהמארח (crrev.com/c/4550281).116.0.5791.0
תיקוני באגים
- Classic: תוקנה בעיה שבה אם לא הייתה אפשרות לפתור צומת, הוחזרה שגיאה
UnknownErrorבמקום השגיאה הרגילהNoSuchElement(crrev.com/c/4508952, Bug: 4440). - אמולציית נייד: נוספו טענות מחמירות יותר להגדרות הקבועות של אמולציית נייד, כדי לוודא שהדגל
clientHints.mobileיהיה true אם המחרוזתuserAgentמכילה את הערך Mobile (crrev.com/c/4507142, באג: 4243). - אמולציית נייד: בוצעה העברה של
DeviceMetricsoverrides לשימוש בפקודהEmulation.setDeviceMetricsOverrideCDP במקום המקבילה של הדומייןPageשהוצאה משימוש (crrev.com/c/4502614, Bug: 4243).
שינויים פנימיים ושינויים במבנה הקוד
- BiDi: עודכן רכיב ה-BiDi Mapper, ועכשיו אפשר להשתמש בתכונות של סריאליזציה עמוקה (crrev.com/c/4535936, crrev.com/c/4512195).
- הסרנו את השיטה
Connectשהוצאה משימוש מ-DevToolsClientלקראת העברת ChromeDriver לתקשורת באמצעות צינורות (crrev.com/c/4521485, באג: 3480). - העברנו את בסיס הקוד כדי להעדיף את
base::Value::Dictעל פניbase::Valueוהחלפנו שיטות שהוצאו משימוש כמוFindStringKey(),SetKey()ו-SetByDottedPath()(crrev.com/c/4529788, crrev.com/c/4522701, crrev.com/c/4515800, crrev.com/c/4507150). - בוצע מעבר לשימוש בפונקציות
string_util.hבמקום[w]ctype.hלהמרות בטוחות יותר של סוגים (crrev.com/c/4529187). - שינינו את הלוגיקה של טעינת קובץ ה-seed כך שתשתמש בנתיבים מוחלטים כדי להבטיח עקביות כשסקריפטים ו-Chrome פועלים במיקומים שונים (crrev.com/c/4504656).
- הוסרה השיטה
CallAsyncFunction()שלא הייתה בשימוש מ-web_view.h(crrev.com/c/4518363, Bug: 3376). - בוצע שינוי אוטומטי של השם
base::raw_ptrל-raw_ptrבהתאם להעדפות של מדריך הסגנון (crrev.com/c/4476651).
ChromeDriver 114
תכונות חדשות
- Classic: העברת מידע על
MobileDeviceאלMobileEmulationOverrideManagerכדי להכין את הקרקע לשימוש עתידי באיסוף אותות בצד הלקוח ולביטולים של UserAgent (crrev.com/c/4447524). - בדיקות: נוספו בדיקות ל-ChromeDriver (crrev.com/c/4459939).
תיקוני באגים
- Headless: תוקן קריסה במצב החדש של Headless. הקריסה תוקנה על ידי התעלמות שקטה מבקשות של תצוגה מקדימה להדפסה מתוך סקריפט (למשל,
window.print()), כך שההתנהגות תהיה זהה להתנהגות במצב הישן של Headless (crrev.com/c/4436313, Bug: 4385). - יכולות: תוקן באג מסוג use-after-move ביכולות של ChromeDriver (crrev.com/c/4462094, Bug: 4243).
- DevTools: הוסר
DCHECKב-DevToolsClientImpl::SendCommandInternalכדי למנוע קריסות כשחיבור כלי הפיתוח נקטע, כי זה לא הפרה של אינווריאנט (crrev.com/c/4370486, באג: 4385).
שינויים פנימיים ושינויים במבנה הקוד
- BiDi: עודכנה התלות ב-BiDi Mapper (crrev.com/c/4418727).
- טפלנו בכמה אזהרות לגבי מצביעים לא חוקיים במהלך הפעלת בדיקות יחידה, באמצעות ניהול נכון של הפניות לא בבעלות והשמדה מקומית ב-
WebViewImplובבדיקות של כלי הרישום של הביצועים (crrev.com/c/4374824, crrev.com/c/4368179). - הועבר בסיס קוד לשימוש ב-API החדש
base::Valuev2, והוחלפו שיטות שהוצאו משימוש כמוValue::SetPath(),Value::SetStringPath()ו-base::ListValue(crrev.com/c/4452309, crrev.com/c/4431420, crrev.com/c/4422897, crrev.com/c/4377520). - החלפנו את כל המקרים של
base::GUIDב-base::Uuidכדי להתאים לשינוי השם של ספריית הבסיס המרכזית (crrev.com/c/4455083). - בוצעו ניקויים שונים של קוד, כולל קיצור קוד, שימוש בפעולות מונדיות עבור
expected, הסרת קוד לא פעיל ותיקון הפרות של סגנון (crrev.com/c/4475368, crrev.com/c/4464199). - בוצע עדכון בבדיקות שכוללות מסגרות מגודרות כדי להשתמש במאפיין
configבמקום במאפייןsrcשהוצא משימוש (crrev.com/c/4382231). - הוסרה שימוש לא יעיל ב-
ShadowDOMV0(crrev.com/c/4388302). - בוטל השינוי של הוספת דגל לתיקון של Skia PDF (
SK_IGNORE_PDF_EOF_NEWLINE_FIX) כדי לאפשר שינוי של קו הבסיס (crrev.com/c/4401451). - עדכנו את הבעלים של סקריפט הבדיקה של ChromeDriver וביצענו שינויים כדי ליצור את קובץ ה-JSON של ההגדרות באופן בלעדי עבור Pinpoint (crrev.com/c/4437492, crrev.com/c/4298554).
- נוסף include חסר (
<cstring>) ל-std::strlenב-web_view_impl.ccכדי לתקן בעיה ב-build של IWYU (crrev.com/c/4376772). - הוסר קובץ בדיקה שלא היה בשימוש (
orientation_test.html) (crrev.com/c/4335668).
ChromeDriver 113.0.5672.63
תמיכה בגרסה 113 של Chrome
- בעיה 4205: מזהי אובייקטים זהים ב-Classic וב-BiDi [עדיפות 1]
- בעיה 4302 נפתרה: לא מניחים ש-Mapper נמצא בכרטיסייה הראשונה ב-ExecuteGetWindowHandles [Pri-1]
- בעיה 4356 נפתרה: Chrome 110 לא משתמש בערך ההעדפה download.default_directory [עדיפות 1]
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 113.0.5672.24
תמיכה בגרסה 113 של Chrome
- בעיה 4205: מזהי אובייקטים זהים ב-Classic וב-BiDi [עדיפות 1]
- בעיה 4302 נפתרה: לא מניחים ש-Mapper נמצא בכרטיסייה הראשונה ב-ExecuteGetWindowHandles [Pri-1]
- בעיה 4356 נפתרה: Chrome 110 לא משתמש בערך ההעדפה download.default_directory [עדיפות 1]
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 112.0.5615.49
תמיכה בגרסה 112 של Chrome
- בעיה שנפתרה 3517: הפעלת תכונת ההדפסה עבור [Pri-] non-headless
- בעיה 4419: עומס יתר גדול במד המהירות כשמשתמשים ב-chromedriver [עדיפות 3]
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 112.0.5615.28
תמיכה בגרסה 112 של Chrome
- בעיה 4357 נפתרה: בעיה בסשן של Chromedriver בגרסה 110.0.5481.77 עם האפשרויות --headless ו---user-data-dir. [Pri-1]
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 111.0.5563.64
תמיכה בגרסה 111 של Chrome
- בעיה 4216 נפתרה: הפעלת ChromeDriver עם BiDiMapper מותאם אישית [Pri-]
- נפתרה בעיה 4300: ידית החלון ניתנת להפעלה הדדית בין הגרסה הקלאסית ל-BiDi [Pri-]
- נפתרה בעיה 4325: הטיפול ב-toJSON ב-jsonSerialize של call_function.js חורג מהתקן. [Pri-]
- הבעיה 4330 נפתרה: DCHECK נכשל ב-DevToolsClientImpl::AddListener [Pri-]
- נפתרה בעיה 4357: בעיה בסשן של ChromeDriver עם האפשרויות --headless ו---user-data-dir [עדיפות 1]
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 111.0.5563.41
תמיכה בגרסה 111 של Chrome
- נפתרה בעיה 4357: בעיה בסשן של ChromeDriver עם האפשרויות --headless ו---user-data-dir [עדיפות 1]
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 111.0.5563.19
תמיכה בגרסה 111 של Chrome
- בעיה 4216 נפתרה: הפעלת ChromeDriver עם BiDiMapper מותאם אישית [Pri-]
- נפתרה בעיה 4300: ידית החלון ניתנת להפעלה הדדית בין הגרסה הקלאסית ל-BiDi [Pri-]
- נפתרה בעיה 4325: הטיפול ב-toJSON ב-jsonSerialize של call_function.js חורג מהתקן. [Pri-]
- הבעיה 4330 נפתרה: DCHECK נכשל ב-DevToolsClientImpl::AddListener [Pri-]
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 110.0.5481.77
תמיכה בגרסה 110 של Chrome
- בעיה 4193 נפתרה: לא ניתן להתחיל סשן חדש ב-Android 13 [Pri-]
- בעיה 4272 נפתרה: WebSocket צריך להתייחס לקוד=0 כאל אינדיקציה של FIN [Pri-]
- בעיה 4276 נפתרה: פתרון בעיות בחיבור ב-ChromeDriver [Pri-]
- בעיה 4295 נפתרה: ChromeDriver עם
"webSocketUrl": trueהוא racy [Pri-] - בעיה 4297 נפתרה: ChromeDriver Bidi מבצע סריאליזציה בצורה שגויה [Pri-]
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 110.0.5481.30
תמיכה בגרסה 110 של Chrome
- בעיה 4193 נפתרה: לא ניתן להתחיל סשן חדש ב-Android 13 [Pri-]
- בעיה 4272 נפתרה: WebSocket צריך להתייחס לקוד=0 כאל אינדיקציה של FIN [Pri-]
- בעיה 4276 נפתרה: פתרון בעיות בחיבור ב-ChromeDriver [Pri-]
- בעיה 4295 נפתרה: ChromeDriver עם
"webSocketUrl": trueהוא racy [Pri-] - בעיה 4297 נפתרה: ChromeDriver Bidi מבצע סריאליזציה בצורה שגויה [Pri-]
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 109.0.5414.74
תמיכה בגרסה 109 של Chrome
- בעיה 4179 שנפתרה: סשן BiDi צריך לתמוך בכמה חיבורים [Pri-]
- בעיה 4203 נפתרה: שיפור המידע על הקרדיטים [Pri-]
- נפתרה בעיה 4263: קריסה ב-Meta+A [Pri-]
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 109.0.5414.25
תמיכה בגרסה 109 של Chrome
- בעיה 4179 שנפתרה: סשן BiDi צריך לתמוך בכמה חיבורים [Pri-]
- בעיה 4203 נפתרה: שיפור המידע על הקרדיטים [Pri-]
- נפתרה בעיה 4263: קריסה ב-Meta+A [Pri-]
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 108.0.5359.71
תמיכה ב-Chrome בגרסה 108 פרטים נוספים זמינים בהערות לגבי הגרסה.
ChromeDriver 108.0.5359.22
תמיכה בגרסה 108 של Chrome
- נפתרה בעיה 4204: תיקון של בדיקת WPT test_top_level_and_one_child שנכשלה [Pri-]
- בעיה 4215 נפתרה: שינוי השם של chromedriver_mac64_m1 build ל-chromedriver_mac_arm64 [Pri-]
- נפתרה בעיה 4221: קריסה כשפקודת לחיצה סוגרת את הדפדפן [עדיפות גבוהה]
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 107.0.5304.62
תמיכה בגרסה 107 של Chrome
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 107.0.5304.18
תמיכה בגרסה 107 של Chrome
- נפתרה בעיה 4180: נאסרה כל פעולה של פקודות BiDi עד לקבלת הודעה על הפעלה של BiDiMapper [Pri-]
- נפתרה בעיה 4198: ChromeDriver BiDi לא אמור להניח ש-BiDiMapper תמיד נמצא בכרטיסייה הראשונה [Pri-]
- בעיה 4207 נפתרה: שגיאת WebDriver בהפעלת WPT [Pri-1]
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 106.0.5249.61
תמיכה בגרסה 106 של Chrome
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 106.0.5249.21
תמיכה בגרסה 106 של Chrome
- בעיה 4016 נפתרה: נוספה תמיכה בסיסית ב-BiDi ל-ChromeDriver (מבוסס-מיפוי) [עדיפות 1]
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 105.0.5195.52
תמיכה בגרסה 105 של Chrome
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 105.0.5195.19
גרסת Chrome שנתמכת
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 104.0.5112.79
תמיכה בגרסה 104 של Chrome
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 104.0.5112.29
תמיכה בגרסה 104 של Chrome
- בעיה 4121: פקודת WebDriver נכשלת לפעמים עם הודעת השגיאה 'תגובה לא צפויה לפקודה' [עדיפות 1]
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 104.0.5112.20
תמיכה בגרסה 104 של Chrome
- בעיה 4121: פקודת WebDriver נכשלת לפעמים עם הודעת השגיאה 'תגובה לא צפויה לפקודה' [עדיפות 1]
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 103.0.5060.134
תמיכה בגרסה 103 של Chrome
- נפתרה בעיה 4048: target frame detached [Pri-]
- בעיה 4121: פקודת WebDriver נכשלת לפעמים עם הודעת השגיאה 'תגובה לא צפויה לפקודה' [עדיפות 1]
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 103.0.5060.53
תמיכה בגרסה 103 של Chrome
- נפתרה בעיה 4048: target frame detached [Pri-]
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 103.0.5060.24
תמיכה בגרסה 103 של Chrome
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 102.0.5005.61
תמיכה בגרסה 102 של Chrome
- נפתרה בעיה מספר 1309282: chromedriver לא תומך במתגים מרובי ערכים [Pri-1]
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 102.0.5005.27
תמיכה בגרסה 102 של Chrome
- נפתרה בעיה מספר 1309282: chromedriver לא תומך במתגים מרובי ערכים [Pri-1]
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 101.0.4951.41
תמיכה בגרסה 101 של Chrome
- נפתרה בעיה 4046: DCHECK hit when appending empty מסגרת בלי שיתוף נתונים [Pri-]
- נפתרה בעיה 4080: המעבר למסגרת מקוננת נכשל [Pri-]
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 101.0.4951.15
תמיכה בגרסה 101 של Chrome
- נפתרה בעיה 4046: DCHECK hit when appending empty מסגרת בלי שיתוף נתונים [Pri-]
- נפתרה בעיה 4080: המעבר למסגרת מקוננת נכשל [Pri-]
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 100.0.4896.60
תמיכה בגרסה 100 של Chrome
- נפתרה בעיה 4002: תמיכה ב-Fenced Frames [Pri-]
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 100.0.4896.20
תמיכה בגרסה 100 של Chrome
- נפתרה בעיה 4002: תמיכה ב-Fenced Frames [Pri-]
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 99.0.4844.51
תמיכה בגרסה 99 של Chrome
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 99.0.4844.35
תמיכה בגרסה 99 של Chrome
- השינויים בוטלו!!! בעיה 2269 נפתרה: אי אפשר להשתמש בתווים שאינם BMP (נקודות קוד מעל U+FFFF) [Pri-3]
- בעיה שנפתרה chromium:1295243: רגרסיה ב-ChromeDriver sendKeys [Pri-1]
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 99.0.4844.17
תמיכה בגרסה 99 של Chrome
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 98.0.4758.102
תמיכה בגרסה 98 של Chrome
- תוקנה בעיה 3933: לחיצה בקצה של אזור התצוגה לא יעילה ללא שגיאה [Pri-]
- השינויים בוטלו!!! בעיה 2269 נפתרה: אי אפשר להשתמש בתווים שאינם BMP (נקודות קוד מעל U+FFFF) [Pri-3]
- בעיה שנפתרה chromium:1295243: רגרסיה ב-ChromeDriver sendKeys [Pri-1]
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 98.0.4758.80
תמיכה בגרסה 98 של Chrome
- תוקנה בעיה 3933: לחיצה בקצה של אזור התצוגה לא יעילה ללא שגיאה [Pri-]
- בעיה 2269 נפתרה: אי אפשר להשתמש בתווים שאינם BMP (נקודות קוד מעל U+FFFF) [Pri-3]
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 98.0.4758.48
תמיכה בגרסה 98 של Chrome
- תוקנה בעיה 3933: לחיצה בקצה של אזור התצוגה לא יעילה ללא שגיאה [Pri-]
- בעיה 2269 נפתרה: אי אפשר להשתמש בתווים שאינם BMP (נקודות קוד מעל U+FFFF) [Pri-3]
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 97.0.4692.71
תמיכה בגרסה 97 של Chrome
- נפתרה בעיה 3878: שיפור הטיפול בקואורדינטות חלקיות של רכיבים עבור קליקים על רכיבים [Pri-]
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 97.0.4692.36
תמיכה בגרסה 97 של Chrome
- נפתרה בעיה 3878: שיפור הטיפול בקואורדינטות חלקיות של רכיבים לצורך קליקים על רכיבים [Pri-]
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 97.0.4692.20
תמיכה בגרסה 97 של Chrome
- נפתרה בעיה 3878: שיפור הטיפול בקואורדינטות חלקיות של רכיבים לצורך קליקים על רכיבים [Pri-]
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 96.0.4664.45
תמיכה בגרסה 96 של Chrome
- בעיה 3445 נפתרה: אי אפשר לגשת לרכיבים ב-iframe בתוך shadow root [עדיפות 3]
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 96.0.4664.35
תמיכה בגרסה 96 של Chrome
- בעיה 3445 נפתרה: אי אפשר לגשת לרכיבים ב-iframe בתוך shadow root [עדיפות 3]
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 96.0.4664.18
תמיכה בגרסה 96 של Chrome
- בעיה 3445 נפתרה: אי אפשר לגשת לרכיבים ב-iframe בתוך shadow root [עדיפות 3]
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 95.0.4638.69
תמיכה בגרסה 95 של Chrome
- בעיה 3857 נפתרה: צוינה כותרת Host או כותרת Origin שלא נוספה לרשימת ההיתרים או ל-localhost [עדיפות 1]
- הוספת הארגומנט
--allowed-origins
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 95.0.4638.54
תמיכה בגרסה 95 של Chrome
- בעיה 3857 נפתרה: צוינה כותרת Host או כותרת Origin שלא נוספה לרשימת ההיתרים או ל-localhost [עדיפות 1]
- הוספת הארגומנט
--allowed-origins
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 95.0.4638.17
תמיכה בגרסה 95 של Chrome
- בעיה 3857 נפתרה: צוינה כותרת Host או כותרת Origin שלא נוספה לרשימת ההיתרים או ל-localhost [עדיפות 1]
- הוספת הארגומנט
--allowed-origins
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 95.0.4638.10
תמיכה בגרסה 95 של Chrome
- בעיה 3857 נפתרה: צוינה כותרת Host או כותרת Origin שלא נוספה לרשימת ההיתרים או ל-localhost [עדיפות 1]
- הוספת הארגומנט
--allowed-origins
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 94.0.4606.113
תמיכה בגרסה 94 של Chrome
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 94.0.4606.61
תמיכה בגרסה 94 של Chrome
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 94.0.4606.41
תמיכה בגרסה 94 של Chrome
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 93.0.4577.63
תמיכה בגרסה 93 של Chrome
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 93.0.4577.15
תמיכה בגרסה 93 של Chrome
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 92.0.4515.107
תמיכה בגרסה 92 של Chrome
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 92.0.4515.43
תמיכה בגרסה 92 של Chrome
- בעיה 3389 נפתרה: אימות מארח לבקשות של ChromeDriver
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 91.0.4472.101
תמיכה בגרסה 91 של Chrome
- בעיה שנפתרה 1205107: אי אפשר לקבל ערך מאפיין לשדות באפליקציית האינטרנט.
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 91.0.4472.19
תמיכה בגרסה 91 של Chrome
- בעיה שנפתרה 3744: הפונקציות SendKeys() ו-Click() נכשלות באופן שקט אחרי ניווט בקישור
- בעיה שנפתרה 3746: נקודת הקצה של מאפיין מעדכנת ערכים באופן שגוי
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 90.0.4430.24
תמיכה בגרסה 90 של Chrome
- נפתרה בעיה 3708: הפונקציה GetElementLocation's inView נכשלת עבור רכיבים ב-shadow DOM
- בעיה 3721 שנפתרה: איסוף יומן ביצועים של Service Worker כשהוא מופעל
- נפתרה בעיה 3731: הפונקציה AdbImpl::GetPidByName לא פועלת בצורה תקינה במערכות הפעלה לא סטנדרטיות של Android, כמו במכשיר OnePlus
- נפתרה בעיה 3733: כשל חמור בדומיין ב-localhost
- בעיה 3734 נפתרה: ה-Driver אמור להציג שגיאה בניסיון להגדיר קובץ Cookie בדומיין שגוי
- הבעיה 3743 נפתרה: ארגון מחדש של פונקציית הקריאה ותיקון הבעיה בהסרת רכיב
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 89.0.4389.23
תמיכה בגרסה 89 של Chrome
- בעיה 3667 נפתרה: חלף הזמן הקצוב לתגובה לקבלת הודעה מרכיב ה-Renderer
- בעיה 3675 נפתרה: הפונקציה GetElementLocation משתמשת בשיטה inView שיוצרת בעיות בטיפול בערך בוליאני כמערך
- בעיה 3682 נפתרה: הפונקציה GetElementRegion מחזירה גודל שגוי לרכיבים שנמצאים באופן חלקי מחוץ לאזור התצוגה
- בעיה 3690 נפתרה: ChromeDriver נכשל אם התוספים משתמשים ב-chrome.windows API
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 88.0.4324.96
תמיכה בגרסה 88 של Chrome
- בעיה שנפתרה 3641: הדף לא נטען או לא מוצג כשחלון הדפדפן לא נמצא במוקד ההתעניינות עם Chrome בטא v87 ו-chromedriver v(87/86)
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 88.0.4324.27
תמיכה בגרסה 88 של Chrome
- נפתרה בעיה 3611: הפלט של
getText()ב-protractor שונה מזה של<element>.innerText - בעיה 3625 נפתרה: שיפור התאימות של צילומי מסך של רכיבים
- בעיה שנפתרה 3628: הפניה לרכיב לא עדכני וכתובת URL שגויה שדווחה עם כתובת URL אחרת כחלק מהנתיב שלה
- בעיה 3631 שנפתרה: נוספה תמיכה ביכולת
webauthn:extension:largeBlob - בעיה 3635 נפתרה: Chromedriver 86 – נראה ש-
chromedriver.quit()לא מעביר את אירוע ההסרה כמו שצריך - נפתרה בעיה 3649: העתקת טקסט נבחר ללוח לא פועלת ב-Windows 10 כשמשתמשים במצב headless
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 87.0.4280.88
תמיכה בגרסה 87 של Chrome
- בעיה שנפתרה 3641: הדף לא נטען או לא מוצג כשחלון הדפדפן לא נמצא במוקד ההתעניינות עם Chrome בטא v87 ו-chromedriver v(87/86)
- בעיה מספר 3657 נפתרה: פג הזמן הקצוב לתהליך של צילום מסך ברקע בדפדפן
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 87.0.4280.20
תמיכה בגרסה 87 של Chrome
- נפתרה בעיה 2421: מחיקה של ערוצים ישנים להעברת יציאות ב-adb-server ב-Android
- בעיה 3474 נפתרה: צריך לעדכן את רשימת המכשירים הניידים המדומים
- הבעיה 3507 נפתרה: הטמעה של 'קבלת תפקיד מחושב'
- נפתרה בעיה מספר 3508: הטמעה של 'קבלת תווית מחושבת'
- בעיה 3584 נפתרה: שינוי השם של האפשרות בשורת הפקודה של ChromeDriver --whitelisted-ips
- הבעיה מספר 3588 נפתרה: חיבור WebSocket דו-כיווני
- בעיה 3594 נפתרה: הניווט מסתיים מוקדם מדי אם OOPIF נטען לפני הדף הראשי
- נפתרה בעיה 3598: אפשרות בשורת הפקודה להעברת יציאת כלי הפיתוח לשקע webview_devtools_remote
- בעיה 3608 נפתרה: Chromedriver debuggerAddress לא תומך ב-ipv6
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 86.0.4240.22
תמיכה בגרסה 86 של Chrome
- בעיה 3370 נפתרה: כיבוי Chrome בצורה תקינה או שקובץ ההתמדה של SQLite לא יישמר בצורה תקינה
- בעיה 3401 נפתרה: הפונקציה Get Element Location JS לא מאתרת את המרכז הגלוי של הרכיב
- בעיה 3462: במקרה של sendKeys, מקש ה-CMD לא פועל ב-MAC
- נפתרה בעיה 3541: שיפור היומן בין הלקוח ל-ChromeDriver
- בעיה 3559 נפתרה: פלט של גרסת Chrome כש-ChromeDriver מדווח על אי-תאימות
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 85.0.4183.87
תמיכה בגרסה 85 של Chrome
- בעיה 3578 נפתרה: ב-Chrome 85 כבר אי אפשר לבצע אינטראקציה חלקה עם חלונות כשתיבת דו-שיח של התראה פתוחה
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 85.0.4183.83
תמיכה בגרסה 85 של Chrome
- בעיה 3577 נפתרה: ChromeDriver 85 לא מזהה שינוי בספריית Chrome (C:\Program Files)
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 85.0.4183.38
תמיכה בגרסה 85 של Chrome
- נפתרה בעיה 3214: ChromeDriver78: הפונקציה Sendkeys מאפסת את בחירת הטקסט באמצעות contenteditable
- בעיה 3376 נפתרה: הסרת הפקודה LaunchApp מ-ChromeDriver
- בעיה 3432 נפתרה: לפעמים
NavigationTrackerלא מצליח לזהות מתי הטעינה של הדף הסתיימה - בעיה 3481 נפתרה: נקודת קצה חדשה להדפסה בהתאם למפרט w3c
- בעיה שנפתרה 3488: driver.get לא מחזירה שגיאה כשהפרוקסי מוגדר בצורה שגויה
- בעיה 3502 נפתרה: שימוש ב-
document.hasFocus()כדי לבדוק אם יש מיקוד ברכיב - בעיה שנפתרה 3515: selenium.common.exceptions.WebDriverException: Message: unknown error: bad inspector message
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 84.0.4147.30
תמיכה בגרסה 84 של Chrome
- בעיה 3420 נפתרה: אחרי מעבר לחלון ההדפסה, chromedriver מפסיק להגיב
- בעיה 3421 נפתרה: הדרייבר מחזיר טקסט קירילי ללא סגנונות
- בעיה 3422 נפתרה: הפונקציה GetElementText נכשלת בגרסה 1.6.0.3 של אב הטיפוס.
- בעיה 3434 נפתרה: אי אפשר לקבל הודעות 'assert' מיומני 'browser'
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 83.0.4103.39
תמיכה בגרסה 83 של Chrome
- בוצע עדכון של Chromedriver כדי שיפעל בצורה תקינה עם prototype.js.
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 83.0.4103.14
תמיכה בגרסה 83 של Chrome
- בעיה 1778 נפתרה: הוצאה משימוש של launchApp מ-ChromeDriver
- בעיה 2520: הפונקציה InitSession יכולה לחכות לנצח כש-Chrome לא מגיב
- הבעיה 3120 נפתרה: הורדה במצב 'דפדפן ללא GUI' מכרטיסייה חדשה
- בעיה 3234 נפתרה: אישור שנקודה ופסיק נמצאו לפני מחרוזת משנה
- בעיה 3240 נפתרה: הפונקציה ExecuteGetElementRect לא בודקת את הסטטוס שמוחזר מהפונקציה GET_SIZE
- בעיה שנפתרה 3331: השיטה
get_cookies()מחזירה מפתחות 'תפוגה' מסוג double, אבל היא אמורה להחזיר int64 במצב w3c - בעיה 3332 שנפתרה: פסק זמן לניסיון חוזר נרשם כחמור
- בעיה 3339 נפתרה: Chromedriver יצא באופן בלתי צפוי עם קוד null, אות SIGTRAP
- בעיה מספר 3351: שיפור ההודעה בנושא שיקולי אבטחה
- בעיה 3352 נפתרה: תמיכה ב-SendKeys עבור רכיבי צבע
- בעיה 3353 נפתרה: ההמתנה לניווט בהמתנה נמשכת אחרי שהקשר של המסגרת נהרס
- בעיה שנפתרה 3375: Chromedriver v80 נתקע בפונקציה getPageSource בחלק מהאתרים
- בעיה 3383 נפתרה: נראה ש-ChromeDriver בגרסה 80 ואילך ב-Windows יוצא או נתקע בפקודות מסוימות של רכיב או לחיצה
- בעיה 3399 נפתרה: הוסרה בדיקת wasThrown
ChromeDriver 81.0.4044.138
תמיכה בגרסה 81 של Chrome
- בוצע עדכון של Chromedriver כדי שיפעל בצורה תקינה עם prototype.js.
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 81.0.4044.69
תמיכה בגרסה 81 של Chrome
- תוקן: קריסות של Chromedriver ב-getPageSource באתרים מסוימים.
- תוקן: קריסות של ChromeDriver בפקודות מסוימות של רכיבים או קליקים.
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 81.0.4044.20
תמיכה בגרסה 81 של Chrome
- תוקנה שגיאה בניסיון לאתר רכיב HTML.
- הפקודות Get ו-Add Cookie הן עכשיו ספציפיות למסגרת.
- תוקנו כמה בעיות שמתרחשות באתרים שמגדירים מחדש אובייקטים רגילים של Javascript.
- ChromeDriver ימשיך להמתין לסיום הטעינה אחרי קבלת ההודעה Target Closed (יעד נסגר).
- Chromedriver מחזיר עכשיו קוד שגיאה בהתאם למפרט עבור פסק זמן
- תוקן: זמן תגובה איטי באופן לא צפוי של ChromeDriver בפקודה NewSession.
- מעכשיו יש תמיכה בערכי זמן קצובים שהמשתמש מגדיר, של יותר מ-10 דקות.
- תוקן: ChromeDriver לא מצליח להתחבר לכלי הפיתוח בגלל חוסר התאמה בין IPv4 ל-IPv6.
- שחזור סדר החיפוש של קובץ בינארי של Chrome ב-Linux.
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 80.0.3987.106
תמיכה בגרסה 80 של Chrome
- שחזור סדר החיפוש של קובץ Chrome בינארי ב-Linux
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 80.0.3987.16
תמיכה בגרסה 80 של Chrome
- תוקנה הבעיה שגרמה לביטול טעינת הדף כשמשתמשים ב-proxy.
- Chromedriver מחכה עכשיו שהפריים הנוכחי ייטען.
- היומן של ChromeDriver יכלול את היציאה שבה נעשה שימוש על ידי הדרייבר.
- הפעלת SetGeoLocation למצב w3c.
- נוסף טקסט חסר של התראה לסטטוס UnexpectedAlertOpen.
- שיפרנו את ההודעה שמוצגת כשתוסף CRX2 נטען.
- תוקן מצב מרוץ תהליכים פוטנציאלי ב-ExecuteGetPageSource.
- ChromeDriver יוסיף את הדגל --ignore-certificate-errors כשהיכולת acceptInsecureCerts היא true
- עדכנו את הודעת השגיאה ואת סטטוס ההחזרה עבור no such execution context
- תוקן: יכול להיות ש-ChromeDriver ייחסם ללא הגבלת זמן בזמן ההמתנה לניווט בהמתנה.
- הוספנו את מאפיין SameSite ל-AddCookie ול-GetCookie.
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 79.0.3945.36
תמיכה בגרסה 79 של Chrome
השינוי הבא נכלל בגרסה 79.0.3945.16:
- תוקנה שגיאה בחישוב הקואורדינטות של אלמנט
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 79.0.3945.16
תמיכה בגרסה 79 של Chrome
- תוקנה קריסה של ChromeDriver שנגרמה בגלל התראת JavaScript שהופעלה במהלך ביצוע פקודה
- תוקן באג שגרם ל-Chromedriver להינעל כשמופעלת התראה בזמן צילום מסך
- הוסר --ignore-certificate-errors מפקודת ההפעלה של Chrome
- הפלטפורמה וה-platformName שונו ל-windows ב-Win10
- תוקנה בעיה שבה window.navigator.webdriver לא הוגדר כש-enable-automation לא נכלל
- תוקנה בדיקת WPT test_not_editable_inputs[hidden]
- תוקנה הבעיה 'אי אפשר ללחוץ על הרכיב' כשמשתמשים במצב 'דפדפן ללא GUI'
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 78.0.3904.105
תמיכה בגרסה 78 של Chrome
השינוי הבא נכלל בגרסה 78.0.3904.70: * תוקן חישוב שגוי של קואורדינטות של רכיבים
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 78.0.3904.70
תמיכה בגרסה 78 של Chrome
השינוי הבא נכלל בגרסה הזו לעומת גרסה 78.0.3904.11:
- השינוי להתאמת גודל צילומי המסך בתצוגת רטינה בוטל, בגלל כמה בעיות שדווחו
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 78.0.3904.11
תמיכה בגרסה 78 של Chrome
- תוקנו כמה בעיות בסריאליזציה של אובייקטים ב-JavaScript
- תוקן באג בהתאמת יכולות ל-Chrome ב-Android
- הטמעה של אוטומציה של הרשאות
- גודל קבוע של צילומי מסך בתצוגת רטינה
- תוקן זמן קצוב לתפוגה של טעינת דף בתרחישים מסוימים
- שיפור ההתאמה של היכולת platformName
- תוקנה שגיאה בקוד שהוחזר בזמן הזזת מצביע לאפשרויות ברשימה הנפתחת
- תוקנה בעיה שמשפיעה על ההורדה במצב headless
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 77.0.3865.40
תמיכה בגרסה 77 של Chrome
השינויים שבוצעו בהשוואה לגרסה 77.0.3865.10:
- תוקנו שני באגים בסריאליזציה ובדה-סריאליזציה של אובייקטים של JavaScript
- תוקן הטיפול ב-platformName: android במהלך התאמת היכולות
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 77.0.3865.10
תמיכה בגרסה 77 של Chrome
- תוקנו כמה בעיות בהטמעה של Actions API
- שיפור בהרצת קוד JavaScript ובטיפול בתוצאות
- תוקן באג שגרם לדחייה שגויה של בקשות POST עם גוף ריק במצב OSS
- כלי מעקב משופר לניווט
- תמיכה באסטרטגיית טעינת דף מהירה
- נוספה הפקודה New Window (חלון חדש) ממפרט W3C WebDriver
- תמיכה בשמירת קבצים להורדה במצב 'דפדפן ללא GUI'
- הוספנו תמיכה בטעינת תוספי CRX3
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 76.0.3809.126
תמיכה בגרסה 76 של Chrome
השינויים הבאים כלולים בהשוואה לגרסה 76.0.3809.68:
- תוקנו שני באגים בסריאליזציה ובדה-סריאליזציה של אובייקטים של JavaScript
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 76.0.3809.68
תמיכה בגרסה 76 של Chrome
השינויים שבוצעו לעומת גרסה 76.0.3809.25:
- תוקן באג בזיהוי הפניה מעגלית באובייקטים של JavaScript
- תוקן באג שגורם לקריסת ChromeDriver כשמתרחשות שגיאות מסוימות ב-JavaScript
- תוקן באג שמונע מ-API של פעולות ליצור אינטראקציה עם רכיבים בתוך Shadow DOMs
- תוקן באג במעקב אחר מצב מקש הצירוף בין פקודות של Actions API
- תוקן באג במעקב אחר מיקומי מצביעים בין פקודות של Actions API
- שמירת השגיאה 'לא ניתן לקרוא לפקודה שאינה סטנדרטית של W3C במצב W3C' בקובץ היומן כשהיא מתרחשת
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 76.0.3809.25
תמיכה בגרסה 76 של Chrome
השינויים הבאים נכללים בהשוואה לגרסה 76.0.3809.12:
- תוקן באג שגרם לדחייה שגויה של בקשות POST עם גוף ריק במצב OSS
- הוספנו נקודות קצה חדשות לאחזור יומן Chrome
- נוספה נקודת קצה לפקודה Is Displayed במצב W3C
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 76.0.3809.12
תמיכה בגרסה 76 של Chrome
- הטמעה של Actions API הסתיימה
- שיפור התאימות למפרט של הטיפול בפסק זמן של סקריפט
- שיפור הסריאליזציה של תוצאות מהפקודה Execute Script
- תוקנו בעיות בהצגת רכיב בגלילה
- נוספה תמיכה במקש Cancel שמוגדר במפרט של WebDriver
- תוקן הטיפול בתגובת שגיאה של התראה שלא טופלה
- תוקן עיבוד של רכיב
<details> - האפשרות excludeSwitches עודכנה כדי לאפשר מקפים מובילים אופציונליים בשמות של מתגים
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 75.0.3770.140
תמיכה בגרסה 75 של Chrome
השינויים הבאים נכללים בגרסה הזו לעומת גרסה 75.0.3770.90:
- תוקן באג שגרם לקריסה של ChromeDriver כשמתרחשת שגיאה מסוימת ב-JavaScript
- תוקן באג שקשור לשמירת מצב מקש הצירוף בין פעולות
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 75.0.3770.90
תמיכה בגרסה 75 של Chrome
השינויים שבוצעו לעומת גרסה 75.0.3770.8:
- תוקן באג שגרם לדחייה שגויה של בקשות POST עם גוף ריק במצב OSS
- נוספו נקודות קצה חדשות לאחזור יומן Chrome
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 75.0.3770.8
תמיכה בגרסה 75 של Chrome
השינוי הבולט ביותר הוא ש-ChromeDriver פועל עכשיו כברירת מחדל במצב שתואם לתקן W3C. שינויים נוספים כוללים:
- תוקן באג שגרם להפעלת אירוע הטשטוש פעמיים במהלך ניקוי הרכיב
- שינינו את השם של היכולת loggingPrefs ל-goog:loggingPrefs, כנדרש בתקן W3C
- טיפול בשגיאות בפורמט W3C תוקן
- טיפול נכון ביצירת קובצי Cookie ללא נקודה מובילה בשם הדומיין
- מאפשר ערך null לזמן קצוב לתפוגה של סקריפט
- תוקנה הפקודה Element Send Keys (שליחת מקשי רכיב) כדי להזין קובץ עם המאפיין 'multiple'
- תוקנה הפקודה Get Active Element כך שתחזיר את השגיאה no such element (אין אלמנט כזה) כשלא קיים אלמנט פעיל
- תוקן הניווט לכתובת URL עם פורמט שגוי כדי להחזיר את השגיאה 'ארגומנט לא תקין'
- תוקן קוד סטטוס של HTTP כשמתקבל מזהה סשן לא תקין
- תוקנה תגובת השגיאה כשפרמטר הקלט חסר או שהפורמט שלו שגוי
- תוקנה הפקודה Execute Script (הפעלת סקריפט) כדי לטפל בהערה ב-JavaScript שמוגדרת לפי שורה
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 74.0.3729.6
תמיכה בגרסה 74 של Chrome
- תוקן באג שגרם ליצירת קובץ debug.log לא צפוי ב-Windows
- תוקנו בעיות של לחיצה על העכבר וגרירה ושחרור בתוך מסמך SVG
- נוספה כותרת cache-control בתשובות מ-ChromeDriver
- תוקן סוג השגיאה שמתרחשת כשאלמנט אחר מיירט את הלחיצה
- תוקן באג שגרם ל-ChromeDriver להיכשל במכשירי Linux ללא /dev/shm
- תוקנו כמה סוגים של אירועים של קליק כפול
- תיקון הפקודה Get Sessions
- תוקנה שגיאה בבדיקה בפקודה Switch To Frame
- תוקנה הפקודה 'קבלת מקור הדף'
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 73.0.3683.68
תמיכה בגרסה 73 של Chrome
- תוקן באג שגרם ליצירת קובץ debug.log לא צפוי ב-Windows
- תוקנה שגיאה בקוד שהוחזר מהפקודה Execute Script (הפעלת סקריפט) בתרחישים מסוימים
- נוספה כותרת cache-control בתשובות מ-ChromeDriver
- הגדרנו ששרת ה-HTTP ישמור על החיבור פעיל כברירת מחדל
- תוקנה הפקודה 'סגירת חלון' כדי לטפל בהנחיות למשתמשים בצורה נכונה
- תוקנה שגיאת קוד שהוחזרה בזמן שליחת מקשים לרכיב מושבת
- שיפור התאימות למפרט של הטיפול בערך הזמן הקצוב לתפוגה
- שיפור התאימות למפרט של הפקודה Add Cookie
- הגדלת אורך תור ההמתנה של שרת HTTP
- תוקנה הפקודה Is Element Displayed ב-v0 shadow DOM
- הוספנו אזהרה לגבי שינוי בהתנהגות של הפקודה Element Clear בקובץ היומן
- תוקנה הפקודה Execute Script (הפעלת סקריפט) כדי להמיר את document.all לפורמט JSON בצורה נכונה
- שיפור הטיפול בהפניה שגויה לרכיב
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 2.46
תמיכה בגרסאות Chrome v71-73
- תוקנה שגיאה בקוד שהוחזר מהפקודה Execute Script (הפעלת סקריפט) בתרחישים מסוימים
- הגדרנו ששרת ה-HTTP ישמור על החיבור פעיל כברירת מחדל
- תוקנה הפקודה 'סגירת חלון' כדי לטפל בהנחיות למשתמשים בצורה נכונה
- תוקנה שגיאת קוד שהוחזרה בזמן שליחת מקשים לרכיב מושבת
- שיפור התאימות למפרט של הטיפול בערך הזמן הקצוב לתפוגה
- שיפור התאימות למפרט של הפקודה Add Cookie
- שיפור התאימות למפרט של הפקודה Switch to Frame
- הגדלת אורך תור ההמתנה של שרת HTTP
- תוקנה הפקודה Is Element Displayed ב-v0 shadow DOM
- פקודה קבועה ללחיצה כפולה על אלמנט
- הוספנו אזהרה לגבי שינוי בהתנהגות של הפקודה Element Clear בקובץ היומן
- תוקנה הפקודה Execute Script (הפעלת סקריפט) כדי להמיר את document.all לפורמט JSON בצורה נכונה
- שיפור הטיפול בהפניה שגויה לרכיב
פרטים נוספים זמינים בהערות המוצר.
ChromeDriver 2.45
תמיכה ב-Chrome גרסה 70 עד 72
- תוקן: התכונה 'סשן חדש' לא עומדת בדרישות המפרט
- תוקן: ChromeDriver לא אמור להפעיל את Chrome אם הגרסאות של Chrome ו-ChromeDriver לא תואמות
- תוקנה הבעיה שבה הפקודה Find Element (חיפוש רכיב) מחזירה קוד שגיאה שגוי כשנעשה שימוש במיקום לא תקין
- תוקנה בעיה שבה חלק מקודי הסטטוס של ChromeDriver היו שגויים
- תוקנה שגיאת קומפילציה ב-JS בתוך WebViewImpl::DispatchTouchEventsForMouseEvents
- פקודות לשינוי גודל החלון צריכות לטפל בהנחיות למשתמש
- תוקנה הבעיה שבה ChromeDriver לא מפעיל את Chrome בצורה תקינה עם האפשרות user-data-dir= של Chrome
- הפקודה Fixed Status לא תואמת למפרט
- תוקנה הבעיה שקשורה להוספת תמיכה ב-strictFileInteractability
ChromeDriver 2.44
תמיכה בגרסאות Chrome 69-71
- תוקן WindowMaximize ב-Mac
- תוקנה השגיאה 'alert open error' בקריאה ל-window handle
- במצב W3C, הפונקציה Fixed Element Send Keys צריכה לקבל את המאפיין text
- תוקן מקרה מיוחד של XML שבו הפונקציה Is Element Enabled לא מטפלת ברכיב בהתאם למפרט
- תוקן מקרה מיוחד של XML שבו הפונקציה Get Element CSS Value לא מטפלת בערך בהתאם למפרט
- תוקנה הבעיה: הפונקציה Set Window Rect צריכה לבדוק אם יש קלט לא תקין
- תוקנה בעיה שקשורה לתמיכה במצבים חדשים של unhandledPromptBehavior
ChromeDriver 2.43
תמיכה בגרסאות Chrome 69-71
השינויים כוללים:
- תוקן: ניתוח של הגדרת ה-Proxy לא עומד בתקן
- תוקנה פקודת ההפעלה של האפליקציה, אבל היא עדיין לא יציבה
- תוקנה בעיה שבה צילום מסך של רכיב בתוך iFrame מתבצע באופן שגוי
- נוספה תמיכה ב-ChromeDriver בשינוי גודל החלון דרך חיבור מרוחק
- תוקנה בעיה שבה קודי שגיאה לא מטופלים ברכיב Clear
- תוקן: לא ממתינים עד שהרכיב גלוי
- הפעולה 'קבלת מאפיין אלמנט קבוע' לא מיושמת
- המעבר לפריימים קבועים לא תואם למפרט
- תוקנה הבעיה שבה הפונקציה Execute Async Script לא מחזירה קודי שגיאה שתואמים למפרט
- תוקנה הבעיה שבה הפעולה Execute Script (הפעלת סקריפט) לא מחזירה קודי שגיאה שתואמים למפרט
- תוקן: קוד השגיאה ב-ExecuteGet לא תואם למפרט
- תוקנה הבעיה שבה הפונקציה Send Alert Text לא מחזירה קודי שגיאה שתואמים למפרט
- תוקן clear() בקלט type="date" כאילו האלמנט לא ניתן לעריכה על ידי המשתמש
- Chromedriver קבוע מקבל את נקודת האחיזה של החלון עבור הכרטיסייה שנפתחת באופן ידני
- תוקנה הבעיה שקשורה להוספה או ליצירה של קובץ יומן חדש עבור chromedriver
- תוקן: הפעלה של סשן חדש לא מפעילה מצב w3c אם הדגל נמצא ב-firstMatch
ChromeDriver 2.42
תמיכה בגרסאות Chrome v68-70
השינויים כוללים:
- תוקן ClickElement באמולציה בניידים
- תוקנה בעיה שקשורה לכתובות IP ברשימת ההיתרים עם IPv4
- תוקנה בעיה בהפעלת ChromeDriver עם הדגל whitelisted-ips ב-Mac OS
- תוקן SetTimeout כדי לקבל פורמטים של W3C וגם פורמטים שלפני W3C
- תוקנה הבעיה שקשורה לצילום מסך של רכיב
- תוקן: ChromeDriver מחפש קבצים בינאריים של Chrome גם בנתיב מערכת
- תוקנו הבעיות 'הגדלת החלון' ו'מסך מלא'
- הטמענו תכונה של הפעלה מחדש של יומנים. ( עדיין לא פועל ב-Android ובדפדפן מרוחק )
- תוקן: חלק מקודי השגיאה לא תאמו לתקן W3C
- תוקנה בעיה שבה console.log עם כמה ארגומנטים לא טופל כמו שצריך
- הפונקציה GetElementRect צריכה לאפשר שימוש במספרים כפולים
- אמולציה קבועה של מגע
ChromeDriver 2.41
תמיכה בגרסאות Chrome v67-69
השינויים כוללים:
- תוקנה בעיה שמתרחשת כשמריצים את ChromeDriver עם האפשרות whitelisted-ips
- יציאת ניפוי הבאגים מרחוק מוחזרת ביכולות
- הטמענו קבלת גודל החלון ב-Android
- שיפרנו את הודעות השגיאה בהפעלת Chrome במחשב
- ChromeDriver נכשל במהירות אם הוא לא מצליח להפעיל קבצים בינאריים של Chrome
- ערך ההחזרה של Close Window (סגירת חלון) תואם למפרט