Bajas y eliminaciones en Chrome 58

Joe Medley
Jo Medley

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

El mouse de Android deja de activar TouchEvents

Hasta Chrome 57, los eventos de mouse de bajo nivel de Android en Chrome seguían principalmente una ruta de acceso 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, entregado a través de View.onTouchEvent.

Sin embargo, dado que los eventos táctiles no admiten el desplazamiento, los movimientos del mouse sobre el cursor siguieron una ruta separada. El diseño tenía muchos efectos secundarios, incluidas las interacciones del mouse que activan TouchEvents, todos los botones del mouse aparecían como botones izquierdos del mouse y TouchEvents suprimía MouseEvents.

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

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

Intent de quitar | Seguimiento de Chromestatus | Error de Chromium

Quita la coincidencia que no distingue entre mayúsculas y minúsculas para el atributo usemap

Anteriormente, el atributo usemap se definió como sin mayúsculas y minúsculas. Lamentablemente, la implementación de esto fue tan complicado que ningún navegador la implementó correctamente. Las investigaciones sugieren que un algoritmo tan complicado es innecesario y que la coincidencia de ASCII que no distingue mayúsculas de minúsculas no es necesaria.

En consecuencia, se actualizó la especificación para que se apliquen las coincidencias que distingan mayúsculas de minúsculas. El comportamiento anterior dejó de estar disponible en Chrome 57 y se quitó.

Intent de quitar | Seguimiento de Chromestatus | Error de Chromium

Quita las navegaciones del marco superior iniciadas por el contenido a las URLs de datos

Debido a que los usuarios de navegadores no especializados no son técnicos, cada vez vemos que el esquema data: se usa en ataques de falsificación de identidad y suplantación de identidad (phishing). Para evitarlo, bloqueamos la carga de páginas web 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.

Intent de quitar | Seguimiento de Chromestatus | Error de Chromium

Se quitaron los nombres obsoletos de las propiedades de rutas de movimiento.

Las propiedades CSS de las rutas de movimiento permiten a los autores animar cualquier objeto gráfico a lo largo de una ruta especificada por el autor. De conformidad con las especificaciones, se implementaron varias propiedades en Chrome 45. Los nombres de estas propiedades se 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 Console.

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

Propiedad eliminada Nombre actual
ruta-de-movimiento ruta-de-desplazamiento
desplazamiento-de-movimiento distancia-desplazamiento
rotación de movimiento rotación con desplazamiento
movimiento offset

Intención de quitar

Quita EME de contextos no seguros

Algunos usos de las extensiones de medios encriptados (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 privilegiado. Los riesgos de seguridad son mayores para los sitios expuestos a través de HTTP no seguro porque cualquier persona puede atacarlos en el canal. Además, cuando se requiere el consentimiento del usuario, un atacante de este tipo 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 se admite en la recomendación propuesta ni se previó en la versión final posterior. No aparecerá 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 para quitar funciones potentes de orígenes inseguros.

Intent de quitar | Seguimiento de Chromestatus | Error de Chromium

Se quitó el llamador heredado de 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 funcionalidad. En Chrome 57, esta función dejó de estar disponible. A partir de Chrome 58, las llamadas arrojan una excepción.

Este cambio hace que Chrome esté alineado con los cambios de especificaciones recientes. El comportamiento heredado no es compatible con Edge ni Safari, y se quitará de Firefox.

Intent de quitar | Seguimiento de Chromestatus | Error de Chromium

Quita los algoritmos de cifrado preestándar ChaCha20-Poly1305

En 2013, Chrome 31 implementó nuevos conjuntos de algoritmos de cifrado de TLS basados en los algoritmos ChaCha20 y Poly1305 del profesor Dan Bernstein. Luego, se estandarizó con pequeños ajustes en la IETF, como RFC 7539 y RFC 7905. Enviamos la variante estandarizada a principios de 2016 con Chrome 49. Ahora quitaremos las variantes preestándar.

Intent de quitar | Seguimiento de Chromestatus | Error de Chromium

Se quitó la compatibilidad con la coincidencia de CommonsName en los certificados

RFC 2818 describe 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 de commonName dejó de estar disponible en la RFC 2818 (publicada en 2000), pero la compatibilidad sigue siendo de varios clientes TLS, lo que a menudo es incorrecto.

El uso de los campos subjectAlternativeName no genera ambigüedades respecto de 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, su compatibilidad ha sido una fuente de errores de seguridad en Chrome, las bibliotecas que usa y dentro del ecosistema TLS en general.

El riesgo de compatibilidad para quitar commonName es bajo. RFC 2818 dio de baja esto durante casi dos décadas, y los requisitos de referencia (que todas las autoridades certificadoras de confianza pública deben cumplir) exigen la presencia de un subjectAltName desde 2012. Firefox ya requiere la subjectAltName para todos los certificados de confianza pública emitidos recientemente a partir de Firefox 48.

Intent de quitar | Seguimiento de Chromestatus | Error de Chromium

Los elementos de la interfaz regions, addRegion() y removeRegion() se quitaron de la especificación de WebVTT y se quitaron en Chrome 58 para cumplir con la especificación más reciente. Esperamos que esta eliminación no se vea afectada porque nunca se habilitó de forma predeterminada (lo que significa que estaba detrás de una marca). Los que necesiten una alternativa pueden usar la propiedad VTTCue.region que se agrega en Chrome 58.

Seguimiento de Chromestatus | Error de Chromium

WebAudio: Quita la interfaz AudioSourceNode

La interfaz AudioSourceNode no forma parte de la especificación de Web Audio, no es construyeble y no tiene atributos, por lo que básicamente no tiene funcionalidades accesibles para desarrolladores. Por lo tanto, se quitará.

Intent de quitar | Seguimiento de Chromestatus | Error de Chromium

Quita el atributo global webkitdropzone

El atributo global dropzone se introdujo mediante la especificación de arrastrar y soltar de HTML5 como un método declarativo para especificar la disposición de un elemento HTML para que sea 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/vínculo).

El atributo no logró ganar terreno 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.

Intent de quitar | Seguimiento de Chromestatus | Error de Chromium

Da de baja el uso no seguro de notificaciones

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

Intent de quitar | Seguimiento de Chromestatus | Error de Chromium

Dejó de estar disponible 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 que las contiene y el origen del iframe que realiza la solicitud. Cuando el alcance de la solicitud no está claro, es difícil para los usuarios decidir si otorgar o rechazar el permiso.

Si inhabilitas las notificaciones en iframes, también se alinearán los requisitos de permisos de notificaciones con los de las notificaciones push, lo que simplificará los inconvenientes para los desarrolladores.

Los desarrolladores que necesiten esta función pueden abrir una ventana nueva para solicitar permisos de notificaciones.

La eliminación se realiza en Chrome 62.

Intent de quitar | Seguimiento de Chromestatus | Error de Chromium

Quita indexadaDB.webkitGetDatabaseNames()

Agregamos esta función cuando la base de datos indexada era relativamente nueva en Chrome y los prefijos eran de moda. La API muestra de forma asíncrona una lista de nombres de bases de datos existentes en un origen, que parecían razonables.

Lamentablemente, el diseño es defectuoso, ya que los resultados pueden quedar obsoletos en cuanto se muestran, por lo que solo se puede usar para el registro, no para la lógica de aplicación seria. El problema de GitHub incluye vínculos/vínculos a análisis anteriores sobre alternativas, que requerirían un enfoque diferente. Si bien hubo un interés constante por parte de los desarrolladores, debido a la falta de progreso entre navegadores, los autores de las bibliotecas solucionaron el problema.

Los desarrolladores que necesitan esta función deben desarrollar su propia solución. Las bibliotecas como Dexie.js, por ejemplo, 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 quitará en Chrome 60.

Intención de dar de baja | Seguimiento de Chromestatus | Error de Chromium