Chrome และ Firefox จะเปลี่ยนเป็นเวอร์ชันหลัก 100 เร็วๆ นี้

การเปลี่ยนแปลงสตริง User Agent, กลยุทธ์ที่ Chrome และ Firefox ใช้เพื่อลดผลกระทบ และวิธีการที่คุณจะช่วยได้

Chrome และ Firefox จะมีขึ้นถึงเวอร์ชัน 100 ในอีก 2-3 เดือนข้างหน้า อาจทำให้เกิดการหยุดทำงาน ในเว็บไซต์ที่ต้องใช้การระบุเวอร์ชันของเบราว์เซอร์เพื่อดำเนินการตรรกะทางธุรกิจ โพสต์นี้ครอบคลุมไทม์ไลน์ของเหตุการณ์ กลยุทธ์ที่ 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 - หมายเลขเวอร์ชัน 3 หลัก

เวอร์ชันหลัก 100 คือความสำเร็จครั้งใหญ่สำหรับทั้ง Chrome และ Firefox และยังมี โอกาสที่จะเกิดความเสียหายบนเว็บไซต์ เมื่อเราเปลี่ยนจากตัวเลข 2 หลักไปเป็น หมายเลขเวอร์ชัน 3 หลัก นักพัฒนาเว็บใช้เทคนิคทุกชนิดเพื่อ การแยกวิเคราะห์สตริงเหล่านี้ ตั้งแต่โค้ดที่กำหนดเองไปจนถึงการใช้ไลบรารีการแยกวิเคราะห์ User-Agent ซึ่งสามารถใช้เพื่อกำหนดตรรกะการประมวลผลที่เกี่ยวข้อง User-Agent และกลไกการรายงานเวอร์ชันอื่นๆ จะรายงาน หมายเลขเวอร์ชัน 3 หลัก

ไทม์ไลน์ของเวอร์ชัน 100

เบราว์เซอร์เวอร์ชัน 100 จะเปิดตัวในเวอร์ชันทดลองก่อน (Chrome Canary, Firefox Nightly) ตามด้วยรุ่นเบต้า จากนั้นไปที่รุ่นเสถียร

เบราว์เซอร์ ไทม์ไลน์
Chrome (รุ่น กำหนดการ) 29 มีนาคม 2022
Firefox (release กำหนดการ) 3 พฤษภาคม 2022

ทำไมหมายเลขเวอร์ชัน 3 หลักอาจเป็นปัญหาได้

เมื่อเบราว์เซอร์เข้าถึงเวอร์ชัน 10 เป็นครั้งแรกเมื่อ 12 ปีที่แล้ว พบปัญหาหลายอย่าง ที่มีไลบรารีการแยกวิเคราะห์ของ User Agent เมื่อหมายเลขเวอร์ชันหลักเพิ่มจาก 1 ตัวเลขเป็น 2

หากไม่มีข้อกำหนดตายตัว เบราว์เซอร์ต่างๆ ก็มีรูปแบบ สำหรับสตริง User Agent และการแยกวิเคราะห์ User-Agent เฉพาะเว็บไซต์ ตอนนี้ เป็นไปได้ที่ไลบรารีการแยกวิเคราะห์บางไลบรารีอาจมีสมมติฐานหรือข้อบกพร่องที่ฮาร์ดโค้ด โดยไม่ได้คำนึงถึงหมายเลขเวอร์ชันหลัก 3 หลัก ห้องสมุดหลายแห่ง ปรับปรุงตรรกะการแยกวิเคราะห์เมื่อเบราว์เซอร์เปลี่ยนไปใช้หมายเลขเวอร์ชัน 2 หลัก การบรรลุเป้าหมายเลข 3 หลักคาดว่าจะทำให้เกิดปัญหาน้อยลง ไมค์ เทย์เลอร์ วิศวกรของทีม Chrome ได้ทำการสำรวจการแยกวิเคราะห์ UA ที่พบบ่อย ไลบรารีที่ไม่พบปัญหาใดๆ การเรียกใช้การทดสอบ Chrome ใน พบปัญหาบางอย่างซึ่งอยู่ระหว่างการแก้ไข

เบราว์เซอร์ทำอะไรบ้าง

ทั้ง Firefox และ Chrome ได้ทำการทดลองโดยที่เวอร์ชันปัจจุบันของ รายงานของเบราว์เซอร์เป็นเวอร์ชันหลัก 100 เพื่อตรวจหาความเป็นไปได้ การหยุดทำงานของเว็บไซต์ จึงทำให้เกิดปัญหาที่มีการรายงานบางประการ ซึ่งได้แก้ไขไปแล้วบางส่วน การทดสอบเหล่านี้จะยังคงทำงานต่อไปจนกว่าจะมีการเปิดตัวเวอร์ชัน 100

นอกจากนี้ยังมีกลยุทธ์การผ่อนปรนชั่วคราวด้วย ในกรณีที่เวอร์ชัน 100 การเผยแพร่ไปยังช่องทางที่มีความเสถียรจะทำให้เว็บไซต์ได้รับความเสียหายมากกว่าที่คาดไว้

การลดความเสี่ยงของ Chrome

