Rimozioni e ritiri in Chrome 80

Joe Medley
Mario Bianchi

Non consentire XMLHTTPRequest() sincrono nella chiusura della pagina

Ora Chrome non consente le chiamate sincrone a XMLHTTPRequest() durante la chiusura di una pagina quando l'utente esce dalla pagina o la chiude. Vale per beforeunload, unload, pagehide e visibilitychange.

Per assicurarti che i dati vengano inviati al server durante l'unload di una pagina, ti consigliamo di utilizzare sendBeacon() o Fetch keep-alive. Per il momento, gli utenti aziendali possono utilizzare il flag del criterio AllowSyncXHRInPageDismissal e gli sviluppatori possono usare il flag della prova dell'origine allow-sync-xhr-in-page-dismissal per consentire richieste XHR sincrone durante l'unload della pagina. Questa è una misura di disattivazione temporanea e prevediamo di rimuovere il flag in Chrome 88.

Per maggiori dettagli su questo argomento e sulle alternative, consulta l'articolo Non consentire il codice XMLHTTPRequest() durante la chiusura delle pagine.

Intent di rimozione | Stato della piattaforma Chrome | Bug di Chromium

Supporto FTP ritirato

L'attuale implementazione FTP in Chrome non supporta le connessioni criptate (FTPS) né i proxy. L'utilizzo dell'FTP nel browser è sufficientemente basso da non permettere più di investire nel miglioramento del client FTP esistente. Inoltre, su tutte le piattaforme interessate sono disponibili client FTP più efficienti.

Chrome 72 ha rimosso il supporto per il recupero di risorse secondarie dei documenti tramite FTP e il rendering delle risorse FTP di primo livello. Al momento la navigazione verso URL FTP comporta la visualizzazione di un elenco di directory o di un download, a seconda del tipo di risorsa. Un bug in Google Chrome 74 e versioni successive ha causato l'interruzione del supporto per l'accesso agli URL FTP tramite proxy HTTP. Il supporto del proxy per l'FTP è stato completamente rimosso in Google Chrome 76.

Le restanti funzionalità dell'implementazione FTP di Google Chrome sono limitate alla visualizzazione di un elenco di directory o al download di una risorsa tramite connessioni non criptate.

Le tempistiche di ritiro sono stimate come segue:

Chrome 80 (stabile a febbraio 2020)

L'FTP è disattivato per impostazione predefinita per i client non aziendali, ma può essere attivato utilizzando i flag della riga di comando --enable-ftp o --enable-features=FtpProtocol. In alternativa, può essere attivata usando l'opzione #enable-ftp su chrome://flags.

Chrome 81 (stabile a marzo 2020)

L'FTP è disattivato per impostazione predefinita per tutte le installazioni di Chrome, ma può essere attivato utilizzando i flag della riga di comando --enable-ftp o --enable-features=FtpProtocol.

Chrome 82 (stabile ad aprile 2020)

Il supporto FTP verrà rimosso completamente.

Intent di rimozione | Stato della piattaforma Chrome | Bug di Chromium

Non consentire popup durante l'unload della pagina

Le pagine potrebbero non utilizzare più window.open() per aprire una nuova pagina durante l'unload. Il blocco popup di Chrome già lo proibiva, ma ora è vietato indipendentemente dall'attivazione o meno del blocco popup.

Le aziende possono usare il flag del criterio AllowPopupsDuringPageUnload per consentire i popup durante l'unload. Chrome prevede di rimuovere questo flag nella versione 82.

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

Serializzazione e trasferimento di ImageBitmap non puliti rimossi

Ora verranno generati errori quando uno script tenta di serializzare o trasferire una mappa ImageBitmap non pulita. Una mappa ImageBitmap non pulita da origini è una mappa che contiene dati di immagini multiorigine che non sono verificate dalla logica CORS.

Intent di rimozione | Stato della piattaforma Chrome | Bug di Chromium

La gestione del protocollo ora richiede un contesto sicuro

I metodi registerProtocolHandler() e unregisterProtocolHandler() ora richiedono un contesto sicuro. Questi metodi sono in grado di riconfigurare gli stati dei client in modo da consentire la trasmissione di dati potenzialmente sensibili su una rete.

Il metodo registerProtocolHandler() fornisce a una pagina web un meccanismo per registrarsi per gestire un protocollo dopo che un utente ha dato il consenso. Ad esempio, un'applicazione email basata sul web potrebbe registrarsi per gestire lo schema mailto:. Il metodo unregisterProtocolHandler() corrispondente consente a un sito di abbandonare la registrazione per la gestione dei protocolli.

Intent di rimozione | Stato della piattaforma Chrome | Bug di Chromium

Componenti web v0 rimossi

I componenti web v0 sono stati rimossi da Chrome. Le API Web Componenti v1 sono uno standard della piattaforma web fornito in Chrome, Safari, Firefox e (a breve) Edge. Per indicazioni sull'upgrade, leggi l'articolo Aggiornamento dei componenti web: più tempo per eseguire l'upgrade alle API v1. Le seguenti funzionalità sono state rimosse. Questo ritiro riguarda gli elementi elencati di seguito.

Elementi personalizzati

Intent di rimozione | Stato della piattaforma Chrome | Bug di Chromium

Importazioni HTML

Intent di rimozione | Stato della piattaforma Chrome | Bug di Chromium

DOM shadow

Intent di rimozione | Stato della piattaforma Chrome | Bug di Chromium

Rimuovi -webkit-appearance:button per gli elementi arbitrari

Modifica -webkit-appearance:button in modo che funzioni solo con i pulsanti <button> e <input>. Se button è specificato per un elemento non supportato, l'elemento avrà l'aspetto predefinito. Tutte le altre parole chiave -webkit-appearance hanno già questa restrizione.

Intent di rimozione | Stato della piattaforma Chrome | Bug di Chromium

Norme sul ritiro

Per mantenere integro la piattaforma, a volte rimuoviamo dalla piattaforma web le API che hanno seguito il loro corso. Ci possono essere molti motivi per cui dobbiamo rimuovere un'API, tra cui:

  • che vengono sostituite dalle API più recenti.
  • Vengono aggiornati in modo da riflettere le modifiche alle specifiche al fine di garantire l'allineamento e la coerenza con gli altri browser.
  • Si tratta dei primi esperimenti che non si sono mai realizzati con altri browser e possono quindi aumentare l'onere del supporto per gli sviluppatori web.

Alcune di queste modifiche avranno effetto su un numero molto ridotto di siti. Per mitigare i problemi in anticipo, cerchiamo di fornire un preavviso agli sviluppatori in modo che possano apportare le modifiche necessarie per mantenere attivi i loro siti.

Chrome attualmente dispone di una procedura per il ritiro e la rimozione di API, essenzialmente:

  • Pubblicalo nella mailing list blink-dev.
  • Imposta avvisi e fornisci scale temporali nella console Chrome DevTools quando viene rilevato l'utilizzo nella pagina.
  • Attendi, monitora e rimuovi la funzionalità quando l'utilizzo diminuisce.

Puoi trovare un elenco di tutte le funzionalità ritirate su chromestatus.com che utilizzano il filtro obsoleto e che sono state rimosse applicando il filtro rimosso. Cercheremo anche di riepilogare alcune delle modifiche, delle motivazioni e dei percorsi di migrazione in questi post.