Rimozioni e ritiri in Chrome 60

Joe Medley
Joe Medley

In quasi tutte le versioni di Chrome registriamo un numero significativo di aggiornamenti e miglioramenti al prodotto, alle sue prestazioni e anche alle funzionalità del web Piattaforma. Questo articolo descrive i ritiri e le rimozioni in Chrome 60, che è in versione beta dall'8 giugno. Questo elenco è soggetto a modifiche in qualsiasi momento.

Sicurezza

crypto.subtle ora richiede un'origine sicura

L'API Web Crypto supportata da Chrome 37, ha sempre lavorato sulle soluzioni diverse origini dati. A causa del criterio di Chrome di lunga data preferendo origini sicure per funzionalità potenti, crypto.subtle non è visibile solo su origini sicure.

Intenzione di rimozione | Bug di Chromium

Rimuovi le navigazioni del frame superiore avviate dai contenuti verso gli URL di dati

Poiché non conoscono gli utenti dei browser non tecnici, abbiamo vedere sempre più spesso che lo schema data: viene utilizzato per spoofing e phishing attacchi informatici. Per evitare che questo accada, stiamo bloccando il caricamento di data: URL da parte delle pagine web nel frame superiore. Si applica ai tag <a>, window.open, window.location e meccanismi simili. Lo schema data: continuerà a funzionare per di risorse caricate da una pagina.

Questa funzionalità è stata ritirata nella versione 58 di Chrome e ora è stata rimossa.

Intenzione di rimozione | Tracker dello stato di Chrome | Bug di Chromium

Disattiva temporaneamente navigator.sendBeacon() per alcuni BLOB

La funzione navigator.sendBeacon() è stata disponibile da Chrome 39. Come implementato inizialmente, l'argomento data della funzione può contenere qualsiasi BLOB arbitrario il cui tipo non è inserito nell'elenco indirizzi attendibili CORS. Riteniamo che questo sia un potenziale alla sicurezza, anche se nessuno ha ancora provato a sfruttarla. Poiché NON trovare una soluzione ragionevole e immediata per risolvere il problema, sendBeacon() non può non sarà più possibile richiamare sui BLOB il cui tipo NON rientra nell'elenco indirizzi attendibili di CORS.

Questa modifica è stata implementata per Chrome 60, ma da allora è stata unita. a Chrome 59.

Bug di Chromium

CSS

Fai in modo che il combinatore discendente con perforazione delle ombre si comporti come il combinatore discendente

Il combinatore discendente shadow-piercing (>>>), parte di Livello 1 del modulo di definizione dell'ambito CSS , era destinato a corrispondere agli elementi secondari di un particolare elemento predecessore anche quando sono comparsi all'interno di un albero ombra. Questo approccio presentava alcune limitazioni. Innanzitutto, in base alle specifiche, può essere utilizzato solo nelle chiamate JavaScript come querySelector() e non nei fogli di stile. Ma soprattutto, i fornitori di browser non sono riusciti a oltre un livello del DOM Ombra.

Di conseguenza, il combinatore discendente è stato rimosso dalle specifiche pertinenti. incluso Shadow DOM v1. Anziché interrompere le pagine web rimuovendo questo selettore, da Chromium, abbiamo scelto come alias la derivazione combinatore al combinatore discendente. Il comportamento originale era ritirato in Chrome 45. Il nuovo comportamento è implementato in Chrome 61.

Intenzione di rimozione | Tracker dello stato di Chrome | Bug di Chromium

JavaScript

Ritira e rimuovi RTCPeerConnection.getStreamById()

Quasi due anni fa, getStreamById() è stato rimosso dalla specifica WebRTC. La maggior parte degli altri browser ha l'hanno già rimosso dalle loro implementazioni. Sebbene questa funzione sia poco utilizzata, si ritiene anche che ci siano rischio di interoperabilità con browser basati su Edge e WebKit diversi da Safari dove getStreamById() è ancora supportato. Gli sviluppatori hanno bisogno di un'alternativa di esempio, puoi trovare un codice di esempio nell'intent da rimuovere riportato di seguito.

La rimozione è disponibile nella versione 62 di Chrome.

Intenzione di rimozione | Tracker dello stato di Chrome | Bug di Chromium

Depreca SVGPathElement.getPathSegAtLength

Più di due anni fa, getPathSegAtLength() è stato rimosso dalle specifiche SVG. Poiché esistono solo pochi hit per questo metodo in httpArchive, è verrà ritirata in Chrome 60. La rimozione è prevista in Chrome 62, che la spedizione avverrà all'inizio o a metà ottobre.

