瀏覽器界的“千禧蟲”:Google已着手測試Chrome 100解決方案

Google Chrome 版本號即將突破 100,從前期測試結果來看該版本可能會導致部分網站無法正常工作。目前,Google已經着手調查和測試解決方案。根據 Chromium Bug Tracker,已知受影響的網站主要是那些用 Duda(一個網頁設計工具包)開發的網站。

nqd83i9h.webp

這些網站都使用相同的代碼來檢查你使用的是什麼版本的 Chrome。

一般來說,如果一個網站需要知道你使用的是什麼瀏覽器以及它的最新版本,它將檢查所謂的“用戶代理字符串”(User Agent string)。這是一段文字,你的瀏覽器將其附加到它的每個網絡連接上,讓網站了解自己。如果你分析一下“用戶代理字符串”的實際內容,你會發現有大量的廢話,其中大部分是為了保持與 20 世紀 90 年代和 21 世紀初的網站的兼容性。

但是,在這種情況下,這並不是最重要的。讓我們看一下 Chrome 瀏覽器的用戶代理字符串的例子。

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36

在最後,你可以看到我們要找的部分是”Chrome/96.0.4664.45″,它給了我們瀏覽器的精確版本號。然而,大多數網絡開發者可能只關心主要的版本號,在我們的例子中是”96″。

由於用戶代理字符串是簡單的文本,開發人員需要設計一種方法來解釋這些信息以滿足他們的需要。在Duda的例子中,開發者選擇只讀取“Chrome/”之後的前兩位數字。這意味着“Chrome/99”將是99,但另一方面,“Chrome/100”將被視為 10 版本。

下一個問題是,Duda 會自動阻止任何低於 40 版本的 Chrome 瀏覽器–這是 2015 年發布的,如果這能提供一些觀點的話。隨即,Chrome 99 之後的每個版本的瀏覽器都會被認為是 10 版本,因此被屏蔽。

那麼,如果我們不能拋棄這些網站,可以做些什麼呢?

第一個建議就是是改變開發者應該檢查 Chrome 瀏覽器版本的地方。為了老網站的利益,Chrome 將把用戶代理字符串的第一個版本號鎖定為 99。如果網站開發人員想要檢查超過這個版本的具體版本,他們需要查看第二組數字。

例如,Chrome 100.0.1234.56 的瀏覽器版本在用戶代理字符串中會以“Chrome/99.100.1234.56”這樣的方式展示。為此,在 chrome://flags 中增加了一個新的標誌,讓 Googlers 和網絡開發人員測試各種網站是否會受到 Chrome 主要版本號位置的這種變化的影響。

將 User-Agent 字符串中的 Chrome 主要版本鎖定為 99,並強制將主要版本號放到次要版本位置。這個標誌是對 Chrome 100 意外中斷的一個備份計劃。

#force-major-to-minor

然而,正如你可能注意到的,在該標誌的描述中,這個解決方案被認為是一個”備份計劃”。目前的解決方案是由Google與個別開發者聯繫,了解Chrome 100即將出現的問題。

到目前為止,該公司在這方面的努力實際上有一些運氣,因為Duda不是唯一出現問題的網絡工具包。直到幾天前,所有通過英國的Yell Business創建的網站也被設定為與Chrome 100中斷。在個別Googlers的宣傳下,Yell Business 為其整個網絡修復了這個問題。

目前的希望是,Google能夠明確地找到全網所有在Chrome 100發布時出現故障的網站,並就這個問題與它們的開發者聯繫。如果這些問題能在3月底Chrome 100發布前有足夠的時間得到解決,那麼對網絡開發者來說就根本不需要改變。