USENIX Association

Proceedings of the 4th Annual Showcase & Conference, Atlanta

Atlanta, Georgia, USA October 10 Ð14, 2000

THE ADVANCED COMPUTING SYSTEMS ASSOCIATION

© 2000 by The USENIX Association All Rights Reserved For more information about the USENIX Association: Phone: 1 510 528 8649 FAX: 1 510 548 5738 Email: [email protected] WWW: http://www.usenix.org Rights to individual papers remain with the author or the author's employer. Permission is granted for noncommercial reproduction of the work for educational or research purposes. This copyright notice must be included in the reproduced paper. USENIX acknowledges all trademarks herein. as a cross-platform application development framework

David Ascher, Eric Promislow, Dick Hardt ActiveState Tool Corporation

1 Outline

• Overview of Mozilla as an application development framework • Building portable user interfaces with XUL, XBL and JavaScript • XPCOM: Mozilla's component strategy • Architecture of the Komodo IDE, a large non- browser Mozilla application • Lessons learned in working with Mozilla

Mozilla Overview

• XML & JS define the UI • Components (think of them as classes) define the implementation/backend • NSPR is a portable runtime library • Necko is network library • Oh yeah, there’s a layout engine too… () • Emphasis on standards compliance

2 UI TLAs

• XUL: XML dialect for layout of widgets • XBL: XML dialect for association of behaviors with widgets • JavaScript: What to do on events • Skins: switchable themes

XUL Example

css"?> xul"?>