Chrome'un neredeyse her sürümünde üründe, performansında ve Web Platformu'nun özelliklerinde önemli sayıda güncelleme ve iyileştirme görüyoruz. Bu makalede, 8 Haziran itibarıyla beta sürümünde olan Chrome 60'taki desteği sonlandırılan ve kaldırılan özellikler açıklanmaktadır. Bu liste herhangi bir zamanda değişebilir.
Güvenlik
crypto.subtle artık güvenli bir kaynak gerektiriyor
Chrome 37'den beri desteklenen Web Crypto API, her zaman güvenli olmayan kaynaklarda çalıştı. Chrome'un güçlü özellikler için güvenli kaynakları tercih etme politikası nedeniyle crypto.subtle
yalnızca güvenli kaynaklarda gösterilmez.
Kaldırma Niyeti | Chromium Hatası
İçerik tarafından başlatılan, veri URL'lerine üst çerçeve gezinmelerini kaldırma
Teknik bilgi sahibi olmayan tarayıcı kullanıcıları bu şema hakkında bilgi sahibi olmadığından, kimliğe bürünme ve kimlik avı saldırılarında data:
şemasının giderek daha fazla kullanıldığını görüyoruz. Bunu önlemek için web sayfalarının üst çerçevede data:
URL'leri yüklemesini engelliyoruz. Bu durum <a>
etiketleri, window.open
,
window.location
ve benzer mekanizmalar için geçerlidir. data:
şeması, bir sayfa tarafından yüklenen kaynaklar için çalışmaya devam eder.
Bu özelliğin desteği Chrome 58'de sonlandırıldı ve artık kaldırıldı.
Kaldırma Niyeti | Chromestatus İzleyici | Chromium Hatası
Bazı blob'lar için navigator.sendBeacon() işlevini geçici olarak devre dışı bırakma
navigator.sendBeacon()
işlevi Chrome 39'dan beri kullanılabilir.
İlk uygulandığı haliyle işlevin data
bağımsız değişkeni, türü CORS güvenli listesinde olmayan herhangi bir rastgele blob içerebilir. Henüz kimse bu açığı kullanmaya çalışmamış olsa da bunun potansiyel bir güvenlik tehdidi olduğuna inanıyoruz. Bu sorun için makul bir anında çözümümüz OLMADIĞI için sendBeacon()
, geçici olarak türü CORS güvenli listesinde OLMAYAN blob'larda çağrılamıyor.
Bu değişiklik Chrome 60 için uygulanmış olsa da o zamandan beri Chrome 59'a geri birleştirilmiştir.
CSS
Gölgeyi delen alt öğe birleştiricisini alt öğe birleştirici gibi davranacak şekilde ayarlama
CSS Kapsamlandırma Modülü 1. Seviye'nin bir parçası olan gölgeyi delen alt öğe birleştiricisi (>>>
), belirli bir üst öğenin alt öğelerini gölge ağacın içinde göründüklerinde bile eşleştirmeyi amaçlıyordu. Bunun bazı sınırlamaları vardı.
Öncelikle, özelliğe göre yalnızca querySelector()
gibi JavaScript çağrılarında kullanılabilir ve stil sayfalarında çalışmazdı. Daha da önemlisi, tarayıcı tedarikçileri bunu Shadow DOM'un bir seviyesinin ötesinde çalıştıramadılar.
Sonuç olarak, alt öğe birleştirici, Gölge DOM v1 dahil olmak üzere ilgili spesifikasyonlardan kaldırıldı. Bu seçiciyi Chromium'dan kaldırarak web sayfalarını bozmak yerine, gölgeyi delen alt öğe birleştiricinin adını alt öğe birleştirici olarak değiştirmeyi tercih ettik. Orijinal davranışın Chrome 45'te desteği sonlandırıldı. Yeni davranış, Chrome 61'de uygulanmaktadır.
Kaldırma Niyeti | Chromestatus İzleyici | Chromium Hatası
JavaScript
RTCPeerConnection.getStreamById() desteğini sonlandırma ve işlevi kaldırma
Yaklaşık iki yıl önce getStreamById()
, WebRTC spesifikasyonundan kaldırıldı. Diğer tarayıcıların çoğu bu özelliği uygulamalarından zaten kaldırdı. Bu işlevin çok az kullanıldığına inanılmakla birlikte, getStreamById()
'nin hâlâ desteklenmekte olduğu Safari hariç Edge ve WebKit tabanlı tarayıcılarda bazı küçük birlikte çalışabilirlik riskleri olduğu da düşünülmektedir. Alternatif bir uygulamaya ihtiyaç duyan geliştiriciler, aşağıdaki Kaldırma Niyeti bölümünde örnek kodu bulabilir.
Bu özellik Chrome 62'de kaldırılmıştır.
Kaldırma Niyeti | Chromestatus İzleyici | Chromium Hatası
SVGPathElement.getPathSegAtLength desteği sonlandırıldı
getPathSegAtLength()
, iki yıldan uzun bir süre önce SVG spesifikasyonundan kaldırıldı. httparchive'de bu yöntemle ilgili yalnızca birkaç isabet bulunduğundan Chrome 60'ta desteği sonlandırılıyor. Bu özelliğin, Ekim ayının başlarında veya ortasında kullanıma sunulacak olan Chrome 62 sürümünde kaldırılması planlanmaktadır.
Desteği sonlandırmak için plan | Chromestatus İzleyici | Chromium Hatası
getContextAttributes() işlevini bir işaretin arkasına taşıma
getContextAttributes()
işlevi, 2013'ten beri CanvasRenderingContext2D
'te desteklenmektedir. Ancak bu özellik hiçbir standardın parçası değildi ve o zamandan beri de bir standardın parçası olmadı. --enable-experimental-canvas-features
komut satırı işaretinin arkasında uygulanmış olması gerekirdi ancak yanlışlıkla uygulanmadı. Chrome 60'ta bu gözden kaçma düzeltildi. Bu yöntemin kullanıldığını gösteren bir veri olmadığından bu değişikliğin güvenli olduğu düşünülmektedir.
Headers.prototype.getAll() işlevini kaldırın
Headers.prototype.getAll()
işlevi, Getirme spesifikasyonunun en son sürümüne göre kaldırılıyor.
Kaldırma Niyeti | Chromestatus İzleyici | Chromium Hatası
indexedDB.webkitGetDatabaseNames() işlevini kaldırın
Bu özelliği, Indexed DB Chrome'da nispeten yeniyken ve ön ek ekleme çok popülerken ekledik. API, bir kaynaktaki mevcut veritabanı adlarının listesini eşzamansız olarak döndürür. Bu, oldukça mantıklı bir yaklaşımdır.
Maalesef tasarımda bir kusur var. Sonuçlar döndürüldükten hemen sonra geçersiz olabilir. Bu nedenle, ciddi uygulama mantığı için değil, yalnızca günlük kaydı için kullanılabilir. GitHub sorunu, farklı bir yaklaşım gerektiren alternatiflerle ilgili önceki tartışmayı izler/bağlantı verir. Geliştiriciler bu konuyla zaman zaman ilgilense de tarayıcılar arası ilerleme olmaması nedeniyle kitaplık yazarları bu sorunun üstesinden geldi.
Bu işleve ihtiyaç duyan geliştiricilerin kendi çözümlerini geliştirmeleri gerekir. Örneğin, Dexie.js gibi kitaplıklar, veritabanlarının adlarını izlemek için başka bir veritabanı olan global bir tablo kullanır.
Bu özelliğin desteği Chrome 58'de sonlandırıldı ve artık kaldırıldı.
Kaldırma Niyeti | Chromestatus İzleyici | Chromium Hatası
WEBKIT_KEYFRAMES_RULE ve WEBKIT_KEYFRAME_RULE kurallarını kaldırın
Standart olmayan WEBKIT_KEYFRAMES_RULE
ve WEBKIT_KEYFRAME_RULE
sabitleri CSS Kuralı'ndan kaldırıldı.
Geliştiriciler bunun yerine KEYFRAMES_RULE
ve KEYFRAME_RULE
kullanmalıdır.
Kaldırma Niyeti | Chromestatus İzleyici | Chromium Hatası
Kullanıcı Arayüzü
beforeunload iletişim kutuları için kullanıcı hareketi gerektirme
Chrome 60'tan itibaren beforeunload
iletişim kutusu yalnızca bunu göstermeye çalışan çerçeve bir kullanıcı hareketi veya kullanıcı etkileşimi aldıysa (veya herhangi bir yerleşik çerçeve böyle bir hareket aldıysa) görünür. Bu, beforeunload
etkinliğinin gönderilmesiyle ilgili bir değişiklik değildir. Bu, iletişim kutusunun gösterilip gösterilmeyeceğiyle ilgili bir değişikliktir.
beforeunload
iletişim kutusu, uygulama modunda bir iletişim kutusudur. Bu nedenle, kullanıcıya karşı doğal olarak düşmanca bir yaklaşım sergiler. Yani kullanıcının kararını sorgulayarak kullanıcının gezinmesine yanıt verir. Bu özelliğin olumlu kullanım alanları vardır. Örneğin, kullanıcılar gezinirken veri kaybedecekse onları uyarmak için sıklıkla kullanılır.
Bir sayfanın beforeunload
iletişim kutusu için metin sağlama özelliği bir süre önce kaldırılmış olsa da beforeunload
iletişim kutuları kötüye kullanım aracı olmaya devam etmektedir. Özellikle beforeunload
iletişim kutuları, dolandırıcılık amaçlı web sitelerinin bir bileşenidir. Bu sitelerde otomatik oynatma sesi ve tehdit edici metin, Chromium tarafından sağlanan "Bu sayfadan çıkmak istediğinizden emin misiniz?" mesajının endişe verici bir bağlamda gösterilmesini sağlar.
beforeunload
diyalogunun yalnızca iyi kullanımlarına izin vermek istiyoruz. Kullanıcının kaybolmuş olabilecek bir durumu olduğu durumlarda iletişim kutusu iyi bir kullanım alanıdır. Kullanıcı sayfayla hiç etkileşim kurmadıysa kaybedebileceği bir durum yoktur. Bu nedenle, bu durumda iletişim kutusunu bastırarak kullanıcı verilerinin kaybolma riskini almayız.