| パラダイム | 宣言型(マークアップ言語) |
|---|---|
| 開発者 | モジラ財団 |
| 実装言語 | C++ |
| プラットフォーム | ヤモリ |
| OS | クロスプラットフォーム |
| ライセンス | マルチプル |
| ファイル名拡張子 | .xulMIMEタイプ: application/vnd.mozilla.xul+xml |
| Webサイト | https://wiki.mozilla.org/XUL:Home_Page |
| 主な実装 | |
| モジラ | |
| 影響を受けた | |
| HTML、XML | |
XUL ( / ˈz uː l / ZOOL )は、 XML ユーザー インターフェイス言語の略で、Mozillaが開発したユーザー インターフェイス マークアップ言語です。XUL はグラフィカル ユーザー インターフェイスを記述するためのXML方言であり、開発者がWeb ページと同様の方法でユーザー インターフェイス要素を記述できるようにします。
XULアプリケーションはMozillaのコードベースまたはそのフォークに依存しています。最も顕著な例はFirefoxウェブブラウザです。しかし、Mozillaはバージョン57でブラウザエンジンを書き換えた後、FirefoxでのXULの使用を大幅に削減しました。[1] [2]その結果、XULとXPCOMに依存していた従来のアドオンシステムが削除されました。XPCOMは、MozillaがFirefox 57のリリース直前に廃止することを決定した別のクロスプラットフォーム技術です。Firefoxは当初、アドオンによるユーザーインターフェースの大幅な変更を許可していましたが、この機能は2017年に削除され、より制限されたWebExtensions APIに置き換えられました。[3] [4] Firefoxのいくつかのフォークは、XULおよびXPCOMベースのアドオンのサポートを維持しています。Waterfoxは、Waterfox Classicブラウザ用に従来のMozillaコードベースのフォークを維持しています。[5] Pale Moonブラウザ、[6] Basiliskブラウザ、[7] Hyperbolaオペレーティングシステム、[8]および多数の小規模プロジェクトがUnified XUL Platform (UXP)実装を共同で使用し、保守しています。
歴史

