XUL ( / ˈ z uː l / ZOOL ), que significa XML User Interface Language (Lenguaje de Interfaz de Usuario XML ), es un lenguaje de marcado de interfaz de usuario desarrollado por Mozilla . XUL es un dialecto XML para escribir interfaces gráficas de usuario , lo que permite a los desarrolladores escribir elementos de interfaz de usuario de manera similar a las páginas web .
Las aplicaciones XUL dependen del código fuente de Mozilla o de una bifurcación del mismo. El ejemplo más destacado es el navegador web Firefox . Sin embargo, Mozilla ha reducido significativamente el uso de XUL en Firefox después de la reescritura del motor del navegador en la versión 57. [ 1 ] [ 2 ] Esto resultó en la eliminación del sistema de complementos heredado , que dependía de XUL y XPCOM , otra tecnología multiplataforma que Mozilla decidió descontinuar poco antes del lanzamiento de Firefox 57. Firefox originalmente permitía que los complementos alteraran extensamente su interfaz de usuario, pero esta capacidad se eliminó en 2017 y se reemplazó con la API WebExtensions menos permisiva . [ 3 ] [ 4 ] Varias bifurcaciones de Firefox mantienen el soporte para complementos basados en XUL y XPCOM. Waterfox mantiene una bifurcación del código fuente heredado de Mozilla para el navegador Waterfox Classic . [ 5 ] El navegador Pale Moon , [ 6 ] el navegador Basilisk , [ 7 ] y numerosos proyectos más pequeños utilizan y mantienen colectivamente la implementación de la Plataforma XUL Unificada (UXP).
Historia

XUL fue ideado en Netscape en 1997 como parte del esfuerzo de desarrollo que finalmente se convirtió en el código base de Mozilla . [ 8 ] XUL es similar a las tecnologías web implementadas por el motor de renderizado Gecko . Cuando se introdujo XUL, añadió características que iban más allá del estándar HTML 4 de la época . Fue diseñado como una extensión de HTML para ser utilizado con aplicaciones en lugar de documentos. [ 9 ]
XUL fue utilizado por varios proyectos de Mozilla, bifurcaciones de proyectos de Mozilla y proyectos estrechamente relacionados con Mozilla. Algunos proyectos de software como Songbird , Komodo IDE y Zotero comenzaron como aplicaciones de escritorio que utilizaban XULRunner para renderizar y componer su interfaz de usuario. A principios de la década de 2000, hubo cierto interés en utilizar XUL por parte de otras partes, incluyendo Amazon , [ 10 ] pero estas cambiaron a HTML5 . [ 1 ] [ 2 ] Muchas de las características de las tecnologías web modernas como HTML5, CSS3, ECMAScript 5+, WebGL y WebAssembly que hicieron posibles las aplicaciones web ricas y modernas, sin la necesidad de utilizar tecnologías heredadas de complementos de navegador NPAPI / PPAPI / ActiveX como Adobe Flash , Silverlight , Java o Shockwave , también hicieron que gran parte de XUL fuera redundante. [ 9 ]
Mozilla lanzó Firefox 57, también conocido como Firefox Quantum, en noviembre de 2017. Como parte de esto, Firefox finalizó la transición a una arquitectura multiproceso. Aunque los complementos XUL podían funcionar en esta arquitectura, a menudo creaban problemas de rendimiento significativos. Debido a esto, Mozilla eliminó la compatibilidad con los complementos heredados , incluido el uso de código XUL personalizado. [ 3 ] [ 4 ] Mozilla cambió su sistema de extensiones de navegador a la API WebExtensions multi-navegador, que se basa en gran medida en la API de extensiones de Chrome. A finales de 2017, Firefox todavía incluía 289 enlaces XUL para componentes nativos del navegador. A finales de 2019, Mozilla había eliminado todos los archivos XUL de su mozilla-centralrepositorio. [ 11 ] [ 1 ] [ 2 ]
Cuando Mozilla eliminó el soporte para Firefox, aún existían varias aplicaciones que utilizaban XUL. Mozilla comenzó a eliminar gradualmente el soporte para XUL de su cliente de correo electrónico, Thunderbird . En 2020, lanzaron Thunderbird 78 sin soporte para extensiones basadas en XUL. [ 12 ] La suite de internet SeaMonkey optó por reimplementar XUL para el código base de Firefox Quantum, y el desarrollo de la suite se ralentizó posteriormente. Los desarrolladores de Pale Moon bifurcaron todo el código base de Firefox 52 ESR de Mozilla para crear la Plataforma Unificada XUL (UXP) para su motor de renderizado Goanna. UXP mantiene las capacidades tradicionales de XUL. [ 13 ] Como resultado, Pale Moon y otras aplicaciones UXP son más extensibles en comparación con las versiones modernas de Firefox y Thunderbird. [ 14 ]
Uso
XUL solo se puede usar con el código fuente de Mozilla (o una bifurcación del mismo) porque el motor Gecko (o Goanna) realiza la representación XUL. [ 15 ]
Los programadores de aplicaciones deben definir una interfaz XUL como tres conjuntos discretos de componentes:
- Contenido: el/los documento(s) XUL, cuyos elementos definen el diseño de la interfaz de usuario.
- Skin: los archivos CSS e imágenes que definen la apariencia de una aplicación.
- Localización: los archivos que contienen cadenas visibles para el usuario para facilitar la localización del software.
XUL define una amplia gama de elementos, que pertenecen aproximadamente a los siguientes tipos:
- Elementos de nivel superior: ventana , página, diálogo , asistente , etc.
- Widgets : etiqueta, botón , cuadro de texto , cuadro de lista, cuadro combinado , botón de opción , casilla de verificación , árbol , menú , barra de herramientas , cuadro de grupo, cuadro de pestañas , selector de color, espaciador, divisor, etc.
- Modelo de caja: caja, cuadrícula, pila, baraja, etc.
- Eventos y scripts: script, comando, clave, emisor, observador, etc.
- Fuente de datos: plantilla, regla, etc.
- Otros: superposición, iframe, navegador, editor, etc.
El comportamiento predeterminado de los widgets XUL se puede modificar mediante enlaces XBL .
XBL
XML Binding Language ( XBL ) es un lenguaje de marcado basado en XML para modificar el comportamiento de un widget XUL , como una barra de desplazamiento . [ 16 ] [ 17 ] Un archivo XBL contiene enlaces , cada uno de los cuales describe el comportamiento de un widget XUL. El elemento raíz de un archivo XBL es el elemento, que contiene uno o más elementos. Cada elemento declara un enlace, que puede adjuntarse a cualquier elemento XUL. También puede poseer un atributo. Un enlace se asigna a un elemento estableciendo la propiedad CSS a la URL del archivo del enlace. [ 18 ] Por ejemplo:<bindings><binding><binding>id-moz-binding
barra de desplazamiento { -moz- enlace : url ( 'somefile.xml#binding1' ); }Ejemplo
Este ejemplo muestra tres botones apilados uno encima del otro en un contenedor vertical: [ 19 ]

