| XUL | |
|---|---|
| パラダイム | 宣言型(マークアップ言語) |
| 開発者 | モジラ財団 |
| 実装言語 | C++ |
| プラットフォーム | ヤモリ |
| OS | クロスプラットフォーム |
| ライセンス | MPL |
| ファイル名拡張子 | .xulMIMEタイプ:application/vnd.mozilla.xul+xml |
| Webサイト | https://wiki.mozilla.org/XUL:ホームページ |
| 主要な実装 | |
| モジラ | |
| 影響を受けた | |
| HTML、XML | |
XUL(/ ˈz uː l / ZOOL )は、 XML User Interface Languageの略で、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 ]および多数の小規模プロジェクトが共同でUnified XUL Platform(UXP)実装を使用し、保守しています。
歴史

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

<?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年の映画『ゴーストバスターズ』への参照が含まれています。[ 20 ]映画の敵役は架空の神、門番のズールです。[ 21 ]ズールはダナ・バレットというキャラクターに憑依し、「ダナなんていない。あるのはズールだけだ」と宣言します。 [ 22 ] [ 20 ]ズールと同じ発音のXULの作者は、[ 23 ]「データなんてない。あるのはXULだけだ!」というスローガンを作りました。[ 24 ]このスローガンと門番としてのズールはXULのXML名前空間URIで参照されており、以前はすべてのFirefoxアドオンに存在していました。[ 20 ]
http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul
— モジラ[ 20 ]
参照
参考文献
- ^ a b c Hirsch, Jared (2018年9月2日). 「Life After XUL」 . Mozilla Developer Network (MDN) . Mozilla. 2018年11月29日時点のオリジナルよりアーカイブ。 2018年11月28日閲覧。
- ^ a b c「XULの問題」 . mozilla.github.io . 2019年6月7日閲覧。
- ^ a b「Firefox 57.0、新機能、アップデート、修正点をすべて見る」 Mozilla 、 2017年11月14日。 2022年9月27日閲覧。
- ^ a b Kev Needham (2015年8月21日). 「Firefoxアドオン開発の未来」 . blog.mozilla.org . 2018年4月2日閲覧。
- ^ Kontos, Alex (2018年4月28日). 「Waterfox、その遺産と未来への展望」 . Waterfoxブログ. 2019年4月12日時点のオリジナルよりアーカイブ。 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日閲覧。
- ^ Jorge O. Castro (2004年6月15日). 「Ars TechnicaがMozilla.orgのScott Collins氏にインタビュー」 . Ars Technica . 2018年11月28日閲覧。
- ^ a b 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」 .オリジナルから2020年11月11日アーカイブ. 2022年9月27日閲覧。Pale
Moonを現在のプラットフォームからUXPに移行する計画(長期計画)です。Mozillaがこの技術を放棄した今、XULベースのプラットフォームを開発・保守することが、XULアプリケーション(Pale Moonなど)が陳腐化することなく生き残る唯一の方法だからです。これが、私がこのプラットフォームで開発を始めることにした主な理由です!いずれにせよ、このプラットフォームは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日閲覧。
- ^ a b c dフレデリック、ゲイル、ラル、ラジェシュ(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 .