Bajas y eliminaciones en Chrome 80

Joe Medley
Joe Medley

No permitir XMLHTTPRequest() síncrono en el rechazo de la página

Chrome ahora no permite llamadas síncronas a XMLHTTPRequest() durante el rechazo de la página cuando el usuario sale de ella o la cierra. Esto se aplica a beforeunload, unload, pagehide y visibilitychange.

Para asegurarte de que los datos se envíen al servidor cuando se descargue una página, te recomendamos sendBeacon() o Fetch keep-alive. Por ahora, los usuarios empresariales pueden usar la marca de política AllowSyncXHRInPageDismissal, y los desarrolladores pueden usar la marca de prueba de origen allow-sync-xhr-in-page-dismissal para permitir solicitudes XHR síncronas durante la descarga de páginas. Esta es una medida de inhabilitación temporal y esperamos quitar esta marca en Chrome 88.

Para obtener detalles sobre esto y las alternativas, consulta Cómo inhabilitar XMLHTTPRequest() síncrono durante el descarte de páginas.

Intento de eliminación | Estado de la plataforma de Chrome | Error de Chromium

La compatibilidad con FTP dejó de estar disponible

La implementación actual de FTP en Chrome no admite conexiones encriptadas (FTPS) ni proxies. El uso de FTP en el navegador es lo suficientemente bajo como para que ya no sea viable invertir en mejorar el cliente de FTP existente. Además, hay clientes FTP más capaces disponibles en todas las plataformas afectadas.

Chrome 72 quitó la compatibilidad para recuperar subrecursos de documentos a través de FTP y la renderización de recursos de FTP de nivel superior. Actualmente, navegar a URLs de FTP muestra una lista de directorios o una descarga, según el tipo de recurso. Un error en Google Chrome 74 y versiones posteriores provocó que se dejara de admitir el acceso a las URLs de FTP a través de proxies HTTP. La compatibilidad con proxies para FTP se quitó por completo en Google Chrome 76.

Las funciones restantes de la implementación de FTP de Google Chrome se limitan a mostrar una lista de directorios o descargar un recurso a través de conexiones no encriptadas.

El cronograma de baja se estableció de forma provisional de la siguiente manera:

Chrome 80 (estable en febrero de 2020)

El FTP está inhabilitado de forma predeterminada para los clientes no empresariales, pero se puede activar con las marcas de línea de comandos --enable-ftp o --enable-features=FtpProtocol. Como alternativa, se puede activar con la opción #enable-ftp en chrome://flags.

Chrome 81 (estable en marzo de 2020)

El FTP está inhabilitado de forma predeterminada para todas las instalaciones de Chrome, pero se puede activar con las marcas de línea de comandos --enable-ftp o --enable-features=FtpProtocol.

Chrome 82 (estable en abril de 2020)

Se quitará por completo la compatibilidad con FTP.

Intento de eliminación | Estado de la plataforma de Chrome | Error de Chromium

No permitir ventanas emergentes durante la descarga de páginas

Es posible que las páginas ya no usen window.open() para abrir una página nueva durante la descarga. El bloqueador de ventanas emergentes de Chrome ya lo prohibía, pero ahora se prohíbe independientemente de si está habilitado o no.

Las empresas pueden usar la marca de política AllowPopupsDuringPageUnload para permitir ventanas emergentes durante la descarga. Chrome espera quitar esta marca en Chrome 82.

Intento de eliminación | Chromestatus Tracker | Error de Chromium

Se quitaron la serialización y la transferencia de ImageBitmap que no son de origen limpio

Ahora se generarán errores cuando una secuencia de comandos intente serializar o transferir un ImageBitmap que no esté limpio de origen. Un ImageBitmap que no es de origen limpio es uno que contiene datos de imágenes de varios orígenes que la lógica de CORS no verifica.

Intento de eliminación | Estado de la plataforma de Chrome | Error de Chromium

El manejo de protocolos ahora requiere un contexto seguro

Los métodos registerProtocolHandler() y unregisterProtocolHandler() ahora requieren un contexto seguro. Estos métodos pueden reconfigurar los estados del cliente de modo que permitan la transmisión de datos potencialmente sensibles a través de una red.

El método registerProtocolHandler() le brinda a una página web un mecanismo para registrarse y controlar un protocolo después de que un usuario da su consentimiento. Por ejemplo, una aplicación de correo electrónico basada en la Web podría registrarse para controlar el esquema mailto:. El método unregisterProtocolHandler() correspondiente permite que un sitio abandone su registro de control de protocolo.

Intento de eliminación | Estado de la plataforma de Chrome | Error de Chromium

Se quitó Web Components v0

Se quitó Web Components v0 de Chrome. Las APIs de Web Components v1 son un estándar de plataforma web que se lanzó en Chrome, Safari, Firefox y, próximamente, en Edge. Para obtener orientación sobre la actualización, consulta Actualización de Web Components: más tiempo para actualizar a las APIs de v1. Se quitaron las siguientes funciones. Esta baja abarca los elementos que se enumeran a continuación.

Elementos personalizados

Intento de eliminación | Estado de la plataforma de Chrome | Error de Chromium

Importaciones de HTML

Intento de eliminación | Estado de la plataforma de Chrome | Error de Chromium

Shadow DOM

Intento de eliminación | Estado de la plataforma de Chrome | Error de Chromium

Se quitó -webkit-appearance:button para elementos arbitrarios.

Se cambia -webkit-appearance:button para que funcione solo con los botones <button> y <input>. Si se especifica button para un elemento no compatible, este tendrá la apariencia predeterminada. Todas las demás palabras clave de -webkit-appearance ya tienen esa restricción.

Intento de eliminación | Estado de la plataforma de Chrome | Error de Chromium

Política de baja

Para mantener la plataforma en buen estado, a veces quitamos de la plataforma web las APIs que ya cumplieron su ciclo. Existen muchos motivos por los que quitamos una API, como los siguientes:

  • Se reemplazan por APIs más recientes.
  • Se actualizan para reflejar los cambios en las especificaciones y lograr la alineación y coherencia con otros navegadores.
  • Son experimentos iniciales que nunca se materializaron en otros navegadores y, por lo tanto, pueden aumentar la carga de asistencia para los desarrolladores web.

Algunos de estos cambios afectarán a una cantidad muy pequeña de sitios. Para mitigar los problemas con anticipación, intentamos avisar a los desarrolladores con anticipación para que puedan realizar los cambios necesarios y mantener sus sitios en funcionamiento.

Actualmente, Chrome tiene un proceso para la baja y eliminación de APIs, que consiste en lo siguiente:

  • Anunciar en la lista de distribución blink-dev
  • Establece advertencias y proporciona escalas de tiempo en la consola de Herramientas para desarrolladores de Chrome cuando se detecta el uso en la página.
  • Espera, supervisa y, luego, quita la función a medida que disminuya el uso.

Puedes encontrar una lista de todas las funciones obsoletas en chromestatus.com con el filtro obsoleto y las funciones quitadas con el filtro quitado. También intentaremos resumir algunos de los cambios, razonamientos y rutas de migración en estas publicaciones.