インストール済みのアドオンはプロファイル フォルダのextensions/フォルダ※1 に、xpiファイル※2 として保存されています。このファイルの実体はzipファイルであるため、拡張子をxpiからzipに変更することで、圧縮ファイルとして展開できるようになります。アドオンのソースやリソースは、そこにあります。≫XPIパッケージング
※1 グローバル インストールされたアドオンのインストール場所は異なります。インストールされていないアドオンのソースについては、まずAdd-ons for Firefoxからそのアドオンのページを開きます。そして[Add to Firefox]のボタンを右クリックしてリンク先を保存することで、インストールせずにソースをダウンロードできます。
xpiファイルの展開後のchromeフォルダにjarという拡張子のファイルがある場合には、それも圧縮ファイルです。これはJARと呼ばれる圧縮ファイルで、これもxpiファイルと同様に拡張子をzipに変更することで展開できます。
xpiファイルの名前は、アドオンIDで表示されます。
ファイル名からアドオンが推定できないときには、ファイルを展開した後にinstall.rdfを開きます。そして<em:name>を探すことで、アドオン名を確認できます。またはaboutプロトコルのabout:support (トラブルシューティング情報) の[拡張機能]の項目で、アドオンの名前とIDを一覧できます。

| アドオン名 | アドオンID |
|---|---|
| NoScript | 73a6fe31-595d-460b-a920-fcc0f8843232 |
| Adblock Plus | d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d |
Java Consoleなどの一部のアドオンは、通常とは異なる場所にインストールされます。それらのアドオンは、Firefoxのインストール フォルダのextensionsフォルダにあります。アドオンを削除できない | Firefox ヘルプ
ファイルを展開せずとも、ブラウザツールボックスならば直接コードを閲覧できます。アドオンのソースコードを特定するにはChrome URIを把握している必要がありますが、スクリプトフィルタでアドオンの名前を入力すれば、 たいていそれを発見できます。
デバッガではブレークポイントを設定できるので、より詳細にアドオンを調べられます。
Add-ons for Firefoxからアドオンのxpiファイルをダウンロードすることで、インストールしていないアドオンのソースも入手できます。
それにはアドオンのインストール ページで[Firefoxへ追加]を右クリックし、[名前を付けてリンク先を保存 (Save Link As)]を実行します。そうすることで、xpiファイルをダウンロードできます。

