XUL

XUL
パラダイム宣言型(マークアップ言語
開発者モジラ財団
実装言語C++
プラットフォームヤモリ
OSクロスプラットフォーム
ライセンスMPL
ファイル名拡張子.xulMIMEタイプ:application/vnd.mozilla.xul+xml
Webサイトhttps://wiki.mozilla.org/XUL:ホームページ
主要な実装
モジラ
影響を受けた
HTMLXML

XUL/ ˈz 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ベースのアドオンのサポートを継続しています。WaterfoxWaterfox Classicブラウザ用に従来のMozillaコードベースのフォークを維持しています。[ 5 ] Pale Moonブラウザ、[ 6 ] Basiliskブラウザ、[ 7 ]および多数の小規模プロジェクトが共同でUnified XUL Platform(UXP)実装を使用し、保守しています。

歴史

XUL 要素の周期表は、XUL の機能を実証するために設計されたリファレンス拡張機能です。

XULは、後にMozillaコードベースとなる開発の一環として、1997年にNetscapeで考案されました。[ 8 ] XULは、 Geckoレンダリングエンジンによって実装されたWeb技術に類似しています。XULが導入された際、当時の標準HTML 4を超える機能が追加されました。XULは、ドキュメントではなくアプリケーションで使用されるHTMLの拡張機能として設計されました。[ 9 ]

XULは、様々なMozillaプロジェクト、 Mozillaプロジェクトのフォーク、Mozillaに関連のあるプロジェクトで使用されていました。Songbird 、Komodo IDEZoteroなどのソフトウェアプロジェクトは、UIのレンダリングと構成にXULRunnerを使用するデスクトップアプリケーションとして始まりました。2000年代初頭には、 Amazonなど他の関係者がXULを使用することに興味を示しましたが、[ 10 ] これらはHTML5に切り替えました。[ 1 ] [ 2 ] HTML5、CSS3、ECMAScript 5+、WebGL、WebAssemblyなどの最新のWeb技術の多くの機能は、 Adobe Flash 、SilverlightJavaShockwaveなどの従来の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 つの個別のコンポーネント セットとして定義する必要があります。

  1. コンテンツ:ユーザーインターフェースのレイアウトを定義する要素を含む XUL ドキュメント
  2. スキン: アプリケーションの外観を定義する CSS および画像ファイル
  3. ロケール:ソフトウェアのローカライズを容易にするためにユーザーに表示される文字列を含むファイル

XUL は幅広い要素を定義しており、それらはおおよそ次のタイプに属します。

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 ]

参照

参考文献

  1. ^ a b c Hirsch, Jared (2018年9月2日). 「Life After XUL」 . Mozilla Developer Network (MDN) . Mozilla. 2018年11月29日時点のオリジナルよりアーカイブ。 2018年11月28日閲覧
  2. ^ a b c「XULの問題」 . mozilla.github.io . 2019年6月7日閲覧
  3. ^ a b「Firefox 57.0、新機能、アップデート、修正点をすべて見る」 Mozilla 2017年11月14日。 2022年9月27日閲覧
  4. ^ a b Kev Needham (2015年8月21日). 「Firefoxアドオン開発の未来」 . blog.mozilla.org . 2018年4月2日閲覧
  5. ^ Kontos, Alex (2018年4月28日). 「Waterfox、その遺産と未来への展望」 . Waterfoxブログ. 2019年4月12日時点のオリジナルよりアーカイブ。 2018年6月20日閲覧
  6. ^ 「Pale Moon future roadmap」palemoon.org . Moonchild Productions. 2022年3月23日. 2018年4月2日閲覧
  7. ^ Brinkmann, Martin (2017年11月17日). 「Pale MoonチームがBasiliskブラウザの初版をリリース」 . Ghacks Technology News . 2018年4月2日閲覧。
  8. ^ Jorge O. Castro (2004年6月15日). 「Ars TechnicaがMozilla.orgのScott Collins氏にインタビュー」 . Ars Technica . 2018年11月28日閲覧。
  9. ^ a b Teller, David (2020年8月20日). 「なぜMozillaはXULアドオンを削除したのか?」 .
  10. ^ King, Brian (2003年2月5日). 「Mozillaによるリモートアプリケーション開発 パート2:Mozilla Amazon Browser (MAB)のケーススタディ」 . Oreillynet . 2012年2月18日時点のオリジナルよりアーカイブ。Mozilla Amazon Browserは、いくつかの理由から興味深いケーススタディです。第一に、これは実際に動作するプロトタイプアプリケーションであり、技術のデモンストレーションのみを目的として構築された例ではありません。第二に、Mozillaのリモート開発サポートの多くの領域を検証することで、リモートXULアプリケーションの機能、可能性、そして限界を示しています。最後に、Webアプリケーション開発における重要な新興技術であるWebサービスに対するMozillaのサポートを実証しています。
  11. ^ Grinstead, Brian (2019年12月16日). 「Firefox/XULとXBLの代替」 . 2022年9月27日閲覧
  12. ^ 「Thunderbird 69-78の変更への適応」 . developer.thunderbird.net . 2022年. 2022年9月27日閲覧
  13. ^ 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は「上流」ではありませんので、そうではありません。
  14. ^ Tobin, Matt. 「There is only XUL」 . 2018年9月17日時点のオリジナルよりアーカイブ。 2018年9月18日閲覧
  15. ^ “Gecko FAQ | MDN” . developer.mozilla.org . 2019年10月8日時点のオリジナルよりアーカイブ2021年1月5日閲覧。
  16. ^ 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日閲覧
  17. ^ 「XBL 2.0 謝辞」 . www.w3.org .
  18. ^ 「 XBL 2.0」。www.w3.org
  19. ^ “The Box Model - Mozilla | MDN” . 2017年12月9日. 2017年12月9日時点のオリジナルよりアーカイブ。 2021年1月5日閲覧
  20. ^ 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
  21. ^ガルシア=ベンチュラ、アグネス、ヴェルデラーメ、ロレンゾ(2020年3月1日)。『大衆文化とその先における古代近東の受容』ロックウッド・プレス、109ページ。ISBN 978-1-948488-25-9
  22. ^クインラン、エリン(2014年6月6日)「『ゴーストバスターズ』公開30周年:映画の超自然的知恵を再考」今日。 2024年5月25日閲覧
  23. ^ホルツナー、スティーブン (2001)。XML の内部。新しいライダーたち。 p. 47.ISBN 978-0-7357-1020-7
  24. ^ 「Mozilla XML 名前空間」 . www.mozilla.org .