Jump to content

XBL

From Wikipedia, the free encyclopedia

XBL (XML Binding Language) is an XML-based markup language for altering the behavior of XUL widgets. It was devised at Netscape in the late 1990s as an extension of XUL.[1][2]

The primary use of XBL was in the Firefox web browser, but Mozilla deprecated it in 2017 and completely removed it from Firefox in 2019.[3][4] However, the UXP fork of Firefox intends to continue supporting XBL indefinitely.[5]

Mozilla attempted to standardize XBL 2.0 via W3C in 2007,[6] but due to lack of interest from other web browser vendors, abandoned it in 2012.[7]

The Shadow DOM specification acknowledges XBL as a strong influence.[8]

Overview

[edit]

XUL defines the user interface layout of an application. CSS rules can be used to change the appearance of various XUL elements. But XBL is needed to alter the behavior of a XUL widget, such as a scroll bar.

An XBL file contains bindings, 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 an id attribute. A binding is assigned to an element by setting the CSS property -moz-binding to the URL of the binding's file. For example:

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

See also

[edit]

References

[edit]
  1. ^ Castro, Jorge O. (2004-06-15). "Ars Technica sits down with Scott Collins from Mozilla.org". Ars Technica. p. 2. Archived from the original on 2018-02-22. Retrieved 2018-11-28.
  2. ^ "XBL 2.0 Acknowledgments". www.w3.org.
  3. ^ "Design Review Packet - XBL Removal". mozilla.github.io. Mozilla. 2017-10-13. Retrieved 2018-04-15 – via GitHub Pages.
  4. ^ "XBL Graphs". bgrins.github.io. Retrieved 2019-10-16.
  5. ^ "Pale Moon future roadmap". Pale Moon. Retrieved 2019-02-15.
  6. ^ "W3C news archive: 2007".
  7. ^ "XBL 2.0". www.w3.org.
  8. ^ "Shadow DOM". wicg.github.io. Retrieved 2022-03-18.