Rimozioni e ritiri di API in Chrome 57

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 57, in versione beta all'inizio di febbraio. Questo elenco è soggetto a modifica in qualsiasi momento.

Rimuovi l'attributo BluetoothDevice.uuids

L'attributo BluetoothDevice.uuids è in fase di rimozione per allineare l'API Web Bluetooth alla specifica attuale. Puoi recuperare tutti i servizi GATT consentiti chiamando device.getPrimaryServices().

Bug di Chromium

Rimuovi elemento di generazione chiave

A partire da Chrome 49, il comportamento predefinito di <keygen> prevede la restituzione della stringa vuota, a meno che non sia stata concessa un'autorizzazione a questa pagina. IE/Edge non supporta <keygen> e non ha indicato indicatori pubblici per supportare <keygen>. Firefox già limita <keygen> a un gesto dell'utente, ma supporta pubblicamente la sua rimozione. Safari spedisce <keygen> e non ha espresso opinione al pubblico in merito al suo supporto continuo. In Chrome 57, questo elemento viene rimosso.

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

Rimuovi l'API di gestione del buffer di temporizzazione delle risorse con prefisso

Due metodi e un gestore di eventi, webkitClearResourceTimings(), webkitSetResourceTimingBufferSize() e onwebkitresourcetimingbufferfull, sono obsoleti e specifici per il fornitore. Le versioni standard di queste API sono supportate a partire da Chrome 46 e anche le funzioni con prefisso sono state ritirate in quella versione. Queste funzionalità sono state implementate originariamente in WebKit, ma Safari non le ha abilitate. Firefox, IE 10 e versioni successive ed Edge hanno solo una versione senza prefisso dell'API. Di conseguenza, le versioni webkit vengono rimosse.

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

Rimuovere ServiceWorkerMessageEvent a favore dell'utilizzo di MessageEvent

La specifica HTML ha esteso MessageEvent per consentire ServiceWorker come tipo per l'attributo source. client.postMessage() e la creazione di eventi di messaggi personalizzati sono stati modificati in modo da utilizzare MessageEvent anziché ServiceWorkerMessageEvent. Rimozione di ServiceWorkerMessageEvent effettuata.

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

Rimuovi gli alias globali IndexedDB con prefisso webkit

Il punto di ingresso IndexedDB e i costruttori globali sono stati esposti con prefissi webkit da qualche parte intorno a Chrome 11. Le versioni senza prefisso sono state aggiunte in Chrome 24 e le versioni con prefisso sono state deprecate in Chrome 38. Sono interessate le seguenti interfacce:

  • webkitIndexedDB (punto di ingresso principale)
  • webkitIDBKeyRange (costruttore globale non richiamabile, ma presenta metodi statici utili)
  • webkitIDBCursor
  • webkitIDBDatabase
  • webkitIDBFactory
  • webkitIDBIndex
  • webkitIDBObjectStore
  • webkitIDBRequest
  • webkitIDBTransaction (costruttori globali non richiamabili)

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

WebAudio: rimuovi AudioContext con prefisso e OfflineAudioContext

Chrome supporta WebAudio dalla metà del 2011, incluso AudioContext. OfflineAudioContext è stato aggiunto l'anno successivo. Dato il tempo di supporto delle interfacce standard e l'obiettivo a lungo termine di Google di rimuovere le funzionalità con prefisso, le versioni con prefisso di queste interfacce sono state ritirate dalla fine del 2014 e ora vengono rimosse.

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

Depreca e rimuovi webkitCancelRequestAnimationFrame

Il metodo webkitCancelRequestAnimationFrame() è un'API obsoleta specifica del fornitore e l'API cancelAnimationFrame() standard è da tempo supportata in Chromium. Di conseguenza, la versione webkit viene rimossa.

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

Depreca 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 l'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 è deprecato in Chrome 57, ma è prevista la rimozione in Chrome 58.

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

Ritira FileReaderSync nei service worker

La specifica di Service Worker ha sempre avuto la nota (non normativa) che "qualsiasi tipo di richiesta sincrona non deve essere avviata all'interno di un service worker" per evitare di bloccare il service worker. Il blocco del service worker bloccherebbe tutte le richieste di rete provenienti dalle pagine controllate. Sfortunatamente, l'API FileReaderSync è disponibile da molto tempo nei service worker.

Attualmente solo Firefox e Chrome espongono FileReaderSync nei Service worker. Nella discussione sulle specifiche di Firefox si concorda sul fatto che questo problema dovrebbe essere risolto. La rimozione è prevista in Chrome 59.

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

Ritira il 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à è deprecata. Dopo la rimozione, prevista in Chrome 58, la chiamata genererà 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

Depreca RTCRtcpMuxPolicy di "negozia"

rtcpMuxPolicy viene utilizzato da Chrome per specificare il suo criterio preferito relativo all'utilizzo del multiplexing RTP/RTCP. In Chrome 57, abbiamo modificato il valore predefinito rtcpMuxPolicy in "request" e "negozia" deprecato per i seguenti motivi:

  • RTCP non Muxed utilizza risorse di rete aggiuntive.
  • La rimozione di "negozia" semplificherà la superficie API, poiché un "RtpSender"/"RtpRicevir" avrà sempre un solo trasporto.

In Chrome 57, l'opzione "negozia" è deprecata. Riteniamo che si tratti di una modifica irreversibile, poiché l'utente riceverà un messaggio relativo al ritiro e potrà comunque essere creato RTCPeerConnection. La rimozione avviene in Chrome 63.

Intento di deprecazione | Bug di Chromium

Ritiro del supporto per credenziali incorporate nelle richieste di sottorisorse

L'hard-coding delle credenziali nelle richieste di sottorisorse è problematico dal punto di vista della sicurezza, in quanto in passato ha consentito agli hacker di applicare attacchi forzati alle credenziali bruta. Questi pericoli sono esacerbati per le richieste di sottorisorse con credenziali che raggiungono gli intervalli IP interni (i tuoi router e così via). Dato lo scarso utilizzo, chiudere questo (piccolo) buco della sicurezza sembra abbastanza ragionevole.

Gli sviluppatori possono incorporare risorse che non richiedono l'autenticazione di base/digest, basandosi invece su cookie e altri meccanismi di gestione delle sessioni.

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