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)