Firebug (software)

Firebug is a discontinued free and open-source web browser extension for Mozilla Firefox that facilitated the live debugging, editing, and monitoring of any website's CSS, HTML, DOM, XHR, and JavaScript.

History
Firebug was licensed under the BSD license and was initially written in January 2006 by Joe Hewitt, one of the original Firefox creators. The Firebug Working Group oversaw the open source development and extension of Firebug. It had two major implementations: an extension for Mozilla Firefox and a bookmarklet implementation called Firebug Lite which can be used with Google Chrome.

In addition to debugging web pages, Firebug was used for web security testing and web page performance analysis.

Firebug has been deprecated in favor of the integrated developer tools added to Firefox itself, whose functionality has been unified with those of Firebug. As Firefox 57 no longer supports XUL add-ons, Firebug is no longer compatible.

Version 2.0
Firebug 2.0 introduced many new features to the Firebug extension including JavaScript syntax highlighting, pretty print for minified JavaScript code, and a DOM Event Inspector to handle all event handlers on a web page. Additionally, users can search for page elements using CSS selectors in the search bar. The debugging tool now allows users to inspect JavaScript expressions as they are evaluated. Moreover, users can inspect values returned from JavaScript functions. It also adds the ability to create new HTML attributes for existing HTML elements.

Version 3.0
On November 10, 2014, Firebug 3.0 was announced and an alpha was made available to the public. This version was to feature a new theme and would have focused on user experience.

Features
Firebug makes changes immediately and gives constant feedback to the user. All editors in Firebug support autocomplete.

The Firebug command line accepts commands written in JavaScript. The result of executing each command is displayed in the console, appearing as hyperlinks. The Firebug application contains multiple windows, splitting related features to a common window. Firebug also allows users to view the download time for individual files. It separates different types of objects, such as JavaScript files and images, and can determined which files are loaded from a browser's cache. Firebug also features the ability to examine HTTP headers and time stamps relative to when an HTTP request is made. Its net panel can monitor URLs that the browser requests, such as external CSS, JavaScript, and image files.

HTML and CSS
The HTML and CSS tools allow for the inspection and editing of HTML and CSS elements on a web page. Later versions of Firebug allow users to see live changes to the CSS. Visualization of CSS elements is shown while inspecting HTML elements. The Firebug layout tab is used to display and manipulate CSS property values. Furthermore, users can click on any visible HTML elements on a web page to access its CSS property values.

JavaScript Console
Firebug's script tab enables users to set breakpoints and step through lines of code. Additionally, Firebug can navigate directly to a line of JavaScript code, watch expressions, call stacks, and launch the debugger in the event an error occurs during execution. Firebug can also log errors. Logging uses a Firebug JavaScript API. Firebug's JavaScript panel can log errors, profile function calls, and enable the developer to run arbitrary JavaScript. Firebug allows users to run JavaScript code through the command line and allows the user to log errors that occur in the JavaScript, CSS, and XML. Firebug provides a separate text editor to modify the JavaScript and see immediate results on the user's browser.

As provided in an update, the JavaScript command line features an autocomplete function. The text editor also provides the ability to write full functions. Firebug requires a user to refresh a web page in the event of a crash.

Extensions
Many extensions have been made to enhance Firebug. Since Firebug is open source, users can contribute their own extensions to the Firebug community.