URI:
       Title: Using Firefox remote debugging feature
       Author: Solène
       Date: 06 August 2024
       Tags: firefox network
       Description: In this blog post, you will learn how to use Firefox
       remote debugging feature
       
       # Introduction
       
       Firefox has an interesting features for developers, its ability to
       connect a Firefox developers tools to a remote Firefox instance.  This
       can really interesting in the case of a remote kiosk display for
       instance.
       The remote debugging does not provide a display of the remote, but it
       gives you access to the developer tools for tabs opened on the remote.
       
       # Setup
       
       The remote firefox you want to connect to must be started using the
       command line parameter `--start-debugger-server`.  This will make it
       listen on the TCP port 6000 on 127.0.0.1.  Be careful, there is another
       option named `remote-debugging-port` which is not what you want here,
       but the names can be confusing (trust me, I wasted too much time
       because of this).
       
       Before starting Firefox, a few knobs must be modified in its
       configuration.  Either search for the options in `about:config` or
       create a `user.js` file in the Firefox profile directory with the
       following content:
       
       ```
       user_pref("devtools.chrome.enabled", true);
       user_pref("devtools.debugger.remote-enabled", true);
       user_pref("devtools.debugger.prompt-connection", false);
       ```
       
       This enables the remote management and removes a prompt upon each
       connection, while this is a good safety measure, it is not practical
       for remote debugging.
       
       When you start Firefox, the URL input bar should have a red background.
       
       # Remote connection
       
       Now, you need to make a SSH tunnel to that remote host where Firefox is
       running in order to connect to the port.  Depending on your use case, a
       local NAT could be done to expose the port to a network interface or
       VPN interface, but pay attention to security as this would allow anyone
       on the network to control the Firefox instance.
       
       The SSH tunnel is quite standard: `ssh -L 6001:127.0.0.1:6000`, the
       remote port 6000 is exposed locally as 6001, this is important because
       your own Firefox may be using the port 6000 for some reasons.
       
       In your own local Firefox instance, visit the page `about:debugging`,
       add the remote instance `localhost:6001` and then click on Connect on
       its name on the left panel.  Congratulations, you have access to the
       remote instance for debugging or profiling websites.
       
   IMG Input the remote address localhost:6001 and click on Add
       
   IMG Click on connect on the left
       
   IMG Enjoy your remote debugging session
       
       
       # Conclusion
       
       While it can be tricky to debug a system you can directly see,
       especially if it is a kiosk in production that you can see / use in
       case of a problem.