Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

XUL

From Wikipedia, the free encyclopedia
User interface markup language
XUL
ParadigmDeclarative (markup language)
DeveloperMozilla Foundation
Implementation languageC++
PlatformGecko/Goanna
OSCross-platform
LicenseMPL
Filename extensions.xul
MIME type:application/vnd.mozilla.xul+xml
Websitehttps://wiki.mozilla.org/XUL:Home_Page
Majorimplementations
Mozilla
Influenced by
HTML,XML

XUL (/ˈzl/ZOOL), which stands forXML User Interface Language, is auser interface markup language developed byMozilla. XUL is anXML dialect for writinggraphical user interfaces, enabling developers to write user interface elements in a manner similar toweb pages.

XULapplications rely on the Mozillacodebase or afork of it. The most prominent example is theFirefox web browser. However, Mozilla has significantly reduced the usage of XUL in Firefox after their rewrite of the browser engine in version 57.[1][2] This resulted in the removal of the legacyadd-on system, which relied on XUL andXPCOM, another cross-platform technology Mozilla decided to deprecate shortly before the release of Firefox 57. Firefox originally permitted add-ons to extensively alter its user interface, but this capability was removed in 2017 and replaced with the less-permissiveWebExtensions API.[3][4] Severalforks of Firefox retain support for XUL and XPCOM-based add-ons.Waterfox maintains a fork of the legacy Mozilla codebase for theWaterfox Classic browser.[5] ThePale Moon browser,[6]Basilisk browser,[7]Hyperbola operating system,[8] and numerous smaller projects collectively use and maintain the Unified XUL Platform (UXP) implementation.

History

[edit]
The Periodic Table of XUL Elements is a reference extension designed to demonstrate XUL's capabilities.

XUL was devised atNetscape in 1997 as part of the development effort that eventually became theMozillacodebase.[9] XUL is similar to web technologies implemented by theGecko rendering engine. When XUL was introduced, it added features beyond the then standardHTML 4. It was designed as an extension of HTML to be used with applications rather than documents.[10]

XUL was used by various Mozilla projects,forks of Mozilla projects, and projects closely related to Mozilla. Some software projects such asSongbird,Komodo IDE, andZotero started as desktop applications that utilizedXULRunner to render and compose their UI. In the early 2000s, there was some interest in using XUL by other parties, includingAmazon,[11] but those have switched over toHTML5.[1][2] Many of the features of modern web technologies such as HTML5, CSS3, ECMAScript 5+, WebGL, and WebAssembly that made rich and modern web applications possible, without the need of utilizing legacyNPAPI/PPAPI/ActiveX browser plug-in technologies likeAdobe Flash,Silverlight,Java, orShockwave, also made much of XUL redundant.[10]

Mozilla released Firefox 57, also known as Firefox Quantum, in November 2017. As part of this, Firefox finished transitioning to a multiprocess architecture. Although XUL add-ons could work in this architecture, they often created significant performance issues. Because of this, Mozilla removed support for legacyadd-ons, including the use of custom XUL code.[3][4] Mozilla switched their browser extensions system to the cross-browser WebExtensions API, which is largely based on the Chrome extension API. In late 2017, Firefox still included 289 XUL bindings for native browser components. By the end of 2019, Mozilla had removed all XUL files from theirmozilla-central repository.[12][1][2]

When Mozilla removed support from Firefox, there were still several applications using XUL. Mozilla began gradually removing XUL support from their email client,Thunderbird. They released Thunderbird 78 without support for XUL-based extensions in 2020.[13]TheSeaMonkey internet suite chose to re-implement XUL for the Firefox Quantum codebase, and the suite's development has subsequently slowed. ThePale Moon developers forked Mozilla's entire Firefox 52 ESR codebase to create the Unified XUL Platform(UXP) for theirGoanna rendering engine. UXP maintains the traditional XUL capabilities.[14] As a result, Pale Moon and other UXP applications have remained single-process but more extensible compared to modern versions of Firefox and Thunderbird.[15]

Usage

[edit]

