השינויים במחרוזת User-Agent, השיטות שבהן Chrome ו-Firefox משתמשים כדי לצמצם את ההשפעה ואיך אתם יכולים לעזור.
Chrome ו-Firefox יגיעו לגרסה 100 בעוד כמה חודשים. כתוצאה מכך, יכול להיות שיהיו בעיות באתרים שמסתמכים על זיהוי גרסת הדפדפן כדי לבצע לוגיקה עסקית. בפוסט הזה נסביר על ציר הזמן של האירועים, על השיטות שאנחנו משתמשים בהן ב-Chrome וב-Firefox כדי לצמצם את ההשפעה ועל הדרכים שבהן אתם יכולים לעזור.
מחרוזת של סוכן משתמש
User-Agent (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. בנוסף, היא עלולה לגרום לשיבושים באתרים במהלך המעבר ממספר גרסה דו-ספרתי למספר גרסה בן שלוש ספרות. מפתחי אתרים משתמשים בכל מיני שיטות כדי לנתח את המחרוזות האלה, החל מקוד מותאם אישית ועד לשימוש בספריות לניתוח User-Agent, שבעזרתן אפשר לקבוע את לוגיקת העיבוד המתאימה. בקרוב, ה-User-Agent וכל מנגנון אחר לדיווח על גרסה יכללו מספר גרסה בן שלוש ספרות.
צירי זמן בגרסה 100
דפדפנים בגרסה 100 יושקו קודם בגרסאות ניסיוניות (Chrome Canary, Firefox Nightly), לאחר מכן בגרסאות בטא ולבסוף בערוץ היציב.
דפדפן | ציר הזמן |
---|---|
Chrome (לוח הזמנים להשקה) | 29 במרץ 2022 |
Firefox (לוח זמנים להפצה) | 3 במאי 2022 |
למה מספר גרסה בן שלושה ספרות יכול להיות בעייתי?
כשהדפדפנים הגיעו לגרסת 10 לראשונה לפני קצת יותר מ-12 שנים, זוהו בעיות רבות בספריות לניתוח של סוכן המשתמש, כי מספר הגרסה הראשית השתנה מספר ספרתי אחד לשני.
מכיוון שאין מפרט יחיד שצריך לפעול לפיו, לדפדפנים שונים יש פורמטים שונים למחרוזת של סוכן המשתמש, וניתוח של סוכן המשתמש ספציפי לאתר. יכול להיות שספריות ניתוח מסוימות מכילות הנחות או באגים מקודדים שלא מביאים בחשבון מספרי גרסאות ראשיות של שלוש ספרות. כשהדפדפנים עברו למספרי גרסאות דו-ספרתיים, הרבה ספריות שיפרו את הלוגיקה של הניתוח, כך שצפויות פחות בעיות כשהגרסה תגיע למספר בן שלוש ספרות. מייק טיילור, מהנדס בצוות Chrome, ערך סקר של ספריות נפוצות לניתוח UA ולא גילה בעיות. במהלך ההרצה של ניסויים ב-Chrome בשטח, נתקלו בבעיות מסוימות שאנחנו עובדים עליהן.
מה הדפדפנים עושים בקשר לזה?
בדפדפני Firefox ו-Chrome התבצעו ניסויים שבהם הגרסאות הנוכחיות של הדפדפנים דיווחו על גרסת build ראשית 100, כדי לזהות תקלות אפשריות באתרים. כתוצאה מכך, דווחו כמה בעיות, שחלקן כבר תוקנו. הניסויים האלה ימשיכו לפעול עד לפרסום של גרסה 100.
יש גם אמצעי מוכנים למזעור נזקים במקרה שהשקת הגרסה 100 בערוצים היציבים תגרום לנזק גדול יותר לאתרים מהצפוי.
צמצום נזקים ב-Chrome
ב-Chrome, תוכנית הגיבוי היא להשתמש בדגל כדי להקפיא את הגרסה הראשית ב-99 ולדווח על מספר הגרסה הראשית האמיתי בחלק של הגרסה המשנית במחרוזת User-Agent (הקוד כבר הושק).
גרסת Chrome שמדווחת במחרוזת User-Agent תואמת לדפוס <major_version>.<minor_version>.<build_number>.<patch_number>
.
אם תוכנית הגיבוי מופעלת, מחרוזת User-Agent תיראה כך:
99.101.4988.0
אנחנו גם עורכים ניסויים ב-Chrome כדי לוודא שדיווח על ערך בן שלוש ספרות בחלק של הגרסה המשנית במחרוזת לא יגרום לשיבושים, מאחר שהגרסה המשנית במחרוזת User-Agent של Chrome דיווחה על 0 במשך זמן רב מאוד. צוות Chrome יחליט אם להשתמש באפשרות הגיבוי על סמך מספר הבעיות שדווחו וחומרתן.
מיטיגציה ב-Firefox
ב-Firefox, האסטרטגיה תלויה בחשיבות של השיבוש. ל-Firefox יש מנגנון התערבות באתרים.
בעזרת המנגנון הזה, צוות התאימות לאינטרנט של Mozilla יכול לתקן באופן מיידי אתרים שבורים ב-Firefox. אם מקלידים about:compat
בסרגל כתובות ה-URL של Firefox, אפשר לראות אילו בעיות אנחנו מטפלים בהן כרגע. אם אתר לא פועל כשגרסה הראשית היא 100 בדומיין ספציפי, אפשר לשלוח במקום זאת את הגרסה 99.
אם השגיאות נפוצות, אפשר להקפיא את מספר הגרסה הראשית. לאחר מכן יש כמה אסטרטגיות אפשריות, לכל אחת מהן יתרונות וחסרונות. Mozilla יכולה לשלוח את מספר הגרסה האמיתי כמספר גרסה משני, להקפיא את המחרוזת לחלוטין כפי שהיא או לשלוח את מספר הגרסה האמיתי דרך פרמטרים אחרים.
לכל אסטרטגיה שמוסיפה מורכבות למחרוזת User-Agent יש השפעה משמעותית על הסביבה העסקית. נעבוד יחד כדי למנוע התנהגות מוזרה נוספת.
מה אפשר לעשות כדי לעזור?
ב-Chrome וב-Firefox Nightly, אפשר להגדיר את הדפדפן לדווח על הגרסה בתור 100 כבר עכשיו ולדווח על בעיות שתתקלו בהן.
הגדרת Chrome לדיווח על הגרסה הראשית כ-100
- לעבור אל
chrome://flags/#force-major-version-to-100
. - מגדירים את האפשרות ל-
Enabled
.
הגדרת Firefox Nightly לדיווח על הגרסה הראשית כ-100
- פותחים את תפריט ההגדרות של Firefox Nightly.
- מחפשים את 'Firefox 100' ומסמנים את האפשרות 'Firefox 100 User-Agent String'.
דוחות בדיקה ודוחות קבצים
- אם אתם אחראים על אתר, כדאי לבדוק את האתר ב-Chrome וב-Firefox 100. בודקים את הקוד והספריות של ניתוח סוכן המשתמש, ומוודאים שהם יכולים לטפל במספרי גרסה בת שלוש ספרות. ריכזנו כאן כמה מהדפוסים שגורמים לבעיות כרגע.
- אם אתם מפתחים ספרייה לניתוח User-Agent, מוסיפים בדיקות לניתוח גרסאות שגדולות מ-100 או שוות לה. מהבדיקות המוקדמות שלנו עולה שגרסאות עדכניות של הספריות יכולות לטפל בבעיה הזו בצורה תקינה. עם זאת, לאינטרנט יש היסטוריה ארוכה, ולכן אם יש לכם גרסאות ישנות של ספריות ניתוח, הגיע הזמן לבדוק אם יש בעיות ולשדרג אותן.
- אם אתם גולשים באינטרנט ומבחינים בבעיות בגרסה הראשית 100, תוכלו לשלוח דיווח בכתובת webcompat.com.