Jump to content

XUL: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Adding local short description: "User interface markup language" (Shortdesc helper)
Mozilla is removing XUL from firefox. As of today, there are only 29 bindings, 242 previously on Jan 12 2018.
Line 30: Line 30:
'''XUL''' ({{IPAc-en|ˈ|z|uː|l}} {{respell|ZOOL|'}}), which stands for '''XML User Interface Language''', is a [[user interface markup language]] developed by [[Mozilla]]. XUL is implemented as an [[XML]] dialect, enabling [[graphical user interface]]s to be written in a similar manner to [[web page]]s. Such [[application software|applications]] must be created using the Mozilla [[codebase]] (or a [[Fork (software development)|fork]] of it); the most prominent example is the [[Firefox]] web browser.
'''XUL''' ({{IPAc-en|ˈ|z|uː|l}} {{respell|ZOOL|'}}), which stands for '''XML User Interface Language''', is a [[user interface markup language]] developed by [[Mozilla]]. XUL is implemented as an [[XML]] dialect, enabling [[graphical user interface]]s to be written in a similar manner to [[web page]]s. Such [[application software|applications]] must be created using the Mozilla [[codebase]] (or a [[Fork (software development)|fork]] of it); the most prominent example is the [[Firefox]] web browser.


In the past, Firefox permitted [[Add-on (Mozilla)|add-ons]] to extensively alter its user interface via custom XUL code, but this capability was removed in Firefox 57 and replaced with the less-permissive [[Browser extension#API conformity|WebExtensions API]].<ref name="57rel">[https://www.mozilla.org/en-US/firefox/57.0/releasenotes/ Firefox 57 release notes]</ref><ref name="2015blog">{{cite web|title=The Future of Developing Firefox Add-ons|url=https://blog.mozilla.org/addons/2015/08/21/the-future-of-developing-firefox-add-ons/|date=2015-08-21|author=Kev Needham|accessdate=2018-04-02|website=blog.mozilla.org}}</ref> (Three forks of Firefox still support the legacy capability: [[Pale Moon (web browser)|Pale Moon]],<ref>{{cite web|url=https://www.palemoon.org/roadmap.shtml |title=Pale Moon future roadmap | accessdate=2018-04-02 |publisher=[[Pale Moon (web browser)|Pale Moon]]}}</ref> [[Basilisk (web browser)|Basilisk]],<ref>{{cite web|title=Pale Moon team releases first version of Basilisk browser|url=https://www.ghacks.net/2017/11/17/pale-moon-team-releases-first-version-of-basilisk-browser/|website=ghacks.net|date=2017-11-17|accessdate=2018-04-02}}</ref> [[Waterfox]].<ref>{{cite web|title=Waterfox, Its Legacy and Looking to the Future|url=https://blog.waterfoxproject.org/waterfox-its-legacy-and-looking-to-the-future|website=Waterfox blog|date=2018-04-28|accessdate=2018-06-20}}</ref>)
In the past, Firefox permitted [[Add-on (Mozilla)|add-ons]] to extensively alter its user interface via custom XUL code, but this capability was removed in Firefox 57 and replaced with the less-permissive [[Browser extension#API conformity|WebExtensions API]].<ref name="57rel">[https://www.mozilla.org/en-US/firefox/57.0/releasenotes/ Firefox 57 release notes]</ref><ref name="2015blog">{{cite web|title=The Future of Developing Firefox Add-ons|url=https://blog.mozilla.org/addons/2015/08/21/the-future-of-developing-firefox-add-ons/|date=2015-08-21|author=Kev Needham|accessdate=2018-04-02|website=blog.mozilla.org}}</ref> However, three forks of Firefox still support the legacy capability: [[Pale Moon (web browser)|Pale Moon]],<ref>{{cite web|url=https://www.palemoon.org/roadmap.shtml |title=Pale Moon future roadmap | accessdate=2018-04-02 |publisher=[[Pale Moon (web browser)|Pale Moon]]}}</ref> [[Basilisk (web browser)|Basilisk]],<ref>{{cite web|title=Pale Moon team releases first version of Basilisk browser|url=https://www.ghacks.net/2017/11/17/pale-moon-team-releases-first-version-of-basilisk-browser/|website=ghacks.net|date=2017-11-17|accessdate=2018-04-02}}</ref> and [[Waterfox]].<ref>{{cite web|title=Waterfox, Its Legacy and Looking to the Future|url=https://blog.waterfoxproject.org/waterfox-its-legacy-and-looking-to-the-future|website=Waterfox blog|date=2018-04-28|accessdate=2018-06-20}}</ref> Mozilla has now since started removing all XUL from Firefox.<ref>{{Cite web|url=https://mozilla.github.io/firefox-browser-architecture/text/0003-problems-with-xul.html|title=Problems with XUL|website=mozilla.github.io|access-date=2019-06-07}}</ref><ref>{{Cite web|url=https://mail.mozilla.org/pipermail/firefox-dev/2017-January/004975.html|title=Deprecating XUL in new UI|last=Clark|first=Bryan|date=Wed Jan 18 22:34:01 UTC 2017|website=mail.mozilla.org Mailing Lists|archive-url=|archive-date=|dead-url=|access-date=2019-06-07}}</ref>


== History ==
== History ==

Revision as of 21:53, 7 June 2019

XUL
ParadigmDeclarative (markup language)
DeveloperMozilla Foundation
Implementation languageC++
PlatformGecko
OSCross-platform
LicenseMPL
Filename extensions.xul
MIME type: application/vnd.mozilla.xul+xml
Websitehttps://developer.mozilla.org/en-US/XUL
Major implementations
Mozilla
Influenced by
HTML, XML

XUL (/ˈzl/ ZOOL), which stands for XML User Interface Language, is a user interface markup language developed by Mozilla. XUL is implemented as an XML dialect, enabling graphical user interfaces to be written in a similar manner to web pages. Such applications must be created using the Mozilla codebase (or a fork of it); the most prominent example is the Firefox web browser.

In the past, Firefox permitted add-ons to extensively alter its user interface via custom XUL code, but this capability was removed in Firefox 57 and replaced with the less-permissive WebExtensions API.[1][2] However, three forks of Firefox still support the legacy capability: Pale Moon,[3] Basilisk,[4] and Waterfox.[5] Mozilla has now since started removing all XUL from Firefox.[6][7]

History

XUL was devised at Netscape in 1997 as part of the development effort that eventually became the Mozilla codebase.[8] It never gained much traction outside of Mozilla or its forks. In the early 2000s there was some interest in using XUL by other parties, including Amazon,[9] but that dried up with the advent of HTML5.

With the release of Firefox 57 in 2017, Mozilla removed support for legacy add-ons, including the use of custom XUL code.[1][2] This was a key step in the organization's long-term goal of reducing XUL usage in Firefox and replacing it with HTML5 alternatives.[10] However, the UXP fork of the codebase maintains the traditional XUL capabilities.[11][12]

Usage

XUL can only be used with the Mozilla codebase (or a fork of it) because the Gecko engine does the XUL rendering.[13]

Application programmers need to define a XUL interface as three discrete sets of components:

  1. Content: the XUL document(s), whose elements define the layout of the user interface
  2. Skin: the CSS and image files, which define the appearance of an application
  3. Locale: the files containing user-visible strings for easy software localization

XUL defines a wide range of elements, which roughly belong to the following types:

The default behavior of XUL widgets can be altered with XBL bindings.

Example

This example shows three buttons stacked on top of each other in a vertical box container:[14]

<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>

<window id="vbox example" title="Example 3...."
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
  <vbox>
    <button id="yes1" label="Yes"/>
    <button id="no1" label="No"/>
    <button id="maybe1" label="Maybe"/>
  </vbox>
</window>

Ghostbusters reference

The villain of the 1984 film Ghostbusters was a deity called Zuul who possesses the character Dana Barrett and declares, "There is no Dana. There is only Zuul".[15] The creators of XUL, which is pronounced the same as Zuul, made the slogan "There is no data. There is only XUL!", part of which became the XML namespace.[16]

References

  1. ^ a b Firefox 57 release notes
  2. ^ a b Kev Needham (2015-08-21). "The Future of Developing Firefox Add-ons". blog.mozilla.org. Retrieved 2018-04-02.
  3. ^ "Pale Moon future roadmap". Pale Moon. Retrieved 2018-04-02.
  4. ^ "Pale Moon team releases first version of Basilisk browser". ghacks.net. 2017-11-17. Retrieved 2018-04-02.
  5. ^ "Waterfox, Its Legacy and Looking to the Future". Waterfox blog. 2018-04-28. Retrieved 2018-06-20.
  6. ^ "Problems with XUL". mozilla.github.io. Retrieved 2019-06-07.
  7. ^ Clark, Bryan (Wed Jan 18 22:34:01 UTC 2017). "Deprecating XUL in new UI". mail.mozilla.org Mailing Lists. Retrieved 2019-06-07. {{cite web}}: Check date values in: |date= (help); Cite has empty unknown parameter: |dead-url= (help)
  8. ^ Jorge O. Castro (2004-06-15). "Ars Technica sits down with Scott Collins from Mozilla.org". Ars Technica. Retrieved 2018-11-28.
  9. ^ "Remote Application Development with Mozilla, Part 2: A Case Study of the Mozilla Amazon Browser (MAB)". Oreillynet. 2003-02-05.
  10. ^ "Life After XUL". Mozilla. Retrieved 28 November 2018.
  11. ^ "UXP vs goanna".
  12. ^ "There is only XUL". Retrieved 18 September 2018.
  13. ^ "Gecko FAQ". Mozilla Developer Center. Mozilla Foundation. 2008-03-15. Retrieved 2009-03-26.
  14. ^ The Box Model - XUL | MDN. Developer.mozilla.org (2012-12-16). Retrieved on 2014-03-28.
  15. ^ Ghostbusters clip
  16. ^ Mozilla XML Namespace