瀏覽器界的「千禧蟲」:Google已著手測試Chrome 100解決方案
Google Chrome 版本號即將突破 100,從前期測試結果來看該版本可能會導致部分網站無法正常工作。 目前,Google已經著手調查和測試解決方案。 根據 Chromium Bug Tracker,已知受影響的網站主要是那些用 Duda(一個網頁設計工具包)開發的網站。
這些網站都使用相同的代碼來檢查你使用的是什麼版本的 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發佈前有足夠的時間得到解決,那麼對網路開發者來說就根本不需要改變。