WARNING: Most of this content (with the exception of the Mozilla 1.9 XPCOM reference) is very old, and can be expected to be out of date and possibly obsolete. For better XUL documentation, please visit the XUL hub at the Mozilla Developer Center.
Developer Guide
PART 1 : Why Use Mozilla?
From mozilla.org
PART 2 : Mozilla Structure
- 1. Mozilla Technolgies
- 1.1 Introduction to Mozilla Development
- 1.2 Mozilla Execution Model
- 2. About Mozilla Technologies
- 2.1 XUL - XML User Interface Language
- 2.2 Gecko - the Layout Engine
- 2.3 XPCOM
- 2.4 Application Framework
- 2.5 Some Common Terminology
- 3. Specifics about Mozilla
- 3.1 Directory Structure
- 3.2 Profiles
- 3.3 Security Model
- 3.4 Chrome System
- 4. Getting Started With...
- 4.1 Building a Browser Extension
- 4.2 Creating a Standalone Application
- 4.3 Embedding Mozilla
- 4.4 Creating a Custom Browser
PART 3 : XUL - The XML User Interface Language
From XULPlanet.com
- 1. Introduction
- 1.1 Introduction
- 1.2 XUL Structure
- 1.3 The Chrome URL
- 1.4 Contents.rdf Files
- 2. Simple Elements
- 2.1 Creating a Window
- 2.2 Adding Buttons
- 2.3 Adding Labels and Images
- 2.4 Input Controls
- 2.5 List Controls
- 2.6 Progress Meters
- 2.7 Adding HTML Elements
- 2.8 Using Spacers
- 2.9 More Button Features
- 3. The Box Model
- 3.1 The Box Model
- 3.2 Element Positioning
- 3.3 Box Model Details
- 3.4 Groupboxes
- 3.5 Adding More Elements
- 4. More Layout Elements
- 4.1 Stacks and Decks
- 4.2 Stack Positioning
- 4.3 Tabboxes
- 4.4 Grids
- 4.5 Content Panels
- 4.6 Splitters
- 4.7 Scroll Bars
- 5. Toolbars and Menus
- 5.1 Toolbars
- 5.2 Simple Menu Bars
- 5.3 More Menu Features
- 5.4 Popup Menus
- 5.5 Scrolling Menus
- 6. Events and Scripts
- 6.1 Adding Event Handlers
- 6.2 More Event Handlers
- 6.3 Keyboard Shortcuts
- 6.4 Focus and Selection
- 6.5 Commands
- 6.6 Updating Commands
- 6.7 Broadcasters and Observers
- 7. Document Object Model
- 7.1 Document Object Model
- 7.2 Modifying a XUL Interface
- 7.3 Manipulating Lists
- 7.4 Box Objects
- 7.5 XPCOM Interfaces
- 7.6 XPCOM Examples
- 8. Trees
- 8.1 Trees
- 8.2 More Tree Features
- 8.3 Tree Selection
- 8.4 Custom Tree Views
- 8.5 Tree View Details
- 8.6 Tree Box Objects
- 9. RDF and Templates
- 9.1 Introduction to RDF
- 9.2 Templates
- 9.3 Trees and Templates
- 9.4 RDF Datasources
- 9.5 Advanced Rules
- 9.6 Persistent Data
- 10. Skins and Locales
- 10.1 Adding Style Sheets
- 10.2 Styling a Tree
- 10.3 Modifying the Default Skin
- 10.4 Creating a Skin
- 10.5 Localization
- 10.6 Property Files
- 11. Bindings
- 11.1 Introduction to XBL
- 11.2 Anonymous Content
- 11.3 XBL Attribute Inheritance
- 11.4 Adding Properties
- 11.5 Adding Methods
- 11.6 Adding Event Handlers
- 11.7 XBL Inheritance
- 11.8 XBL Example
- 12. Specialized Window Types
- 12.1 Features of a Window
- 12.2 Creating Dialogs
- 12.3 Open and Save Dialogs
- 12.4 Creating a Wizard
- 12.5 More Wizards
- 12.6 Overlays
- 12.7 Cross Package Overlays
- 13. Installation
- 13.1 Creating an Installer
- 13.2 Install Scripts
- 13.3 Additional Install Features
PART 4 : Mozilla API Guide
The following guide documents how to use much of the Mozilla API using JavaScript, including some XPCOM services.
- 1. Base XPCOM Interfaces
- 1.1 Introduction to XPCOM
- 1.2 nsISupports
- 1.3 Component Creation
- 1.4 Services and Factories
- 1.5 Querying Components
- 2. Executing Code
- 2.1 JavaScript Timeouts
- 2.2 Threads
- 2.3 XPCOM Timers
- 2.4 Processes
- 2.5 Exception Handling
- 2.6 Global Notifications
- 3. File Handling
- 3.1 Reading and Writing to Files
- 3.2 Directory Service
- 3.3 Streams
- 3.4 File Example
- 4. Networking
- 4.1 Network Introduction
- 4.2 Managing URLs
- 4.3 Channels
- 4.4 Making Connections
- 4.5 Sockets
- 4.6 Server Push and Server Sockets
- 4.7 Downloading Content
- 5. Window Management
- 5.1 Managing a Window
- 5.2 Querying Window Information
- 5.3 Displaying Prompts
- 5.4 Browsers and Frames
- 5.5 Loading URLs
- 5.6 Getting Load Progress
- 5.7 Printing Content
- 6. Managing Content
- 6.1 Introduction to the DOM
- 6.2 Manipulating a Document
- 6.3 Managing Mozilla Documents
- 6.4 Layout Engine Concepts
- 6.5 Handling XBL
- 7. Working with Text
- 7.1 Text Selection
- 7.2 Managing the Focus
- 7.3 Commands and Controllers
- 7.4 Using the Clipboard
- 7.5 Drag and Drop
- 7.6 Drag and Drop JavaScript Wrapper
- 7.7 Drag and Drop Example
- 7.8 Undo and Transactions
- 7.9 HTML Editing
- 7.10 Editing Example
- 8. Mozilla Application Components
- 8.1 Bookmarks
- 8.2 History
- 8.3 Session History
- 8.4 Form Fill-in
- 8.5 Autocomplete
- 8.6 Sidebar
- 8.7 Search Plugins
- 9. XML
- 9.1 Available XML Features
- 9.2 Parsing and Serializing XML
- 9.3 XSLT
- 9.4 Parsing Schemas
- 9.5 XPointers
- 10. RDF
- 10.1 Introduction to the RDF Model
- 10.2 RDF/XML Syntax
- 10.3 RDF Datasources
- 10.4 RDF Datasource Details
- 10.5 RDF Resources and Literals
- 10.6 Querying RDF Datasources
- 10.7 Modifying RDF Datasources
- 10.8 RDF Containers
- 10.9 Saving RDF
- 11. Web Services
- 11.1 SOAP
- 11.2 SOAP Example
- 11.3 XML-RPC
- 11.4 WSDL
- 11.5 Web Services Security
- 12. Additional Features
- 12.1 Retrieving and Modifying Preferences
- 12.2 Playing Audio
- 12.3 Communicating with Plugins
PART 5 : XPCOM Usage in C++
From mozilla.org
- Introduction
- Core
- Data types
- Dependencies
- Components
- Reference counting
- Typing / QueryInterface
- nsCOMPtrs
- Components
- Services
- Weak References
- Interface Requestor
- nsIClassInfo
- Modules (dlls)
- Runtime
- Data Structures
- Arrays
- Enumerators
- Strings
- Hashtables
- Atoms
- Buffers
- Observers
- Property Lists
- nsInt64
- Time
- nsISupportsPrimitives
- Quicksort
- Variants?
- Vectors?
- I/O
- Other
- Error service
- Console service
- Exception Service
- nsISystemInfo
- Timeline
- Debugging
- Assertions, etc
- TraceRefCnt
- TraceMalloc
- IDL
PART 6 : Creating XPCOM Components in C++
From the book by Doug Turner and Ian Oeschger
PART 7 : Creating a Mozilla/Firebird Extension
...
PART 8 : Creating a Standalone Mozilla-Based Application
...
PART 9 : Embedding Gecko
...
PART 10 : Working with the Mozilla Source Code
...
Creating Applications with Mozilla
From the Book by David Boswell, Brian King, Pete Collins, Ian Oeschger and Eric Murphy.
- Table of Contents
- Preface
- 1: Mozilla as Platform
- 2: Getting Started
- 3: XUL Elements and Features
- 4: CSS in Mozilla Applications
- 5: Scripting Mozilla
- 6: Packaging and Installing Applications
- 7: Extending the UI with XBL
- 8: XPCOM
- 9: XUL Templates
- 10: RDF, RDF Tools and the Content Model
- 11: Localization
- 12: Remote Applications
- Appendix A: Getting and Building the Mozilla Source
- Appendix B: Development Tools
- Appendix C: Programmer's Reference
REFERENCES
- Mozilla Glossary (mozilla.org)
- XUL Element Reference (XULPlanet.com)
- JavaScript Guide (Netscape DevEdge)
- JavaScript Reference (Netscape DevEdge)
- XPCOM Reference (XULPlanet.com)
- XPInstall Reference (Netscape DevEdge)
- Embedding API Reference (mozilla.org)
