Se ha lanzado el navegador web Firefox 122 y se ha generado una actualización de la rama con soporte a largo plazo — 115.7.0. La rama Firefox 123 ha pasado a la fase de beta testing, cuyo lanzamiento está programado para el 20 de febrero.
Novedades principales en Firefox 122:
- Se han ampliado las capacidades relacionadas con la presentación de recomendaciones al escribir en la barra de direcciones. Para algunos motores de búsqueda se ha implementado la posibilidad de mostrar imágenes y descripciones de texto en las recomendaciones. Al buscar información relacionada con el desarrollo web, se han añadido enlaces a la documentación de MDN (Mozilla Developer Network) entre las recomendaciones.

- Se ha comenzado a generar paquetes .deb listos para Ubuntu, Debian y Linux Mint. Los paquetes que se están formando son compatibles con las compilaciones tradicionales de Firefox para Debian y Ubuntu, que se ofrecen para descarga en archivos '.tar.bz2'. Durante la compilación de los paquetes, se han incluido optimizaciones adicionales, así como banderas para mejorar la seguridad. Se ha incluido un archivo .desktop para crear accesos directos en el escritorio y en el menú de la distribución. Instrucciones para instalar Firefox desde el repositorio APT de Mozilla.
- Se ha mejorado la calidad de la traducción de páginas mediante el sistema de traducción automática integrado. Se han resuelto problemas con la pérdida de páginas traducidas y la interrupción del funcionamiento de widgets interactivos.
- Para mejorar la protección contra ataques XSS y aumentar la portabilidad entre navegadores, se ha descontinuado el soporte para URL 'data:' en SVGUseElement.
- Se ha añadido protección contra la filtración de información sobre enlaces visitados anteriormente a través del análisis del color de los píxeles mediante filtros que utilizan el parámetro currentColor. La salida de dichos filtros ahora no podrá ser leída desde canvas en SVG, ya que pueden ser utilizados para determinar el color asignado a través del selector ':visited'.
- En las compilaciones para macOS se ha añadido soporte para la tecnología Passkey (uso solo en iCloud Keychain), que permite a los usuarios autenticarse sin contraseñas utilizando identificadores biométricos, como la huella digital o el reconocimiento facial.
- Se ha implementado el manejo del token de autocompletado 'webauthn'. En los diálogos de autocompletado se ha establecido una interfaz para conectarse mediante Passkey.
- En el modo de navegación privada, los scripts tienen la posibilidad de guardar datos a través de la API Cache con el fin de unificar el comportamiento en modos privado y normal (la diferencia que existía podía utilizarse para determinar si el usuario estaba en modo privado).
- Se ha habilitado por defecto en WebRTC el soporte para el mecanismo de corrección de errores anticipada ULPFEC (Corrección de Errores de Protección de Nivel Desigual), que permite recuperar paquetes dañados o perdidos. La aplicación de ULPFEC mejora la calidad del video para usuarios con canales de comunicación defectuosos.
- Se permite el uso del elemento <hr> dentro del elemento <select> para insertar separadores en listas generadas a partir del elemento <select>.
- Se ha añadido la posibilidad de utilizar el método showPicker con elementos para invocar programáticamente la implementación del menú desplegable proporcionada por el navegador.
- Se han actualizado las reglas de ruptura de líneas al estándar Unicode para la visualización de texto en páginas web. Para idiomas asiáticos, como el japonés y el chino, se ha implementado el soporte para seleccionar palabras completas con un doble clic en el texto.
- Se ha incluido la propiedad CSS offset-position, que establece la posición inicial de un elemento y generalmente se utiliza junto con la propiedad offset-path para definir la trayectoria de movimiento de los objetos animados.
- La propiedad CSS offset-path ha añadido soporte para la función ray(), que define un segmento de línea al que debe seguir el elemento animado, así como para los valores basic-shape y coord-box.
- Las propiedades CSS clip-path y offset-path han añadido soporte para las funciones rect() y xywh() para crear formas básicas.
- Se ha añadido soporte para la animación del atributo SVG viewBox, utilizando el lenguaje SMIL (Synchronized Multimedia Integration Language), diseñado para animar elementos SVG.
- El analizador de URL, llamado para enlaces con esquemas desconocidos, se ha cambiado a DefaultURI según lo requerido por la especificación.
- Se ha incluido el soporte para los métodos ArrayBuffer.prototype.transfer() y ArrayBuffer.prototype.transferToFixedLength() para transferir la propiedad de la memoria de un ArrayBuffer a otro. Después de la transferencia, el búfer se desconecta de la región de memoria original y se vuelve inutilizable. Se puede usar la propiedad ArrayBuffer.prototype.detached para verificar el estado del búfer.
- Se ha implementado la API LargestContentfulPaint, que proporciona información sobre el tiempo de renderizado de la imagen o texto más grande en la etapa antes de que el usuario comience a interactuar con la página.
- Se añadió soporte para la API Screen Wake Lock, que permite a las aplicaciones web, como un reproductor multimedia, bloquear la activación del salvapantallas después de un largo período de inactividad del usuario.
- Se añadió soporte experimental para la API:
- API Declarative Shadow DOM (se activa a través de dom.webcomponents.shadowdom.declarative.enabled en about:config) para crear nuevas ramas raíz en Shadow DOM, por ejemplo, para separar el estilo de un elemento de terceros importado y la subrama DOM relacionada del documento principal. La API declarativa propuesta permite el desacoplamiento de las ramas DOM solo con HTML, sin necesidad de escribir código en JavaScript.
- API Popover (se activa a través de dom.element.popover.enabled en about:config) para crear elementos de interfaz que se muestran encima de otros elementos de la interfaz web. Por ejemplo, con la nueva API se pueden crear menús de acciones, mostrar sugerencias para completar formularios, crear interfaces tutoriales y realizar capturas de contenido. La salida por encima de otros elementos se realiza estableciendo el atributo "popover", y la ubicación, el apilamiento y el enfoque de entrada se manejan automáticamente. A diferencia del elemento "dialog", los elementos con el atributo "popover" no utilizan el modo modal, soportan eventos y son fácilmente cancelables.
- Herramientas para leer y escribir en el portapapeles (se activan a través de dom.events.asyncClipboard.clipboardItem, dom.events.asyncClipboard.readText y dom.events.asyncClipboard.writeText en about:config), que permiten usar la interfaz ClipboardItem y los métodos read(), readText() y write().
- El objeto Intl.Segmenter (disponible solo en las versiones nocturnas de Firefox) para el segmentado preciso de texto en una cadena respetando la localidad, por ejemplo, para separar palabras en idiomas que no utilizan espacios para dividir palabras.
- En las herramientas para desarrolladores web en modo de inspección, al editar un selector o propiedades, ahora la tecla Enter confirma la entrada y establece el foco en el elemento correspondiente, en lugar de mover el foco al siguiente campo de entrada (para mover el foco al siguiente campo se puede usar la tecla Tab).
- En la versión para Android se ha añadido la posibilidad de activar el mecanismo GPC (Control Global de Privacidad), que reemplaza al encabezado "DNT" (No Rastrear) y permite informar a los sitios sobre la prohibición de la venta de datos personales y su uso para rastrear preferencias o movimientos entre sitios. Se ha habilitado la opción de establecer Firefox como el programa predeterminado para ver archivos PDF. Para mejorar la protección contra la identificación pasiva del usuario, en el encabezado User-Agent ahora siempre se muestra "Android 10", independientemente de la versión real de la plataforma.
Además de las novedades y corrección de errores, Firefox 122 ha solucionado 15 vulnerabilidades (5 clasificadas como críticas). 8 de estas vulnerabilidades son causadas por problemas de manejo de memoria, como desbordamientos de búfer y acceso a áreas de memoria ya liberadas. Estos problemas podrían potencialmente permitir la ejecución de código malicioso al abrir páginas especialmente diseñadas.
Adicionalmente, se ha anunciado la creación por parte de Mozilla de un servicio separado para rastrear casos de discriminación de Firefox en diferentes plataformas y resolver los problemas identificados en conjunto con los fabricantes de las plataformas. Actualmente, se han resumido en el sitio los problemas técnicos que surgen al usar Firefox en los sistemas de Apple, Google y Microsoft. Por ejemplo, en la plataforma Android se ha señalado la imposibilidad de importar configuraciones del navegador y la disminución de la calidad de búsqueda. En Windows se menciona la prohibición de cambiar el navegador predeterminado por software y la imposición de Microsoft Edge. En Android y Windows también se menciona la preservación de ciertos vínculos a Chrome y Edge incluso después de cambiar el navegador predeterminado.
Fuente: opennet.ru

