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
- Şuraya git:
chrome://flags/#force-major-version-to-100
. - Seçeneği
Enabled
olarak ayarlayın.
Ana sürümü 100 olarak bildirecek şekilde Firefox Nightly'i yapılandırma
- Firefox Nightly'nin Ayarlar menüsünü açın.
- "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.