ブラウザを再起動する場合、ブラウザツールボックスなどのブラウザに依存するツールは、それに合わせて再起動する必要があります。
ブラウザデバッガでは、アドオンのスクリプトをデバッグできます。その実体はJavaScript デバッガですが、リモートでブラウザをデバッグするときには、ブラウザデバッガと呼称しているようです。
このツールは、既定の設定では起動できません。起動するには後述する手順で設定を変更する必要があります。
Firefox 28以降、ブラウザデバッガ (Browser Debugger) からブラウザツールボックスの名称に変更されています。
Firefox 19以降、この機能はFirefoxに組み込まれているため、設定を変更するだけで使用できるようになります。そのためには[開発ツールのオプション]で、
の2つの項目をチェックします。
またはabout:configで、
の2つの項目をtrueに設定しても同じです。
起動するにはウィンドウ左上の[Firefoxボタン]から、【Web開発 → ブラウザデバッガ ブラウザツールボックス】を選択します。またはキーボードからAlt + T、W、Eの順に押します。
起動時に、リモートデバッグの接続要求の受け付けを検知しました。リモートクライアントはあなたのブラウザを操作できるようになります! 接続を許可しますか?と表示されたら、[OK]をクリックします。
ここで[無効にする]を選択すると、前述のdevtools.debugger.remote-enabledの設定がfalseとなるため、設定し直して再起動する必要があります。
このダイアログは、ブラウザデバッガの背面に表示されることがあります。
リモートデバッグを許可した後、しばらくブラウザデバッガが応答しなくなることがあります。そのときは少し待ちます。ブラウザデバッガが起動したら、上部のツールバーで対象のスクリプトを選択します。スクリプトの選択が困難なときには、ファイル名から検索できます。
詳しい使用方法については、JavaScript デバッガで解説しています。
DOM Inspectorでは、ドキュメントのDOMやXULアプリケーションを調査できます。
Developer Assistantは、アドオン開発に便利なツールを提供するFirefoxアドオンです。
Developer Assistant :: Add-ons for Firefox
同梱のツールは、メニューの【ツール → Extension Developer】から起動できます。
※1 [Enable Debugging Preferences]をチェックすると、Firefoxが開発用に設定されます。一方でこのチェックを外すと設定がクリアされます。このチェックは予期せず外れることがあるため、ときどき確認が必要です。
Real-time XUL Editorでは、プレビューを確認しながらXULを編集できます。これはツールのメニューをたどることで起動できますが、キーボードからAlt + T、X、Xとタイプするのが早いです。
このツール上で発生したスクリプトのエラーは、ブラウザコンソールで確認できます。しかしこのツールはXULを分析するような機能は備えていないため、プレビュー以上の本格的な開発にはDOM Inspectorの方が適しています。
XUL文書へChrome URIでアクセスできるように設定すれば、このようなツールを用いなくても、Firefoxでそれを開くことでプレビューできます。
[Open preview in new window]をクリックすると、プレビューを独立したウィンドウで表示できます。
このウィンドウ表示を元に戻すには、XUL Editorを再起動するしかありません。
ウィンドウ表示の状態でXULの記述を誤りXML パースエラーとなると、ブラウザごとクラッシュすることがあります。よって必要性がなければ、ウィンドウ表示とはしないようにします。
XULファイルをFirefoxで開くことで、より詳細な動作確認を行えます。しかしFirefox 4以降ではこの機能が制限されているため、XULファイルを開こうとするとエラーとなります。
この制限は「Remote XUL Manager」により回避できます。
Remote XUL Manager :: Add-ons for Firefox
リモートXULを許可するドメインの編集は、Firefox左上の[Firefoxボタン]から、【Web開発 → リモートXULマネージャ】で行えます。
ローカルのファイルを許可対象とするには、ドメインの追加で<file>
と指定します。
Add-on Builderでは、ブラウザを使用してWeb上でアドオンを開発できます。
Add-on Builder「BrowserID Not enabled」と表示されログインに失敗するときには、Referer (リファラ) が正しく送信されているか確認します。referrer - Getting "BrowserID not enabled" trying to login to Mozilla Builder - Stack Overflow
Add-on Builderでアドオンを作成すると、まず次のようなファイルが作成されます。この一覧はそれをxpiファイルとしてダウンロードし、展開したものです。
C:. | bootstrap.js | harness-options.json | install.rdf | locales.json | +---defaults | \---preferences | prefs.js | +---locale \---resources +---addon-sdk | +---data | \---lib | +---sdk | | | base64.js | | | panel.js | | | private-browsing.js | | | self.js | | | system.js | | | tabs.js | | | timers.js | | | url.js | | | widget.js | | | windows.js | | | | | +---addon | | | runner.js | | | | | +---console | | | plain-text.js | | | traceback.js | | | | | +---content | | | content-proxy.js | | | content-worker.js | | | content.js | | | loader.js | | | symbiont.js | | | thumbnail.js | | | worker.js | | | | | +---core | | | heritage.js | | | namespace.js | | | promise.js | | | | | +---deprecated | | | | api-utils.js | | | | cortex.js | | | | errors.js | | | | events.js | | | | light-traits.js | | | | list.js | | | | memory.js | | | | observer-service.js | | | | traits.js | | | | window-utils.js | | | | | | | +---events | | | | assembler.js | | | | | | | \---traits | | | core.js | | | | | +---dom | | | events.js | | | | | +---event | | | core.js | | | target.js | | | | | +---frame | | | hidden-frame.js | | | utils.js | | | | | +---io | | | byte-streams.js | | | data.js | | | file.js | | | text-streams.js | | | | | +---l10n | | | core.js | | | html.js | | | loader.js | | | locale.js | | | prefs.js | | | | | +---lang | | | functional.js | | | | | +---loader | | | cuddlefish.js | | | sandbox.js | | | | | +---net | | | url.js | | | | | +---panel | | | window.js | | | | | +---platform | | | xpcom.js | | | | | +---preferences | | | service.js | | | | | +---private-browsing | | | | utils.js | | | | | | | \---window | | | utils.js | | | | | +---system | | | environment.js | | | events.js | | | globals.js | | | runtime.js | | | unload.js | | | xul-app.js | | | | | +---tabs | | | common.js | | | events.js | | | helpers.js | | | namespace.js | | | observer.js | | | tab-fennec.js | | | tab-firefox.js | | | tab.js | | | tabs-firefox.js | | | tabs.js | | | utils.js | | | worker.js | | | | | +---util | | | array.js | | | deprecate.js | | | list.js | | | object.js | | | uuid.js | | | | | +---window | | | browser.js | | | namespace.js | | | utils.js | | | | | \---windows | | dom.js | | fennec.js | | firefox.js | | loader.js | | observer.js | | tabs-fennec.js | | tabs-firefox.js | | | \---toolkit | loader.js | \---test +---data \---lib main.js
Add-on SDKは、アドオン開発に便利なツールやAPIの開発キットです。
Add-on SDK :: 開発者センター :: Add-ons for Firefox
Add-on Debuggerとは、ブラウザツールボックスを特定のアドオンだけを対象に動作させるツールです。ただしこのツールが有効なのは、Add-on SDKを土台とした再起動不要なアドオンのみです。
対応したアドオンでは、拡張機能のページ (about:addons) に[デバッグ]のボタンが表示されます。