Esta es una traducción del artículo original publicado en el blog de Mozilla Hacks. Traducción por Uriel Jurado.

Es fácil tener muchos errores usando una tecnología nueva, especialmente algo que tuvo un gran cambio desde la versión anterior, tal como en CSS Grid. En este vídeo (en inglés) explico los 9 errores más comunes que la gente tiene al usar esta tecnología, con consejos y tips para evitar estas trampas y romper viejos hábitos.

Enlace al vídeo en Youtube

Error 1: Creer que CSS Grid lo es todo

Flexbox vs CSS Grid – ¿Cuál es mejor?

Usando Flexbox y Grid juntos

Eliminar Cajas con CSS Shapes

Error 2: Usar únicamente porcentajes en las dimensiones

Mínimo y Máximo, dimensionando contenido en CSS Grid

Unidades FR en CSS Grid

MinMax en CSS Grid

Error 3: Asumir que necesitas breakpoints

Diseño asombrosamente sencillo con CSS Grid

Error 4: Confundirse al enumerar

Diseñador Gráfico Ingenioso y Práctico con CSS Grid

Lo Básico de CSS Grid: El gran cuadro

Error 5: Siempre usar 12 columnas

Explico esto al final de “Unidades FR en CSS Grid”

Error 6: Ignorar el poder de las filas

Flexibilidad y dobleces

Espacio Blanco en la Web

Error 7: Buscar un Framework

Error 8: Esperar a la muerte de IE11

¿Internet Explorer + CSS Grid?

Serie de 7 partes sobre escribir CSS flexible que trabaje en todos los navegadores

Error 9: Titubear en vez de jugar

Mondrian Responsivo

CSS Grid como si fueras Jan Tschicold

El jueves pasado estuvimos en la semana Linux a través de una presentación del Reporte para la salud de Internet (IHR) que Mozilla lanzó este año.

Definir cómo Internet es saludable se hace complejo porque los contextos, historias y también oportunidades que tenemos son diferentes, y esto gracias a los lugares en los que nos encontramos. Sin embargo, una forma de saber cómo internet puede ser saludable es a través de casos en los que se vulneran los derechos de los cibernautas, prácticas, actores y sobre todo, las oportunidades que se dan.

Para el contexto colombiano y buscando la participación, percepción y reflexión de más personas, presentamos casos específicos para cada uno de los puntos en los que se centra el IHR, además de definir lo que se entiende en cada ámbito y también formular preguntas para conocer más de la percepción y opinión de los asistentes.

A continuación presentamos el recuento de la presentación y reflexión en torno a cada una de las áreas que se presentan en el Reporte para la Salud de Internet: privacidad y seguridad, apertura, descentralización, inclusión digital,  y alfabetización digital.

Privacidad y seguridad. Presentamos información respecto al caso colombiano en el que los ataques de ransomware cayeron de 638 millones a 184 millones en 2017: Ataques de ransomware cayeron de 638 millones a 184 millones en 2017. 

Y también reflexionamos sobre nuestra navegación diaria a través de las siguientes preguntas: cuando usted navega en internet ¿se siente seguro? ¿siente que tiene el control de su información, datos, privacidad? ¿Si? ¿No? ¿Por qué? ¿En qué contextos si y en cuáles no?

Apertura. En Colombia se encuentra activa la iniciativa del Portal de datos abiertos del Estado, sin embargo una pregunta que tenemos es: ¿Qué tan abiertos son los datos y dinámicas en las que se obtiene y da acceso a los mismos?

De igual forma, presentamos para el caso de reformas o leyes de derechos de autor, el caso Colombiano, en el que hace unos meses la sociedad civil participó de manera muy activa en la reforma de la ley de derechos de autor, planteando desafíos en términos de acceso a la información, derechos de autor, el funcionamiento de bibliotecas, entre otros. Pueden encontrar más información en una publicación de la Fundación Karisma de Colombia sobre la Reforma de derecho de autor.

Descentralización. En términos de neutralidad, la invitación que hacemos es a pensar y reflexionar respecto a nuestras prácticas diarias de navegación. ¿Qué aplicaciones usamos? ¿A quiénes pertenecen? ¿Quién las controla? Respecto a este tema hablamos del caso de Mark Zuckerberg, además de WeChat en China y el monopolio de los navegadores web.

Inclusión digital. Partiendo de la premisa que Internet debería reflejar la diversidad y experiencia de todas las personas, en cualquier lugar del mundo; que todos y todas deberíamos tener la oportunidad de participar en la creación, avance y estructuración de internet, sin tener algún tipo de amenaza. Al respecto, hablamos de los grupos y colectivos que empoderan a mujeres para que incremente su participación en Internet. De igual forma, hablamos de Mozilla Nativo, la comunidad de Mozilla que se dedica a empoderar a través de proyectos de localización de Software a hablantes de lenguas indígenas para que ellos se vuelvan constructores de herramientas (Firefox, Firefox para Android, mozilla.org, entre otras herramientas y plataformas) y estas estén en sus lenguas.

Alfabetización digital. En este punto se plantea que no solo es necesaria la conectividad a internet, también se necesita de habilidades como leer, escribir y participar en el mundo digital. En Colombia también hay varias inicitiavidas, así que dentro de la presentación hablamos de los Puntos vive Digital de MINTIC, del tema de ciudadanía digital y también de la nueva modalidad de trabajo, el teletrabajo.

Agradecemos al GLUD -Grupo Linux de la Universidad Distrital-, a los participantes que estuvieron en nuestra presentación y a nuestra nueva voluntaria, Alejandra Zerta, quien se integra a la comunidad desde Manizales.

¿Quieres participar del equipo local de reflexión e investigación sobre el Reporte de la Salud de Internet?

¡Escríbenos!

Nuestras redes sociales: FanpageTwitter o al Correo: monica@mozillacolombia.org

Te incitamos a descargar y compartir nuestra presentación. ¡Somos Mozilla Colombia!

Esta es una traducción del artículo original publicado en el blog de Mozilla Hacks. Traducción por Sergio Carlavilla Delgado.

console.log no es un depurador. Es genial para averiguar qué está haciendo tu aplicación JavaScript, pero se limita a escupir una cantidad mínima de información. Si tu código es complejo, necesitarás un depurador adecuado. Es por eso que hemos agregado una nueva sección a el Firefox DevTools Playground, que trata sobre la depuración. Hemos creado cuatro lecciones básicas que usan el depurador de Firefox para examinar y arreglar una aplicación de tareas (to-do) en JavaScript.

Presentamos el Debugger Playground

