Di hampir setiap versi Chrome, kami mendapatkan sejumlah update dan peningkatan yang signifikan pada produk, performanya, dan juga kemampuan platform web.
Di Chrome 50 (Estimasi tanggal beta: 10 sampai 17 Maret) ada sejumlah perubahan pada Chrome. Daftar ini dapat berubah sewaktu-waktu.
AppCache tidak digunakan lagi dalam konteks yang tidak aman
TL;DR: Untuk menghambat pembuatan skrip lintas situs, kami menghentikan AppCache di origin yang tidak aman. Kami berharap di Chrome 52, fitur ini hanya akan berfungsi di origin yang menayangkan konten melalui HTTPS.
Intent untuk Menghapus | Pelacak Chromestatus | Bug Chromium
AppCache adalah fitur yang memungkinkan akses offline dan persisten ke origin, yang merupakan eskalasi akses yang kuat untuk serangan pembuatan skrip lintas situs. Sebagai bagian dari upaya yang lebih besar untuk menghapus fitur canggih pada origin yang tidak aman.
Chrome menghapus vektor serangan ini dengan hanya mengizinkannya melalui HTTPS. Kami menghentikan dukungan HTTP di Chrome 50 dan berencana untuk menghapusnya sepenuhnya di Chrome 52.
Document.defaultCharset dihapus
TL;DR: document.defaultCharset
telah
dihapus untuk meningkatkan kepatuhan spesifikasi.
Intent untuk Menghapus | Pelacak Chromestatus | Masalah CRBug
document.defaultCharset
, yang tidak digunakan lagi di Chrome 49, adalah properti hanya baca
yang menampilkan encoding karakter default sistem pengguna berdasarkan
setelan regionalnya. Tidak ada gunanya mempertahankan nilai ini karena cara browser menggunakan informasi encoding karakter dalam Respons HTTP atau dalam tag meta yang disematkan pada halaman.
Sebagai gantinya, gunakan document.characterSet
untuk mendapatkan nilai pertama yang ditentukan di header HTTP. Jika tidak ada, Anda akan mendapatkan nilai yang ditentukan dalam
atribut charset
dari elemen <meta>
(misalnya, <meta
charset="utf-8">
). Terakhir, jika tidak ada satu pun opsi yang tersedia,
document.characterSet
akan menjadi setelan sistem pengguna.
Anda dapat membaca diskusi selengkapnya tentang alasan untuk tidak menentukan hal ini dalam masalah github ini
Atribut subresource dihapus dari elemen link
TL;DR: Menghapus dukungan untuk nilai subresource
untuk atribut rel
dari
HTMLLinkElement
.
Intent untuk Menghapus | Pelacak Chromestatus | Bug Chromium
Intent atribut subresource
pada <link> adalah untuk mengambil data
resource selama waktu tidak ada aktivitas browser. Setelah mendownload halaman, browser
dapat melakukan pra-download resource seperti halaman lain sehingga saat
diminta oleh pengguna, halaman tersebut dapat diambil dari cache browser.
Atribut subresource
mengalami sejumlah masalah. Pertama, tidak pernah
berfungsi sebagaimana mestinya. Resource yang direferensikan didownload dengan prioritas rendah. Atribut ini tidak pernah diterapkan pada browser apa pun selain Chrome. Implementasi Chrome
memiliki bug yang menyebabkan resource didownload dua kali.
Developer yang ingin meningkatkan pengalaman pengguna melalui pramuat konten
memiliki sejumlah opsi, yang paling dapat disesuaikan adalah membuat pekerja
layanan untuk memanfaatkan precache dan Caches API. Solusi tambahan
mencakup nilai lain untuk atribut rel
yang mencakup preconnect
, prefetch
, preload
, prerender
. Beberapa
opsi ini bersifat eksperimental dan mungkin tidak didukung secara luas.
Menghapus penggantian versi TLS yang tidak aman
TL;DR: Menghapus mekanisme yang memaksa server menampilkan data menggunakan versi TLS yang kurang atau tidak aman.
Intent untuk Menghapus | Pelacak Chromestatus | Bug Chromium
Transport Layer Security (TLS) mendukung mekanisme untuk menegosiasikan versi, sehingga memungkinkan pengenalan versi TLS baru tanpa merusak kompatibilitas. Beberapa server menerapkan hal ini sedemikian rupa sehingga browser diwajibkan menggunakan endpoint yang tidak aman sebagai penggantian. Oleh karena itu, penyerang dapat memaksa situs apa pun, bukan hanya situs yang tidak dikonfigurasi dengan benar, untuk bernegosiasi guna mendapatkan versi TLS yang lebih lemah.
Situs yang terpengaruh akan gagal terhubung dengan ERR_SSL_FALLBACK_BEYOND_MINIMUM_VERSION
. Administrator
harus memastikan software server mereka sudah yang terbaru. Jika masih belum terselesaikan, hubungi vendor software
server untuk melihat apakah perbaikan tersedia.
Menghapus KeyboardEvent.prototype.keyLocation
TL;DR: Menghapus alias yang tidak diperlukan untuk atribut
Keyboard.prototype.location
.
Intent untuk Menghapus | Pelacak Chromestatus | Bug Chromium
Atribut ini hanyalah alias untuk atribut Keyboard.prototype.location
, yang memungkinkan disambiguasi antar-tombol yang terletak di beberapa
tempat di keyboard. Misalnya, kedua atribut tersebut memungkinkan developer
membedakan antara dua tombol Enter
pada keyboard yang diperluas.
Pengendali error dan keberhasilan diperlukan dalam metode RTCPeerConnection
TL;DR: Metode RTCPeerConnection WebRTC createOffer()
dan createAnswer()
sekarang memerlukan pengendali error serta pengendali yang berhasil. Sebelumnya, metode ini
dapat dipanggil hanya dengan pengendali yang berhasil. Penggunaan tersebut
tidak digunakan lagi.
Intent untuk Menghapus | Pelacak Chromestatus | Bug Chromium
Di Chrome 49, kami menambahkan peringatan jika Anda memanggil
setLocalDescription()
atau setRemoteDescription()
tanpa memberikan pengendali error. Argumen pengendali error bersifat wajib mulai Chrome 50.
Ini merupakan bagian dari pembersihan cara untuk memperkenalkan promise pada metode ini, seperti yang diperlukan oleh spesifikasi WebRTC.
Berikut ini contoh dari demo RTCPeerConnection WebRTC (main.js, baris 126):
function onCreateOfferSuccess(desc) {
pc1.setLocalDescription(desc, function() {
onSetLocalSuccess(pc1);
}, onSetSessionDescriptionError);
pc2.setRemoteDescription(desc, function() {
onSetRemoteSuccess(pc2);
}, onSetSessionDescriptionError);
pc2.createAnswer(onCreateAnswerSuccess, onCreateSessionDescriptionError);
}
Perlu diperhatikan bahwa setLocalDescription()
dan setRemoteDescription()
memiliki pengendali error. Browser lama yang hanya mengharapkan pengendali berhasil akan mengabaikan argumen pengendali error jika ada; memanggil kode ini di browser lama tidak akan menyebabkan pengecualian.
Secara umum, untuk aplikasi WebRTC produksi, sebaiknya gunakan
adapter.js
, shim, yang dikelola oleh
project WebRTC, untuk melindungi aplikasi dari perubahan spesifikasi dan perbedaan awalan.
XMLHttpRequestProgressEvent tidak didukung lagi
TL;DR: Antarmuka XMLHttpRequestProgressEvent
akan dihapus, bersama
atribut position
dan totalSize
.
Intent untuk Menghapus | Pelacak Chromestatus | Bug Chromium
Peristiwa ini dibuat untuk mendukung properti kompatibilitas Gecko position
dan
totalSize
. Dukungan untuk ketiganya dihapus di Mozilla 22 dan
fungsinya telah lama digantikan oleh
ProgressEvent
.
var progressBar = document.getElementById("p"),
client = new XMLHttpRequest()
client.open("GET", "magical-unicorns")
client.onprogress = function(pe) {
if(pe.lengthComputable) {
progressBar.max = pe.total
progressBar.value = pe.loaded
}
}
Menghapus Ekstensi Media Terenkripsi yang mengawali
TL;DR: Ekstensi media terenkripsi berawalan telah dihapus dan diganti dengan pengganti tanpa awalan berbasis spesifikasi.
Intent untuk Menghapus | Pelacak Chromestatus | Bug Chromium
Di Chrome 42, kami meluncurkan versi ekstensi media terenkripsi berbasis spesifikasi
tanpa awalan. API ini digunakan untuk menemukan,
memilih, dan berinteraksi dengan sistem Manajemen Hak Digital (DRM) untuk digunakan dengan
HTMLMediaElement
.
Itu dilakukan hampir setahun lalu. Dan karena versi tanpa awalan memiliki kemampuan lebih banyak daripada versi berawalan, kini saatnya menghapus versi API berawalan.
Menghapus dukungan untuk properti SVGElement.offset
TL;DR: Properti offset untuk SVGElement telah dihapus dan digantikan dengan properti yang lebih
didukung secara luas di HTMLElement
.
Intent untuk Menghapus | Pelacak Chromestatus | Bug Chromium
Properti offset telah lama didukung oleh HTMLElement
dan
SVGElement
; tetapi, Gecko dan Edge hanya mendukungnya di HTMLElement
. Untuk meningkatkan konsistensi di antara browser, properti ini tidak digunakan lagi di Chrome 48 dan kini telah dihapus.
Meskipun properti yang setara adalah bagian dari HTMLElement
, developer yang mencari
alternatif juga dapat menggunakan
getBoundingClientRect()