Những thay đổi đối với chuỗi tác nhân người dùng, những chiến lược mà Chrome và Firefox đang thực hiện để giảm thiểu tác động và cách bạn có thể trợ giúp.
Chrome và Firefox sẽ đạt phiên bản 100 trong vài tháng tới. Điều này có khả năng làm hỏng trên các trang web dựa vào việc xác định phiên bản trình duyệt để thực hiện logic kinh doanh. Bài đăng này đề cập đến tiến trình của sự kiện, các chiến lược mà Chrome và Firefox đang áp dụng thực hiện để giảm thiểu tác động và cách bạn có thể giúp đỡ.
Chuỗi tác nhân người dùng
Tác nhân người dùng (UA) là một chuỗi mà trình duyệt gửi trong tiêu đề HTTP để máy chủ có thể
xác định trình duyệt. Chuỗi này cũng có thể truy cập được thông qua JavaScript bằng
navigator.userAgent
.
Thẻ này thường có định dạng như sau:
<browser_name>/<major_version>.<minor_version>
Ví dụ: phiên bản phát hành mới nhất của trình duyệt tại thời điểm xuất bản bài đăng này:
- 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
Phiên bản lớn 100 — số phiên bản có ba chữ số
Phiên bản lớn 100 là một cột mốc lớn cho cả Chrome và Firefox. Thành phần này cũng có có thể gây ra gián đoạn trên các trang web khi chúng tôi chuyển từ trạng thái hai chữ số sang số phiên bản gồm ba chữ số. Nhà phát triển web sử dụng tất cả các loại kỹ thuật để phân tích cú pháp các chuỗi này, từ mã tuỳ chỉnh đến việc sử dụng thư viện phân tích cú pháp Tác nhân người dùng, sau đó có thể được dùng để xác định logic xử lý tương ứng. Chiến lược phát hành đĩa đơn Tác nhân người dùng và mọi cơ chế báo cáo phiên bản khác sẽ sớm báo cáo số phiên bản gồm ba chữ số.
Tiến trình phiên bản 100
Trình duyệt phiên bản 100 sẽ được phát hành đầu tiên trong phiên bản thử nghiệm (Chrome Canary, Firefox Nightly), sau đó là phiên bản beta và cuối cùng là phiên bản ổn định của bạn.
Trình duyệt | Dòng thời gian |
---|---|
Chrome (bản phát hành ) | Ngày 29 tháng 3 năm 2022 |
Firefox (bản phát hành ) | Ngày 3 tháng 5 năm 2022 |
Tại sao số phiên bản gồm 3 chữ số có thể gây ra sự cố?
Khi các trình duyệt lần đầu tiên đạt đến phiên bản 10 cách đây hơn 12 năm, phát hiện được nhiều vấn đề với các thư viện phân tích cú pháp tác nhân người dùng vì số phiên bản lớn được lấy từ một từ 2 đến 2.
Không cần tuân theo một thông số kỹ thuật, mỗi trình duyệt lại có định dạng riêng cho chuỗi Tác nhân người dùng và phân tích cú pháp Tác nhân người dùng theo trang web cụ thể. Bây giờ có thể một số thư viện phân tích cú pháp có thể có các giả định hoặc lỗi được cố định giá trị trong mã không tính đến số phiên bản chính gồm ba chữ số. Nhiều thư viện cải thiện logic phân tích cú pháp khi trình duyệt chuyển sang số phiên bản gồm hai chữ số, vì vậy khi đạt đến mốc 3 chữ số có thể sẽ gây ra ít sự cố hơn. Mike Taylor thân mến! một kỹ sư trong nhóm Chrome đã thực hiện một bản khảo sát về hoạt động phân tích cú pháp UA phổ biến không phát hiện thấy bất kỳ vấn đề nào. Chạy thử nghiệm Chrome trong đã phát hiện một số vấn đề, đang được xử lý.
Các trình duyệt sẽ xử lý vấn đề này như thế nào?
Cả Firefox và Chrome đều đang chạy các thử nghiệm trong đó các phiên bản hiện tại của báo cáo trình duyệt đang ở phiên bản lớn 100 để phát hiện các khả năng trang web bị hỏng. Điều này đã dẫn đến một số vấn đề được báo cáo, một số vấn đề trong số đó đã được khắc phục. Những thử nghiệm này sẽ tiếp tục chạy cho đến khi phiên bản 100 ra mắt.
Ngoài ra, chúng tôi cũng có sẵn các chiến lược giảm thiểu lỗi sao lưu, phòng trường hợp phiên bản 100 việc phát hành lên kênh ổn định gây ra nhiều thiệt hại hơn cho các trang web so với dự kiến.
Giảm thiểu lỗi của Chrome
Trong Chrome, kế hoạch dự phòng là sử dụng một cờ để đóng băng phiên bản lớn ở 99 và báo cáo số phiên bản lớn thực sự trong phần phiên bản nhỏ của Chuỗi tác nhân người dùng (mã đã có đã hạ cánh).
Phiên bản Chrome như được báo cáo trong chuỗi Tác nhân người dùng tuân theo mẫu
<major_version>.<minor_version>.<build_number>.<patch_number>
.
Nếu bạn sử dụng gói dự phòng, thì chuỗi Tác nhân người dùng sẽ có dạng như sau sau:
99.101.4988.0
Chrome cũng đang chạy thử nghiệm để đảm bảo rằng việc báo cáo giá trị gồm 3 chữ số trong phiên bản nhỏ, phần của chuỗi không dẫn đến vỡ, vì phần phiên bản nhỏ trong chuỗi Tác nhân người dùng Chrome đã báo cáo giá trị 0 trong một khoảng thời gian rất dài bất cứ lúc nào. Nhóm Chrome sẽ quyết định xem có sử dụng tùy chọn sao lưu hay không dựa trên số lượng và mức độ nghiêm trọng của các vấn đề đã báo cáo.
Giảm thiểu cho Firefox
Trên Firefox, chiến lược sẽ phụ thuộc vào mức độ quan trọng của sự cố. Firefox
có
cơ chế can thiệp của trang web.
Nhóm Mozilla webcompat có thể sửa nóng các trang web bị hỏng trong Firefox bằng cách sử dụng
cơ chế. Nếu nhập about:compat
vào thanh URL của Firefox, bạn có thể thấy
hiện đang được khắc phục. Nếu một trang web gặp lỗi với phiên bản lớn là 100 trên một
miền cụ thể, bạn có thể khắc phục bằng cách gửi phiên bản 99 thay thế.
Nếu sự cố xảy ra trên diện rộng, thì phiên bản lớn có thể đóng băng số. Khi đó, sẽ có các chiến lược khác nhau, mỗi chiến lược với ưu và nhược điểm. Mozilla có thể gửi số phiên bản thực dưới dạng phiên bản nhỏ số, cố định chuỗi hoàn toàn như nguyên trạng hoặc gửi số phiên bản thực thông qua các tham số khác.
Mọi chiến lược làm tăng thêm độ phức tạp cho chuỗi Tác nhân người dùng đều có đối với hệ sinh thái. Hãy cùng nhau tránh những điều chưa từng có hành vi.
Bạn có thể làm gì để giúp chúng tôi?
Trong Chrome và Firefox Nightly, bạn có thể định cấu hình trình duyệt để báo cáo 100 ngay bây giờ và báo cáo mọi sự cố bạn gặp phải.
Định cấu hình Chrome để báo cáo phiên bản lớn là 100
- Chuyển đến
chrome://flags/#force-major-version-to-100
. - Đặt tuỳ chọn này thành
Enabled
.
Định cấu hình Firefox Nightly để báo cáo phiên bản lớn là 100
- Mở trình đơn Settings (Cài đặt) của Firefox Nightly.
- Tìm kiếm "Firefox 100" rồi kiểm tra "Firefox 100 User-Agent Chuỗi" .
Thử nghiệm và báo cáo tệp
- Nếu bạn là một đơn vị duy trì trang web, hãy thử nghiệm trang web của bạn bằng Chrome và Firefox 100. Xem xét mã phân tích cú pháp tác nhân người dùng và các thư viện của bạn, đồng thời đảm bảo chúng có thể xử lý số phiên bản gồm ba chữ số. Chúng ta có đã tổng hợp một số các mẫu đang bị lỗi.
- Nếu bạn phát triển một thư viện phân tích cú pháp tác nhân người dùng, hãy thêm các bài kiểm thử để phân tích cú pháp phiên bản lớn hơn và bằng 100. Các thử nghiệm ban đầu của chúng tôi cho thấy rằng các phiên bản thư viện khác có thể xử lý chính xác. Tuy nhiên, web có một di sản lâu dài, vì vậy, nếu bạn có các phiên bản thư viện phân tích cú pháp cũ, thời gian để kiểm tra các vấn đề và cuối cùng nâng cấp.
- Nếu bạn đang duyệt web và nhận thấy bất kỳ sự cố nào với phiên bản 100, gửi báo cáo lên webcompat.com.