This feature will become available in Firefox 54.
When an extension provides tools that are of use to developers, it's possible to add a UI for them to the browser's developer tools as a new panel.
Specifying a developer tools panel
A developer tools panel is added using the devtools.panels
API, which in turn needs to be run from a special devtools page.
Add the devtools page by including the devtools_page
key in extension's manifest.json and provide the location of the page's HTML file in the extension:
"devtools_page": "devtools-page.html"
From the devtools page, call a script that will add the devtools panel:
<body> <script src="devtools.js"></script> </body>
In the script, create the devtools panel by specifying the panel's title, icon, and HTML file that provides the panel's content:
function handleShown() { console.log("panel is being shown"); } function handleHidden() { console.log("panel is being hidden"); } browser.devtools.panels.create( "My Panel", // title "icons/star.png", // icon "devtools/panel/panel.html" // content ).then((newPanel) => { newPanel.onShown.addListener(handleShown); newPanel.onHidden.addListener(handleHidden); });
The extension can now run code in the inspected window using
or by injecting a content script via the background script by passing a message. You can find more details on how to do this in Extending the developer tools.devtools
.inspectedWindow.eval()
Examples
The webextensions-examples repo on GitHub, contains several examples of extensions that use devtools panels:
- devtools-panels use devtools panels: