Rimozioni e ritiri in Chrome 58

Joe Medley
Mario Bianchi

In quasi tutte le versioni di Chrome, notiamo un numero significativo di aggiornamenti e miglioramenti al prodotto, alle sue prestazioni e anche alle funzionalità della piattaforma web. Questo articolo descrive i ritiri e le rimozioni in Chrome 58, in versione beta a partire dal 16 marzo. Questo elenco è soggetto a modifiche in qualsiasi momento.

Il mouse su Android interrompe l'attivazione di TouchEvents

Fino a Chrome 57, gli eventi mouse di basso livello di Android in Chrome seguivano principalmente un percorso evento progettato per le interazioni touch. Ad esempio, un movimento di trascinamento del mouse che si verifica quando viene premuto un pulsante del mouse genera MotionEvents, inviato tramite View.onTouchEvent.

Tuttavia, poiché gli eventi touch non supportano il passaggio del mouse, i movimenti del mouse eseguiti con il mouse hanno seguito un percorso separato. Il design presentava molti effetti collaterali, tra cui l'attivazione di TouchEvents con il mouse, tutti i pulsanti del mouse visualizzati come pulsanti sinistra e l'eliminazione di MouseEvents da TouchEvents.

A partire da Chrome 58, un mouse su Android M o versioni successive:

  • Non attivare più TouchEvents.
  • Attiva una sequenza coerente di MouseEvents con i pulsanti appropriati e altre proprietà.

Intent di rimozione | Tracker di stato di Chrome | Bug di Chromium

Rimuovi la corrispondenza senza distinzione tra maiuscole e minuscole per l'attributo usemap

L'attributo usemap in precedenza era definito senza maiuscole e minuscole. Sfortunatamente, l'implementazione è stata così complicata che nessun browser l'ha implementata correttamente. La ricerca ha suggerito che un algoritmo così complesso non è necessario e anche la corrispondenza senza distinzione tra maiuscole e minuscole ASCII è superflua.

Di conseguenza, la specifica è stata aggiornata in modo che venga applicata la corrispondenza sensibile alle maiuscole. Il comportamento precedente era stato deprecato in Chrome 57 e ora è stato rimosso.

Intent di rimozione | Tracker di stato di Chrome | Bug di Chromium

Rimuovi le navigazioni nei frame superiori avviate dai contenuti agli URL dei dati

A causa della loro poco dimestichezza con gli utenti non tecnici del browser, stiamo vedendo sempre più che lo schema data: viene utilizzato per lo spoofing e gli attacchi di phishing. Per evitare questo problema, abbiamo deciso di impedire alle pagine web di caricare data: URL 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 di seguito da una pagina.

Questa funzionalità verrà rimossa in Chrome 60.

Intent di rimozione | Tracker di stato di Chrome | Bug di Chromium

Rimuovi i nomi obsoleti per le proprietà dei percorsi di animazione

Le proprietà CSS dei percorsi di animazione consentono agli autori di animare qualsiasi oggetto grafico lungo un percorso specificato dall'autore. In conformità con le specifiche, sono state implementate diverse proprietà in Chrome 45. A metà 2016 i nomi di queste proprietà sono stati modificati nelle specifiche. Chrome ha implementato i nuovi nomi in Chrome 55 e Chrome 56. Sono stati implementati anche gli avvisi di ritiro della console.

In Chrome 58, i vecchi nomi delle proprietà verranno rimossi. Le proprietà interessate e i relativi nuovi nomi sono mostrati di seguito.

Proprietà rimossa Nome attuale
percorso-movimento offset-percorso
scostamento del movimento distanza-offset
movimento-rotazione rotazione-spostamento
Movimento offset

Intent di rimozione

Rimuovi EME da contesti non sicuri

Alcuni utilizzi di Encrypted Media Extensions (EME) espongono implementazioni di gestione dei diritti digitali che non sono open source, prevedono l'accesso a identificatori univoci permanenti e/o vengono eseguite senza sandbox o con accesso privilegiato. I rischi per la sicurezza sono aumentati per i siti esposti tramite HTTP non sicuro, in quanto possono essere attaccati da chiunque sul canale. Inoltre, quando è richiesto il consenso dell'utente, l'accettazione persistente per un sito HTTP non sicuro può essere sfruttata da un utente malintenzionato.

Il supporto per i contesti non sicuri è stato rimosso dalla specifica della versione 1 di EME e non è supportato nel consiglio proposto né previsto per la finale successiva. Non verrà incluso nel suggerimento proposto in arrivo o nel successivo suggerimento finale. L'API mostra un messaggio di ritiro su origini non sicure da Chrome 44 (maggio 2015). In Chrome 58 è stato rimosso. Questa modifica fa parte del nostro impegno più ampio volto a rimuovere funzionalità potenti da origini non sicure.

Intent di rimozione | Tracker di stato di Chrome | Bug di Chromium

Rimuovi chiamante precedente per HTMLEmbedElement e HTMLObjectElement

La presenza di un chiamante legacy in un'interfaccia consente di chiamare un'istanza come funzione. Al momento, HTMLEmbedElement e HTMLObjectElement supportano questa funzionalità. In Chrome 57 questa funzionalità è stata ritirata. A partire da Chrome 58, la chiamata genera un'eccezione.

Questa modifica allinea Chrome alle recenti modifiche alle specifiche. Il comportamento precedente non è supportato in Edge o Safari e viene rimosso da Firefox.

Intent di rimozione | Tracker di stato di Chrome | Bug di Chromium

Rimuovi le crittografie ChaCha20-Poly1305 pre-standard

