Chrome 60'ta kullanımdan kaldırma ve kaldırma işlemleri

Joe Medley
Joe Medley

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.

Chromium Hatası

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.

Chromium Hatası

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.