Las lecciones son completamente gratuitas y el código de la aplicación de tareas está disponible para descargar desde GitHub.

Estas lecciones son un nuevo formato para nosotros y estamos muy emocionados de brindártelas. Siempre estamos buscando nuevas formas para ayudar a los desarrolladores a aprender cosas y mejorar el flujo de trabajo diario. Si tienes una idea, avísanos. Ampliaremos el Playground en los próximos meses y estamos encantados en escuchar de desarrolladores como tú.

Si no estas familiarizado con el depurador de Firefox, echa un vistazo a los documentos de depuración en MDN y mira este corto de introducción:

Ahora echemos un vistazo a una lección del nuevo Debugger Playground. ¿Alguna vez usaste console.log para saber el valor de una variable? Hay una manera más fácil y más precisa de hacerlo con el depurador.

Usa el depurador para saber el valor de una variable

Es mucho más fácil encontrar una variable con el depurador de Firefox que con console.log. Así es cómo funciona:

Echemos un vistazo a una aplicación sencilla de tareas. Abre la aplicación de tareas en una nueva pestaña.

Esta aplicación tiene una función llamada addTodo que tomará el valor del formulario de entrada, creará un objeto y luego lo insertará en un array de tareas. Probémoslo agregando una nueva tarea. Esperarás tener esta nueva tarea agregada a la lista, pero en su lugar verás “[object HTMLInputElement]”.

Algo está roto, y tenemos que depurar el código. La tentación es comenzar a agregar console.log por toda la función, para identificar dónde está el problema. El enfoque podría ser algo como esto:

