Bajas y eliminaciones en Chrome 58

Joe Medley
Joe Medley

En casi todas las versiones de Chrome, vemos una cantidad significativa de actualizaciones y mejoras en el producto, su rendimiento y también en las capacidades de la plataforma web. En este artículo, se describen las bajas y las eliminaciones de Chrome 58, que se encuentra en versión beta desde el 16 de marzo. Esta lista está sujeta a cambios en cualquier momento.

El mouse en Android deja de activar TouchEvents.

Hasta Chrome 57, los eventos del mouse de bajo nivel de Android en Chrome seguían principalmente una ruta de eventos diseñada para interacciones táctiles. Por ejemplo, un movimiento de arrastre del mouse que se produce mientras se presiona un botón del mouse genera MotionEvents, que se entrega a través de View.onTouchEvent.

Sin embargo, como los eventos táctiles no admiten el desplazamiento del cursor sobre un elemento, los movimientos del mouse sobre el elemento siguieron una ruta distinta. El diseño tenía muchos efectos secundarios, como que las interacciones del mouse activaban TouchEvents, todos los botones del mouse aparecían como botones del mouse izquierdo y MouseEvents era suprimido por TouchEvents.

A partir de Chrome 58, un mouse en Android M o versiones posteriores hará lo siguiente:

  • Ya no se activa TouchEvents.
  • Activa una secuencia coherente de MouseEvents con los botones y otras propiedades adecuados.

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

Se quitó la coincidencia sin distinción entre mayúsculas y minúsculas para el atributo usemap.

Anteriormente, el atributo usemap se definía como sin distinción de mayúsculas y minúsculas. Lamentablemente, implementar esto era lo suficientemente complicado como para que ningún navegador lo implementara correctamente. La investigación sugirió que no es necesario un algoritmo tan complicado, y ni siquiera la coincidencia ASCII sin distinción de mayúsculas y minúsculas es necesaria.

Por lo tanto, se actualizó la especificación para que se aplique la coincidencia de mayúsculas y minúsculas. El comportamiento anterior dejó de estar disponible en Chrome 57 y ahora se quitó.

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

Se quitaron las navegaciones del marco superior iniciadas por el contenido a las URLs de datos.

Debido a que los usuarios de navegadores no técnicos no están familiarizados con ellos, cada vez más vemos que el esquema data: se usa en ataques de falsificación y phishing. Para evitar esto, bloqueamos las páginas web para que no carguen URLs de data: en el marco superior. Esto se aplica a las etiquetas <a>, window.open, window.location y mecanismos similares. El esquema data: seguirá funcionando para los recursos que una página cargue a continuación.

Esta función se quitará en Chrome 60.

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

Se quitaron los nombres obsoletos de las propiedades de ruta de movimiento

Las propiedades de CSS de ruta de movimiento permiten a los autores animar cualquier objeto gráfico a lo largo de una ruta especificada por el autor. De conformidad con la especificación, se implementaron varias propiedades en Chrome 45. Los nombres de estas propiedades cambiaron en la especificación a mediados de 2016. Chrome implementó los nombres nuevos en Chrome 55 y Chrome 56. También se implementaron advertencias de baja de la consola.

En Chrome 58, se quitarán los nombres de propiedades anteriores. A continuación, se muestran las propiedades afectadas y sus nombres nuevos.

Propiedad quitada Nombre actual
ruta de movimiento offset-path
offset de movimiento offset-distance
motion-rotation offset-rotate
movimiento offset

Intento de quitar

Quita EME de los contextos no seguros

Algunos usos de las Extensiones de contenido multimedia encriptado (EME) exponen implementaciones de administración de derechos digitales que no son de código abierto, implican acceso a identificadores únicos persistentes o se ejecutan sin zona de pruebas o con acceso con privilegios. Los riesgos de seguridad aumentan para los sitios expuestos a través de HTTP no seguro, ya que cualquier persona del canal puede atacarlos. Además, cuando se requiere el consentimiento del usuario, un atacante puede aprovechar la aceptación persistente de un sitio HTTP no seguro.

La compatibilidad con contextos no seguros se quitó de la especificación de la versión 1 de EME y no es compatible con la recomendación propuesta ni se anticipa en la versión final posterior. No estará en la próxima recomendación propuesta ni en la recomendación final posterior. La API muestra un mensaje de baja en orígenes no seguros desde Chrome 44 (mayo de 2015). En Chrome 58, ya se quitó. Este cambio forma parte de nuestro esfuerzo más amplio por quitar funciones potentes de orígenes no seguros.

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

Se quitó el llamador heredado para HTMLEmbedElement y HTMLObjectElement.

Que una interfaz tenga un llamador heredado significa que se puede llamar a una instancia como una función. Actualmente, HTMLEmbedElement y HTMLObjectElement admiten esta función. En Chrome 57, esta función dejó de estar disponible. A partir de Chrome 58, las llamadas arrojan una excepción.

Este cambio permite adaptar Chrome a los cambios recientes en las especificaciones. El comportamiento heredado no es compatible con Edge ni Safari, y se quitará de Firefox.

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

Se quitaron los algoritmos de cifrado ChaCha20-Poly1305 anteriores al estándar.

