Rimozioni e ritiri di API in Chrome 57

Joe Medley
Joe Medley

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

Rimuovi l'attributo BluetoothDevice.uuids

L'attributo BluetoothDevice.uuids viene rimosso per allineare l'API Web Bluetooth alla specifica attuale. Puoi recuperare tutti i servizi GATT consentiti chiamando device.getPrimaryServices().

Bug di Chromium

Rimuovi l'elemento di generazione della chiave

A partire da Chrome 49, il comportamento predefinito di <keygen> è restituire la stringa vuota, a meno che non sia stata concessa un'autorizzazione a questa pagina. IE/Edge non supportano <keygen> e non hanno indicato indicatori pubblici per supportare <keygen>. Firefox limita già l'accesso a <keygen> dietro un gesto dell'utente, ma supporta pubblicamente la sua rimozione. Safari viene fornito con <keygen> e non ha espresso opinioni pubbliche in merito al suo continuo supporto. Con Chrome 57, questo elemento viene rimosso.

Intento di rimozione | Tracker di Chromestatus | Bug di Chromium

Rimuovere l'API di gestione del buffer dei tempi delle risorse con prefisso

Due metodi e un gestore di eventi, webkitClearResourceTimings(), webkitSetResourceTimingBufferSize() e onwebkitresourcetimingbufferfull, sono obsoleti e specifici del fornitore. Le versioni standard di queste API sono supportate da Chrome 46 e anche le funzioni con prefisso sono state ritirate in quella versione. Queste funzionalità sono state inizialmente implementate in WebKit, ma Safari non le ha attivate. Firefox, IE 10 e versioni successive ed Edge hanno solo la versione senza prefisso dell'API. Pertanto, le versioni WebKit vengono rimosse.

Intento di rimozione | Tracker di Chromestatus | 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 messaggio personalizzato vengono modificati in modo da utilizzare MessageEvent anziché ServiceWorkerMessageEvent. ServiceWorkerMessageEvent è stato rimosso.

Intento di rimozione | Tracker di Chromestatus | Bug di Chromium

Rimuovi gli alias globali IndexedDB con prefisso webkit

Il punto di contatto IndexedDB e i costruttori globali sono stati esposti con prefisso webkit intorno a Chrome 11. Le versioni senza prefisso sono state aggiunte in Chrome 24 e quelle con prefisso sono state ritirate in Chrome 38. Sono interessate le seguenti interfacce:

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

Intento di rimozione | Tracker di Chromestatus | Bug di Chromium

WebAudio: rimozione di AudioContext e OfflineAudioContext con prefisso

Chrome supporta WebAudio, inclusa AudioContext, dalla metà del 2011. OfflineAudioContext è stato aggiunto l'anno successivo. Dato il lungo periodo 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 sono in fase di rimozione.

Intento di rimozione | Tracker di Chromestatus | Bug di Chromium

Ritiro e rimozione di webkitCancelRequestAnimationFrame

Il metodo webkitCancelRequestAnimationFrame() è un'API obsoleta e specifica del fornitore, mentre cancelAnimationFrame() standard è supportato da tempo in Chromium. Pertanto, la versione WebKit verrà rimossa.

Intento di rimozione | Tracker di Chromestatus | Bug di Chromium

Ritiro della corrispondenza senza distinzione tra maiuscole e minuscole per l'attributo usemap

L'attributo usemap era precedentemente definito senza maiuscole. Purtroppo, l'implementazione di questa funzionalità era talmente complicata che nessun browser l'ha implementata correttamente. La ricerca ha suggerito che un algoritmo così complicato non è necessario, e nemmeno la corrispondenza ASCII senza sensibilità alle maiuscole è necessaria.

Di conseguenza, la specifica è stata aggiornata in modo che venga applicata la corrispondenza sensibile alle maiuscole. Il vecchio comportamento è deprecato in Chrome 57 e la rimozione è prevista in Chrome 58.

Intento di rimozione | Tracker di Chromestatus | Bug di Chromium

Ritiro di FileReaderSync nei service worker

La specifica del servizio worker ha sempre incluso la nota (non normativa) che "qualsiasi tipo di richieste sincrone non deve essere avviato all'interno di un servizio worker", per evitare di bloccarlo. Il blocco del service worker impedirebbe tutte le richieste di rete provenienti dalle pagine controllate. Purtroppo, l'API FileReaderSync è disponibile da tempo nei worker di servizio.

Al momento solo Firefox e Chrome espongono FileReaderSync nei worker di servizio. Nella discussione sulle specifiche Firefox è d'accordo sul fatto che questo problema debba essere risolto. La rimozione è prevista in Chrome 59.

Intento di rimozione | Tracker di Chromestatus | Bug di Chromium

Ritiro del chiamante precedente per HTMLEmbedElement e HTMLObjectElement

Il fatto che un'interfaccia abbia un chiamante legacy significa che un'istanza può essere chiamata come funzione. Al momento, HTMLEmbedElement e HTMLObjectElement supportano questa funzionalità. In Chrome 57 questa funzionalità è deprecata. Dopo la rimozione, che dovrebbe avvenire in Chrome 58, le chiamate genereranno un'eccezione.

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

Intento di rimozione | Tracker di Chromestatus | Bug di Chromium

Ritiro del criterio RTCRtcpMuxPolicy di "negotiate"

rtcpMuxPolicy viene utilizzato da Chrome per specificare il criterio preferito per l'utilizzo del multiplexing RTP/RTCP. In Chrome 57, abbiamo modificato il valore predefinito rtcpMuxPolicy in "require" e abbiamo ritirato "negotiate" per i seguenti motivi:

  • RTCP non multiplexato utilizza risorse di rete aggiuntive.
  • La rimozione di "negotiate" semplifica l'interfaccia API, poiché un "RtpSender"/"RtpReceiver" avrà sempre un solo trasporto.

In Chrome 57, il valore "negotiate" è deprecato. Riteniamo che si tratti di una modifica non invasiva, poiché l'utente riceverà un messaggio di ritiro e RTCPeerConnection potrà essere ancora creato. La rimozione è in Chrome 63.

Intento di ritiro | Bug di Chromium

Ritiro del supporto per le credenziali incorporate nelle richieste di sottorisorsa

L'inserimento hardcoded delle credenziali nelle richieste di risorse secondarie è problematico dal punto di vista della sicurezza, in quanto in passato ha consentito agli hacker di accedere con forza bruta alle credenziali. Questi pericoli sono aggravati per le richieste di sottorisorse con credenziali che raggiungono intervalli IP interni (router e così via). Dato l'utilizzo ridotto, la chiusura di questa (piccola) falla di 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 della sessione.

Intento di rimozione | Tracker di Chromestatus | Bug di Chromium