Skip to content

firefox-devtools/firefox-devtools.github.io

 
 

Repository files navigation

Firefox Developer Tools

These are the tools provided by Firefox for developers to inspect Web code.

This repository aims to provide a general overview of how the tools are built, who's working on them, and how to get involved. If you are looking for user support, there's a whole area at MDN dedicated to it.

We abide by our code of conduct and expect all contributors to do the same.

Working on the code and contributing

mozilla-central vs devtools-html

The bulk of the code is hosted in the Firefox repository (we call it mozilla-central, often abbreviated as m-c), in the devtools folder. Development of newer pieces of the tools is happening in GitHub, on the devtools-html organisation.

Code in m-c takes longer to set up from scratch, as it involves installing Mercurial and binary tools such as compiler to build a version of Firefox in your machine, but it is required if you want to work on most of the tools (as the majority of them are in this repository). Here are the instructions plus this very good article.

The repositories in devtools-html are more straightforward if you're used to the GitHub workflow: you clone them, and then run npm install && npm run or similar. Roughly, you can work with each repository individually and we periodically we generate JavaScript bundles that are then copied into m-c.

Bugs and issue trackers

Since we have code in two different places, issues and bugs are to be found in two different places:

  • For code in m-c: http://firefox-dev.tools/ which also lets you filter by good bugs for beginners.
  • For code in devtools-html: this page lists all the issues across the organisation.

Documentation

Broadly speaking, the tools are divided in two parts: the server and the client. A server is anything that can be debugged: for example, your browser, but it could also be Firefox for Android, running on another device. The client is the front-end side of the tools, and it is what developers interact with when using the tools.

Since these two parts are decoupled, we can connect to any server using the same client. This enables us to debug multiple types of servers, using the same protocol to communicate.

You will often hear about actors. Each feature that can be debugged (for example, network) is exposed via an actor, which provides data about that specific feature. It's up to each server to implement some or all actors; the client needs to find out and decide what it can render on the front-side when it connects to the server. So when we want to debug a new feature, we might need to do work in two parts of the code: the server (perhaps implementing a new actor, or extending existing ones) and the client (to display the debugging data returned by the actor).

Often, an actor will correspond to a panel. But a panel might want to get data from multiple actors.

You might also hear about the toolbox. The toolbox is what everyone else calls developer tools i.e. the front-end that you see when you open the tools in your browser.

This is just a brief overview. For more detailed documentation:

  • There is a docs folder on m-c plus the docs folder on the server folder in m-c as well. Each of these folders contain multiple MarkDown files (.md) with information about individual panels.
  • Internal technical documentation
  • Additionally, check out each GitHub repository for documentation specific to that repository or module.
  • Not strictly a roadmap, but these are some of our 2017 goals.

People and modules

The tools are broadly divided into panels. Each panel has one or more owners, who mostly work(s) on that panel and are the best people to ask if you have specific questions about the code.

News and demos

We publish news and updates to two blogs:

  • Nightly for features newly added to Firefox Nightly. This is the place to request feedback from early adopters!
  • Hacks when features reach more stable versions of Firefox.

You're more than encouraged to help us talk about the tools by writing an article, making a demo, or both! We also wrote some guidelines for making demos.

Getting in touch

There are various ways to get in touch with us:

  • To request features or report errors:
  • We have a section on the Mozilla forum. If you want to ask questions, this is a great way to get in touch with us and also ensuring that your question is visible to other people (and hopefully help them as well).
  • We also have a mailing list. For people who prefer mail to forums.
  • If you'd prefer to chat, there's a #devtools channel in irc.mozilla.org, but bear in mind that perhaps the person that could help you best is not online when you ask the question. For that reason, it might be better to use the forum or mailing list instead.
  • Contributors to debugger.html also hold periodic hangouts and have a slack channel.

Processes

Most changes will be done via either the "pick a bug and send a patch" or "send a PR" processes.

For substantial changes, we ask that a "request for comment" (RFC) document is provided first, so we can examine what the implications of a change will be. Here is how to follow the RFC process.

People

<style> .people-grid { display: grid; grid-template-columns: repeat(8, 1fr); grid-gap: 10px; grid-auto-rows: minmax(100px, auto); } </style>
{% for person in site.github.organization_members %}
{{ person.login }}
{% endfor %}

About

Community & Documentation

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 12