Bajas y eliminaciones en Chrome 60

Joe Medley
Joe Medley

En casi todas las versiones de Chrome, vemos un número significativo de actualizaciones y mejoras al producto, su rendimiento y también las capacidades de la Web de procesamiento de macrodatos en Google Cloud Platform. En este artículo, se describen las bajas y las eliminaciones en Chrome 60, que se encuentra en fase beta desde el 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 la versión 37 de Chrome siempre ha funcionado en aplicaciones orígenes. Debido a la política de Chrome la preferencia por orígenes seguros para funciones potentes, crypto.subtle no solo es visible en orígenes seguros.

Intención de quitar | Error de Chromium

Cómo quitar las navegaciones del fotograma superior iniciadas por el contenido a las URLs de datos

Debido al desconocimiento de los usuarios de navegadores no técnicos, Cada vez se usa más el esquema data: para la falsificación de identidad y phishing de ataques de seguridad cibernética. Para evitarlo, bloqueamos la carga de las URLs de data: en las páginas web en el marco superior. Esto se aplica a las etiquetas <a>, window.open, window.location y mecanismos similares El esquema data: seguirá funcionando para recursos cargados por una página.

Esta función dejó de estar disponible en Chrome 58 y ahora se quitó.

Intención 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. Como se implementó originalmente, 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 se trata de un potencial una amenaza real de seguridad, aunque nadie haya intentado explotarla. Debido a que NO una solución razonable y inmediata. Por el momento, sendBeacon() no puede ya no se podrá invocar en los BLOB cuyo tipo NO esté incluido en la lista segura de CORS.

Si bien este cambio se implementó en Chrome 60, ya se combinó volver a Chrome 59.

Error de Chromium

CSS

Haz que la combinación de descendiente de desbordamiento de sombras se comporte como un combinador descendiente

La combinadora descendente de desbordamiento de sombras (>>>), que forma parte de Nivel 1 del módulo de permisos de CSS , estaba destinado a hacer coincidir los elementos secundarios de un elemento principal en particular. incluso cuando aparecían dentro de un árbol de sombras. Esto tenía algunas limitaciones. Primero, según la especificación, solo podían usarse en llamadas de JavaScript, como querySelector(), y no se trabajar en hojas de estilo. Más importante aún, los proveedores de navegadores no pudieron hacer trabajar más allá de un nivel del Shadow DOM.

En consecuencia, se quitó la combinación descendiente de las especificaciones relevantes incluido Shadow DOM v1. En lugar de dañar las páginas web con la eliminación de este selector desde Chromium, elegimos asignarle un alias a la imagen descendente, de combinación alta a la subordinada. El comportamiento original era obsoleta en Chrome 45. El nuevo comportamiento se implementará en Chrome 61.

Intención de quitar | Seguimiento de Chromestatus | Error de Chromium

JavaScript

Baja y eliminación de RTCPeerConnection.getStreamById()

Hace casi dos años, se quitó a getStreamById() de la especificación de WebRTC. La mayoría de los demás navegadores tienen ya lo quitaron de sus implementaciones. Aunque esta función es se cree que se usa poco, también se cree que hay algunos riesgo de interoperabilidad con navegadores basados en Edge y WebKit que no sean Safari donde getStreamById() todavía es compatible. Desarrolladores que necesitan una alternativa implementación puede encontrar código de ejemplo en el intent de eliminación, a continuación.

La eliminación está en Chrome 62.

Intención de quitar | Seguimiento de Chromestatus | Error de Chromium

SVGPathElement.getPathSegAtLength dejó de estar disponible

Hace más de dos años, se quitó a getPathSegAtLength() de la especificación de SVG. Como solo hay unos pocos hits para este método en httparchive, es dejará de estar disponible en Chrome 60. Se espera que la eliminación se realice en Chrome 62, se enviará en algún momento 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 convirtió en una parte de una desde ese momento. Debería haberse implementado tras el la marca de línea de comandos --enable-experimental-canvas-features, pero se produjo por error no. En Chrome 60, se corrigió este descuido. Se cree que esto el cambio es seguro, ya que no hay datos que muestren que alguien esté usando el método.

Error de Chromium

Se quitó Headers.prototype.getAll().

La función Headers.prototype.getAll() se quitará según la última versión de la especificación de recuperación.

Intención de quitar | Seguimiento de Chromestatus | Error de Chromium

Quitar indexDB.webkitGetDatabaseNames()

Agregamos esta función cuando la base de datos indexada era relativamente nueva en Chrome y se agregaron prefijos era furor. La API devuelve una lista de las bases de datos existentes de forma asíncrona nombres en un origen, que parecían bastante sensatos.

Lamentablemente, el diseño es defectuoso, ya que los resultados pueden quedar obsoletos en cuanto a medida que se devuelven, por lo que solo se puede usar para el registro, no para la lógica de la aplicación. El problema de GitHub hace seguimiento/vincula a el debate anterior sobre las alternativas, lo que requeriría un enfoque diferente. Si bien ha habido un interés constante entre los desarrolladores, dada la falta de del navegador en el que los autores de la biblioteca resolvieron el problema.

Los desarrolladores que necesiten esta función deben desarrollar su propia solución. Las bibliotecas como Dexie.js, por ejemplo, usan una tabla global. que es otra base de datos para rastrear los nombres de las bases de datos.

Esta función dejó de estar disponible en Chrome 58 y ahora se quitó.

Intención de eliminar | Seguimiento de Chromestatus | Error de Chromium

Quitar WEBKIT_KEYFRAMES_RULE y WEBKIT_KEYFRAME_RULE

Las constantes WEBKIT_KEYFRAMES_RULE y WEBKIT_KEYFRAME_RULE no estándar se quitan de Regla de CSS. En su lugar, los desarrolladores deben usar KEYFRAMES_RULE y KEYFRAME_RULE.

Intención de eliminar | Seguimiento de Chromestatus | Error de Chromium

Interfaz de usuario

Requerir el gesto del usuario para los diálogos beforeunload

A partir de Chrome 60, el diálogo beforeunload solo aparecerá si el marco intenta mostrar que recibió un gesto o interacción del usuario (o si cualquier marco integrado haya recibido dicho gesto). Para ser claros, este no es un cambio en el envío del evento beforeunload Es solo un cambio en si se muestra el diálogo.

El cuadro de diálogo beforeunload es un cuadro de diálogo modal de la app. Como tal, es inherentemente hostil del usuario, lo que significa que responde a la navegación del usuario cuestionando decisión. Esta función tiene usos positivos. Por ejemplo, se suele usar para advertir a los usuarios cuando perderán datos durante la navegación.

Mientras que la capacidad de una página para proporcionar texto para el diálogo beforeunload era quitado hace un tiempo, los diálogos beforeunload siguen siendo un vector de abuso. En En particular, los diálogos de beforeunload pertenecen a sitios web de estafas, en los que la reproducción automática de audio y el texto amenazante brindan un contexto en el que Chromium proporcionado "¿Estás seguro de que deseas abandonar esta página?" mensaje se vuelve preocupante.

Queremos encadenar la aguja y solo permitir buenos usos de beforeunload. . Los buenos usos del diálogo son aquellos en los que el usuario tiene un estado que podría perdido. Si el usuario nunca interactuó con la página, no podrá tener de estado que se puedan perder y, por lo tanto, no arriesgamos la pérdida de datos del usuario supresión del diálogo en ese caso.