Intento di ritiro | Tracker dello stato di Chrome | Bug di Chromium

Sposta getContextAttributes() dietro un flag

La funzione getContextAttributes() è stata supportata su CanvasRenderingContext2D dal 2013. Tuttavia, la funzione non faceva parte di alcuno standard e non è diventata parte di uno da allora. Dovrebbe essere stato implementato sulla base --enable-experimental-canvas-features flag della riga di comando, ma per errore . In Chrome 60 questa svista è stata corretta. Si ritiene che questo la modifica è sicura, in quanto non ci sono dati che dimostrino che qualcuno stia utilizzando il metodo.

Bug di Chromium

Rimuovi Headers.prototype.getAll()

È in corso la rimozione della funzione Headers.prototype.getAll() in base all'ultima versione della specifica di recupero.

Intenzione di rimozione | Tracker dello stato di Chrome | Bug di Chromium

Rimuovi indexDB.webkitGetDatabaseNames()

Abbiamo aggiunto questa funzionalità quando il database indicizzato era relativamente nuovo in Chrome e aveva prefisso era di gran moda. L'API restituisce in modo asincrono un elenco di database esistenti nomi in un'origine, che sembrava abbastanza sensato.

Purtroppo il design è difettoso, in quanto i risultati potrebbero essere obsoleti il prima possibile quando vengono restituiti, quindi può essere utilizzato solo per la registrazione, non della logica dell'applicazione. La problema con github tracce/link a una precedente discussione sulle alternative, il che richiederebbe un approccio diverso. Sebbene gli sviluppatori abbiano suscitato un interesse costante, data la mancanza di i progressi del browser, il problema è stato risolto dagli autori delle biblioteche.

Gli sviluppatori che hanno bisogno di questa funzionalità devono sviluppare la propria soluzione. Le librerie come Dexie.js, ad esempio, utilizzano una tabella globale che a sua volta è un altro database per monitorare i nomi dei database.

Questa funzionalità è stata ritirata nella versione 58 di Chrome e ora è stata rimossa.

Intenzione di rimozione | Tracker dello stato di Chrome | Bug di Chromium

Rimuovi WEBKIT_KEYFRAMES_RULE e WEBKIT_KEYFRAME_RULE

Le costanti non standard WEBKIT_KEYFRAMES_RULE e WEBKIT_KEYFRAME_RULE vengono rimossi da Regola CSS. Gli sviluppatori dovrebbero usare invece KEYFRAMES_RULE e KEYFRAME_RULE.

Intenzione di rimozione | Tracker dello stato di Chrome | Bug di Chromium

Interfaccia utente

Richiedi gesto dell'utente per le finestre di dialogo prima dell'unload

A partire da Chrome 60, la finestra di dialogo beforeunload viene visualizzata soltanto se il frame di mostrare il messaggio ha ricevuto un gesto o un'interazione dell'utente (oppure se qualsiasi frame incorporato abbia ricevuto il gesto). Precisiamo che non si tratta di modifica all'invio dell'evento beforeunload. Si tratta solo di una modifica se la finestra di dialogo viene visualizzata.

La finestra di dialogo beforeunload è una finestra modale dell'app. In quanto tale, è intrinsecamente user-ostile, ovvero la risposta alla navigazione dell'utente mettendo in dubbio il comportamento dell'utente. una decisione presa. Questa funzionalità ha degli utilizzi positivi. Ad esempio, viene spesso utilizzato per avvisare gli utenti quando perderanno dati navigando.

Mentre la possibilità di una pagina di fornire testo per la finestra di dialogo beforeunload era rimossa tempo fa, beforeunload finestre di dialogo rimangono un vettore di abuso. Nella in particolare, le finestre di dialogo di beforeunload sono parte integrante di siti web fraudolenti, in cui l'audio a riproduzione automatica e il testo minaccioso forniscono un contesto in cui Chromium a disposizione: "Vuoi uscire da questa pagina?" un messaggio preoccupante.

Vogliamo infilare l'ago e consentire solo un uso corretto dell'beforeunload . Gli usi corretti della finestra di dialogo sono quelli in cui l'utente ha uno stato che potrebbe hanno perso. Se l'utente non ha mai interagito con la pagina, non può avere che potrebbe andare persa, quindi non rischiamo di perdere i dati utente l'eliminazione della finestra di dialogo in questo caso.