Jump to content

XUL: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
AnomieBOT (talk | contribs)
m Dating maintenance tags: {{Cn}}
Line 34: Line 34:
== History ==
== History ==


XUL was devised at [[Netscape]] in 1997 as part of the development effort that eventually became the [[Mozilla]] [[codebase]].<ref>{{cite web |url = https://arstechnica.com/information-technology/2004/06/collins-interview/2/ |title = Ars Technica sits down with Scott Collins from Mozilla.org |author = Jorge O. Castro |publisher = Ars Technica |date = 2004-06-15 |access-date=2018-11-28}}</ref> It never gained much traction outside of Mozilla or its [[Fork (software development)|forks]]. In the early 2000s there was some interest in using XUL by other parties, including [[Amazon (company)|Amazon]],<ref>{{cite web|url=http://www.oreillynet.com/pub/a/mozilla/2003/05/02/casestudy2.html|title=Remote Application Development with Mozilla, Part 2: A Case Study of the Mozilla Amazon Browser (MAB)|work=[[Oreillynet]] |date=2003-02-05}}</ref> but that dried up with the advent of [[HTML5]].{{Cn}}
XUL was devised at [[Netscape]] in 1997 as part of the development effort that eventually became the [[Mozilla]] [[codebase]].<ref>{{cite web |url = https://arstechnica.com/information-technology/2004/06/collins-interview/2/ |title = Ars Technica sits down with Scott Collins from Mozilla.org |author = Jorge O. Castro |publisher = Ars Technica |date = 2004-06-15 |access-date=2018-11-28}}</ref> It never gained much traction outside of Mozilla or its [[Fork (software development)|forks]]. In the early 2000s there was some interest in using XUL by other parties, including [[Amazon (company)|Amazon]],<ref>{{cite web|url=http://www.oreillynet.com/pub/a/mozilla/2003/05/02/casestudy2.html|title=Remote Application Development with Mozilla, Part 2: A Case Study of the Mozilla Amazon Browser (MAB)|work=[[Oreillynet]] |date=2003-02-05}}</ref> but that dried up with the advent of [[HTML5]].{{Cn|date=May 2021}}


With the release of Firefox 57 in 2017, Mozilla removed support for legacy [[Add-on (Mozilla)|add-ons]], including the use of custom XUL code.<ref name="57rel"/><ref name="2015blog"/> This was a key step in the organization's long-term goal of reducing XUL usage in Firefox and replacing it with HTML5 alternatives.<ref name="life after xul">{{cite web|last=|first=|date=|title=Life After XUL|url=https://developer.mozilla.org/en-US/docs/Mozilla/Tech/Life_After_XUL:_Building_Firefox_Interfaces_with_HTML|url-status=live|archive-url=|archive-date=|access-date=28 November 2018|website=|publisher=Mozilla}}</ref><ref name = "problems with xul"/> However, the [[Pale_Moon_(web_browser)#UXP|UXP]] fork of the codebase maintains the traditional XUL capabilities.<ref>{{cite web|url=https://forum.palemoon.org/viewtopic.php?f=62&t=17213|title=UXP vs goanna}}</ref><ref>{{cite web |title=There is only XUL |url=http://thereisonlyxul.org/ |access-date=18 September 2018}}</ref>
With the release of Firefox 57 in 2017, Mozilla removed support for legacy [[Add-on (Mozilla)|add-ons]], including the use of custom XUL code.<ref name="57rel"/><ref name="2015blog"/> This was a key step in the organization's long-term goal of reducing XUL usage in Firefox and replacing it with HTML5 alternatives.<ref name="life after xul">{{cite web|last=|first=|date=|title=Life After XUL|url=https://developer.mozilla.org/en-US/docs/Mozilla/Tech/Life_After_XUL:_Building_Firefox_Interfaces_with_HTML|url-status=live|archive-url=|archive-date=|access-date=28 November 2018|website=|publisher=Mozilla}}</ref><ref name = "problems with xul"/> However, the [[Pale_Moon_(web_browser)#UXP|UXP]] fork of the codebase maintains the traditional XUL capabilities.<ref>{{cite web|url=https://forum.palemoon.org/viewtopic.php?f=62&t=17213|title=UXP vs goanna}}</ref><ref>{{cite web |title=There is only XUL |url=http://thereisonlyxul.org/ |access-date=18 September 2018}}</ref>

Revision as of 03:42, 3 May 2021

XUL
ParadigmDeclarative (markup language)
DeveloperMozilla Foundation
Implementation languageC++
PlatformGecko
OSCross-platform
LicenseMPL
Filename extensions.xul
MIME type: application/vnd.mozilla.xul+xml
WebsiteOfficial documentation
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 an XML dialect for writing graphical user interfaces, enabling developers to write user interface elements in a manner similar to web pages.

XUL applications rely on the Mozilla codebase (or a fork of it); the most prominent example is the Firefox web browser. However, in recent years, Mozilla has been reducing the usage of XUL in Firefox.[1][2] The most notable example is the removal of add-on customization. Firefox originally permitted add-ons to extensively alter its user interface via custom XUL code, but this capability was removed in 2017 and replaced with the less-permissive WebExtensions API.[3][4] Several forks of Firefox, such as Pale Moon,[5] Basilisk,[6] and Waterfox,[7] retain support for XUL add-ons.

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.[citation needed]

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

Usage

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

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:[13]

<?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">
  <layout>
    <button id="yes1" label="Yes"/>
    <button id="no1" label="No"/>
    <button id="maybe1" label="Maybe"/>
  </layout>
</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".[14] 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.[15]

References

  1. ^ a b "Life After XUL". Mozilla. Retrieved 28 November 2018.{{cite web}}: CS1 maint: url-status (link)
  2. ^ a b "Problems with XUL". mozilla.github.io. Retrieved 2019-06-07.
  3. ^ a b Firefox 57 release notes
  4. ^ a b Kev Needham (2015-08-21). "The Future of Developing Firefox Add-ons". blog.mozilla.org. Retrieved 2018-04-02.
  5. ^ "Pale Moon future roadmap". Pale Moon. Retrieved 2018-04-02.
  6. ^ "Pale Moon team releases first version of Basilisk browser". ghacks.net. 2017-11-17. Retrieved 2018-04-02.
  7. ^ "Waterfox, Its Legacy and Looking to the Future". Waterfox blog. 2018-04-28. Retrieved 2018-06-20.
  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. ^ "UXP vs goanna".
  11. ^ "There is only XUL". Retrieved 18 September 2018.
  12. ^ "Gecko FAQ | MDN". developer.mozilla.org. Retrieved 2021-01-05.
  13. ^ "The Box Model - Mozilla | MDN". 2017-12-09. Archived from the original on 2017-12-09. Retrieved 2021-01-05.
  14. ^ Ghostbusters clip
  15. ^ Mozilla XML Namespace