<?xml version="1.0"?> <?xml-stylesheet href="chrome://global/skin/" type="text/css"?><window id= "vbox example" title= "Ejemplo 3..." xmlns= "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" > <layout> <button id= "yes1" label= "Sí" /> <button id= "no1" label= "No" /> <button id= "maybe1" label= "Quizás" /> </layout> </window>Referencia a Los Cazafantasmas
XUL contiene una referencia a la película Cazafantasmas de 1984. [ 20 ] El antagonista de la película es la deidad ficticia Zuul, el Guardián. [ 21 ] Zuul posee al personaje Dana Barrett y declara: "No hay Dana. Solo hay Zuul." [ 22 ] [ 20 ] Los creadores de XUL, que se pronuncia igual que Zuul, [ 23 ] crearon el eslogan: "¡No hay datos. Solo hay XUL!". [ 24 ] El eslogan y Zuul como guardián se referencian en el URI del espacio de nombres XML de XUL y estaban presentes anteriormente en todos los complementos de Firefox: [ 20 ]
http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul
— Mozilla [ 20 ]
Véase también
Referencias
- 1 2 3 Hirsch, Jared (2 de septiembre de 2018). "La vida después de XUL" . Mozilla Developer Network (MDN) . Mozilla. Archivado del original el 29 de noviembre de 2018. Recuperado el 28 de noviembre de 2018 .
- 1 2 3 "Problemas con XUL" . mozilla.github.io . Consultado el 7 de junio de 2019 .
- 1 2 "Firefox 57.0, vea todas las nuevas funciones, actualizaciones y correcciones" . Mozilla . 14 de noviembre de 2017. Consultado el 27 de septiembre de 2022 .
- 1 2 Kev Needham (21 de agosto de 2015). "El futuro del desarrollo de complementos para Firefox" . blog.mozilla.org . Consultado el 2 de abril de 2018 .
- ↑ Kontos, Alex (28 de abril de 2018). "Waterfox, su legado y miradas hacia el futuro" . Blog de Waterfox . Archivado del original el 12 de abril de 2019. Recuperado el 20 de junio de 2018 .
- ↑ "Hoja de ruta futura de Pale Moon" . palemoon.org . Moonchild Productions. 23 de marzo de 2022. Consultado el 2 de abril de 2018 .
- ↑ Brinkmann, Martin (17 de noviembre de 2017). "El equipo de Pale Moon lanza la primera versión del navegador Basilisk" . Ghacks Technology News . Consultado el 2 de abril de 2018 .
- ↑ Jorge O. Castro (15 de junio de 2004). "Ars Technica se sienta a conversar con Scott Collins de Mozilla.org" . Ars Technica . Consultado el 28 de noviembre de 2018 .
- 1 2 Teller, David (20 de agosto de 2020). "¿Por qué Mozilla eliminó los complementos XUL?" .
- ↑ King, Brian (5 de febrero de 2003). "Desarrollo remoto de aplicaciones con Mozilla, Parte 2: Un estudio de caso del navegador Mozilla Amazon (MAB)" . Oreillynet . Archivado del original el 18 de febrero de 2012.
El navegador Mozilla Amazon es un estudio de caso interesante por varias razones. Primero, es una aplicación prototipo funcional, no un ejemplo construido únicamente para demostrar la tecnología. Segundo, pone a prueba muchas áreas del soporte de Mozilla para el desarrollo remoto y, por lo tanto, muestra las capacidades, el potencial y las limitaciones de las aplicaciones XUL remotas. Finalmente, demuestra el soporte de Mozilla para los servicios web, una importante tecnología emergente para el desarrollo de aplicaciones web.
- ↑ Grinstead, Brian (16 de diciembre de 2019). "Firefox/XUL y reemplazo de XBL" . Recuperado el 27 de septiembre de 2022 .
- ↑ "Adaptarse a los cambios en Thunderbird 69-78" . developer.thunderbird.net . 2022. Consultado el 27 de septiembre de 2022 .
- ↑ Straver, Markus (2 de noviembre de 2017). "UXP vs goanna" . Archivado del original el 11 de noviembre de 2020. Recuperado el 27 de septiembre de 2022. El
plan es cambiar Pale Moon de nuestra plataforma actual a UXP (planes a largo plazo) porque una plataforma basada en XUL desarrollada y mantenida es la única forma en que una aplicación XUL (como Pale Moon) tiene alguna posibilidad de sobrevivir sin caer en la obsolescencia, ya que Mozilla está abandonando esta tecnología. ¡Esa ha sido la razón principal por la que decidí comenzar en esta plataforma desde el principio! De todos modos, la plataforma no se desarrollará únicamente para el posible uso futuro de Pale Moon, se desarrolla para cualquier futura aplicación XUL que de otro modo estaría muerta en el agua. Básicamente estamos tomando el relevo de Mozilla en el desarrollo y mantenimiento de una plataforma para aplicaciones XUL de cualquier tipo; Mozilla no debe ser vista como "arriba del río" porque no lo es.
- ↑ Tobin, Matt. "Solo existe XUL" . Archivado del original el 17 de septiembre de 2018. Recuperado el 18 de septiembre de 2018 .
- ↑ "Preguntas frecuentes sobre Gecko | MDN" . developer.mozilla.org . Archivado del original el 8 de octubre de 2019. Consultado el 5 de enero de 2021 .
- ↑ Castro, Jorge O. (15 de junio de 2004). "Ars Technica entrevista a Scott Collins de Mozilla.org" . Ars Technica . pág. 2. Archivado del original el 22 de febrero de 2018. Recuperado el 28 de noviembre de 2018 .
- ↑ "Agradecimientos de XBL 2.0" . www.w3.org .
- ↑ "XBL 2.0" . www.w3.org .
- ↑ "El modelo de caja - Mozilla | MDN" . 9 de diciembre de 2017. Archivado del original el 9 de diciembre de 2017. Consultado el 5 de enero de 2021 .
- 1 2 3 4 Frederick, Gail; Lal, Rajesh (15 de abril de 2010). Desarrollo web para smartphones: Creación de aplicaciones basadas en JavaScript, CSS, HTML y Ajax para iPhone, Android, Palm Pre, BlackBerry, Windows Mobile y Nokia S60 . Apress. pág. 23. ISBN 978-1-4302-2621-5.
- ↑ Garcia-Ventura, Agnes; Verderame, Lorenzo (1 de marzo de 2020). Recepciones del Antiguo Cercano Oriente en la cultura popular y más allá . Lockwood Press. pág. 109. ISBN 978-1-948488-25-9.
- ↑ Quinlan, Erin (6 de junio de 2014) .'Los Cazafantasmas' cumplen 30 años: Revisitando la sabiduría sobrenatural de la película . Hoy . Consultado el 25 de mayo de 2024 .
- ^ Holzner, Steven (2001). Dentro de XML . Nuevos jinetes. pag. 47.ISBN 978-0-7357-1020-7.
- ↑ "Espacio de nombres XML de Mozilla" . www.mozilla.org .
- Mozilla
- Acceso a datos RDF
- lenguajes de marcado de interfaz de usuario
- Estándares basados en XML
- Presentaciones de 1997
- Software que utiliza XUL