Chrome ve Firefox yakında ana sürüm 100'e ulaşacak

User-Agent dizesi değişiklikleri, Chrome ve Firefox'un bu etkiyi azaltmak için uyguladığı stratejiler ve nasıl yardımcı olabileceğiniz.

Chrome ve Firefox birkaç ay içinde 100 sürümüne ulaşacaktır. Bu durum, iş mantığını gerçekleştirebilmek için tarayıcı sürümünün belirlenmesine dayanan sitelerde bozulmalara neden olabilir. Bu yayında, olayların zaman çizelgesi, Chrome ve Firefox'un bu etkiyi azaltmak için uyguladığı stratejiler ve nasıl yardımcı olabileceğiniz ele alınmaktadır.

User-Agent dizesi

User-Agent (UA), tarayıcıların tarayıcıyı HTTP başlıklarında gönderdiği bir dizedir. Bu şekilde sunucular tarayıcıyı tanımlayabilir. Dizeye, navigator.userAgent aracılığıyla JavaScript aracılığıyla da erişilebilir. Genellikle aşağıdaki gibi biçimlendirilir:

<browser_name>/<major_version>.<minor_version>

Örneğin, bu yayının yayınlandığı sırada tarayıcıların en son sürümleri şunlardır:

  • 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

Ana sürüm 100 - Üç haneli sürüm numarası

100 ana sürümü, hem Chrome hem de Firefox için önemli bir kilometre taşıdır. Ayrıca, iki haneli bir sürümden üç haneli bir sürüm numarasına geçiş yaptığımızda web sitelerinde kesintilere yol açma potansiyeli de vardır. Web geliştiricileri, bu dizeleri ayrıştırmak için özel koddan Kullanıcı Aracısı ayrıştırma kitaplıklarını kullanmaya kadar her türlü tekniği kullanır. Ardından bu teknikler, ilgili işleme mantığını belirlemek için kullanılabilir. User-Agent ve diğer sürüm raporlama mekanizmaları yakında üç haneli bir sürüm numarası bildirecektir.

Sürüm 100 zaman çizelgeleri

Sürüm 100 tarayıcıları önce deneysel sürümlerde (Chrome Canary, Firefox Nightly), ardından beta sürümlerinde ve son olarak da kararlı kanalında kullanıma sunulacaktır.

Tarayıcı Zaman çizelgesi
Chrome (sürüm programı) 29 Mart 2022
Firefox (sürüm programı) 3 Mayıs 2022

Üç haneli bir sürüm numarası neden sorunlu olabilir?

12 yıldan biraz daha uzun bir süre önce tarayıcılar sürüm 10'a ilk kez ulaştığında, ana sürüm numarası bir basamaktan ikiye yükseldiği için Kullanıcı Aracısı'nın kitaplıkları ayrıştırmasıyla ilgili birçok sorun keşfedildi.

Uygulanacak tek bir spesifikasyon olmadığında, User-Agent dizesi ve siteye özgü User-Agent ayrıştırması için farklı tarayıcılar farklı biçimlere sahiptir. Bazı ayrıştırma kitaplıklarında, üç haneli ana sürüm numaralarını hesaba katmayan sabit kodlu varsayımlar veya hatalar bulunabilir. Birçok kitaplık, tarayıcılar iki basamaklı sürüm numaralarına geçtiğinde ayrıştırma mantığını iyileştirmiştir. Bu nedenle, üç basamaklı ara hedefe ulaşmanın daha az soruna neden olması beklenir. Chrome ekibinde mühendis olan MikeTaylor, yaygın olarak kullanılan UA ayrıştırma kitaplıklarıyla ilgili bir anket yaptı ve bu ankette herhangi bir sorun tespit edilmedi. Projede Chrome denemeleri çalıştırıldığında, üzerinde çalışılan bazı sorunlar ortaya çıktı.

Tarayıcılar bu konuda ne yapıyor?

Hem Firefox hem de Chrome, web sitesindeki olası kesintiyi tespit etmek için tarayıcının mevcut sürümlerinin 100 ana sürümünde olduğunu bildirdiği denemeler yapıyor. Bu nedenle bildirilen birkaç sorun bildirilmiş ve bir kısmı düzeltilmiş durumda. Bu denemeler, 100 sürümü kullanıma sunulana kadar çalışmaya devam edecektir.

