En Chrome 72, agregamos compatibilidad con lo siguiente:
- Crear campos de clase pública en JavaScript ahora es mucho más ordenado.
- Puedes ver si se activó una página con la nueva API de User Activation.
- La localización de listas se vuelve mucho más fácil con la API de
Intl.format()
.
¡Y hay mucho más!
Soy Pete LePage. Analicemos las novedades para desarrolladores en Chrome 72.
Registro de cambios
Esto abarca solo algunos de los aspectos más destacados. Consulta los siguientes vínculos para conocer los cambios adicionales en Chrome 72.
- Lista de cambios del repositorio de código fuente de Chromium
- Actualizaciones de ChromeStatus.com para Chrome 72
- Deprecateds y eliminaciones de Chrome 72
Campos de clase pública
Mi primer lenguaje fue Java, y aprender JavaScript me desconcertó un poco. ¿Cómo creé una clase? ¿O la herencia? ¿Qué pasa con las propiedades y los métodos públicos y privados? Muchas de las actualizaciones recientes de JavaScript que facilitan la programación orientada a objetos
Ahora puedo crear clases que funcionen como espero, completa con constructores, métodos get y set, métodos estáticos y propiedades públicas.
Gracias a V8 7.2, que se incluye en Chrome 72, ahora puedes declarar campos de clase públicos directamente en la definición de la clase, lo que elimina la necesidad de hacerlo en el constructor.
class Counter {
_value = 0;
get value() {
return this._value;
}
increment() {
this._value++;
}
}
const counter = new Counter();
console.log(counter.value);
// → 0
counter.increment();
console.log(counter.value);
// → 1
Estamos trabajando para ofrecer compatibilidad con campos de clase privada.
Para obtener más información, consulta el artículo de Mathias sobre campos de clase.
API de User Activation
¿Recuerdas cuando los sitios podían reproducir un sonido automáticamente en cuanto se cargaba la página? Te apresuras a presionar la tecla de silenciamiento o a averiguar qué pestaña era y cerrarla. Es por eso que algunas APIs requieren la activación a través de un gesto del usuario antes de que funcionen. Lamentablemente, los navegadores controlan la activación de diferentes maneras.
Chrome 72 presenta la versión 2 de la activación del usuario, que simplifica la activación del usuario para todas las APIs con control de acceso. Se basa en una nueva especificación que busca estandarizar el funcionamiento de la activación en todos los navegadores.
Hay una nueva propiedad userActivation
en navigator
y MessageEvent
, que tiene dos propiedades: hasBeenActive
y isActive
:
hasBeenActive
indica si la ventana asociada alguna vez vio una activación del usuario en su ciclo de vida.isActive
indica si la ventana asociada actualmente tiene una activación del usuario en su ciclo de vida.
Obtén más información en Haz que la activación de usuarios sea coherente en todas las APIs.
Localizando listas de elementos con Intl.format
Me encantan las APIs de Intl
, son muy útiles para localizar contenido a otros idiomas. En Chrome 72, hay un nuevo método .format()
que facilita la renderización de listas. Al igual que otras APIs de Intl
, transfiere la carga al motor de JavaScript sin sacrificar el rendimiento.
Inicialízala con la configuración regional que quieras y, luego, llama a format
. Se usarán las palabras y la sintaxis correctas. Puede hacer conjunciones, lo que agrega el equivalente localizado de y (y mira esas hermosas comas de Oxford). Puede realizar disyunciones, lo que agrega el equivalente local de o. Además, si proporcionas algunas opciones adicionales, puedes hacer aún más.
const opts = {type: 'disjunction'};
const lf = new Intl.ListFormat('fr', opts);
lf.format(['chien', 'chat', 'oiseau']);
// → 'chien, chat ou oiseau'
lf.format(['chien', 'chat', 'oiseau', 'lapin']);
// → 'chien, chat, oiseau ou lapin'
Consulta la publicación sobre la API de Int.ListFormat para obtener más detalles.
Y mucho más.
Estos son solo algunos de los cambios en Chrome 72 para desarrolladores, por supuesto, hay muchos más.
- Chrome 72 cambia el comportamiento de
Cache.addAll()
para que coincida mejor con las especificaciones. Anteriormente, si había entradas duplicadas en la misma llamada, las solicitudes posteriores simplemente reemplazaban la primera. Para que coincida con la especificación, si hay entradas duplicadas, se rechazará con unInvalidStateError
. - El trabajador del servicio ahora controla las solicitudes de favicons, siempre que la URL de la solicitud esté en el mismo origen que el trabajador del servicio.
Suscribirse
Si quieres mantenerte al tanto de nuestros videos, suscríbete a nuestro canal de YouTube de Desarrolladores de Chrome y recibirás una notificación por correo electrónico cada vez que lancemos un video nuevo.
Soy Pete LePage y, en cuanto se lance Chrome 73, estaré aquí para contarte las novedades de Chrome.