In quasi tutte le versioni di Chrome, vediamo un numero significativo di aggiornamenti e miglioramenti al prodotto, al suo rendimento e anche alle funzionalità della piattaforma web. Questo articolo descrive le ritirazioni e le rimozioni in Chrome 60, che è in versione beta dall'8 giugno. Questo elenco è soggetto a modifiche in qualsiasi momento.
Sicurezza
Ora crypto.subtle richiede un'origine sicura
L'API Web Crypto, supportata da Chrome 37, ha sempre funzionato su origini non sicure. A causa del criterio di Chrome di preferire le origini sicure per funzionalità potenti,crypto.subtle
non è visibile solo nelle origini sicure.
Intento di rimozione | Bug di Chromium
Rimuovi le navigazioni nel riquadro superiore avviate dai contenuti agli URL dei dati
Poiché non sono familiari agli utenti di browser non tecnici, stiamo
notando sempre più spesso l'utilizzo dello schema data:
negli attacchi di spoofing e phishing. Per evitare che ciò accada, stiamo bloccando il caricamento di URL data:
nelle pagine web nel frame superiore. Questo vale per i tag <a>
, window.open
,
window.location
e meccanismi simili. Lo schema data:
continuerà a funzionare per le risorse caricate da una pagina.
Questa funzionalità è stata ritirata in Chrome 58 e ora è stata rimossa.
Intento di rimozione | Tracker di Chromestatus | Bug di Chromium
Disattivare temporaneamente navigator.sendBeacon() per alcuni blob
La funzione navigator.sendBeacon()
è disponibile
da Chrome 39.
Come implementato inizialmente, l'argomento data
della funzione poteva contenere qualsiasi
blob arbitrario il cui tipo non è nella lista consentita CORS. Riteniamo che si tratti di una potenziale
minaccia alla sicurezza, anche se nessuno ha ancora provato a sfruttarla. Poiché NON abbiamo una correzione immediata ragionevole, sendBeacon()
non può più essere invocato temporaneamente sui blob di tipo NON nella lista consentita CORS.
Sebbene questa modifica sia stata implementata per Chrome 60, da allora è stata riunita nuovamente in Chrome 59.
CSS
Impostare il combinatore discendente che ignora le ombre in modo che si comporti come il combinatore discendente
Il combinatore di discendenti che ignora l'albero in ombra (>>>
), che fa parte del
modulo di ambito CSS di livello 1
, era progettato per trovare una corrispondenza con gli elementi secondari di un determinato elemento ancestrale anche quando apparivano all'interno di un albero in ombra. Questo aveva alcune limitazioni.
Innanzitutto, secondo le specifiche, poteva essere utilizzato solo nelle chiamate JavaScript come querySelector()
e non funzionava negli stili. Ancora più importante, i fornitori di browser non sono riusciti a farlo funzionare oltre un livello del DOM ombra.
Di conseguenza, il combinatore dei discendenti è stato rimosso dalle specifiche pertinenti, incluso Shadow DOM v1. Anziché interrompere le pagine web rimuovendo questo selettore da Chromium, abbiamo scelto di assegnare un alias al combinatore di discendenti che ignora l'ombra al combinatore di discendenti. Il comportamento originale è stato deprecato in Chrome 45. Il nuovo comportamento è implementato in Chrome 61.
Intento di rimozione | Tracker di Chromestatus | Bug di Chromium
JavaScript
Ritiro e rimozione di RTCPeerConnection.getStreamById()
Quasi due anni fa, getStreamById()
è stato rimosso dalla specifica WebRTC. La maggior parte degli altri browser lo ha già rimosso dalle proprie implementazioni. Sebbene si ritenga che questa funzione sia poco utilizzata, si ritiene inoltre che esista un rischio minore di interoperabilità con Edge e i browser basati su WebKit diversi da Safari, dove getStreamById()
è ancora supportato. Gli sviluppatori che hanno bisogno di un'implementazione alternativa possono trovare il codice di esempio nell'Intent to Remove (Intenzione di rimozione) di seguito.
La rimozione è in Chrome 62.
Intento di rimozione | Tracker di Chromestatus | Bug di Chromium
Ritiro di SVGPathElement.getPathSegAtLength
Più di due anni fa, getPathSegAtLength()
è stato rimosso dalla specifica SVG. Poiché in httparchive ci sono solo pochi hit per questo metodo, verrà ritirato in Chrome 60. La rimozione dovrebbe avvenire in Chrome 62, che verrà rilasciato all'inizio o a metà ottobre.
Intento di ritiro | Tracker di Chromestatus | Bug di Chromium
Sposta getContextAttributes() dietro un flag
La funzione getContextAttributes()
è supportata su
CanvasRenderingContext2D
since 2013. Tuttavia, la funzionalità non faceva parte di alcuno standard e non ne è mai stata parte da allora. Avrebbe dovuto essere implementato dietro il
--enable-experimental-canvas-features
flag della riga di comando, ma per errore
non è stato. In Chrome 60 questo errore è stato corretto. Si ritiene che questa
variazione sia sicura, poiché non ci sono dati che dimostrino che qualcuno utilizzi il metodo.
Rimuovi Headers.prototype.getAll()
La funzione Headers.prototype.getAll()
verrà rimossa in base alla versione più recente della specifica Fetch.
Intento di rimozione | Tracker di Chromestatus | Bug di Chromium
Rimuovi indexedDB.webkitGetDatabaseNames()
Abbiamo aggiunto questa funzionalità quando l'indice DB era relativamente nuovo in Chrome e l'uso di prefisso era di gran moda. L'API restituisce in modo asincrono un elenco dei nomi dei database esistenti in un'origine, il che sembrava abbastanza sensato.
Purtroppo, il design è imperfetto, in quanto i risultati potrebbero essere obsoleti non appena vengono restituiti, quindi può essere utilizzato solo per il logging, non per la logica di applicazione seria. Il problema GitHub contiene link/riferimento a discussioni precedenti sulle alternative, che richiederebbero un approccio diverso. Sebbene l'interesse degli sviluppatori sia stato discontinuo, data la mancanza di progressi su più browser, il problema è stato risolto dagli autori delle librerie.
Gli sviluppatori che hanno bisogno di questa funzionalità devono sviluppare la propria soluzione. Librerie come Dexie.js, ad esempio, utilizzano una tabella globale che è essa stessa un altro database per monitorare i nomi dei database.
Questa funzionalità è stata ritirata in Chrome 58 e ora è stata rimossa.
Intento di rimozione | Tracker di Chromestatus | Bug di Chromium
Rimuovi WEBKIT_KEYFRAMES_RULE e WEBKIT_KEYFRAME_RULE
Le costanti non standard WEBKIT_KEYFRAMES_RULE
e WEBKIT_KEYFRAME_RULE
vengono rimosse dalla
regola CSS.
Gli sviluppatori dovrebbero utilizzare invece KEYFRAMES_RULE
e KEYFRAME_RULE
.
Intento di rimozione | Tracker di Chromestatus | Bug di Chromium
Interfaccia utente
Richiedere un gesto dell'utente per le finestre di dialogo beforeunload
A partire da Chrome 60, la finestra di dialogo beforeunload
viene visualizzata solo se il frame che tenta di mostrarla ha ricevuto un gesto o un'interazione dell'utente (o se un frame incorporato ha ricevuto un gesto di questo tipo). Per essere chiari, non si tratta di una
modifica all'invio dell'evento beforeunload
. Si tratta solo di una modifica relativa alla visualizzazione della finestra di dialogo.
La finestra di dialogo beforeunload
è una finestra di dialogo modale dell'app. Di conseguenza, è intrinsecamente ostile agli utenti, nel senso che risponde alla navigazione dell'utente mettendo in discussione la sua decisione. Esistono utilizzi positivi di questa funzionalità. Ad esempio, viene spesso utilizzato per avvisare gli utenti quando stanno per perdere dati durante la navigazione.
Anche se la possibilità per una pagina di fornire il testo per la finestra di dialogo beforeunload
è stata rimossa un po' di tempo fa, le finestre di dialogo beforeunload
rimangono un vettore di abusi. In particolare, le finestre di dialogo beforeunload
sono un ingrediente dei siti web fraudolenti, in cui la riproduzione automatica dell'audio e il testo minaccioso forniscono un contesto in cui il messaggio "Sei sicuro di voler uscire da questa pagina?" fornito da Chromium diventa preoccupante.
Vogliamo trovare la soluzione migliore e consentire solo gli utilizzi corretti della beforeunload
dialog. Sono buoni utilizzi della finestra di dialogo quelli in cui l'utente ha uno stato che potrebbe essere perso. Se l'utente non ha mai interagito con la pagina, non può avere alcun stato che potrebbe andare perso e, di conseguenza, non rischiamo di perdere i dati utente se eliminiamo la finestra di dialogo.