Firefox Replay, la herramienta de depuración de Firefox. De momento solo para MacOS

noviembre 29, 2019 , 0 Comments

Recientemente Mozilla dio a conocer una herramienta, la cual se dio a conocer mediante una nueva pagina web (el enlace es este). Llamada como Firefox Replay, Mozilla la presenta como una nueva herramienta de depuración que ya ha sido incluida dentro de las versiones Nightly de Firefox, pero de momento solo esta disponible para MacOS.

“Web Replay” es un proyecto que permite a los procesos de contenido de Firefox registrar su comportamiento, reproducirlo más tarde y rebobinar a estados anteriores. Los procesos de reproducción conservan el mismo comportamiento JS, estructuras DOM, actualizaciones gráficas y la mayoría de los otros comportamientos que ocurrieron durante la grabación. El depurador JS del navegador se puede usar para inspeccionar y controlar la reproducción.

Mozilla dice que la línea de tiempo de la función de reproducción muestra varios puntos en tiempo real, como excepciones, eventos y solicitudes de red, lo que facilita la “pausa e inspección de la reproducción”.

Además, dado que se supone que la función de reproducción debe ser utilizada por desarrolladores, el registro de la función de reproducción se puede guardar y leer.

Ya que los errores que se lleguen a experimentar en el desarrollo web no siempre son fáciles de reproducir, por lo que tienden a ser difíciles de verificar por otros y el trabajo de depuración puede no realizarse lentamente, pero al grabar la operación con la función de reproducción y compartir el registro con otros, la eficiencia también es excelente.

Al incluir herramientas como Firefox Replay, Mozilla podría atraer a más desarrolladores a su navegador. Esto aumentará la cantidad de sitios que se prueban en Firefox.

Esto proporcionará una mejor experiencia para los usuarios normales de Firefox que de otro modo habrían cambiado a un navegador rival. Además de una descripción general de la página de inicio de Firefox Replay, puede encontrar información más detallada en el sitio para desarrolladores de Mozilla.

En la práctica, se permite la reproducción en las siguientes áreas:

  • El IPC y los componentes del depurador pueden realizar asignaciones de almacenamiento dinámico y, por lo tanto, pueden diferir entre la grabación y la reproducción.
  • Las compilaciones de JS y algún otro estado interno se ven afectados por la presencia del depurador y qué puntos de conexión / interrupción están activos, por lo que pueden diferir entre la grabación y la reproducción.
  • El depurador puede asignar elementos de GC, y la asignación de otros elementos de GC puede diferir en la presencia del depurador. Por ejemplo, la compilación del script implica la asignación.

Ademas, tambien permite opciones avanzadas:

  • devtools.recordreplay.enableRewinding  Cuando está deshabilitado, Firefox registra una página significativamente más rápido. predeterminado verdadero . 
  • devtools.recordreplay.fastLogpoints  Cuando está habilitado, Firefox Replay evalúa los puntos de registro consecutivamente. Los puntos de registro no pueden tener efectos secundarios o divergir de la grabación de ninguna otra manera en este modo. por defecto falso.
  • devtools.recordreplay.logging  Cuando está habilitado, Firefox registrará las acciones internas de Replay en el terminal, lo que es útil cuando la depuración se cuelga y se bloquea. por defecto falso

Web Replay de momento se ha incluido dentro de las versiones Nightly de Firefox, hasta que sea más estable. Aunque la función esta incluida, está deshabilitada de forma predeterminada, pero puede activarse con la preferencia “devtools.recordreplay.enabled”.

La cual se accede a las funciones a través del menú Herramientas -> Desarrollador web, y mediante una nueva interfaz de depuración habilitada cuando se visualiza una pestaña de grabación y reproducción.

Como se mencionó al inicio el trabajo de implementación hasta ahora ha sido en macOS, pero Mozilla ya se encuentra trabajando para implementar la herramienta en sus versiones para Windows. Aunque para Linux no se ha mencionado nada.

Pues Mozilla comenta que el trabajo para otros sistemas se dificulta en descubrir el conjunto de API de la biblioteca del sistema para interceptar, en hacer que la administración de memoria y las partes de memoria sucia de la infraestructura de rebobinado funcionen, y en manejar los diferentes gráficos y rutas de IPC en diferentes plataformas.


Some say he’s half man half fish, others say he’s more of a seventy/thirty split. Either way he’s a fishy bastard.