XUL can only be used with theMozillacodebase (or afork of it) because theGecko (orGoanna)engine does the XUL rendering.[16]

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 theuser interface
  2. Skin: the CSS and image files, which define the appearance of an application
  3. Locale: the files containing user-visible strings for easysoftware localization

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

The default behavior of XUL widgets can be altered withXBL bindings.

XBL

[edit]
Main article:XBL

XML Binding Language (XBL) is anXML-basedmarkup language for altering the behavior of a XULwidget, such as ascroll bar.[17][18] An XBL file containsbindings, each of which describes the behavior of a XUL widget. The root element of an XBL file is the<bindings> element, which contains one or more<binding> elements. Each<binding> element declares one binding, which can be attached to any XUL element. It may also possess anid attribute. A binding is assigned to an element by setting the CSS property-moz-binding to theURL of the binding's file.[19] For example:

scrollbar{-moz-binding:url('somefile.xml#binding1');}

Example

[edit]

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

<?xml version="1.0"?><?xml-stylesheet href="chrome://global/skin/" type="text/css"?><windowid="vbox example"title="Example 3...."xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"><layout><buttonid="yes1"label="Yes"/><buttonid="no1"label="No"/><buttonid="maybe1"label="Maybe"/></layout></window>

Ghostbusters reference

[edit]

XUL contains a reference to the 1984 filmGhostbusters.[21] The film's antagonist is the fictional deity Zuul, the Gatekeeper.[22] Zuulpossesses the character Dana Barrett and declares: "There is no Dana. There is only Zuul."[23][21] The creators of XUL, pronounced the same as Zuul,[24] made the slogan, "There is no data. There is only XUL!".[25] The slogan and Zuul as a gatekeeper are referenced in XUL'sXML namespaceURI and were previously present in all Firefox add-ons:[21]

http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul

— Mozilla[21]

See also

[edit]

References

