التغييرات في سلسلة وكيل المستخدم، والاستراتيجيات التي يتّبعها Chrome وFirefox للحدّ من التأثير، وكيفية تقديم المساعدة
سيتم طرح الإصدار 100 من Chrome وFirefox بعد شهرَين. وقد يؤدي ذلك إلى حدوث أعطال في المواقع الإلكترونية التي تعتمد على تحديد إصدار المتصفّح لتنفيذ منطق النشاط التجاري. يتناول هذا المنشور المخطط الزمني للأحداث والاستراتيجيات التي يتّبعها Chrome وFirefox للتخفيف من التأثير، وكيفية تقديم المساعدة.
سلسلة User-Agent
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 عامًا، تم اكتشاف العديد من المشاكل في مكتبات تحليل وكيل المستخدم عندما تغيّر رقم الإصدار الرئيسي من رقم واحد إلى رقمَين.
وبدون مواصفات واحدة يمكن اتّباعها، تتّبع المتصفّحات المختلفة تنسيقات مختلفة لسلسلة User-Agent وتحليل User-Agent الخاص بالموقع الإلكتروني. من المُحتمل أن تحتوي بعض مكتبات التحليل على افتراضات أو أخطاء برمجية مبرمجَة لا تأخذ في الاعتبار أرقام الإصدارات الرئيسية المكونة من ثلاثة أرقام. تحسين العديد من المكتبات لمنطق التحليل عندما انتقلت المتصفّحات إلى أرقام الإصدار المكونة من رقمين، لذلك من المتوقّع أن يؤدي بلوغ هذا الإنجاز إلى حدوث مشاكل أقل أجرى مايك تايلور، وهو مهندس في فريق Chrome، استطلاعًا حول مكتبات تحليل طلبات البحث في Universal Analytics الشائعة، ولم يتم رصد أي مشاكل. أدى تشغيل تجارب Chrome في الميدان إلى ظهور بعض المشاكل التي نعمل على حلّها.
ما هي الإجراءات التي تتّخذها المتصفّحات بشأن ذلك؟
أجرى كلّ من Firefox وChrome تجارب حيث تُظهر الإصدارات الحالية من المتصفّح أنّها تستخدم الإصدار الرئيسي 100 لرصد أي تعطُّل محتمل للموقع الإلكتروني. وقد أدّى ذلك إلى رصد بعض المشاكل، وتم حلّ بعضها. وسيستمر تنفيذ هذه التجارب إلى أن يتم إصدار الإصدار 100.
تتوفّر أيضًا استراتيجيات احتياطية للحدّ من الضرر في حال تسبب إصدار الإصدار 100 في حدوث أضرار أكبر على المواقع الإلكترونية مما هو متوقّع.
تخفيف المشاكل في Chrome
في Chrome، تتمثل الخطة الاحتياطية في استخدام علامة لتجميد الإصدار الرئيسي على 99 وإبلاغ رقم الإصدار الرئيسي الفعلي في جزء الإصدار الثانوي من سلسلة وكيل المستخدم (سبق أن تم طرح الرمز).
يتّبع إصدار Chrome المُدرَج في سلسلة User-Agent النمط
<major_version>.<minor_version>.<build_number>.<patch_number>
.
في حال استخدام الخطة الاحتياطية، ستظهر سلسلة User-Agent على النحو التالي:
99.101.4988.0
يُجري Chrome أيضًا تجارب لضمان عدم حدوث أي مشاكل عند إدخال قيمة من ثلاثة أرقام في جزء الإصدار الثانوي من السلسلة، لأنّه تم إدخال القيمة 0 لمدة طويلة جدًا في الإصدار الثانوي من سلسلة وكيل المستخدم في Chrome. سيقرّ فريق Chrome ما إذا كان سيتم اللجوء إلى الخيار الاحتياطي، وذلك تبعًا لعدد المشاكل التي تم الإبلاغ عنها وشدتها.
الحد من تأثير الخطأ في Firefox
في Firefox، تعتمد الاستراتيجية على مدى أهمية الانهيار. يحتوي Firefox
على
آلية تدخلات الموقع الإلكتروني.
يمكن لفريق التوافق على الويب في Mozilla إجراء تصحيح فوري للمواقع الإلكترونية المعطّلة في Firefox باستخدام هذه
الآلية. إذا كتبت about:compat
في شريط عناوين URL في Firefox، يمكنك الاطّلاع على ما يتم حلّه حاليًا. إذا تعطّل موقع إلكتروني وكان الإصدار الرئيسي هو 100 على
نطاق معيّن، من الممكن حلّ المشكلة من خلال إرسال الإصدار 99 بدلاً من ذلك.
إذا كان العُطل منتشرًا على نطاق واسع، من الممكن تجميد رقم الإصدار الرئيسي. بعد ذلك، هناك استراتيجيات مختلفة محتملة، ولكل منها مزاياها وعيوبها. يمكن أن ترسل Mozilla رقم الإصدار الفعلي كرقم إصدار ثانوي، أو تجمِّد السلسلة بالكامل كما هي، أو ترسل رقم الإصدار الفعلي من خلال مَعلمات أخرى.
إنّ كل استراتيجية تضيف تعقيدًا إلى سلسلة User-Agent لها أثر قوي في المنظومة المتكاملة. لنعمل معًا على تجنّب حدوث أي سلوك غريب آخر.
ما هي الإجراءات التي يمكنك اتّخاذها للمساعدة؟
في الإصدارات التجريبية من Chrome وFirefox، يمكنك ضبط المتصفّح لعرض الإصدار 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 ومكتباتها، و تأكّد من أنّها قادرة على معالجة أرقام الإصدارات المكونة من ثلاثة أرقام. لقد جمعنا بعضًا من النماذج التي لا تعمل حاليًا.
- إذا كنت تُطوّر مكتبة لتحليل User-Agent، أضِف اختبارات لتحليل الإصدارات التي تزيد عن 100 أو تساويه. وتُظهر اختباراتنا الأولية أنّه يمكن للإصدارات الأحدث من المكتبات التعامل مع هذه المشكلة بشكل صحيح. ومع ذلك، يملك الويب تاريخًا طويلاً، لذا إذا كانت لديك إصدارات قديمة من مكتبات التحليل، لقد حان الوقت للتحقّق من المشاكل والترقية في النهاية.
- إذا كنت تتصفّح الويب ولاحظت أي مشاكل في الإصدار الرئيسي 100، قدِّم بلاغًا على webcompat.com.