# Firebug

Firebug è stata un'estensione di Mozilla Firefox che permetteva il debug, la modifica e il monitoraggio di tutti gli aspetti di una pagina web, come i fogli di stile, il codice HTML, la struttura DOM e il codice JavaScript. Firebug forniva anche altri strumenti per lo sviluppo web come una console JavaScript e una funzione chiamata "Net" che permetteva di monitorare il tempo di caricamento in millisecondi di immagini e script. Oltre che per il debug, Firebug era uno strumento indispensabile per testare la sicurezza e la performance dei siti o applicazioni web.
Firebug è stato creato da Joe Hewitt, uno dei creatori di Firefox, ed era sviluppato e mantenuto dal Firebug Working Group.
Nel febbraio del 2009, quasi 1,9 milioni di utenti avevano Firebug installato.
Fu abbandonato nel 2017.

## Caratteristiche

Firebug apporta modifiche immediatamente e fornisce un feedback costante all'utente. Tutti gli editor in Firebug supportavano il completamento automatico.
La riga di comando di Firebug accettava comandi scritti in JavaScript. Il risultato dell'esecuzione di ogni comando veniva visualizzato nella console, come collegamenti ipertestuali. L'applicazione Firebug conteneva più finestre, suddividendo le funzionalità correlate in una finestra comune. Firebug consentiva inoltre agli utenti di visualizzare il tempo di download per i singoli file. Separava diversi tipi di oggetti, come file JavaScript e immagini, e poteva determinare quali file vengono caricati dalla cache di un browser. Firebug offriva anche la possibilità di esaminare le intestazioni HTTP e i timestamp relativi a quando viene effettuata una richiesta HTTP. Il suo pannello di rete poteva monitorare gli URL richiesti dal browser, come CSS esterni, JavaScript e file di immagine.

### HTML e CSS

Gli strumenti HTML e CSS consentivano l'ispezione e la modifica di elementi HTML e CSS su una pagina web. Le versioni successive di Firebug consentivano agli utenti di vedere le modifiche in tempo reale al CSS. La visualizzazione degli elementi CSS veniva mostrata durante l'ispezione degli elementi HTML. La scheda Layout Firebug veniva utilizzata per visualizzare e manipolare i valori delle proprietà CSS. Inoltre, gli utenti potevano fare clic su qualsiasi elemento HTML visibile su una pagina web per accedere ai suoi valori di proprietà CSS.

### Console JavaScript

La scheda script di Firebug consentiva agli utenti di impostare punti di interruzione e scorrere le righe di codice. Inoltre, Firebug poteva passare direttamente a una riga di codice JavaScript, guardare espressioni, stack di chiamate e avviare il debugger nel caso in cui si verificasse un errore durante l'esecuzione. Firebug poteva anche registrare errori. La registrazione utilizzava un'API JavaScript Firebug. Il pannello JavaScript di Firebug poteva registrare chiamate a funzioni di profilo e consentire allo sviluppatore di eseguire JavaScript arbitrario. Firebug consentiva agli utenti di eseguire codice JavaScript tramite la riga di comando e consentiva all'utente di registrare gli errori che si verificavano in JavaScript, CSS e XML. Firebug forniva un editor di testo separato per modificare JavaScript e visualizzare risultati immediati sul browser dell'utente.
L'editor di testo offriva anche la possibilità di scrivere funzioni complete. Firebug richiedeva che un utente aggiornasse una pagina web in caso di arresto anomalo.

## Estensioni

Alcune estensioni potevano integrarsi con Firebug:
* YSlow è un'estensione sviluppata da Yahoo per misurare e testare vari indicatori relativi alla velocità di download e visualizzazione di una pagina web. Questa estensione si integrava con Firebug per funzionare e adotta la stessa licenza di quest'ultima.
* Page Speed era un'estensione per Firebug sviluppata da Google e svolgeva le stesse funzioni di YSlow. Questa estensione era disponibile con la licenza Apache 2.0.
* Firecookie era un'estensione che consentiva di visualizzare i cookie collegati alla pagina corrente, di aggiungerne di nuovi o di eliminarli. Questa estensione, disponibile anche su addons.mozilla.org, era rilasciata con la nuova licenza BSD. Dalla versione 1.10.0, Firebug gestiva nativamente i cookie.
* FlashFirebug era un'estensione Firebug a pagamento che aiutava gli sviluppatori Flash e Flex (obsoleti dal 31 dicembre 2020) a eseguire il debug dei file Adobe SWF sul web. FlashFirebug è stato sviluppato da O-Minds ed era concesso in licenza con GPLv3.

## Versioni
### Versione 2.0

Firebug 2.0 aveva introdotto molte nuove funzionalità nell'estensione Firebug, tra cui l'evidenziazione della sintassi JavaScript, stampa per il codice JavaScript minimizzato e un DOM Event Inspector per gestire tutti i gestori di eventi su una pagina web. Inoltre gli utenti potevano cercare gli elementi della pagina utilizzando i selettori CSS nella barra di ricerca. Lo strumento di debug consentiva agli utenti di ispezionare le espressioni JavaScript mentre venivano valutate. Inoltre, gli utenti potevano esaminare i valori restituiti dalle funzioni JavaScript. Inoltre, aggiungeva la possibilità di creare nuovi attributi HTML per gli elementi HTML esistenti.

### Versione 3.0

Il 10 novembre 2014 è stato annunciato Firebug 3.0 e una versione alpha è stata resa disponibile al pubblico. Questa versione doveva presentare un nuovo tema e si sarebbe concentrata sull'esperienza dell'utente.