XULは、最終的にMozillaコードベースとなった開発の一環として、1997年にNetscapeで考案されました。[9] XULは、 Geckoレンダリングエンジンによって実装されたWebテクノロジに似ています。XULが導入されたとき、当時の標準HTML 4を超える機能が追加されました。XULは、ドキュメントではなくアプリケーションで使用されるHTMLの拡張機能として設計されました。[10]
XUL は、さまざまな Mozilla プロジェクト、 Mozilla プロジェクトのフォーク、およびMozillaに密接に関連するプロジェクトで使用されていました。Songbird 、Komodo IDE、Zoteroなどの一部のソフトウェア プロジェクトは、 UI のレンダリングと構成にXULRunner を使用するデスクトップ アプリケーションとして始まりました。2000 年代初頭には、Amazonなど他の関係者が XUL の使用に関心を示しましたが、[11]これらはHTML5に切り替えました。[1] [2] HTML5、CSS3、ECMAScript 5+、WebGL、WebAssembly などの最新の Web テクノロジの多くの機能は、Adobe Flash、Silverlight、Java、Shockwaveなどの従来のNPAPI / PPAPI / ActiveXブラウザー プラグイン テクノロジを必要とせずに、リッチで最新の Web アプリケーションを可能にしましたが、これも XUL を不要にしました。[10]
Mozillaは2017年11月にFirefox 57(Firefox Quantumとも呼ばれる)をリリースした。この一環として、Firefoxはマルチプロセスアーキテクチャへの移行を完了した。このアーキテクチャではXULアドオンは動作できたが、しばしば重大なパフォーマンス問題を引き起こした。このため、MozillaはカスタムXULコードの使用を含むレガシーアドオンのサポートを削除した。 [3] [4] Mozillaはブラウザ拡張機能システムをクロスブラウザのWebExtensions APIに切り替えた。これは主にChrome拡張機能APIに基づいている。2017年後半、Firefoxにはネイティブブラウザコンポーネント用の289個のXULバインディングがまだ含まれていた。2019年末までに、MozillaはリポジトリからすべてのXULファイルを削除したmozilla-central。[12] [1] [2]
MozillaがFirefoxのサポートを削除したとき、 XULを使用しているアプリケーションはまだいくつかありました。Mozillaは、電子メールクライアントThunderbirdからXULのサポートを徐々に削除し始めました。彼らは2020年にXULベースの拡張機能をサポートしないThunderbird 78をリリースしました。[13] SeaMonkeyインターネットスイートは、Firefox Quantumコードベース用にXULを再実装することを選択しましたが、その後スイートの開発は遅くなりました。Pale Moonの開発者は、MozillaのFirefox 52 ESRコードベース全体をフォークして、 Goannaレンダリングエンジン用のUnified XUL Platform (UXP)を作成しました。UXPは従来のXUL機能を維持しています。[14]その結果、Pale Moonやその他のUXPアプリケーションはシングルプロセスのままですが、FirefoxやThunderbirdの最新バージョンと比較して拡張性が高くなっています。[15]
使用法
XULは、 Gecko(またはGoanna)エンジンがXULレンダリングを行うため、 Mozilla コードベース(またはそのフォーク)でのみ使用できます。 [16]
アプリケーション プログラマーは、XUL インターフェイスを 3 つの個別のコンポーネント セットとして定義する必要があります。
- コンテンツ:ユーザーインターフェースのレイアウトを定義する要素を含む XUL ドキュメント
- スキン: アプリケーションの外観を定義する CSS および画像ファイル
- ロケール:ソフトウェアのローカライズを容易にするためにユーザーに表示される文字列を含むファイル
XUL は幅広い要素を定義しており、それらはおおよそ次のタイプに属します。
- 最上位要素: window、 page 、dialog、wizardなど。
- ウィジェット: ラベル、ボタン、テキスト ボックス、リスト ボックス、コンボ ボックス、ラジオ ボタン、チェック ボックス、ツリー、メニュー、ツールバー、グループ ボックス、タブ ボックス、カラー ピッカー、スペーサー、スプリッターなど。
- ボックス モデル: ボックス、グリッド、スタック、デッキなど。
- イベントとスクリプト: スクリプト、コマンド、キー、ブロードキャスター、オブザーバーなど。
- データ ソース: テンプレート、ルールなど
- その他: オーバーレイ、iframe、ブラウザ、エディターなど。
XUL ウィジェットのデフォルトの動作は、XBLバインディングを使用して変更できます。
エクセル
XML バインディング言語 ( XBL ) は、スクロールバーなどのXULウィジェットの動作を変更するためのXMLベースのマークアップ言語です。[17] [18] XBL ファイルには、それぞれが XUL ウィジェットの動作を記述するバインディングが含まれています。XBL ファイルのルート要素は要素で、1 つ以上の要素が含まれます。各要素は 1 つのバインディングを宣言し、任意の XUL 要素に添付できます。また、属性を持つこともできます。バインディングは、バインディングのファイルのURLを CSS プロパティに設定することで要素に割り当てられます。 [19]たとえば、次のように
なります。<bindings><binding><binding>id-moz-binding
スクロールバー{ -moz-バインディング: url ( 'somefile.xml#binding1' ); }
例
この例では、垂直ボックスコンテナ内に3つのボタンが重ねて配置されています。[20]

