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 60, que está en versión beta a partir del 8 de junio. Esta lista está sujeta a cambios en cualquier momento.
Seguridad
crypto.subtle ahora requiere un origen seguro
La API de Web Crypto, compatible desde Chrome 37, siempre ha funcionado en orígenes no seguros. Debido a la antigua política de Chrome de preferir los orígenes seguros para las funciones potentes, crypto.subtle
no solo es visible en orígenes seguros.
Intención de quitar | 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 cargue una página.
Esta función dejó de estar disponible en Chrome 58 y se quitó.
Intent de quitar | Seguimiento de Chromestatus | Error de Chromium
Inhabilita temporalmente navigator.sendBeacon() para algunos BLOB
La función navigator.sendBeacon()
está disponible desde Chrome 39.
Según la implementación original, el argumento data
de la función podría contener cualquier BLOB arbitrario cuyo tipo no esté incluido en la lista segura de CORS. Creemos que esta es una posible amenaza de seguridad, aunque todavía nadie ha intentado aprovecharla. Debido a que NO tenemos una solución inmediata razonable para esto, temporalmente, sendBeacon()
ya no se puede invocar en BLOB cuyo tipo NO esté en la lista de seguridad de CORS.
Si bien se implementó este cambio en Chrome 60, desde entonces se combinó con Chrome 59.
CSS
Hacer que el combinador subordinado que perfora las sombras se comporte como un combinador descendente
El combinador subordinado de perforaciones de sombras (>>>
), que forma parte del nivel de módulo de alcance de CSS 1, estaba diseñado para hacer coincidir los elementos secundarios de un elemento principal particular, incluso cuando aparecían dentro de un shadow tree. Esto tenía algunas limitaciones.
Primero, según las especificaciones, solo se podía usar en llamadas de JavaScript como querySelector()
y no funcionaba en hojas de estilo. Lo que es más importante, los proveedores de navegadores no podían hacer que funcionara más allá de un nivel del Shadow DOM.
En consecuencia, se quitó el combinador descendiente de las especificaciones relevantes, incluida Shadow DOM v1. En lugar de quitar este selector de Chromium, en lugar de romper las páginas web, elegimos asignar un alias al combinador descendiente que perfora las sombras al combinador subordinado. El comportamiento original dejó de estar disponible en Chrome 45. El nuevo comportamiento se implementa en Chrome 61.
Intent de quitar | Seguimiento de Chromestatus | Error de Chromium
JavaScript
RTCPeerConnection.getStreamById() se dio de baja y se dio de baja
Hace casi dos años, se quitó getStreamById()
de la especificación WebRTC. La mayoría de los demás navegadores ya lo quitaron de sus implementaciones. Aunque se cree que esta función se usa poco, también se cree que existe un riesgo menor de interoperabilidad con los navegadores basados en Edge y WebKit, aparte de Safari, en el que aún se admite getStreamById()
. Los desarrolladores que necesiten una implementación alternativa pueden encontrar código de ejemplo en el intent para quitar, a continuación.
La eliminación se realiza en Chrome 62.
Intent de quitar | Seguimiento de Chromestatus | Error de Chromium
SVGPathElement.getPathSegAtLength dejó de estar disponible.
Hace más de dos años, getPathSegAtLength()
se quitó de la especificación de SVG. Como solo hay unos pocos hits en httparchive, dejará de estar disponible en Chrome 60. Se espera que la eliminación se realice en Chrome 62, que se lanzará a principios o mediados de octubre.
Intención de dar de baja | Seguimiento de Chromestatus | Error de Chromium
Cómo mover getContextAttributes() detrás de una marca
La función getContextAttributes()
es compatible con CanvasRenderingContext2D
desde 2013. Sin embargo, la función no formaba parte de ningún estándar y no se volvió parte de uno desde ese momento. Se debería haber implementado detrás de la marca de línea de comandos --enable-experimental-canvas-features
, pero no se produjo por error. En Chrome 60, este descuido se corrigió. Se cree que este cambio es seguro, ya que no hay datos que muestren que alguien esté usando el método.
Quita Headers.prototype.getAll()
La función Headers.prototype.getAll()
se quita según la versión más reciente de la especificación de recuperación.
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 dejó de estar disponible en Chrome 58 y se quitó.
Intent de quitar | Seguimiento de Chromestatus | Error de Chromium
Se quitarán WEBKIT_KEYFRAMES_RULE y WEBKIT_KEYFRAME_RULE.
Se quitaron las constantes no estándar WEBKIT_KEYFRAMES_RULE
y WEBKIT_KEYFRAME_RULE
de la regla de CSS.
En su lugar, los desarrolladores deben usar KEYFRAMES_RULE
y KEYFRAME_RULE
.
Intent de quitar | Seguimiento de Chromestatus | Error de Chromium
Interfaz de usuario
Exigir gestos del usuario para los diálogos beforeunload
A partir de Chrome 60, el diálogo beforeunload
solo aparecerá si el marco que intenta mostrarlo recibió un gesto del usuario o una interacción del usuario (o si algún marco incorporado recibió ese gesto). Para que quede claro, esto no es un cambio en el envío del evento beforeunload
. Solo cambia si se muestra el diálogo.
El diálogo beforeunload
es un cuadro de diálogo modal de la app. Por lo tanto, es intrínsecamente hostil para el usuario, lo que significa que responde a la navegación del usuario cuestionando su decisión. Esta función tiene usos positivos. Por ejemplo, a menudo se usa para advertir a los usuarios cuándo perderán datos cuando naveguen.
Si bien hace un tiempo se quitó la posibilidad de que una página proporcione texto para el diálogo beforeunload
, los diálogos beforeunload
siguen siendo un vector de abuso. En particular, los diálogos de beforeunload
son parte de los sitios web de estafa, en los que el audio de reproducción automática y el texto amenazante proporcionan un contexto en el que Chromium proporciona un mensaje que indica que estás seguro de que quieres salir de esta página y se vuelve preocupante.
Queremos usar hilos de la aguja y solo permitir los buenos usos del diálogo beforeunload
. Los buenos usos del diálogo son aquellos en los que el usuario tiene un estado que podría perderse. Si el usuario nunca interactuó con la página, no puede tener ningún estado que se pueda perder y, por lo tanto, no arriesgamos a perder datos si suprimemos el diálogo en ese caso.