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

Kullanıcı aracısı dizesi değişiklikleri, Chrome ve Firefox'un bu değişikliğin etkisini azaltmak için uyguladığı stratejiler ve nasıl yardımcı olabileceğiniz.

Chrome ve Firefox birkaç ay içinde 100. sürüme ulaşacak. Bu, iş mantığını gerçekleştirmek için tarayıcı sürümünü tanımlamaya dayanan sitelerde kesintilere neden olabilir. Bu yayında, olayların zaman çizelgesi, Chrome ve Firefox'un 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 HTTP üstbilgilerinde gönderdiği bir dizedir. Böylece sunucular tarayıcıyı tanımlayabilir. Dizene navigator.userAgent ile JavaScript üzerinden de erişilebilir. Genellikle aşağıdaki gibi biçimlendirilir:

<browser_name>/<major_version>.<minor_version>

Örneğin, bu gönderinin 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 dönüm noktasıdır. Ayrıca, iki basamaklı sürüm numarasından üç basamaklı sürüm numarasına geçerken web sitelerinde kesintilere neden olabilir. Web geliştiricileri, bu dizeleri ayrıştırmak için özel koddan User-Agent ayrıştırma kitaplıklarını kullanmaya kadar her türlü tekniği kullanır. Bu teknikler daha sonra ilgili işlem 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ı bildirecek.

100 sürümü zaman çizelgeleri

100 numaralı sürüm tarayıcılar önce deneysel sürümlerde (Chrome Canary, Firefox Nightly), ardından beta sürümlerde ve son olarak kararlı kanalda yayınlanacaktır.

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

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

Tarayıcılar 12 yıldan biraz daha uzun bir süre önce 10. sürüme ulaştığında, ana sürüm numarası bir basamaktan ikiye çıktığı için User-Agent ayrıştırma kitaplıklarıyla ilgili birçok sorun tespit edildi.

Tek bir spesifikasyon olmadığından, farklı tarayıcıların User-Agent dizesi için farklı biçimleri ve siteye özgü User-Agent ayrıştırması vardır. Bazı ayrıştırma kitaplıklarında, üç haneli ana sürüm numaralarını dikkate almayan sabit kodlanmış varsayımlar veya hatalar olabilir. Tarayıcılar iki haneli sürüm numaralarına geçtiğinde birçok kitaplık ayrıştırma mantığını iyileştirdi. Bu nedenle, üç haneli kilometre taşına ulaşılmasının daha az soruna neden olması bekleniyor. Chrome ekibindeki bir mühendis olan Mike Taylor, yaygın UA ayrıştırma kitaplıklarıyla ilgili bir anket yaptı ve herhangi bir sorunla karşılaşmadı. Sahada Chrome deneyleri çalıştırırken bazı sorunlarla karşılaşıldı. Bu sorunlar üzerinde çalışılıyor.

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

Hem Firefox hem de Chrome, olası web sitesi sorunlarını tespit etmek için tarayıcının mevcut sürümlerinin 100 ana sürümünde olduğunu bildirdiği deneyler yürütüyor. Bu durum, bazılarının düzeltilmiş olduğu birkaç raporlanan soruna yol açtı. Bu denemeler, 100 sürümü yayınlanana kadar çalışmaya devam edecektir.

Ayrıca, 100 sürümünün kararlı kanallara yayınlanmasının web sitelerine beklenenden daha fazla zarar vermesi ihtimaline karşı yedek azaltma stratejileri de mevcuttur.

Chrome'da azaltma

Chrome'da yedek plan, ana sürümü 99'da dondurmak ve User-Agent dizenin alt sürüm bölümünde asıl ana sürüm numarasını bildirmek için bir işaret kullanmaktır (kod zaten yayınlanmıştır).

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

Yedek plan kullanılıyorsa User-Agent dizesi aşağıdaki gibi görünür:

99.101.4988.0

Chrome User-Agent dizesindeki küçük sürüm çok uzun bir süredir 0 olarak raporlandığından Chrome, dizenin küçük sürüm bölümünde üç haneli bir değerin raporlanmasının kesintiye neden olmaması için de denemeler yapmaktadır. Chrome ekibi, bildirilen sorunların sayısına ve önem derecesine göre yedek seçenekten yararlanıp yararlanmayacağına karar verir.

Firefox'ta bu sorunun çözümü

Firefox'ta strateji, kesintinin ne kadar önemli olduğuna bağlıdır. Firefox'ta site müdahale mekanizması bulunur. Mozilla web uyumluluğu ekibi, bu mekanizmayı kullanarak Firefox'ta bozuk web sitelerini anında düzeltebilir. Firefox URL çubuğuna about:compat yazarsanız şu anda hangi sorunun düzeltildiğini görebilirsiniz. Belirli bir alanda ana sürüm 100 olan bir sitede sorun oluşursa bunun yerine 99 sürümünü göndererek sorunu düzeltebilirsiniz.

Kesinti yaygınsa ana sürüm numarasını dondurmak mümkündür. Ayrıca, her birinin avantajları ve dezavantajları olan farklı stratejiler de vardır. Mozilla, gerçek sürüm numarasını küçük sürüm numarası olarak gönderebilir, dizeyi olduğu gibi dondurabilir veya gerçek sürüm numarasını diğer parametreler aracılığıyla gönderebilir.

User-Agent dizesine karmaşıklık katan her strateji, ekosistem üzerinde güçlü bir etkiye sahiptir. Bu tür garip davranışların tekrarlanmaması için birlikte çalışalım.

Yardım etmek için neler yapabilirsiniz?

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

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

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

Ana sürümü 100 olarak bildirecek şekilde Firefox Nightly'i yapılandırma

  1. Firefox Nightly'nin Ayarlar menüsünü açın.
  2. "Firefox 100"ü arayın ve ardından "Firefox 100 Kullanıcı Aracı Dizesi" seçeneğini işaretleyin.

Testler ve raporlar

  • Web sitesi yöneticisiyseniz web sitenizi Chrome ve Firefox 100 ile test edin. User-Agent ayrıştırma kodunuzu ve kitaplıklarınızı inceleyin ve üç haneli sürüm numaralarını işleyebileceklerinden emin olun. Şu anda geçerliliğini yitiren bazı kalıpları derledik.
  • Kullanıcı aracısı ayrıştırma kitaplığı geliştiriyorsanız 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 son sürümlerinin bu sorunu doğru şekilde çözebildiğini gösteriyor. Ancak web'in uzun bir geçmişi var. Bu nedenle, ayrıştırma kitaplıklarının eski sürümlerine sahipseniz sorunları kontrol edip yükseltme yapmanın zamanı gelmiştir.
  • Web'de gezinirken 100 ana sürümüyle ilgili herhangi bir sorun fark ederseniz webcompat.com'da rapor gönderin.