Announcing the Multiprocess Browser Toolbox

16 views
Skip to first unread message

Patrick Brosset

unread,
Dec 20, 2019, 3:01:09 AM12/20/19
to Firefox Dev, dev-platform, dev-developer-tools

(cross-posting to dev-platform and dev-developer-tools, please respond to firefox-dev)


The short version:


The new Multiprocess Browser Toolbox (which can inspect and debug both parent and content processes) is now enabled in nightly! If you see anything wrong, please file a bug that blocks the dt-fission bug.


The longer version:


If you have ever worked on browser code, you likely already know what the Browser Toolbox is. If you don't, think of it as the developer tools for the browser itself (it allows you to debug the browser's own JavaScript and inspect/modify the browser's own UI).


Up until now, the Browser Toolbox allowed you to interact with the things that lived in the parent Firefox process only.


However, over the past few months, we have been hard at work on improving the Browser Toolbox. It can do much more: not only can it interact with the parent process as before, it can now also see into content processes (i.e. walk the DOM inside <browser remote> elements, log messages from all processes to the console, set breakpoints and debug scripts from all threads, etc.).


We did this because it gave us the right environment to get DevTools ready for Fission.

Indeed, by making the Browser Toolbox aware of more than just one process (the parent) we can almost just as easily make the normal DevTools (i.e. inside a tab) aware of all of the processes that make up a web page (other origin iframes, workers, etc.)


If you are remote debugging Fenix/Firefox Preview, this also means that debugging the main process will now give you access to content processes as well (see this comment).


This work has been done under the DevTools Fission M1 project (completion chart), which is now complete!


Today, we are pleased to announce that the new Multiprocess Browser Toolbox has been enabled in Nightly (bug 1588050).


A lot of work was done to make this possible, and a lot of code changed, so it is possible that you encounter issues. This is why we are keeping this in nightly for now.


If you see anything wrong, please let us know by filing a bug that blocks the dt-fission bug.


If you have any questions about any of this, the answer may be in this FAQ, if not, feel free to let us know.


We hope you like this new Browser Toolbox!


What's next?


Because the new Browser Toolbox can be used to debug content processes, we will be retiring the Browser Content Toolbox soon (in bug 1603376).


But more importantly, our next milestone for making DevTools Fission compatible will start beginning of 2020 (we call it M2, see the completion chart). We plan on working on the following tracks:


  • Making the necessary DevTools framework adjustments to support remote iframes inside web pages.

  • Making all tools support navigation process switches (already underway).

  • Re-architecting highlighters (the things that appear over the content page when ve.g. selecting a node) so they work cross-frames.

  • And implementing new UI allowing users to switch JS execution context throughout the tools.


Patrick
Reply all
Reply to author
Forward
0 new messages