Nel 2013 Chrome 31 ha implementato nuove suite di crittografia TLS basate sugli algoritmi ChaCha20 e Poly1305 del professor Dan Bernstein. Questi sono stati successivamente standardizzati, con piccole modifiche, presso l'IETF come RFC 7539 e RFC 7905. Abbiamo spedito la variante standardizzata all'inizio del 2016 con Chrome 49. Ora stiamo rimuovendo le varianti pre-standard.

Intent di rimozione | Tracker di stato di Chrome | Bug di Chromium

Rimozione del supporto per la corrispondenza CommonName nei certificati

RFC 2818 descrive due metodi per associare un nome di dominio a un certificato: utilizzare i nomi disponibili all'interno dell'estensione subjectAlternativeName o, in assenza di un'estensione SAN, ricorrere a commonName. Il fallback per commonName è stato ritirato in RFC 2818 (pubblicato nel 2000), ma il supporto rimane in un certo numero di client TLS, spesso in modo errato.

L'utilizzo dei campi subjectAlternativeName non lascia ambiguità riguardo al fatto che un certificato esprima un'associazione a un indirizzo IP o a un nome di dominio, ed è completamente definito in termini di interazione con i vincoli relativi ai nomi. Tuttavia, commonName è ambiguo e, per questo motivo, il relativo supporto è stato fonte di bug di sicurezza in Chrome, nelle librerie che utilizza e nell'intero ecosistema TLS.

Il rischio di compatibilità per la rimozione di commonName è basso. RFC 2818 è stato ritirato da quasi vent'anni e i requisiti di riferimento (che tutte le autorità di certificazione pubblicamente attendibili devono rispettare) prevedono la presenza di un subjectAltName dal 2012. Firefox richiede già subjectAltName per tutti i certificati attendibili pubblicamente emessi a partire da Firefox 48.

Intent di rimozione | Tracker di stato di Chrome | Bug di Chromium

Gli elementi dell'interfaccia regions, addRegion() e removeRegion() sono stati rimossi dalle specifiche WebVTT e sono stati rimossi in Chrome 58 per rispettare le specifiche più recenti. Prevediamo un impatto minimo da questa rimozione poiché la funzionalità non è mai stata attivata per impostazione predefinita (vale a dire che era dietro un flag). Chi ha bisogno di un'alternativa può utilizzare la proprietà VTTCue.region che viene aggiunta in Chrome 58.

Chromestatus Tracker | Bug di Chromium

WebAudio: rimuovi l'interfaccia AudioSourceNode

L'interfaccia AudioSourceNode non fa parte della specifica Web Audio, non è costrutbile e non ha attributi, quindi praticamente non ha funzionalità accessibili allo sviluppatore. Pertanto viene rimosso.

Intent di rimozione | Tracker di stato di Chrome | Bug di Chromium

Rimuovi l'attributo globale webkitdropzone

L'attributo globale dropzone è stato introdotto dalla specifica di trascinamento HTML5 come metodo dichiarativo per specificare la disponibilità di un elemento HTML a essere il target di un'operazione di trascinamento, i tipi di contenuti che possono essere rilasciati sull'elemento e l'operazione di trascinamento (copia/spostamento/collegamento).

L'attributo non è riuscito a ottenere terreno tra i fornitori di browser. Blink e WebKit implementano solo una forma con prefisso dell'attributo, webkitdropzone. Poiché l'attributo dropzone è stato rimosso dalla specifica all'inizio di marzo 2017, la versione con prefisso verrà rimossa da Chrome.

Intent di rimozione | Tracker di stato di Chrome | Bug di Chromium

Ritira l'utilizzo non sicuro delle notifiche

Le notifiche sono una funzionalità molto utile in quanto consentono ai siti web di richiamare un'interfaccia utente di sistema per trasmettere informazioni private o un segnale che le informazioni private sono state modificate. Gli utenti malintenzionati possono fiutare o rubare le informazioni inviate tramite una notifica su una connessione non sicura. Web push richiede un'origine sicura, pertanto questa modifica allineerà le notifiche non push a quelle push. Questa modifica fa parte del nostro impegno più ampio volto a rimuovere funzionalità potenti da origini non sicure.

Intent di rimozione | Tracker di stato di Chrome | Bug di Chromium

Ritiro dell'utilizzo delle notifiche da iframe non sicuri

Le richieste di autorizzazione dagli iframe possono confondere gli utenti poiché è difficile distinguere l'origine della pagina che la contiene dall'origine dell'iframe che effettua la richiesta. Se l'ambito delle richieste non è chiaro, è difficile per gli utenti valutare se concedere o negare l'autorizzazione.

Se non consenti le notifiche negli iframe, verranno allineati anche i requisiti per le autorizzazioni di notifica con quelli delle notifiche push, semplificando le cose per gli sviluppatori.

Gli sviluppatori che hanno bisogno di questa funzionalità possono aprire una nuova finestra per richiedere l'autorizzazione alle notifiche.

La rimozione avviene in Chrome 62.

Intent di rimozione | Tracker di stato di Chrome | Bug di Chromium

Rimuovi indexDB.webkitGetDatabaseNames()

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

Sfortunatamente, la progettazione è difettosa, in quanto i risultati possono essere obsoleti non appena vengono restituiti, pertanto può essere utilizzato solo per il logging, non per una logica applicativa seria. Il problema github monitora/link a precedenti discussioni sulle alternative, il che richiederebbe un approccio diverso. Anche se gli sviluppatori hanno suscitato un interesse costante, data la mancanza di progressi tra browser, gli autori delle biblioteche hanno risolto il problema.

Gli sviluppatori che hanno bisogno di questa funzionalità devono sviluppare la propria soluzione. 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à viene rimossa in Chrome 60.

Intent di deprecazione | Tracker di stato di Chrome | Bug di Chromium