XULRunner tips
出典: MDC
XULRunner の一般的な質問について。これは作業中のドキュメントです。
目次 |
[編集] Extension Manager
拡張機能をインストールできるようにするには、まず最初に application.ini で拡張機能マネージャーを有効にする必要があります。 XULRunner 1.8.0 はアプリケーションのディレクトリから拡張を読み込む事ができません; XULRunner のディレクトリとユーザプロファイルのディレクトリはチェックされます。次の pref をセットする事で XPInstall ダイアログ、拡張機能マネージャー、そしてテーママネージャーが動作するでしょう:
pref("xpinstall.dialog.confirm", "chrome://mozapps/content/xpinstall/xpinstallConfirm.xul");
pref("xpinstall.dialog.progress.skin", "chrome://mozapps/content/extensions/extensions.xul?type=themes");
pref("xpinstall.dialog.progress.chrome", "chrome://mozapps/content/extensions/extensions.xul?type=extensions");
pref("xpinstall.dialog.progress.type.skin", "Extension:Manager-themes");
pref("xpinstall.dialog.progress.type.chrome", "Extension:Manager-extensions");
pref("extensions.update.enabled", true);
pref("extensions.update.interval", 86400);
pref("extensions.dss.enabled", false);
pref("extensions.dss.switchPending", false);
pref("extensions.ignoreMTimeChanges", false);
pref("extensions.logging.enabled", false);
pref("general.skins.selectedSkin", "classic/1.0");
// NB these point at AMO
pref("extensions.update.url", "chrome://mozapps/locale/extensions/extensions.properties");
pref("extensions.getMoreExtensionsURL", "chrome://mozapps/locale/extensions/extensions.properties");
pref("extensions.getMoreThemesURL", "chrome://mozapps/locale/extensions/extensions.properties");
[編集] Useful Chrome URLs
branding で要求されるほとんどのものです。 Most of these require branding.
| Window | URL | Window Type |
|---|---|---|
| 拡張機能マネージャー | chrome://mozapps/content/extensions/extensions.xul?type=extensions | Extension:Manager-extensions |
| テーママネージャー | chrome://mozapps/content/extensions/extensions.xul?type=themes | Extension:Manager-themes |
| JavaScript Console | chrome://global/content/console.xul | global:console |
| about:config | chrome://global/content/config.xul |
[編集] Developer Extensions
--Tlaurenzo 17:34, 17 March 2006 (PST) これは拡張機能を開発する一つの方法です。Venkman を起動させる方法及び拡張機能開発者によるXULRunner アプリで動く拡張についての私の blog post を見てください。
[編集] Venkman
- カスタムビルドもしくは互換性のある拡張機能が必要<1.8.0.1 向けのダウンロード可能な venkman/domi ?>
- application.iniの id と version に合うように install.rdf を互換性があるように書き換えが必要
- venkman を起動させるメソッドが必要(通常はメインの XUL ファイルをオーバーレイします。同じようなコードがFirefox や Suite などにあります。)
- toOpenWindowByType() 関数を定義する必要があります。私は動作する断片をこのblogで見つけました。他に良い提案はありますか?
- 他に何かあります?
[編集] DOM Inspector
venkmanと同じです
[編集] Component Viewer
まず第一にカスタムビルドが必要です。他に何か?
[編集] Extension Developer's Extension
Extension Developer's Extension は役に立つツールで、Live XUL Editor や JavaScript Shell といった機能があります。
この拡張機能をあなたのアプリケーションにインストールするには、install.rdfをハックする必要があります(上記参照)。おそらく、JS Shellやこの拡張で提供されている機能を開くための menuitem を作りたいと思うでしょう。
[編集] Branding
Branding はプロダクト固有の情報(例えば、プロダクト名、ベンダー、そしてロゴ)を含むchrome package です。
いくつかの XULRunner のコンポーネント (特に、拡張機能マネージャー) は branding に依存しているため、chrome://branding/locale/brand.dtd と chrome://branding/locale/brand.properties に特定の文字列を見つかる事を期待しています。
これらの依存性を満たしているため、Firefox の brand.dtd/brand.properties を chrome/locale/branding フォルダに保存する事ができ、適当にいじってみて、 次の行をあなたの chrome manifestに追加する事で branding を ローカルプロバイダのレジストします:
locale branding en-US chrome/locale/branding/
branding ファイルの配置位置は気にしなくて良く、manifest に適切にレジストをすれば良いです。
[編集] Making Windows display correct application name and icon when buttons are grouped
標準では、Windowsのタスクバーは同じプロセスの window をスペースを省略するために一つのボタンにまとめます。このボタンは通常は "xulrunner.exe" と呼ばれ、 XULRunner のアイコンを持ちます。起動したアプリケーションの名称を表示させる二つのアプローチがあります:
-
あなた自身でXULRunnerをコンパイルする場合: mozilla/xulrunner/app に module.ver ファイルを作成して次の内容とします:
When compiling XULRunner yourself: create a file module.ver in the directory mozilla/xulrunner/app with the contents:
WIN32_MODULE_DESCRIPTION=MyApplication
MyApplication はボタンのタイトルとして見せたいものに置き換えてください。また、同じディレクトリにある xulrunner.ico アイコンをあなたのアプリケーションのアイコンに置き換える事もできます。
- すでにコンパイルされているXULRunnerの場合: xulrunner-stub.exe をアプリケーションの起動に使い、それを MyApplication.exe とリネームします。XULRunner 1.9 であればタスクバー内で望んだ名前になるでしょう(しかしながら、XULRunner 1.8 ではなりません)。アプリケーションのアイコンもこの実行ファイルを Resource Hacker のようなツールを用いて追加することができます。注意: trunk ビルドの xulrunner-stub は現在のところ bug 386152 が原因で落ちてしまいます。
[編集] Reading command line arguments
Chrome: Command Line を見てください。コマンドライン引数は nsICommandLineHandler でハンドルするのが普通です。
[編集] Preferences needed for file download dialogs
unknown-content-type と file-downloads ダイアログを <browser> 要素から使うには、次の prefs を追加する必要があります:
pref("browser.download.useDownloadDir", true);
pref("browser.download.folderList", 0);
pref("browser.download.manager.showAlertOnComplete", true);
pref("browser.download.manager.showAlertInterval", 2000);
pref("browser.download.manager.retention", 2);
pref("browser.download.manager.showWhenStarting", true);
pref("browser.download.manager.useWindow", true);
pref("browser.download.manager.closeWhenDone", true);
pref("browser.download.manager.openDelay", 0);
pref("browser.download.manager.focusWhenStarting", false);
pref("browser.download.manager.flashCount", 2);
//
pref("alerts.slideIncrement", 1);
pref("alerts.slideIncrementTime", 10);
pref("alerts.totalOpenTime", 4000);
pref("alerts.height", 50);
ダイアログを要求する設定を失敗してしまうと、次のようなエラーを受け取るでしょう:
Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIPrefBranch.getBoolPref] Error: dialog has no properties Source File: chrome://mozapps/content/downloads/unknownContentType.xul Line: 1
[編集] Enabling Password Manager
これらの設定は Firefox では標準になっていますが、しかしながら、XULRunner では設定されていません。これらの設定なしでは Password Manager はログインの詳細を保存しないでしょう。
pref("signon.rememberSignons", true);
pref("signon.expireMasterPassword", false);
pref("signon.SignonFileName", "signons.txt");
[編集] Troubleshooting
[編集] Window title missing
もし、XUL <window> のタイトルが空っぽで、 title 要素に設定しているのであれば、XULファイルの拡張子が .xml でなくて .xul であるかを確認してください。