Kararlı kanallara sunulan 100 sürümünün web sitelerine beklenenden daha fazla zarar vermesi ihtimaline karşı, yedek risk azaltma stratejileri de vardır.

Chrome çözümü

Chrome'da yedekleme planı, ana sürümü 99'da dondurmak için bir işaret kullanmak ve User-Agent dizesinin alt sürümündeki gerçek ana sürüm numarasını (kod zaten indirilmiştir) bildirmektir.

User-Agent dizesinde bildirilen Chrome sürümü, <major_version>.<minor_version>.<build_number>.<patch_number> kalıbını izler.

Yedekleme planı kullanılıyorsa User-Agent dizesi şöyle görünür:

99.101.4988.0

Chrome Kullanıcı Aracısı dizesindeki küçük sürüm, çok uzun bir süre 0 değerini bildirdiğinden Chrome, dizenin alt sürümündeki üç basamaklı bir değerin raporlanmasına yol açmamasını sağlamak için denemeler de yürütmektedir. Chrome ekibi, bildirilen sorunların sayısına ve önem derecesine bağlı olarak yedekleme seçeneğinin kullanılıp kullanılmayacağına karar verir.

Firefox çözümü

Firefox'ta strateji, bozulmanın ne kadar önemli olduğuna bağlı olacaktır. Firefox'un bir site müdahale mekanizması vardır. Mozilla webcompat ekibi, bu mekanizmayı kullanarak Firefox'taki bozuk web sitelerini düzeltebilir. Firefox URL çubuğuna about:compat yazarsanız nelerin düzeltildiğini görebilirsiniz. Bir site, belirli bir alanda ana sürümün 100 olmasına rağmen bozulursa bunun yerine sürüm 99'u göndererek sorunu düzeltebilirsiniz.

Bozulma geniş çaplıysa ana sürüm numarası dondurulabilir. Ardından farklı olası stratejiler vardır. Bunların her birinin avantajları ve dezavantajları vardır. Mozilla, gerçek sürüm numarasını alt sürüm numarası olarak gönderebilir, dizeyi olduğu gibi dondurabilir veya gerçek sürüm numarasını diğer parametreler üzerinden gönderebilir.

User-Agent dizesine karmaşıklık katan her stratejinin ekosistem üzerinde önemli bir etkisi vardır. Başka bir garip davranıştan kaçınmak için birlikte çalışalım.

Yardımcı olmak için ne yapabilirsiniz?

Chrome ve Firefox Gecelik'te, tarayıcıyı şu anda sürümü 100 olarak bildirecek ve karşılaştığınız sorunları bildirecek şekilde yapılandırabilirsiniz.

Chrome'u ana sürümü 100 olarak bildirecek şekilde yapılandırma

  1. Şuraya git: chrome://flags/#force-major-version-to-100.
  2. Seçeneği Enabled olarak ayarlayın.

Firefox'u Gecelik'i ana sürümü 100 olarak bildirecek şekilde yapılandırın

  1. Firefox Gecelik Ayarlar menüsünü açın.
  2. "Firefox 100" araması yapın ve ardından "Firefox 100 User-Agent Dizesi" seçeneğini işaretleyin.

Test etme ve rapor gönderme

  • Web sitesi yöneticisiyseniz web sitenizi Chrome ve Firefox 100 ile test edin. Kullanıcı Aracısı ayrıştırma kodunuzu ve kitaplıklarınızı gözden geçirip üç haneli sürüm numaralarını işleyebildiğinden emin olun. Şu anda bozulan kalıplardan bazılarını derledik.
  • Bir User-Agent ayrıştırma kitaplığı geliştirirseniz 100'den büyük ve 100'e eşit sürümleri ayrıştırmak için testler ekleyin. İlk testlerimiz, kitaplıkların yeni sürümlerinin bu sorunu doğru şekilde işleyebildiğini gösteriyor. Bununla birlikte, web'in uzun bir geçmişi vardır. Bu nedenle, kitaplıkları ayrıştırmanın eski sürümleri varsa sorunları kontrol etmenin ve nihayetinde yükseltmenin zamanı gelmiştir.
  • Web'de gezinirken ana sürüm 100'de sorun olduğunu fark ederseniz webcompat.com adresinden rapor oluşturun.