[edit]
  1. ^abcHirsch, Jared (September 2, 2018)."Life After XUL".Mozilla Developer Network (MDN). Mozilla. Archived fromthe original on November 29, 2018. RetrievedNovember 28, 2018.
  2. ^abc"Problems with XUL".mozilla.github.io. RetrievedJune 7, 2019.
  3. ^ab"Firefox 57.0, See All New Features, Updates and Fixes".Mozilla. November 14, 2017. RetrievedSeptember 27, 2022.
  4. ^abKev Needham (August 21, 2015)."The Future of Developing Firefox Add-ons".blog.mozilla.org. RetrievedApril 2, 2018.
  5. ^Kontos, Alex (April 28, 2018)."Waterfox, Its Legacy and Looking to the Future".Waterfox blog. RetrievedJune 20, 2018.
  6. ^"Pale Moon future roadmap".palemoon.org. Moonchild Productions. March 23, 2022. RetrievedApril 2, 2018.
  7. ^Brinkmann, Martin (November 17, 2017)."Pale Moon team releases first version of Basilisk browser".Ghacks Technology News. RetrievedApril 2, 2018.
  8. ^Iceweasel-UXP project pageArchived December 29, 2021, at theWayback Machine
  9. ^Jorge O. Castro (June 15, 2004)."Ars Technica sits down with Scott Collins from Mozilla.org". Ars Technica. RetrievedNovember 28, 2018.
  10. ^abTeller, David (August 20, 2020)."Why Did Mozilla Remove XUL Add-ons?".
  11. ^King, Brian (February 5, 2003)."Remote Application Development with Mozilla, Part 2: A Case Study of the Mozilla Amazon Browser (MAB)".Oreillynet. Archived fromthe original on February 18, 2012.The Mozilla Amazon Browser is an interesting case study for a number of reasons. First, it's a working prototype application, not an example constructed solely for the purpose of demonstrating the technology. Second, it exercises many areas of Mozilla's support for remote development and thus shows off the capabilities, potential, and limitations of remote XUL applications. Finally, it demonstrates Mozilla's support for web services, an important emerging technology for web application development.
  12. ^Grinstead, Brian (December 16, 2019)."Firefox/XUL and XBL Replacement". RetrievedSeptember 27, 2022.
  13. ^"Adapt to Changes in Thunderbird 69-78".developer.thunderbird.net. 2022. RetrievedSeptember 27, 2022.
  14. ^Straver, Markus (November 2, 2017)."UXP vs goanna". RetrievedSeptember 27, 2022.The plan is to switch Pale Moon over from our current platform to UXP (long-term plans) because a developed and maintained XUL-based platform is the only way a XUL application (like Pale Moon) has any chance of surviving without falling into obsolescence, with Mozilla abandoning this technology. That has been the main reason why I decided to start on this platform to begin with! Regardless, the platform will not be solely developed for Pale Moon's potential future use, it is developed for any future XUL application that will otherwise be dead in the water. Basically we're taking over the torch from Mozilla in developing and maintaining a platform for XUL applications of any kind; Mozilla should not be seen as "upstream" because it isn't.
  15. ^Tobin, Matt."There is only XUL". Archived fromthe original on September 17, 2018. RetrievedSeptember 18, 2018.
  16. ^"Gecko FAQ | MDN".developer.mozilla.org. Archived fromthe original on October 8, 2019. RetrievedJanuary 5, 2021.
  17. ^Castro, Jorge O. (June 15, 2004)."Ars Technica sits down with Scott Collins from Mozilla.org".Ars Technica. p. 2.Archived from the original on February 22, 2018. RetrievedNovember 28, 2018.
  18. ^"XBL 2.0 Acknowledgments".www.w3.org.
  19. ^"XBL 2.0".www.w3.org.
  20. ^"The Box Model - Mozilla | MDN". December 9, 2017. Archived fromthe original on December 9, 2017. RetrievedJanuary 5, 2021.
  21. ^abcdFrederick, Gail; Lal, Rajesh (April 15, 2010).Beginning Smartphone Web Development: Building JavaScript, CSS, HTML and Ajax-based Applications for iPhone, Android, Palm Pre, BlackBerry, Windows Mobile and Nokia S60. Apress. p. 23.ISBN 978-1-4302-2621-5.
  22. ^Garcia-Ventura, Agnes; Verderame, Lorenzo (March 1, 2020).Receptions of the Ancient Near East in Popular Culture and Beyond. Lockwood Press. p. 109.ISBN 978-1-948488-25-9.
  23. ^Quinlan, Erin (June 6, 2014)."'Ghostbusters' turns 30: Revisit film's supernatural wisdom".Today. RetrievedMay 25, 2024.
  24. ^Holzner, Steven (2001).Inside XML. New Riders. p. 47.ISBN 978-0-7357-1020-7.
  25. ^"Mozilla XML Namespace".www.mozilla.org.
Projects
Mozilla
Labs
Mozilla
Research
Mozilla
Foundation
Firefox
Origins
Frameworks
Components
Typefaces
Discontinued
Forks
Discontinued projects are initalics. Some projects abandoned by Mozilla that are still maintained by third parties are inunderline.
Organization
Foundation
Official affiliates
People
Community
Other topics
Low-level platform-specific
OnAmigaOS
OnClassic Mac OS,macOS
OnWindows
OnUnix,
underX11
OnBeOS,Haiku
OnAndroid
CLI
Low Level Cross-platform
CLI
C
Java
High-level, platform-specific
OnAmigaOS
OnClassic Mac OS,macOS
Object Pascal
Objective-C,Swift
C++
CLI
OnWindows
CLI
C++
Object Pascal
OnUnix,
underX11
OnAndroid
High-level, cross-platform
C
C++
Objective-C
CLI
Adobe Flash
Go
Haskell
Java
JavaScript
Common Lisp
Lua
Pascal
Object Pascal
Perl
PHP
Python
Ruby
Tcl
XML
shell
Dart
Authority control databases: NationalEdit this at Wikidata
Retrieved from "https://en.wikipedia.org/w/index.php?title=XUL&oldid=1274715889"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp