Chrome ו-Firefox יגיעו בקרוב לגרסה 100 הראשית

שינויים במחרוזת של סוכן המשתמש, האסטרטגיות שבהן Chrome ו-Firefox משתמשים כדי לצמצם את ההשפעה, ואיך אתם יכולים לעזור.

עלי בייאד
עלי בייאד
קרל דובוסט
קרל דובוסט
מיליקה מיהאג'ליג'ה
מיליקה מיהאג'ליג'ה

Chrome ו-Firefox יגיעו לגרסה 100 בעוד כמה חודשים. הדבר עלול לגרום לשיבושים באתרים שמסתמכים על זיהוי גרסת הדפדפן כדי להפעיל לוגיקה עסקית. בפוסט הזה נסביר על ציר הזמן של האירועים, האסטרטגיות ש-Chrome ו-Firefox משתמשים כדי למזער את ההשפעה ואיך אתם יכולים לעזור.

מחרוזת סוכן המשתמש

סוכן משתמש (UA) הוא מחרוזת שדפדפנים שולחים בכותרות HTTP, כדי שהשרתים יוכלו לזהות את הדפדפן. אפשר לגשת למחרוזת גם באמצעות JavaScript באמצעות navigator.userAgent. בדרך כלל הם מופיעים בפורמט הבא:

<browser_name>/<major_version>.<minor_version>

לדוגמה, הגרסאות העדכניות ביותר של הדפדפנים בזמן פרסום הפוסט הזה הן:

  • Chrome: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.54 Safari/537.36
  • Firefox: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:96.0) Gecko/20100101 Firefox/96.0
  • Safari: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.2 Safari/605.1.15

גרסה ראשית 100 – מספר גרסה בן שלוש ספרות

הגרסה הראשית 100 היא אבן דרך חשובה גם ב-Chrome וגם ב-Firefox. הוא גם עלול לגרום לשיבושים באתרים כשעוברים ממספר דו-ספרתי למספר גרסה תלת-ספרתי. מפתחי אתרים משתמשים בכל סוגי הטכניקות לניתוח המחרוזות האלה, מקוד מותאם אישית ועד לשימוש בספריות לניתוח של סוכן משתמש. לאחר מכן ניתן להשתמש בשיטות האלה כדי לקבוע את לוגיקת העיבוד המתאימה. הסוכן המשתמש וכל מנגנון אחר לדיווח על גרסאות ידווחו בקרוב על מספר גרסה בן שלוש ספרות.

לוחות זמנים של גרסה 100

דפדפנים של גרסה 100 יושקו תחילה בגרסאות ניסיוניות (Chrome Canary, Firefox Nightly), אחר כך גרסאות בטא ולבסוף יושקו בערוץ היציב.

דפדפן ציר הזמן
Chrome (לוח זמנים לפרסום) 29 במרץ 2022
Firefox (לוח זמנים להשקה) 3 במאי 2022

למה מספר גרסה תלת-ספרתי יכול להיות בעייתי?

כשהדפדפנים הגיעו לגרסה 10 בפעם הראשונה לפני קצת יותר מ-12 שנים, התגלו בעיות רבות בספריות לניתוח User-Agent, כי מספר הגרסה הראשית גדל מספרה אחת לשתיים.

אם לא מגדירים מפרט אחד, לדפדפנים שונים יש פורמטים שונים למחרוזת סוכן המשתמש ולניתוח סוכן משתמש ספציפי לאתר. יכול להיות שחלק מספריות הניתוח יכללו הנחות בקידוד קשיח או באגים שלא מביאים בחשבון מספרי גרסאות ראשיים תלת-ספרתיים. ספריות רבות שיפרו את לוגיקת הניתוח כשהדפדפנים עברו למספרי גרסאות דו-ספרתיים, כך שהגעה לציון הדרך בן שלוש הספרות צפויה לגרום לפחות בעיות. מייק טיילור, מהנדס בצוות Chrome, ערך סקר לגבי ספריות נפוצות לניתוח UA, אבל לא התגלו בהן בעיות. הרצת ניסויים של Chrome בתחום העלתה כמה בעיות, שאנחנו עובדים עליהן.

מה דפדפנים עושים בקשר לזה?

גם Firefox וגם Chrome ביצעו ניסויים שבהם הגרסאות הנוכחיות של דוח הדפדפן הן בגרסה 100 הראשית, כדי לזהות תקלות באתר. כתוצאה מכך, דווחו מספר בעיות, שחלקן כבר תוקנו. הניסויים האלה ימשיכו לפעול עד לפרסום גרסה 100.