ใน Chrome แผนการสำรองข้อมูลคือการใช้ Flag เพื่อตรึงเวอร์ชันหลักไว้ที่ 99 และรายงานหมายเลขเวอร์ชันหลักที่แท้จริงในส่วนเวอร์ชันย่อยของ สตริง User-Agent (โค้ดนี้มีแล้ว ลงจอดแล้ว)

เวอร์ชันของ Chrome ตามที่รายงานในสตริง User-Agent เป็นไปตามรูปแบบ <major_version>.<minor_version>.<build_number>.<patch_number>

หากใช้แผนสำรอง สตริง User Agent จะมีลักษณะเช่นนี้ ดังนี้

99.101.4988.0

Chrome ยังทำการทดสอบเพื่อให้มั่นใจว่าการรายงานค่าตัวเลข 3 หลัก ในสตริงเวอร์ชันย่อยจะไม่ทำให้เกิดการหยุดทำงาน เนื่องจาก เวอร์ชันย่อยในสตริง User-Agent ของ Chrome ได้รายงาน 0 มานานมากแล้ว ทีม Chrome จะตัดสินใจว่าจะใช้ตัวเลือกการสำรองข้อมูลหรือไม่ ขึ้นอยู่กับจำนวนและความรุนแรงของปัญหาที่รายงาน

การผ่อนปรนชั่วคราวใน Firefox

ใน Firefox กลยุทธ์นี้จะขึ้นอยู่กับความสำคัญของการหยุดทำงาน Firefox มี กลไกการแทรกแซงในเว็บไซต์ ทีม Mozilla Webcompat สามารถแก้ไขเว็บไซต์ที่ใช้งานไม่ได้ใน Firefox ได้โดยใช้ Google Analytics หากคุณพิมพ์ about:compat ในแถบ URL ของ Firefox คุณจะเห็น ได้รับการแก้ไขอยู่ในขณะนี้ หากเว็บไซต์ไม่ทำงานโดยที่เวอร์ชันหลักเป็น 100 ใน เฉพาะโดเมนที่เจาะจง คุณสามารถแก้ไขได้โดยส่งเวอร์ชัน 99 แทน

หากความเสียหายเกิดขึ้นเป็นวงกว้าง อาจทำให้มีการหยุดทำงานเวอร์ชันหลัก หมายเลข จากนั้นมีกลยุทธ์ที่เป็นไปได้ต่างๆ โดยแต่ละกลยุทธ์ ข้อดีและข้อเสีย Mozilla จะส่งหมายเลขเวอร์ชันจริงเป็นเวอร์ชันย่อยได้ ตรึงสตริงทั้งหมด หรือส่งหมายเลขเวอร์ชันจริง ผ่านพารามิเตอร์อื่นๆ

ทุกกลยุทธ์ที่เพิ่มความซับซ้อนให้กับสตริง User-Agent ผลกระทบต่อระบบนิเวศ มาช่วยกันหลีกเลี่ยงความแปลกใหม่ พฤติกรรมของคุณ

สิ่งที่คุณทำได้เพื่อช่วยเหลือ

ใน Chrome และ Firefox ตอนกลางคืน คุณสามารถกำหนดค่าเบราว์เซอร์ให้รายงาน เป็น 100 แล้วรายงานปัญหาที่พบ

กำหนดค่า Chrome เพื่อรายงานเวอร์ชันหลักเป็น 100

  1. ไปที่ chrome://flags/#force-major-version-to-100
  2. ตั้งค่าตัวเลือกเป็น Enabled

กำหนดค่า Firefox Nightly เพื่อรายงานเวอร์ชันหลักเป็น 100

  1. เปิดเมนูการตั้งค่าของ Firefox Nightly
  2. ค้นหา "Firefox 100" จากนั้นทำเครื่องหมายที่ "Firefox 100 User-Agent สตริง" ตัวเลือก

การทดสอบและรายงานไฟล์

  • หากคุณเป็นผู้ดูแลเว็บไซต์ ให้ทดสอบเว็บไซต์ด้วย Chrome และ Firefox 100 ตรวจสอบโค้ดและไลบรารีการแยกวิเคราะห์ของ User Agent และ ให้แน่ใจว่าบริษัทสามารถจัดการหมายเลขเวอร์ชัน 3 หลักได้ เรามี ได้รวบรวมบางส่วนของ ลายที่ได้รับความนิยมในปัจจุบัน
  • หากคุณพัฒนาไลบรารีการแยกวิเคราะห์ User-Agent ให้เพิ่มการทดสอบเพื่อแยกวิเคราะห์ เวอร์ชันที่สูงกว่าและเท่ากับ 100 การทดสอบในระยะแรกแสดงให้เห็นว่า เวอร์ชันต่างๆ ของไลบรารีก็จัดการได้อย่างถูกต้อง แต่เว็บมีประวัติอันยาวนาน ดังนั้นหากคุณมีไลบรารีการแยกวิเคราะห์เวอร์ชันเก่า ในการตรวจสอบปัญหาและอัปเกรดในที่สุด
  • หากคุณกำลังเรียกดูเว็บและสังเกตเห็นปัญหาต่างๆ เกี่ยวกับ เวอร์ชัน 100 ส่งรายงานใน webcompat.com