<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<window id= "vbox example" title= "例 3...." xmlns= "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" > <layout> < button id= "yes1" label= "はい" /> <button id= "no1" label= "いいえ" /> <button id= "maybe1" label= "たぶん" /> </layout> </window>
ゴーストバスターズ参照
XUL には 1984 年の映画『ゴーストバスターズ』への言及が含まれています。[21]この映画の敵役は架空の神、ゲートキーパーのズールです。[22]ズールはダナ・バレットというキャラクターに憑依し、「ダナなんていない。あるのはズールだけだ」と宣言します。 [23] [21]ズールと同じ発音の XUL の作者は、[24]「データなんてない。あるのは XUL だけだ!」というスローガンを作りました。[25]このスローガンとゲートキーパーとしてのズールは XUL のXML 名前空間 URIで参照されており、以前はすべての Firefox アドオンに存在していました。[21]
http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul— モジラ[21]
参照
参考文献
- ^ abc Hirsch, Jared (2018年9月2日). 「Life After XUL」. Mozilla Developer Network (MDN) . Mozilla. 2018年11月29日時点のオリジナルよりアーカイブ。 2018年11月28日閲覧。
- ^ abc 「XUL の問題」mozilla.github.io . 2019 年6 月 7 日閲覧。
- ^ ab 「Firefox 57.0、すべての新機能、更新、修正をご覧ください」。Mozilla 。 2017年11月14日。 2022年9月27日閲覧。
- ^ ab Kev Needham (2015 年 8 月 21 日). 「Firefox アドオン開発の将来」. blog.mozilla.org . 2018 年4 月 2 日閲覧。
- ^ Kontos, Alex (2018年4月28日). 「Waterfox、その遺産と未来への展望」。Waterfoxブログ。 2018年6月20日閲覧。
- ^ 「Pale Moon future roadmap」. palemoon.org . Moonchild Productions. 2022年3月23日. 2018年4月2日閲覧。
- ^ Brinkmann, Martin (2017年11月17日). 「Pale MoonチームがBasiliskブラウザの最初のバージョンをリリース」. Ghacks Technology News . 2018年4月2日閲覧。
- ^ Iceweasel-UXP プロジェクトページ 2021 年 12 月 29 日にWayback Machineにアーカイブされました
- ^ Jorge O. Castro (2004年6月15日). 「Ars TechnicaがMozilla.orgのScott Collins氏と対談」 Ars Technica . 2018年11月28日閲覧。
- ^ ab Teller, David (2020 年 8 月 20 日). 「なぜ Mozilla は XUL アドオンを削除したのか?」
- ^ King, Brian (2003 年 2 月 5 日). 「Mozilla によるリモート アプリケーション開発、パート 2: Mozilla Amazon Browser (MAB) のケース スタディ」. Oreillynet . 2012 年 2 月 18 日時点のオリジナルからのアーカイブ。Mozilla
Amazon Browser は、いくつかの理由から興味深いケース スタディです。まず、これは実際に動作するプロトタイプ アプリケーションであり、テクノロジのデモンストレーションのみを目的として作成された例ではありません。次に、これはリモート開発に対する Mozilla のサポートの多くの領域をテストし、リモート XUL アプリケーションの機能、可能性、および制限を示しています。最後に、これは、Web アプリケーション開発の重要な新興テクノロジである Web サービスに対する Mozilla のサポートを示しています。
- ^ Grinstead, Brian (2019年12月16日). 「Firefox/XUL と XBL の置き換え」 . 2022年9月27日閲覧。
- ^ 「Thunderbird 69-78 の変更に適応する」。developer.thunderbird.net 2022年。 2022年9月27日閲覧。
- ^ Straver, Markus (2017 年 11 月 2 日). 「UXP vs goanna」 . 2022 年9 月 27 日閲覧。
計画では、Pale Moon を現在のプラットフォームから UXP に切り替えることになっています (長期計画)。これは、開発され、保守されている XUL ベースのプラットフォームが、XUL アプリケーション (Pale Moon など) が陳腐化することなく生き残る唯一の方法であり、Mozilla はこの技術を放棄したためです。これが、私がこのプラットフォームから始めることに決めた主な理由です。いずれにせよ、このプラットフォームは Pale Moon の将来の潜在的な用途のためだけに開発されるのではなく、そうでなければ死んでしまう将来の XUL アプリケーションのために開発されます。基本的に、私たちはあらゆる種類の XUL アプリケーション用のプラットフォームの開発と保守のバトンを Mozilla から引き継いでいます。Mozilla は「上流」ではないため、そう見なされるべきではありません。
- ^ Tobin, Matt. 「There is only XUL」。2018年9月17日時点のオリジナルよりアーカイブ。2018年9月18日閲覧。
- ^ “Gecko FAQ | MDN”. developer.mozilla.org . 2019年10月8日時点のオリジナルよりアーカイブ。 2021年1月5日閲覧。
- ^ Castro, Jorge O. (2004年6月15日). 「Ars Technica sits down with Scott Collins from Mozilla.org」Ars Technica . p. 2. 2018年2月22日時点のオリジナルよりアーカイブ。 2018年11月28日閲覧。
- ^ 「XBL 2.0 謝辞」。www.w3.org。
- ^ 「XBL 2.0」。www.w3.org。
- ^ “The Box Model - Mozilla | MDN”. 2017年12月9日. 2017年12月9日時点のオリジナルよりアーカイブ。 2021年1月5日閲覧。
- ^ abcd Frederick, Gail; Lal, Rajesh (2010 年 4 月 15 日)。スマートフォン Web 開発入門: iPhone、Android、Palm Pre、BlackBerry、Windows Mobile、Nokia S60 向け JavaScript、CSS、HTML、Ajax ベースのアプリケーションの構築 。Apress。p . 23。ISBN 978-1-4302-2621-5。
- ^ ガルシア・ベンチュラ、アグネス、ヴェルデラーメ、ロレンツォ(2020年3月1日)。大衆文化とその先における古代近東の受容。ロックウッド・プレス。109ページ。ISBN 978-1-948488-25-9。
- ^ クインラン、エリン(2014年6月6日)。「『ゴーストバスターズ』30周年:映画の超自然的知恵を再考する」トゥデイ。 2024年5月25日閲覧。
- ^ ホルツナー、スティーブン (2001)。 XML の内部。新しいライダーたち。 p. 47.ISBN 978-0-7357-1020-7。
- ^ 「Mozilla XML 名前空間」。www.mozilla.org。
