Alesta WEB

Kısa cevap: Chrome 156, 20 Ekim 2026'da kararlı kanala çıktı (Windows sürümü 156.0.8078.48). Web geliştiricileri için öne çıkanlar: CSS'e rastgele değer üreten random() fonksiyonu, gezinmeyi başlatan öğeyi seçen :navigation-source sözde sınıfı, overflow: scroll clip ile tek eksenli kaydırma kapları, başarısız modül yüklemelerinin artık önbelleğe alınmaması (yeniden import() denenebiliyor), WebTransport'a özel istek başlıkları ve yeni veriler için SQLite tabanlı IndexedDB. Fenced frame öğesi ve window.fence API'leri kaldırılma sürecine girdi.

CSS yenilikleri (CSS features)
random() fonksiyonu
CSS ilk kez yerleşik rastgelelik kazanıyor. random(), verilen aralıkta bir sayısal değer üretiyor. Konfeti, yıldız alanı ya da arka planda dağınık şekiller için JavaScript yazmaya gerek kalmıyor:
.nokta {
position: absolute;
top: random(0%, 100%);
left: random(0%, 100%);
}Varsayılan olarak her random() çağrısı ayrı bir değer üretiyor. İlk argüman olarak bir anahtar (<random-key>) verilirse aynı anahtarı kullanan özellikler ve öğeler aynı rastgele değeri paylaşıyor. Örneğin bir kartın genişliği ve yüksekliği aynı rastgele sayıdan türetilebiliyor. Henüz yalnız Chromium tabanlı tarayıcılarda olduğu için, kritik yerleşimde @supports ile bir yedek değer tanımlamak doğru olur.
:navigation-source sözde sınıfı
CSS Navigation taslağından gelen :navigation-source, gezinmeyi başlatan öğeyi (bağlantı, düğme ya da form) seçiyor ve öğe gezinme süresince seçili kalıyor. Tıklanan bağlantıya yükleniyor göstergesi koymak ya da sayfalar arası görünüm geçişlerinde (view transitions) hangi kartın büyüyeceğini belirlemek için kullanılabiliyor:
a:navigation-source {
opacity: .6;
cursor: progress;
}Tek eksenli kaydırma kapları ve scroll-snap pair
overflow özelliği artık kaydırılabilir bir değeri clip ile birlikte kabul ediyor: overflow: scroll clip. Böylece bir eksen kaydırılırken diğer eksen kırpılmış ve sabit kalıyor. Bunun pratik sonucu, position: sticky öğelerin her eksende farklı bir üst kaydırma kabına göre konumlanabilmesi. Yatay kayan tablolarda dikey yapışkan başlık sorunu bu sayede CSS ile çözülebiliyor.
scroll-snap-type özelliğine de pair anahtar sözcüğü eklendi. Bu değerle kap bir eksende bir öğeye yaslandığında diğer eksende de aynı öğeye yaslanıyor. Mevcut both değeri iki ekseni bağımsız hedeflere yaslayabiliyordu.
JavaScript ve modül yükleme (Module loading)
Chrome'da şimdiye kadar başarısız olan bir modül yüklemesi önbelleğe alınıyordu. Ağ bir anlığına koptuğunda import() başarısız oluyor ve sonraki denemeler de istek atmadan aynı hatayı veriyordu. Chrome 156 bu davranışı değiştiriyor: başarısız modül yüklemeleri önbelleğe alınmıyor ve yeniden denenebiliyor.
async function modulYukle(yol, deneme = 3) {
for (let i = 0; i < deneme; i++) {
try {
return await import(yol);
} catch (e) {
await new Promise(r => setTimeout(r, 500 * (i + 1)));
}
}
throw new Error('Modül yüklenemedi: ' + yol);
}Mobil ağlarda kod bölme (code splitting) kullanan tek sayfa uygulamaları için bu önemli bir iyileşme. Önceden çözüm olarak URL'ye sorgu parametresi eklemek gibi yollar kullanılıyordu.
Web API'leri (Web APIs)
- WebTransport başlıkları:
WebTransportOptionsile ilk CONNECT el sıkışmasında özel HTTP istek başlıkları gönderilebiliyor ve sunucunun yanıt başlıkları WebTransport nesnesi üzerinden okunabiliyor. Kimlik doğrulama jetonu ya da ek parametre taşımak için ayrı bir istek yapmaya gerek kalmıyor. - WebRTC Diagnostic Logging API: yetkili web uygulamaları WebRTC tanılama verisi toplatabiliyor ve kullanıcı izin verirse bu veriyi tarayıcı üreticisiyle paylaşabiliyor. Kurumlarda
WebRtcDiagnosticLogCollectionAllowedForOriginspolitikasıyla açılıyor. - WebGPU — WGSL fragment depth:
@builtin(frag_depth)'elessveyagreaterbelirteci verilebiliyor. Bu, erken derinlik testinin (early-Z) devre dışı kalmasını önleyerek performans kaybını azaltıyor. - Compression dictionary transport:
<link rel="compression-dictionary">istekleri artık kendi istek hedefini kullanıyor vecrossorigin/referrerözniteliklerini dikkate alıyor. - Web Haptics API (bayrak arkasında): titreşim geri bildirimini ipucu, onay, sınır gibi anlamsal türlerle tetikleyen API geliştirici denemesinde.
IndexedDB artık SQLite üzerinde (IndexedDB SQLite backend)
Chromium'un IndexedDB altyapısı LevelDB ve düz dosya karışımından SQLite'a taşınıyor. Web API'sinde değişiklik yok; amaç güvenilirlik ve bir miktar performans. Geçiş aşamalı ilerliyor. İlk aşamada gizli pencereler gibi bellek içi bağlamlar taşınmıştı. Chrome 156 ikinci aşama: bir kullanıcı siteyi ilk kez ziyaret ettiğinde ya da site verisini temizledikten sonra oluşan yeni veriler SQLite tabanlı depoya yazılıyor. Mevcut LevelDB verisine şimdilik dokunulmuyor; onların taşınması üçüncü aşamada yapılacak.
Çevrimdışı çalışan PWA'lar, sepet ya da taslak verisini IndexedDB'de tutan siteler için şimdilik bir şey yapmak gerekmiyor. Yine de Chromium'un belgelerinde iki altyapı arasındaki küçük davranış farkları listelenmiş; büyük veri yazan uygulamaların bir kez test edilmesinde yarar var.
Yerel ağ erişimi ve kurumsal politikalar (Local Network Access)
Chrome 142'den beri herkese açık bir sitenin kullanıcının yerel ağına (modem, yazıcı, localhost) istek atması izin istemine bağlı. Chrome 156'da bu kısıtlamayı geçici olarak kapatan LocalNetworkAccessRestrictionsTemporaryOptOut kurumsal politikası kaldırılıyor. Tarayıcıdan yerel ağdaki bir cihaza (örneğin bir termal yazıcıya ya da yerel bir ajan servisine) bağlanan web uygulamaları artık local-network veya loopback-network iznini düzgün istemek zorunda. Kurumlar için LocalNetworkAccessIpAddressSpaceOverrides gibi kalıcı politikalar kullanılabiliyor.
Restoran adisyon sistemleri, yazıcı ajanları ya da yerel bir yardımcı servisle konuşan yönetim panelleri bu değişiklikten doğrudan etkilenebilir. Alesta WEB olarak bu tür bir yapı kullanan herkese, Chrome 156'ya geçen bir makinede akışı bir kez uçtan uca denemesini öneriyoruz.
Kurumsal tarafta ayrıca eski AutofillAddressEnabled ve AutofillCreditCardEnabled politikalarının kullanımdan kaldırıldığı bildiriliyor; yönetilen tarayıcı politikalarını gözden geçirmek gerekiyor.
Kaldırılanlar (Deprecations and removals)
Reklam ölçümü için Privacy Sandbox kapsamında geliştirilen fenced frame öğesi ve window.fence API'leri kaldırılıyor. Protected Audience ve Shared Storage'ın selectURL API'leri Chrome 152'de kaldırıldığı için fenced frame'ler artık gezinemiyor. Chrome 156'da öğe ve API'ler hata vermeyen boş taslaklara (stub) dönüştürüldü. Chrome 157'de öğenin tamamen kaldırılması kontrollü olarak deneniyor; sonrasında <fencedframe> bilinmeyen bir HTML öğesi gibi davranacak.
Sık sorulan sorular
Chrome 156 ne zaman çıktı?
Kararlı sürüm 20 Ekim 2026'da yayımlanmaya başladı. Güncelleme kademeli dağıtılıyor; Ayarlar > Chrome hakkında sayfası güncellemeyi hemen başlatır.
CSS random() diğer tarayıcılarda çalışıyor mu?
Şimdilik Chrome ve Chromium tabanlı tarayıcılarda. Diğerleri için @supports (top: random(0px, 1px)) ile yedek stil tanımlayın.
IndexedDB geçişi mevcut verilerimi siler mi?
Hayır. Bu aşamada yalnız yeni oluşturulan veri depoları SQLite'a yazılıyor, mevcut veriler yerinde kalıyor.
Sitem localhost'taki bir servise bağlanıyor, ne değişti?
Geçici çıkış politikası kalktığı için izin istemi artık atlanamıyor. Sayfanın güvenli bağlamda (HTTPS) çalışması ve kullanıcının yerel ağ iznini vermesi gerekiyor.
Kaynaklar (References)
İlgili yazılar: Chrome 155 beta · Safari 27 · Chrome V8 açığı · Web yazılım hizmetleri · İletişim
Kapak fotoğrafı: Growtika / Unsplash