קיימות גם אסטרטגיות לצמצום הבעיה לגיבוי, למקרה שגרסה 100 (מהדורה 100) לערוצים יציבים תגרום נזק לאתרים גדול מהצפוי.

מיטיגציה של Chrome

ב-Chrome, תוכנית הגיבוי היא להשתמש בדגל כדי להקפיא את הגרסה הראשית בגרסה 99, ולדווח על מספר הגרסה הראשית האמיתית בחלק הגרסה המשנית של מחרוזת ה-User-Agent (הקוד כבר נחת).

גרסת Chrome כפי שמדווחת במחרוזת ה-User-Agent היא לפי הדפוס <major_version>.<minor_version>.<build_number>.<patch_number>.

אם משתמשים בתוכנית הגיבוי, המחרוזת של סוכן המשתמש תיראה כך:

99.101.4988.0

Chrome מריץ ניסויים גם כדי לוודא שדיווח על ערך בן שלוש ספרות בחלק של הגרסה המשנית של המחרוזת לא יגרום לשיבושים, כי הגרסה המשנית במחרוזת ה-User-Agent של Chrome דיווחה על 0 במשך הרבה מאוד זמן. צוות Chrome יחליט אם להשתמש באפשרות הגיבוי על סמך מספר הבעיות שדווחו והחומרה שלהן.

מיטיגציה ב-Firefox

ב-Firefox, האסטרטגיה תלויה בחשיבות של השבר, וב-Firefox יש מנגנון התערבות באתרים. צוות Mozilla Webcompat יכול לתקן אתרים לא תקינים ב-Firefox באמצעות המנגנון הזה. אם מקלידים about:compat בסרגל הכתובות של Firefox, ניתן לראות מה הבעיה בתיקון. אם אתר מתקלקל והגרסה הראשית היא 100 בדומיין מסוים, אפשר לתקן זאת על ידי שליחת גרסה 99 במקום זאת.

אם ההפסקות היא בתפוצה רחבה, ניתן להקפיא את מספר הגרסה הראשית. לאחר מכן יש אסטרטגיות אפשריות שונות, לכל אחת יש יתרונות וחסרונות. Mozilla יכולה לשלוח את מספר הגרסה האמיתית כמספר של גרסה משנית, להקפיא את המחרוזת כפי שהיא או לשלוח את מספר הגרסה האמיתית באמצעות פרמטרים אחרים.

לכל אסטרטגיה שמוסיפה מורכבות למחרוזת של סוכן המשתמש יש השפעה משמעותית על הסביבה העסקית. בואו נעבוד יחד כדי להימנע מהתנהגות מוזרה נוספת.

איך אפשר לעזור?

ב-Chrome וב-Firefox Nightly, ניתן להגדיר את הדפדפן כך שידווח על הגרסה כ-100 כרגע ולדווח על בעיות שנתקלתם בהן.

הגדרת Chrome לדיווח על הגרסה הראשית כ-100

  1. למעבר אל chrome://flags/#force-major-version-to-100.
  2. מגדירים את האפשרות לערך Enabled.

הגדרת Firefox Nightly לדיווח על הגרסה הראשית כ-100

  1. פותחים את תפריט ההגדרות בלילה ב-Firefox.
  2. מחפשים את "Firefox 100" ומסמנים את האפשרות "Firefox 100 User-Agent String".

בדיקה ושליחה של דוחות

  • אם אתם מתחזקים אתרים, כדאי לבדוק את האתר באמצעות Chrome ו-Firefox 100. עליכם לבדוק את הספריות וקוד הניתוח של סוכן המשתמש ולוודא שהן יכולות לטפל במספרי גרסאות של שלוש ספרות. גיבשנו כמה מהדפוסים שמשתקפים כרגע.
  • אם אתם מפתחים ספריית ניתוח של סוכן משתמש, צריך להוסיף בדיקות כדי לנתח גרסאות שגדולות מ-100 או יותר. הבדיקות המוקדמות שלנו מראות שגרסאות אחרונות של ספריות יכולות לטפל בו בצורה נכונה. עם זאת, לאינטרנט יש מורשת ארוכה, כך שאם יש לכם גרסאות ישנות של ספריות ניתוח, זה הזמן לבדוק אם יש בעיות ובסופו של דבר לשדרג.
  • אם אתם גולשים באינטרנט ונתקלתם בבעיות בגרסה 100 הראשית, שלחו דוח באתר webcompat.com.