En 2013, Chrome 31 implementó nuevos conjuntos de algoritmos de cifrado TLS basados en los algoritmos ChaCha20 y Poly1305 del profesor Dan Bernstein. Más adelante, se estandarizaron, con pequeños ajustes, en el IETF como RFC 7539 y RFC 7905. Lanzamos la variante estandarizada a principios de 2016 con Chrome 49. Ahora quitaremos las variantes previas al estándar.

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

Se quitó la compatibilidad con la coincidencia de commonName en los certificados.

En la RFC 2818, se describen dos métodos para hacer coincidir un nombre de dominio con un certificado: usar los nombres disponibles dentro de la extensión subjectAlternativeName o, en ausencia de una extensión SAN, recurrir a commonName. El resguardo a commonName dejó de estar disponible en RFC 2818 (publicada en 2000), pero la compatibilidad sigue disponible en varios clientes de TLS, a menudo de forma incorrecta.

El uso de los campos subjectAlternativeName no deja lugar a dudas sobre si un certificado expresa una vinculación a una dirección IP o a un nombre de dominio, y se define por completo en términos de su interacción con las restricciones de nombres. Sin embargo, commonName es ambiguo y, por este motivo, la compatibilidad con él ha sido una fuente de errores de seguridad en Chrome, las bibliotecas que usa y en el ecosistema de TLS en general.

El riesgo de compatibilidad para quitar commonName es bajo. La RFC 2818 dejó de estar disponible hace casi dos décadas, y los requisitos de referencia (que todas las autoridades certificadoras de confianza pública deben cumplir) requieren la presencia de un subjectAltName desde 2012. Firefox ya requiere subjectAltName para cualquier certificado de confianza pública emitido recientemente desde Firefox 48.

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

Los elementos de interfaz regions, addRegion() y removeRegion() se quitaron de la especificación de WebVTT y se quitan en Chrome 58 para cumplir con la especificación más reciente. Esperamos que esta eliminación tenga poco impacto, ya que la función nunca se habilitó de forma predeterminada (es decir, estaba detrás de una marca). Quienes necesiten una alternativa pueden usar la propiedad VTTCue.region, que se agregará en Chrome 58.

Chromestatus Tracker | Error de Chromium

WebAudio: Se quitó la interfaz AudioSourceNode.

La interfaz AudioSourceNode no forma parte de la especificación de Web Audio, no se puede crear y no tiene atributos, por lo que, básicamente, no tiene ninguna funcionalidad accesible para los desarrolladores. Por lo tanto, se quitará.

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

Se quitó el atributo global webkitdropzone.

La especificación de arrastrar y soltar de HTML5 introdujo el atributo global dropzone como un método declarativo para especificar la voluntad de un elemento HTML de ser el objetivo de una operación de arrastrar y soltar, los tipos de contenido que se pueden soltar en el elemento y la operación de arrastrar y soltar (copiar/mover/vincular).

El atributo no tuvo éxito entre los proveedores de navegadores. Blink y WebKit solo implementan una forma con prefijo del atributo, webkitdropzone. Debido a que el atributo dropzone se quitó de la especificación a principios de marzo de 2017, la versión con prefijo se quitará de Chrome.

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

Se da de baja el uso no seguro de las notificaciones

Las notificaciones son una función potente, ya que permiten que los sitios web invoquen una IU del sistema para transmitir información privada o un indicador de que se cambió la información privada. Los atacantes pueden husmear o robar cualquier información que se envíe a través de una notificación por una conexión no segura. Las notificaciones push web requieren un origen seguro, por lo que este cambio alineará las notificaciones no push con las notificaciones push. Este cambio forma parte de nuestro esfuerzo más amplio por quitar funciones potentes de orígenes no seguros.

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

Se da de baja el uso de notificaciones de iframes no seguros

Las solicitudes de permisos de iframes pueden confundir a los usuarios, ya que es difícil distinguir entre el origen de la página contenedora y el del iframe que realiza la solicitud. Cuando el alcance de las solicitudes no es claro, es difícil para los usuarios juzgar si otorgar o denegar el permiso.

Si no permites las notificaciones en los iframes, también se alinearán los requisitos del permiso de notificación con los de las notificaciones push, lo que facilitará la interacción de los desarrolladores.

Los desarrolladores que necesiten esta funcionalidad pueden abrir una ventana nueva para solicitar el permiso de notificación.

La eliminación se encuentra en Chrome 62.

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

Se quitó indexedDB.webkitGetDatabaseNames().

Agregamos esta función cuando la base de datos indexada era relativamente nueva en Chrome y el uso de prefijos estaba en auge. La API muestra de forma asíncrona una lista de nombres de bases de datos existentes en un origen, lo que parecía bastante razonable.

Lamentablemente, el diseño tiene fallas, ya que los resultados pueden quedar obsoletos en cuanto se muestran, por lo que solo se puede usar para el registro, no para una lógica de aplicación seria. El problema de GitHub hace un seguimiento o vincula a una discusión anterior sobre alternativas, lo que requeriría un enfoque diferente. Si bien los desarrolladores han mostrado interés de forma intermitente, debido a la falta de progreso en varios navegadores, los autores de la biblioteca resolvieron el problema.

Los desarrolladores que necesiten esta funcionalidad deben desarrollar su propia solución. Por ejemplo, bibliotecas como Dexie.js usan una tabla global que, a su vez, es otra base de datos para hacer un seguimiento de los nombres de las bases de datos.

Esta función se quitó en Chrome 60.

Intento de baja | Chromestatus Tracker | Error de Chromium