הורדות

גרסאות קודמות של 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.h include מקבצים מסוג //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).

שינויים פנימיים ושינויים במבנה הקוד

‫ChromeDriver 145

תכונות חדשות

  • בדיקות: עודכן run_py_tests.py framework הבדיקות כך שיקבל בדיקות מחרוזות דטרמיניסטיות באורכים שונים (לדוגמה, 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/test crrev.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).

שינויים פנימיים ושינויים במבנה הקוד

‫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 והוטמע ה-API‏ Browser.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:, בהתאם לשינויים ב-upstream‏ chromium-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).
  • עיבוד יומנים: תוקן קריסה (DCHECK failure ב-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).

שינויים פנימיים ושינויים במבנה הקוד

‫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 Atoms CLEAR) מועברות למשתמש בצורה מדויקת (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-bidi mapper כדי לשלב את התיקונים האחרונים ואת עדכוני הפרוטוקול (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(), כי הפקודה setSensorOverrideReadings CDP לא מחזירה ערך (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).

שינויים פנימיים ושינויים במבנה הקוד

‫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.html WPT באמצעות שימוש ברכיב 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).

שינויים פנימיים ושינויים במבנה הקוד

‫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 בפקודה SetRPHRegistrationMode webdriver דרך ממשקי ה-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).
  • עודכנו כל ההוראות של #include base/... כך שישתמשו ב-"" במקום ב-<> כדי לשמור על עקביות (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).
  • הפקודה ConfirmIdpLogin FedCM 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.status PureBiDi, שמאפשרת למשתמשים ליצור חיבור 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) לשימוש ב-wptrunner harness הרשמי במקום ב-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).
  • אמולציית נייד: בוצעה העברה של DeviceMetrics overrides לשימוש בפקודה Emulation.setDeviceMetricsOverride CDP במקום המקבילה של הדומיין 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::Value v2, והוחלפו שיטות שהוצאו משימוש כמו 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 (סגירת חלון) תואם למפרט