const addTodo = e => {
 e.preventDefault();
 const title = document.querySelector(".todo__input");
 console.log('title is: ', title);
 const todo = { title };
 console.log('todo is: ', todo');

items.push(todo);
 saveList();
 console.log(‘The updated to-do list is: ‘, items);
 document.querySelector(".todo__add").reset();
 };

Esto puede funcionar, pero es engorroso e incómodo. También debemos recordar eliminar estas líneas después de corregir el código. Hay una forma mucho mejor de hacerlo con el depurador utilizando lo que se llama un punto de interrupción…

Aprende más en el Debugger Playground

El Debugger Playground cubre los aspectos básicos del uso del depurador de Firefox, examinar la pila de llamadas, establecer puntos de interrupción condicionales y más. Sabemos que hay una curva de aprendizaje abrupta para usar el depurador (y para depurar JavaScript), por lo que hemos creado una aplicación de tareas fácil de entender y decodificar. También es útil ejecutarlo en tu navegador web para mantener las cosas en orden durante tu día de trabajo. La aplicación está disponible aquí para descargar en GitHub. Tómalo y luego dirígete a el Playground para ver las lecciones.

Haznos saber qué te gustaría ver a continuación. Estamos trabajando en nuevas lecciones sobre las últimas tecnologías web y nos gustaría saber de ti. Publica en los comentarios que hay a continuación.

Esta es una traducción del artículo original publicado en el blog de Mozilla Hacks. Traducción por juliabis.

Flash hizo llegar vídeo, animación, sitios interactivos y, sí, anuncios a miles de millones de usuarios durante más de una década, pero ahora se se está marchando. Adobe dejará de soportar Flash para el año 2020. Firefox ya no lo soporta “fuera de la caja”, y Chrome tampoco. ¿Qué es lo siguiente? Hay toneladas de estándares abiertos que pueden hacer lo que Flash hace, y aun más.

Multimedia verdaderamente abierta

Flash prometió ofrecer una plataforma unificadora para construir y distribuir sitios web multimedia interactivos. Y, en su mayor parte, lo hizo. Pero la tecnología nunca fue realmente abierta y accesible, y Flash Player era demasiado voraz para los recursos de los dispositivos móviles. Ahora las alternativas de código abierto pueden hacer todo lo que Flash hace, y más. Éstas son las tecnologías que debes aprender si realmente quieres construir la web interactiva de mañana, ya sea que se haciendo animaciones web, juegos o vídeos.

Animación web

CSS

La animación CSS es relativamente nueva, pero es la forma más fácil de comenzar con la animación web. CSS está hecho para diseñar sitios web con reglas básicas que dictan diseño, tipografía, colores y más. Con el lanzamiento de CSS3, las animaciones ahora son parte del estándar, y como desarrollador, depende de ti indicarle al navegador cómo debe hacer la animación. CSS es legible por humanos, lo que significa que básicamente hace lo que dice el comando. Por ejemplo, la propiedad “animation-direction” hace exactamente eso: especifica la dirección de la animación.

Ahora mismo puedes crear animaciones sin problemas con CSS. Es simple crear keyframes (cuadros clave), ajustar el tiempo, animar la opacidad y más. Y todas las animaciones funcionan con cualquier objeto que haz diseñado normalmente con CSS: texto, imágenes, contenedores, etc.

Se pueden hacer animaciones con CSS, incluso no estando familiarizado con los lenguajes de programación. Al igual que muchos proyectos de código abierto, el código está disponible en la web para que juegues con él. Mozilla también ha creado (y mantiene) exhaustiva documentación sobre animación CSS. La mayoría de los desarrolladores recomiendan usar animación CSS para proyectos simples y JavaScript para sitios más complejos.

JavaScript

Los desarrolladores han estado animando con JavaScript desde los primeros días. Scripts básicos de mouseover (eventos de puntero) han existido por más de dos décadas. Hoy, JavaScript junto con elementos <canvas> de HTML5 pueden hacer cosas sorprendentes. Incluso scripts sencillos pueden producir grandes resultados. Con JavaScript, puedes dibujar figuras, cambiar colores, mover y cambiar imágenes, y animar transparencia. La animación JavaScript usa el formato SVG (gráficos de vector escalables) para las animaciones, lo cual significa que el arte se dibuja en vivo basado en reglas matemáticas en vez de ser cargada y pintada. Esto significa que se mantiene bien definido en cualquier escala (a esto se debe el nombre) y puede ser controlado completamente. SVG ofrece pintado sin aliasing, rellenos de patrón y gradientes, efectos de filtro sofisticados, recorte basado en líneas arbitrarias, texto y animaciones. Y, por supuesto, es una recomendación de estándar abierto de la W3c en vez de un binario cerrado. Utilizando SVG, JavaScript, y CSS3, los desarrolladores pueden crear animaciones interactivas impresionantes que no requieren formatos o reproductores especializados.

La animación JavaScript puede ser muy refinada, incluyendo rebotes, detención, pausa, rebobinación, or cambio de velocidad. También es interactiva y puede ser programada para responder a clicks o movimientos del puntero. La nueva API Web Animations, construida con JavaScript, te permite refinar animaciones con más control sobre los keyframes y elementos, pero todavía está en una fase experimental temprana y algunas características pueden no tener soporte en todos los navegadores.

Adicionalmente, las animaciones JavaScript pueden ser programadas para responder a campos de formulario, envío de formularios, y pulsaciones de teclas. Y eso lo hace perfecto para la creación de juegos web.

Juegos web

Por un tiempo, Flash dominaba los juegos web. Era fácil de aprender, usar y distribuir. También era robusto, capaz de ofrecer juegos masivos multijugador en línea a millones. Pero hoy es posible ofrecer la misma experiencia – si no incluso mejor – utilizando JavaScript, HTML5, WebGL y WebAssembly. Con los navegadores modernos y los marcos (frameworks) de código abierto, es posible crear juegos de disparos en 3D, juegos de rol (RPG), juegos de aventura y mucho más. De hecho, ahora incluso se pueden crear experiencias de realidad virtual totalmente inmersivas para la web con tecnologías como WebVR y A-Frame.

Los juegos web dependen de un ecosistema de frameworks y plataformas de código abierto para funcionar. Cada uno juega un papel importante: de visuales hasta controles, desde el audio a las redes. Mozilla Developer Network tiene una lista completa de las tecnologías que están actualmente en uso. Estas son solo algunas de ellas y para qué se usan:

WebGL

Permite crear gráficos 3D (y 2D) acelerados por hardware y de alto rendimiento a partir del contenido web. Esta es una implementación soportada por la web de OpenGL ES 2.0. WebGL 2 va incluso más allá, posibilitando el nivel de soporte de OpenGL ES 3.0 en los navegadores.

JavaScript

JavaScript, el lenguaje de programación de la Web, funciona bien en los navegadores y continuamente se está haciendo cada vez más rápido. Se ha usado ya para crear miles de juegos, y constantemente se están desarrollando nuevos frameworks.

Audio HTML

El elemento <audio> permite reproducir fácilmente efectos de sonido simples y música. Si lo que necesitas es más complicado, ¡consulta la API de Web Audio para conocer el procesamiento de audio real!

API Web Audio

Esta API diseñada para controlar la reproducción, síntesis y manipulación de audio a partir de código JavaScript, permite crear efectos de sonido impresionantes, tanto como reproducir y manipular música en tiempo real.

WebSockets

La API de WebSockets te permite conectar tu aplicación o sitio a un servidor para transmitir datos en tiempo real. Lo que la hace perfecta para juegos multijugador, ya sean basados ​​en turnos o en eventos, servicios de chat y más.

WebRTC

WebRTC es una API ultrarrápida que puede ser utilizada en video-chat, llamadas de voz y aplicaciones web para compartir archivos en modo P2P. Se puede usar también para juegos multijugador en tiempo real que requieran baja latencia.

WebAssembly

Los motores de juego HTML5/JavaScript son ahora mejores que nunca, pero aún así todavía no pueden igualar el rendimiento de las aplicaciones nativas. WebAssembly promete ofrecer un rendimiento casi nativo a las aplicaciones web. La tecnología permite a los navegadores ejecutar código compilado C/C++, incluyendo a juegos creados con motores como Unity y Unreal.

Con WebAssembly, los juegos web podrán aprovechar la ejecución multihilo (multithreading). Los desarrolladores podrán producir juegos 3D avanzados para la web que se ejecuten casi a la misma velocidad que el código nativo, y sin comprometer la seguridad. Es un enorme avance para los juegos, y para la web abierta. Significa que los desarrolladores podrán construir juegos para cualquier computadora o sistema que pueda acceder a la web. Y debido a que se ejecutarán en navegadores, será fácil integrar los modos multijugador en línea.

Además, hay muchos motores de juegos HTML5/JavaScript. Estos motores se encargan de los aspectos básicos, tales como física y controles, y les brindan a los desarrolladores un marco / mundo sobre el que construir. Van desde ligeros y rápidos, como los motores 2D Atom y Quick, hasta motores 3D completos como WhitestormJS y Gladius. Hay docenas para elegir, cada uno con sus propias ventajas y desventajas para los desarrolladores. Pero al final, todos ellos producen juegos que se pueden jugar en navegadores web modernos sin plug-ins. Y la mayoría de esos juegos pueden ejecutarse en un hardware no tan potente, lo que significa que puede llegar a más usuarios. De hecho, los juegos escritos para la web pueden ejecutarse en tabletas, teléfonos inteligentes e incluso televisores inteligentes.

MDN tiene una amplia documentación sobre construcción de juegos web y varios tutoriales sobre construcción de juegos utilizando JavaScript puro y el framework de juego Phaser. Es un excelente lugar para comenzar el desarrollo de juegos web.

Vídeo

La mayoría de los servicios de vídeo ya han cambiado a la transmisión basada en HTML5 utilizando tecnologías web y codecs abiertos; pero otros se han apegado a los codecs FLV o FV4 basados ​​en Flash. Como se dijo anteriormente, los formatos de vídeo Flash se basan en una forma de operar a través del software que puede recargar los recursos de los navegadores web y las plataformas móviles. Los codecs de video modernos pueden usar el procesamiento de hardware para la reproducción de vídeo, aumentando enormemente la capacidad de respuesta y la eficiencia. Lamentablemente, solo hay una forma de cambiar de Flash a HTML5: volviendo a codificar el vídeo. Eso significa convertir el material de origen en formatos compatibles con HTML5 a través de un convertidor gratuito como FFmpeg y Handbrake.

Mozilla está ayudando activamente a construir y mejorar el formato de vídeo HTML5 de código abierto WebM. Este desarrollo se basa en el contenedor Matroska y utiliza los codecs de video VP8 y VP9 y los codecs Vorbis u Opus.

Una vez que el contenido se haya convertido a un formato compatible con HTML5, se podrán volver a publicar los vídeos. HTML5 tiene controles de medios incorporados, por lo que no es necesario instalar ningún reproductor. Es extremadamente fácil; sólo es necesario usar una sola línea de HTML:

<video src="videofile.webm" controls></video>

Es preciso tener en cuenta que los controles nativos pueden ser inconsistentes entre los navegadores. Sin embargo, como están hechos con HTML5, es posible personalizarlos con CSS y vincularlos a su vídeo con JavaScript. Eso significa que puede crear accesibilidad, agregar tu marca y mantener el aspecto y la coherencia entre los navegadores.

HTML5 también puede manejar transmisión (streaming) adaptable, mediante Media Source Extensions (MSEs). Aunque pueden ser difíciles de configurar por sí solos, puedes usar reproductores preempaquetados como Shaka Player y JW Player, los cuales pueden manejar los detalles.

Los desarrolladores de MDN han creado una guía en profundidad sobre como convertir vídeo Flash a vídeo HTML5, que da muchos más detalles acerca de este proceso. Afortunadamente, no es tan difícil como parece.

Flash: lo que viene

El futuro de la web está abierto (eso esperamos) y Flash, a pesar de ser una gran herramienta para la creatividad, no ha sido lo suficientemente abierto. Afortunadamente, muchas herramientas de código abierto pueden hacer lo que Flash hace, y aun más. Pero estamos todavía en las primeras etapas, y la creación de animaciones, sitios web interactivos y juegos web requiere cierto conocimiento de codificación. Todo lo que necesitas saber ya está ahí, sólo esperando que lo aprendas.

Las tecnologías web abiertas prometen ser mejores de lo Flash ha sido, y serán accesibles para toda persona que tenga una conexión a Internet.

Esta es una traducción del artículo original publicado en el blog de Mozilla Hacks. Traducción por Sergio Carlavilla Delgado.


En octubre del año pasado Mozilla anunció el Proyecto Quantum – nuestra iniciativa para crear un motor de navegación web de nueva generación. Ya estamos en marcha con el proyecto. De hecho liberamos nuestra primera pieza significativa de Quantum con Firefox 53.

Pero sabemos que para personas que no construyen navegadores web (¡y eso es la mayoría de la gente!), puede ser difícil ver por qué algunos de los cambios que estamos realizando en Firefox son tan importantes. Después de todo, muchos de los cambios que estamos haciendo serán invisibles para los usuarios.

Con esto en mente, estamos lanzando una serie de publicaciones para proporcionar una visión más profunda de lo que estamos haciendo con el proyecto Quantum. Esperamos que esta serie de publicaciones te brinde una mejor comprensión de cómo funciona Firefox y las formas en que Firefox está construyendo un motor de navegación web de nueva generación para mejor aprovechar el hardware de los ordenadores modernos.

Para comenzar esta serie de publicaciones, creemos que es mejor comenzar por explicar el aspecto fundamental que Quantum está cambiando.

¿Qué es un motor de navegación web y cómo funciona?

Si vamos a empezar por algún lado, debemos empezar desde el principio.

Un navegador web es una pieza de software que carga archivos (normalmente de un servidor remoto) y los muestra localmente, permitiendo la interacción del usuario.

Quantum es el nombre clave para un proyecto que hemos emprendido en Mozilla para actualizar masivamente la parte de Firefox que calcula qué mostrar a los usuarios basándose en esos archivos remotos. El término que utiliza la industria para esta parte es “motor web”, y sin uno, estarías leyendo código fuente en lugar de ver realmente un sitio web. El motor web de Firefox se llama Gecko.

Es bastante fácil ver al motor web como una caja negra, algo así como una TV: los datos entran, y la caja negra calcula qué mostrar en la pantalla para representar esos datos. La pregunta de hoy es: ¿cómo? ¿Cuáles son los pasos que convierten los datos en las páginas web que vemos?

Los datos que componen una página web son muchas cosas, pero se desglosan principalmente en 3 partes:

  • código que representa la estructura de una página web
  • código que proporciona estilo: el aspecto visual de la estructura
  • código que actúa como un script de acciones que el navegador puede tomar: computación, reaccionar a las acciones del usuario, y modificar la estructura y el estilo más allá de lo que se cargó inicialmente.

El motor del navegador web combina la estructura y el estilo para dibujar la página web en tu pantalla y averiguar qué partes son interactivas.

Todo comienza con la estructura. Cuando se le pide a un navegador web que cargue un sitio web, se le da una dirección. En esta dirección se encuentra otra computadora que, cuando es contactada, enviará los datos de vuelta al navegador web. Los detalles de cómo esto ocurre es un artículo completo en sí mismo, pero al final el navegador tiene los datos. Estos datos son enviados en un formato denominado HTML, y este describe la estructura de la página web. ¿Cómo entiende un navegador web HTML?

El motor del navegador web contiene fragmentos especiales de código llamados parsers que convierten los datos de un formato en otro que el navegador web mantiene en su memoria. El parser de HTML toma el HTML, algo así como:

<section>
 <h1 class="main-title">Hello!</h1>
 <img src="http://example.com/image.png">
</section>

Y lo analiza, entendiendo:

Bien, hay una sección. Dentro de la sección se encuentra un título de nivel 1, que contiene el texto: “Hello!”. También hay una imagen dentro de la sección. Puedo encontrar los datos de la imagen en la ubicación: http://example.com/image.png

La estructura almacenada en memoria de la página web se denomina Modelo de Objeto de Documento o DOM (Document Object Model). A diferencia de un texto largo, el DOM representa un árbol de elementos de la página web final: las propiedades de los elementos individuales y qué elementos están dentro de otros elementos.

Además de describir la estructura de la página, el HTML también incluye direcciones donde se pueden encontrar estilos y scripts. Cuando el navegador los encuentra, se pone en contacto con esas direcciones y carga sus datos. Esos datos alimentan a otros parsers que están especializados en esos tipos de datos. Si se encuentran scripts, pueden modificar la estructura y el estilo de la página antes de que haya finalizado el parseo del archivo. El formato de estilo, CSS, juega el siguiente papel en nuestro motor del navegador web.

Con estilo

CSS es un lenguaje de programación que permite a los desarrolladores describir la apariencia de elementos particulares en una página. CSS significa “hojas de estilo en cascada”, denominado así porque permite múltiples conjuntos de instrucciones de estilo, donde las instrucciones pueden sobreescribir las instrucciones anteriores o más generales (llamado cascada). Un poco de CSS podría tener el siguiente aspecto:

section {
  font-size: 15px;
  color: #333;
  border: 1px solid blue;
}
h1 {
  font-size: 2em;
}
.main-title {
  font-size: 3em; 
}
img {
  width: 100%;
}

CSS se divide en gran parte en agrupaciones llamadas reglas, que constan de dos partes. La primera parte son los selectores. Los selectores describen los elementos del DOM (¿recuerdas los de arriba?) a los que se les está aplicando los estilos y una lista de declaraciones que especifican los estilos que se aplicarán a los elementos que coincidan con el selector. El motor del navegador web contiene un subsistema llamado motor de estilos cuyo trabajo es tomar el código CSS y aplicarlo al DOM que fue creado por el parser HTML.

Por ejemplo, en el CSS anterior, tenemos una regla que hace referencia al selector “section”, que coincidirá con cualquier elemento en el DOM con ese nombre. Entonces se hacen anotaciones de estilo para cada elemento en el DOM. Eventualmente, cada elemento en el DOM termina teniendo un estilo y llamamos a este estado el estilo computado para ese elemento. Cuando se aplican múltiples estilos que compiten sobre el mismo elemento, los que vienen después o son más específicos ganan. Piensa en las hojas de estilo como en el papel de trazado fino; cada capa puede cubrir las capas anteriores, pero también permite que se muestren las capas inferiores.

Una vez el motor del navegador web ha computado los estilos, ¡es hora de ponerlo en uso! El DOM y los estilos computados son introducidos en un motor de diseño que tiene en cuenta el tamaño de la ventana que se est´ dibujando. El motor de diseño utiliza varios algoritmos para tomar cada elemento y dibujar una caja que incluya su contenido y tenga en cuenta todos los estilos que se le aplican.

Cuando el diseño esta completo, es el momento de convertir el esquema de la página en la parte que tú ves. Este proceso se conoce como dibujado, y es la combinación final de todos los pasos previos. Cada caja definida se dibuja, llena del contenido del DOM y con los estilos del CSS. Ahora el usuario ve la página, reconstruida a partir del código que la define.

¡Esto solía ser todo lo que sucedía!

Cuando el usuario desplaza la página, volveremos a dibujar, para mostrar las partes nuevas de la página que estaban anteriormente fuera de la ventana. ¡Resulta, sin embargo, que a los usuarios les encanta desplazar la página! El motor del navegador web sabe con bastante seguridad que se le pedirá que muestre contenido fuera de la ventana inicial que ha dibujado (llamada ventana de visualización o viewport). Los navegadores más modernos aprovechan este hecho y dibujan más página de la que está visible inicialmente. Cuando el usuario se desplaza, las partes de la página que quiere ver ya están dibujadas y listas. Como resultado, el desplazamiento es más rápido y fluido. Esta técnica es la base de la composición, que es un término para las técnicas que reducen la cantidad de pintados requeridos.

Además, algunas veces necesitamos volver a dibujar partes de la pantalla. Tal vez el usuario esté viendo un vídeo que se reproduce a 60 cuadros por segundo. O tal vez hay una presentación de diapositivas o una lista animada en la página. Los navegadores pueden detectar qué partes de la página se moverán o actualizarán, y en lugar de pintar toda la página, crean una capa para contenerlo. Una página puede estar formada por muchas capas que se superponen entre sí. Una capa puede cambiar de posición, desplazamiento, transparencia o moverse detrás o delante de otras capas, ¡sin tener que volver a pintar nada! Bastante conveniente.

A veces, un script o una animación cambia el estilo de un elemento. Cuando esto ocurre, el motor de estilo necesita volver a calcular el estilo del elemento (y potencialmente el estilo de muchos más elementos de la página), recalcular el diseño y volver a dibujar la página. Esto lleva mucho tiempo en términos de velocidad de computadora, pero siempre que ocurra de manera ocasional, el proceso no afectará negativamente la experiencia del usuario.

En las aplicaciones web modernas, la estructura del documento en sí misma es modificada frecuentemente por los scripts. Esto podría requerir que todo el proceso de diseño comience más o menos desde cero, con el HTML siendo analizado en el DOM, computar el estilo, reflujo y dibujado.

Estándares

No todos los navegadores web interpretan HTML, CSS y JavaScript de la misma forma. El efecto puede variar: desde pequeñas diferencias visuales hasta el sitio web ocasional que funciona en una navegador y en no en otro. Actualmente, en la Web moderna, la mayoría de los sitios web parecen funcionar independientemente del navegador que elija. ¿Cómo logran los navegadores este nivel de consistencia?

Los formatos del código de sitios web, así como las reglas que rigen la forma en que el código se interpreta y se convierte en una página visual interactiva, se definen mediante documentos mutuamente acordados denominados estándares. Estos documentos son desarrollados por comités que constan de representantes de los fabricantes de los navegadores web, desarrolladores web, diseñadores y otros miembros de la industria. Juntos determinan el comportamiento preciso que el motor del navegador web debería exhibir dada una pieza especifica de código. Existen estándares para HTML, CSS y JavaScript, así como los formatos de datos de imágenes, vídeo, audio y más.

¿Por qué es esto importante? Es posible crear un motor para el navegador web completamente nuevo, y siempre que se asegure de que el motor cumpla los estándares, dibujará las páginas web de una manera que coincida con el resto de navegadores web, para las miles de millones de páginas web. Esto significa que la “salsa secreta” para hacer que los sitios web funcionen no es un secreto perteneciente a un navegador. Los estándares permiten a los usuarios elegir el navegador web que satisfaga sus necesidades.

No más ley de Moore

Cuando los dinosaurios vagaban por la tierra y las personas solo tenían ordenadores de escritorio, era una suposición relativamente segura de que las computadoras se volverían más rápidas y potentes. Esta idea se baso en la Ley de Moore, una observación en la cual la cantidad de componentes (y por lo tanto la miniaturización / eficiencia de los chips de silicio) se duplicaría aproximadamente cada dos años. Increíblemente, esta observación fue válida hasta bien entrado el siglo XXI, y algunos argumentarán que sigue siendo válida en la vanguardia de la investigación actual. Entonces, ¿por qué la velocidad de un ordenador medio parece haberse estabilizado en los últimos 10 años?

La velocidad no es la única característica que los clientes buscan cuando compran un ordenador. Los ordenadores rápidos suelen consumir mucha energía, calentarse mucho y ser muy costosos. A veces, la gente quiere un ordenador portátil que tenga una buena duración de la batería. A veces, quieren un pequeño ordenador con pantalla táctil, con una cámara que quepa en el bolsillo y ¡que dure todo el día sin cargar! Los avances en informática lo han hecho posible (¡lo cual es increíble!), pero a costa de la velocidad bruta. Del mismo modo que no es eficiente (ni seguro) conducir tu coche lo más rápido posible, no es eficiente conducir tu ordenador lo más rápido posible. La solución ha sido tener múltiples “ordenadores” (núcleos) en un chip de CPU. No es raro ver teléfonos inteligentes con 4 núcleos más pequeños y menos potentes.

Lamentablemente, el diseño histórico del navegador web asumió esta trayectoria ascendente de velocidad. Además, escribir código que sea bueno usando múltiples núcleos de la CPU al mismo tiempo puede ser extremadamente complicado. Entonces, ¿cómo hacemos un navegador rápido y eficiente en la era de muchos ordenadores pequeños?

¡Tenemos algunas ideas!

En los próximos meses, analizaremos más detenidamente algunos de los cambios que llegarán a Firefox y cómo aprovecharán mejor el hardware moderno para ofrecer un navegador más rápido y estable que haga brillar los sitios web.

Esta es una traducción del artículo original publicado en el blog de Mozilla Hacks. Traducción por Uriel Jurado.

Agilizar nuestro proceso de entrega y llevar rápidamente nuevas características a la versión estable para usuarios y desarrolladores es una prioridad para Firefox.  Mirando de cerca y de forma crítica nuestros canales de entrega, quedó en claro que Aurora no reunía nuestras expectativas como primer canal de estabilización.

El 18 de Abril (del 2017), el canal Aurora de Firefox dejó de actualizarse, y durante los siguientes meses, Aurora fue removido del ciclo de entrega. La edición para desarrolladores ahora está basada en la versión Beta. Los usuarios de la edición para desarrolladores mantienen sus temas, herramientas y preferencias. Siguen manejando su perfil actual y no tendrían que experimentar ningún inconveniente.

Este cambio beneficia a los desarrolladores de muchas formas:

  • Elecciones más simples sobre los canales de pre-lanzamiento: Nightly para características experimentales y la versión para desarrolladores/beta para estabilidad.
  • Mayor calidad y un entorno más estable para los usuarios de la versión para desarrolladores.
  • Un ciclo de entrega más rápido de nuevas características. (¡Beneficiándonos a todos!)

Aquí está la línea del tiempo: el 18 de abril, el código de Firefox 54 se cambió de Aurora a Beta como siempre, mientras Firefox 55 se mantuvo en Nightly para un segundo ciclo seguido (un total de 14 semanas). En el siguiente día de actualización, junio 12, Firefox 55 se movió directamente desde Nightly a Beta. Entre abril y junio, Firefox Aurora para escritorio (54) siguió recibiendo actualizaciones críticas de seguridad, y los usuarios de Aurora y de la versión para Desarrolladores fueron migrados al canal Beta. En Android, los usuarios de Aurora fueron migrados a Nightly.

Aurora fue originalmente creado en 2011 para brindar una mayor retroalimentación por parte de los usuarios después de que Firefox se actualizara de la versión 5 a un ciclo de entregas de alta velocidad. Hoy, en 2017, tenemos procesos más modernos sosteniendo nuestro modelo de trenes, y creemos que podemos entregar productos estables y ricos en características sin la fase adicional de 6-8 semanas de Aurora.

Un proceso de despliegue escalonado, similar a lo que hacemos actualmente con la versión estable, será utilizado para las primeras semanas de Beta. Nuestro flujo de trabajo de entrega e ingeniería continuará teniendo revisiones adicionales y ajustes para asegurarnos que entregamos una versión de alta calidad. Una nueva característica se añadirá de Nightly a Beta solo cuando sea considerada lista, basados en criterios preestablecidos determinados por nuestros equipo de ingeniería, producto y de integridad de producto. Si las nuevas características no están listas, no serán migradas de Nightly a Beta.

Las nuevas herramientas y procesos incluyen:

  • La integración de analizadores fijos como parte del flujo de trabajo, para detectar fallas durante la fase de revisión. Estos serán capaces de identificar defectos potenciales, minimizando la deuda técnica.
  • Los resultados de la cobertura de código serán usados para analizar la calidad de la plataforma de pruebas y el riesgo de realizar el cambio.
  • La habilidad de identificar riesgos potenciales producidos por cambios incluso antes de ser realizados, relacionando datos de varias fuentes (VCS, Bugzilla, etc.) Esto para identificar funciones en donde una modificación seguramente conllevaría a una regresión.
  • Monitoreando la cantidad de fallas, control de calidad, datos de telemetría y nuevas regresiones, para determinar la calidad en general de Nightly y la preparación de características para ser agregadas a Beta.

Para saber un poco más respecto a los detalles de esta transición, por favor visita el blog de Administración de Versiones de Mozilla, donde encontrarás respuestas más profundas respecto a las preguntas más frecuentes relacionadas a este cambio.

Visto en: Mozilla-hispano

Esta es una traducción del artículo original publicado en el blog de Mozilla Hacks.

Con el lanzamiento de Firefox 49 se incluyo Control de cache: características inmutables que permite a las páginas web adivinar los recursos HTTP que nunca van a cambiar. Casi al mismo tiempo, Facebook empezó a implementar ampliamente esta tecnología desde el lado del servidor. Utilizan un modelo de desarrollo de versionamiento de la URI  que funciona muy bien con inmutables. Esto ha tenido gran impacto en el rendimiento de las recargas de Facebook con Firefox. Ademas parece que otros sitios lo implementarán también.

Los beneficios de los inmutables permiten que cuando una página sea refrescada, lo cual es una tarea muy común en el escenario de los medios sociales, los elementos que fueron marcados como inmutables en la cabecera de una respuesta HTTP, no tienen que ser revalidados con el servidor. Si no se hace esto, el navegador necesita saber cuales objectos han cambiados o no en la recarga, gastando tiempo por un lado o arriesgando incompatibilidad por el otro lado.

Para objetos pequeños, el trabajo de esta revalidación a través del código de respuesta HTTP 304 puede llevar tanto trabajo como transferir la totalidad de la respuesta.

Resulta que esto puede ahorrar mucho trabajo. Los recursos de la página tales como los archivos de javascript, tipografías, y hojas de estilo; no cambian entre recargas. Mas importante aún son las docenas de imágenes que no cambian – distintas imágenes pueden ser incluidas en el HTML, pero el contenido de cada una de ellas no cambia. De hecho, la única cosa que puede cambiar el la estructura del HTML.

Para los usuarios de Firefox recargar el contenido de Facebook ha sido un gran cambio – la petición mas rápida es aquella que nunca se hace, y es exactamente lo que está pasando todo el tiempo que se recarga una página de Facebook. En pruebas, la página principal típica puede estar inicialmente compuesta de 150 recursos. Al presionar refrescar en Firefox 49 se generan solo 25 peticiones.

Como puedes imaginarte, las cosas son rápidas. En pruebas, se puede reducir el tiempo de carga de una página a la mitad. Facebook también ha sido uno de los primeros en adoptar la compresión de codificación brotli. Lo usan para reducir el ancho de banda de la estructura HTML dinámica, la cual no puede ser almacenada en cache, permitiendo ahorrar 20% de los bytes transferidos cuando se compara con el antiguo estándar gzip. Brotli está disponible en Firefox desde Firefox 44.

Los servidores de Facebook también son beneficiados – una petición que nunca se hace permite ahorrar ancho de banda y uso de CPU, lo cual se puede usar para hacer el sitio mas rápido para otras peticiones.

“Este cambio cambia efectivamente la eliminación de peticiones de  revalidación de nosotros para las versiones actualizadas de Firefox las cuales, en muchos casos, pueden mejorar los tiempos de carga en segundos.” – Nathan Schloss, Ingeniero de Software, Facebook

Estamos creciendo

Facebook ha sido un gran socio en este esfuerzo. Últimamente ha estado promoviendo los inmutable y otros desarrolladores también lo están adoptando.

La BBC lo ha utilizado para pruebas:

Como anécdota, la BBC observa mejoras en los tiempos de respuestas de cargas hasta un 50%, y expresa que un 90% de las peticiones están optimizadas para ser inmutables.

Implementaciones futuristas como el  as sistema de archivos InterPlanetary también son interesantes:

También se benefician productos como el venerable proxy Squid:

Esta tecnología ha tenido suficientes pruebas en producción y realmente recomendamos su uso. Para asegurar la documentación adecuada, también se han adaptados a los estándares de la IETF. Solo necesitas es tener una cabecera de cache para empezar con tu desarrollo.

El pasado martes 19 de septiembre Mozilla liberó una nueva versión de su navegador e inmediatamente compartimos con ustedes sus novedades.

Lo nuevo

El administrador de contraseñas ha sido actualizado para permitir a las páginas HTTPS emplear las credenciales HTTP almacenadas. Esta es una forma más para soportar Let’s Encrypt y ayudar a los usuarios en la transición hacia una web más segura.

El modo de lectura ha recibido varias funcionalidades que mejoran nuestra lectura y escucha mediante la adición de controles para ajustar el ancho y el espacio entre líneas del texto, y la inclusión de narración donde el navegador lee en voz alta el contenido de la página; sin dudas características que mejorarán la experiencia de uso en personas con discapacidad visual.

El modo de lectura ahora incluye controles adicionales y lectura en alta voz

El modo de lectura ahora incluye controles adicionales y lectura en alta voz

El reproductor de audio y video HTML5 ahora posibilita la reproducción de archivos a diferentes velocidades (0.5x, Normal, 1.25x, 1.5x, 2x) y repetirlos indefinidamente. En este sentido, se mejoró el rendimiento al reproducir videos para usuarios con sistemas que soportan instrucciones SSSE3 sin aceleración por hardware.

Firefox Hello, el sistema de comunicación mediante videollamadas y chat ha sido eliminado por su bajo empleo. No obstante, Mozilla seguirá desarrollando y mejorando WebRTC.

Fin del soporte para sistemas OS X 10.6, 10.7 y 10.8, y Windows que soportan procesadores SSE.

Para desarrolladores

  • Añadida la columna Causa al Monitor de Red para mostrar la causa que generó la petición de red.
  • Introducida la API web speech synthesis.

Para Android

  • Adicionado el modo de vista de página sin conexión, con esto podrás ver algunas páginas aunque no tengas acceso a Internet.
  • Añadido un paseo por características fundamentales como el Modo de Lectura y Sync a la página Primera Ejecución.
  • Introducidos las localizaciones Español de Chile (es-CL) y Noruego (nn-NO).
  • El aspecto y comportamiento de las pestañas ha sido actualizado y ahora:
    • Las pestañas antiguas ahora son ocultadas cuando la opción restaurar pestañas está establecida en “Siempre restaurar”.
    • Recuerdo de la posición del scroll y el nivel de zoom para las pestañas abiertas.
    • Los controles multimedia han sido actualizados para evitar sonidos desde múltiples pestañas al mismo tiempo.
    • Mejoras visuales al mostrar los favicons.

Otras novedades

  • En la página about:memory ahora se muestra el uso de memoria dedicada a las fuentes.
  • Rehabilitado el valor por defecto para la organización de las fuentes mediante Graphite2.
  • Mejorado el rendimiento en sistemas Windows y OS X que no cuentan con aceleración por hardware.
  • Varias correcciones de seguridad.

Si prefieres ver la lista completa de novedades, puedes llegarte hasta las notas de lanzamiento (en inglés).

firefox49-acercaEn estos momentos ya debes haber recibido esta actualización, pero si todavía no te ha aparecido la advertencia, puedes ir al menú “Acerca de” y hacer clic en el botón “Buscar actualizaciones”. Mientras que Firefox para Android puedes instalarlo desde Google Play.

Visto en Mozilla hispano.

Tras 6 semanas de estar en fase beta, en el día de ayer fue liberada una nueva versión de Firefox, por lo que es tiempo de actualizar. En este lanzamiento sobresale el empleo de Google’s Widevine CDM para reproducir contenido a través del plugin Silverlight que contenga protección DRM, la posibilidad de visualizar y buscar fácilmente las pestañas sincronizadas en otros dispositivos, importantes cambios relacionados con los complementos, mejoras en la seguridad y mucho más.

¿Qué hay de nuevo?

Google Widevine CDM

El año pasado Mozilla introdujo en Firefox la posibilidad de reproducir contenidos protegidos bajo DRM a través de Adobe’s Primetime CDM y ahora se ha añadido Google Widevine CDM en Windows y Mac. Widevine es una alternativa para la para la transmisión de los servicios que en la actualidad se basan en Silverlight y son protegidos por DRM. Es válido recordar que Widevine se activará cuando los usuarios interactúen por primera vez con un sitio web que requiera Widevine.

Widevine CDM se ejecuta en un entorno seguro y abierto en Firefox, permitiendo mejor seguridad que los plugins NPAPI y a su vez significa un importante paso en los planes de Mozilla para eliminar los plugins NPAPI. Algunas páginas web utilizan un tipo de DRM que no admiten los módulos de cifrado de contenido de Adobe Primetime ni de Google Widevine. Para poder verlo, quizás necesites un plugin NPAPI de terceros, como Microsoft Silverlight.

Pestañas sincronizadas a la vista

Desde la inclusión de Sync en el navegador puedes compartir tu información y preferencias (como marcadores, contraseñas, pestañas abiertas, lista de lectura y complementos instalados) con todos tus dispositivos para mantenerte actualizado y no perderte nada.

Con este lanzamiento, ver las pestañas abiertas en otros dispositivos será mucho más fácil e intuitivo pues al sincronizar inmediatamente se mostrará el botón tabs en la barra de herramientas, el cual te permite acceder mediante un panel a estas páginas en tu equipo con tan solo un clic. También, mientras busques en la barra de direcciones, las pestañas serán mostradas en la lista desplegable.

Barra lateral que muestra las pestañas abiertas en otros dispositivos

Barra lateral que muestra las pestañas abiertas en otros dispositivos

Si nunca has configurado Sync y deseas hacerlo, puedes leer este artículo. ¡Es muy fácil y rápido!

De videos y otros temas

La decodificación del códec VP9 ha sido habilitada solo para usuarios que cuenten con máquinas rápidas y los videos embebidos de YouTube ahora se reproducen a través de HTML5 si Flash no esta instalado. Esto significa que los videos se reproducirán de una forma más fluida, empleando menos ancho de banda y extendiendo la vida útil de tu batería.

El idioma Latgalu ha sido incorporado y se suma a la larga lista de lenguas soportadas por el panda rojo.

Cambios en los complementos

FUEL (Firefox User Extension Library) ha sido eliminada y debido a ello, los complementos que la incorporen no funcionarán más en el navegador, a menos que sus desarrolladores actualicen su código.

La lista blanca para ejecutar plugins fue suprimida, por lo que todos los plugins estarán inhabilitados por defecto para ejecutarse y debemos permitir según su nivel de confianza u otro aspecto personal.

Por otra parte, la preferencia browser.sessionstore.restore_on_demand ha sido establecida a su valor original (true) para evitar problemas de rendimiento en e10s.

Novedades en Android

  • Adicionada la opción “Mostrar/Ocultar fuentes web” en la configuración avanzada para reducir datos y mejorar el ancha de banda.
  • Esta será la última versión con soporte para Android 2.3.x (Gingerbread).
  • La opción “Abrir múltiples enlaces” en General, ha sido renombrada y ahora se llama “Pestañas en cola”.
  • Eliminado el soporte para Android web runtime (WebRT).
  • Eliminados los favicons de las páginas para prevenir engaños HTTPS.

Lo nuevo para desarrolladores

Si deseas conocer más detalles de las novedades para desarrolladores puedes leer este artículo publicado en el blog de Labs de Mozilla Hispano donde abordan más el tema.

  • Cambios en la compatibilidad de complementos.
  • Ahora podemos comenzar, parar y depurar los Service Workers registrados.
  • Simulación de la inserción de mensajes en la herramienta Service Workers.
  • En la vista de diseño adaptable se puede personalizar el User Agent a utilizar.
  • Añadido el soporte para la suites criptográficas ChaCha20/Poly1305.
  • Entradas multi-líneas inteligentes en la Consola Web.
  • WebCrypto: PBKDF2 ahora soporta los algoritmos de suma SHA-2.
  • WebCrypto: añadido el soporte a las firmas RSA-PSS.

Si prefieres ver la lista completa de novedades, puedes llegarte hasta las notas de lanzamiento (en inglés).

En estos momentos ya debes haber recibido esta actualización, pero si todavía no te ha aparecido la advertencia, puedes ir al menú “Acerca de” y hacer clic en el botón “Buscar actualizaciones”. Mientras que Firefox para Android puedes instalarlo desde Google Play.

Visto en Mozilla hispano.

Hace pocas horas Mozilla ha liberado una nueva versión de Firefox en la que destacan la integración con GTK3 en Linux, mejoras en las seguridad del compilador JS en tiempo real, cambios en WebRTC y nuevas funcionalidades para Android e iOS.

Después de varios meses de pruebas y desarrollo, finalmente GTK3 ha sido incluido para la versión en Linux. Esto permitirá reducir la dependencia de las versiones antiguas del servidor X11, compatibilidad mejorada con HiDPI y sobre todo una mejor integración con los temas.

 El nuevo navegador también mejora la seguridad del compilador de JavaScript Just in Time (JIT) de SpiderMonkey. La idea es influir en el código RWX (lectura – escritura – ejecución), que a veces provoca un riesgo. Inicialmente representa una excepción a las reglas del sistema operativo, especialmente el almacenamiento de datos en un área de memoria donde pueden ser ejecutados (leer), pero no escribirse.

Para remediar este problema, Mozilla he empleado un mecanismo denominado W^X. Su función es la de prohibir la escritura de JavaScript en áreas de memoria que contienen el código JIT. Este cambio será a expensas de un ligero descenso en el rendimiento, que se calcula de acuerdo con el editor en un rango de 1% a 4%. Por otra parte, se invita a los creadores de algunas extensiones para probar la compatibilidad de su código de tratar con este mecanismo.

También se ha mejorado el rendimiento y la fiabilidad de las conexiones de WebRTC, y permite el uso del módulo de descifrado de contenido para el contenido H.264 y AAC cuando sea posible. Mientras tanto, para los desarrolladores contamos con nuevas herramientas que ahora pueden emplear en sus trabajos, en este artículo publicado en el blog de Labs podrás conocer más al respecto.

Novedades en Android

  • El Historial y los Marcadores se han añadido al menú.
  • La instalación de complementos no verificados será cancelada.
  • Las página almacenadas en la caché ahora son mostradas cuando estamos sin conexión.
  • Las notificaciones sobre las pestañas abiertas en segundo plano ahora muestran la URL.
  • Firefox pedirá permisos para acceder a ciertos permisos en tiempo de ejecución y no al instalar la aplicación (Android 6.0 o superiores).
  • Durante el autocompletamiento mientras escribes una dirección ahora se incluye el dominio para hacer más fácil tu navegación.

Firefox para iOS

  • Añadida la localización en danés [da].
  • Los sitios sugeridos por defecto ahora pueden ser eliminados.
  • Los 5 primeros sitios del ranking de Alexa son mostrados a los nuevos usuarios.
  • Mejorado el manejo por parte del navegador de vínculos a Apple Maps y otras aplicaciones de terceros como Twitter.

Si prefieres ver la lista completa de novedades, puedes llegarte hasta las notas de lanzamiento (en inglés).

En estos momentos ya debes haber recibido esta actualización, pero si todavía no te ha aparecido la advertencia, puedes ir al menú “Acerca de” y hacer clic en el botón “Buscar actualizaciones”. Mientras que Firefox para Android puedes instalarlo desde Google Play.

Visto en Mozilla hispano.