Please note, this is a STATIC archive of website developer.mozilla.org from November 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

XULRunner tips

XULRunner の一般的な質問について。これは作業中のドキュメントです。

Extension Manager

拡張機能をインストールできるようにするには、まず最初に application.ini で拡張機能マネージャーを有効にする必要があります。 XULRunner 1.8.0 はアプリケーションのディレクトリから拡張を読み込む事ができません; XULRunner のディレクトリとユーザプロファイルのディレクトリはチェックされます。次の pref をセットする事で XPInstall ダイアログ、拡張機能マネージャー、そしてテーママネージャーが動作するでしょう:

pref("xpinstall.dialog.confirm", "chrome://mozapps/content/xpinstall/x...allConfirm.xul");
pref("xpinstall.dialog.progress.skin", "chrome://mozapps/content/extensions/...ul?type=themes");
pref("xpinstall.dialog.progress.chrome", "chrome://mozapps/content/extensions/...ype=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/e...ons.properties");
pref("extensions.getMoreExtensionsURL", "chrome://mozapps/locale/extensions/e...ons.properties");
pref("extensions.getMoreThemesURL", "chrome://mozapps/locale/extensions/e...ons.properties");

Useful Chrome URLs

branding で要求されるほとんどのものです。 Most of these require branding.

WindowURLWindow Type
拡張機能マネージャー chrome://mozapps/content/extensions/...ype=extensions Extension:Manager-extensions
テーママネージャー chrome://mozapps/content/extensions/...ul?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 に依存しているため、<tt>chrome://branding/locale/brand.dtd</tt> と <tt>chrome://branding/locale/brand.properties</tt> に特定の文字列を見つかる事を期待しています。

これらの依存性を満たしているため、Firefox の <tt>brand.dtd</tt>/<tt>brand.properties</tt> を <tt>chrome/locale/branding</tt> フォルダに保存する事ができ、適当にいじってみて、 次の行をあなたの chrome manifestに追加する事で <tt>branding</tt> を ローカルプロバイダのレジストします:

locale branding en-US chrome/locale/branding/

branding ファイルの配置位置は気にしなくて良く、manifest に適切にレジストをすれば良いです。

In ''~.mozconfig'': ac_add_options --enable-branding=? branding location ?

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 でハンドルするのが普通です。

= Can i have JavaScript errors / warnings directed to stdout instead of the jsconsole? = See #306263 This doesn't do anything (1.8.0.1): xulrunner -app application.ini -console This neither (1.8.0.1) in ''defaults/preferences/?application name?.js'': pref("javascript.options.strict", true); pref("javascript.options.showInConsole", true); pref("browser.dom.window.dump.enabled", true);


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/u...ontentType.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ファイルの拡張子が <tt>.xml</tt> でなくて <tt>.xul</tt> であるかを確認してください。

ドキュメントのタグと貢献者

タグ: 
 このページの貢献者: Mgjbot, Btm
 最終更新者: Mgjbot,