この方法ならば、互換性がなくインストールできないアドオンのソースも入手できます。
たとえばフォルダ構成が次のようになっているとすると、
:.
|
\---chrome
| +---content
| |
| +---locale
| | +---en-US
| | |
| | \---ja
| |
| \---skin
| \---classic
|
+---components
|
+---defaults
| \---preferences
|
\---platform
\---WINNT
これらのフォルダは以下の意味を持ちます。
| フォルダ | 説明 | |||
|---|---|---|---|---|
| ルート |
|
|||
| chrome | UI要素のセット
|
|||
| + | content※1 | UIの構造と振る舞い
(ユーザー設定なども含む)
※3 CSSは、通常skinフォルダに配置します。 |
||
| locale※1 | UIの地域化 | |||
| + | en-US | 英語 (合衆国) | ||
| ja | 日本語
|
|||
| skin※1 | UIのスキン。CSSやアイコンの画像など | |||
| + | classic | 標準テーマのスキン
|
||
| components |
|
|||
| defaults | 既定の設定 | |||
| + | preferences | ユーザー設定の既定値
|
||
| platform | プラットフォーム依存のコンポーネント | |||
| + | WINNT | WINNT用のコンポーネント | ||
フォルダの構成は、必ずしも上記の通りではありません。
+---{73a6fe31-595d-460b-a920-fcc0f8843232}
| | chrome.manifest
| | GPL.txt
| | install.rdf
| | mozilla.cfg
| | NoScript_License.txt
| |
| +---chrome
| | \---noscript
| | +---content
| | | \---noscript
| | | ABE.g
| | | ABE.js
| | | ABELexer.js
| | | ABEParser.js
| | | about.xul
| | | antlr.js
| | | ASPIdiocy.js
| | | ChannelReplacement.js
| | | clearClick.js
| | | clearClick.xul
| | | ClearClickHandler.js
| | | ClearClickHandlerLegacy.js
| | | Cookie.js
| | | DNS.js
| | | DOM.js
| | | ExternalFilters.js
| | | frameOptErr.xhtml
| | | HTTPS.js
| | | iaUI.js
| | | Lang.js
| | | noscript.js
| | | noscript.xbl
| | | noscriptBM.js
| | | noscriptBMOverlay.xul
| | | noscriptOptions.js
| | | noscriptOptions.xul
| | | noscriptOverlay.js
| | | noscriptOverlay.xul
| | | NoScript_License.txt
| | | options-mobile.xul
| | | overlay-mobile.xul
| | | PlacesPrefs.js
| | | Plugins.js
| | | Policy.js
| | | Profiler.js
| | | Removal.js
| | | RequestWatchdog.js
| | | ScriptSurrogate.js
| | | Strings.js
| | | STS.js
| | | URIValidator.js
| | |
| | +---locale
| | | +---en-GB
| | | | \---noscript
| | | | about.properties
| | | | noscript.dtd
| | | | noscript.properties
| | | |
| | | +---en-US
| | | | \---noscript
| | | | about.properties
| | | | noscript.dtd
| | | | noscript.properties
| | | |
| | | +---ja-JP
| | | | \---noscript
| | | | about.properties
| | | | noscript.dtd
| | | | noscript.properties
| | | |
| | \---skin
| | \---classic
| | \---noscript
| | abe16.png
| | about.css
| | block.wav
| | browser.css
| | close.png
| | console16.png
| | content.css
| | ef-no16.png
| | ef16.png
| | emb16.png
| | embed-no16.png
| | embed16.png
| | faq16.png
| | flash16.png
| | flash32.png
| | folder_closed.png
| | folder_open.png
| | font.png
| | glb-emb16.png
| | glb-no16.png
| | glb16.png
| | https16.png
| | ia.png
| | icon24.png
| | icon32.png
| | icon64.png
| | icon80.png
| | inactive-emb16.png
| | inactive-glb16.png
| | inactive-no-emb16.png
| | inactive-no16.png
| | inactive-prt16.png
| | inactive-yes16.png
| | inactive-yu16.png
| | java16.png
| | java32.png
| | mobile.css
| | no-emb16.png
| | no16.png
| | options.css
| | prt16.png
| | redirect16.png
| | revtemp16.png
| | somelight16.png
| | somelight32.png
| | subprt16.png
| | temp16.png
| | unsafe-reload16.png
| | untrusted-glb16.png
| | untrusted16.png
| | webgl16.png
| | webgl32.png
| | xss16.png
| | yes16.png
| | yu-emb16.png
| | yu-glb16.png
| | yu16.png
| |
| +---components
| | noscriptService.js
| |
| +---defaults
| | \---preferences
| | noscript.js
| |
| \---META-INF
| manifest.mf
| zigbert.rsa
| zigbert.sf
NoScript Security Suite :: Add-ons for Firefox
+---firegestures@xuldev.org | | chrome.manifest | | FireGestures.idl | | icon.png | | icon64.png | | install.rdf | | LICENSE.txt | | | +---chrome | | +---content | | | \---firegestures | | | browser.js | | | browser.rdf | | | browser.xul | | | edit.js | | | edit.xul | | | prefs-generic.xul | | | prefs.js | | | prefs.xul | | | viewSource.js | | | viewSource.rdf | | | viewSource.xul | | | | | +---locale | | | | BZ_localized.txt | | | | | | | +---en-US | | | | \---firegestures | | | | firegestures.properties | | | | mapping.dtd | | | | prefs.dtd | | | | | | | +---ja | | | | \---firegestures | | | | firegestures.properties | | | | mapping.dtd | | | | prefs.dtd | | | | | | | \---zh-TW | | | \---firegestures | | | firegestures.properties | | | mapping.dtd | | | prefs.dtd | | | | | \---skin | | \---classic | | \---firegestures | | icon.png | | prefs.css | | prefs.png | | | +---components | | FireGestures.xpt | | xdGestureHandler.js | | xdGestureMapping.js | | xdGestureService.js | | | \---defaults | \---preferences | firegestures-prefs.jsFireGestures :: Add-ons for Firefox
+---nosquint@urandom.ca | | chrome.manifest | | icon.png | | icon64.png | | install.rdf | | | +---chrome | | nosquint.jar | | | +---components | | about-handler.js | | | \---defaults | \---preferences | nosquint.jsNoSquint :: Add-ons for Firefox
+---{26FD1F83-A45B-4c74-AF5A-F2EE0EE4D691}
| | chrome.manifest
| | install.rdf
| |
| +---chrome
| | highlightall.jar
| |
| \---defaults
| \---preferences
| highlightall_pref.js
HighlightAll :: Add-ons for Firefox
+---{D4DD63FA-01E4-46a7-B6B1-EDAB7D6AD389}
| | chrome.manifest
| | downbarPackage.jar
| | install.rdf
| | license.txt
| |
| +---components
| | downbar.js
| |
| \---defaults
| \---preferences
| downbarconfig.js
Download Statusbar :: Add-ons for Firefox
Firefoxに同梱されているツール類は、Firefoxのインストール フォルダのbrowser\omni.jaにまとめられています。これも圧縮ファイルですので、拡張子をzipに変更することで展開できます。
Firefox 21.0では、以下のフォルダ構成となっています。
C:.
+---chrome
| +---browser
| | +---content
| | | +---branding
| | | \---browser
| | | +---abouthealthreport
| | | +---abouthome
| | | +---bookmarks
| | | +---certerror
| | | +---devtools
| | | | +---framework
| | | | +---inspector
| | | | +---layoutview
| | | | \---profiler
| | | | \---cleopatra
| | | | +---css
| | | | +---images
| | | | \---js
| | | +---downloads
| | | +---feeds
| | | +---history
| | | +---migration
| | | +---newtab
| | | +---pageinfo
| | | +---places
| | | +---preferences
| | | | \---in-content
| | | +---search
| | | \---sync
| | \---skin
| | \---classic
| | +---aero
| | | \---browser
| | | +---devtools
| | | | \---breadcrumbs
| | | +---downloads
| | | +---feeds
| | | +---newtab
| | | +---places
| | | +---preferences
| | | | \---in-content
| | | +---social
| | | +---tabbrowser
| | | \---tabview
| | +---browser
| | | +---devtools
| | | | \---breadcrumbs
| | | +---downloads
| | | +---feeds
| | | +---newtab
| | | +---places
| | | +---preferences
| | | | \---in-content
| | | +---social
| | | +---tabbrowser
| | | \---tabview
| | \---communicator
| +---ja
| | \---locale
| | +---branding
| | +---browser
| | | +---devtools
| | | +---downloads
| | | +---feeds
| | | +---migration
| | | +---places
| | | +---preferences
| | | \---safebrowsing
| | +---browser-region
| | +---feedback
| | \---pdfviewer
| \---pdfjs
| +---components
| \---content
| +---build
| \---web
| \---images
+---components
+---defaults
| +---preferences
| \---profile
| \---chrome
+---jsloader
| \---resource
| \---app
| +---components
| \---modules
| +---devtools
| +---sessionstore
| \---tabview
\---modules
+---devtools
+---sessionstore
\---tabview