Developer Guide
PART 1 : Why Use Mozilla?
From mozilla.org
- Supporting the family of Gecko based browsers
- Embedding a world-class HTML rendering engine
- Developing with the Mozilla Application Framework
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 Adding XUL Files
- 1.3 The Chrome URL
- 1.4 Manifest 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 Adding HTML Elements
- 2.7 Using Spacers
- 2.8 More Button Features
- 3. The Box Model
- 3.1 The Box Model
- 3.2 Window Element Positioning
- 3.3 Box Model Details
- 3.4 Groupboxes
- 3.5 Adding More Elements
- 4. Common Elements
- 4.1 Progress Meters
- 4.2 Scroll Bars
- 4.3 Stacks and Decks
- 4.4 Stack Positioning
- 4.5 Tabboxes
- 4.6 Toolbars
- 4.7 Content Panels
- 4.8 Splitters
- 4.9 Persistant Data
- 5. Menus
- 5.1 Simple Menu Bars
- 5.2 More Menu Features
- 5.3 Popup Menus
- 5.4 Scrolling Menus
- 6. Grids, Trees and RDF
- 6.1 Grids
- 6.2 More Listbox Features
- 6.3 Trees
- 6.4 More Tree Features
- 6.5 Introduction to RDF
- 6.6 Templates
- 6.7 Trees and Templates
- 6.8 RDF Datasources
- 6.9 Advanced Rules
- 7. Events and Scripts
- 7.1 Adding Event Handlers
- 7.2 Document Object Model
- 7.3 Keyboard Shortcuts
- 7.4 Focus and Selection
- 7.5 Tree Selection
- 7.6 Custom Tree Views
- 7.7 Commands
- 7.8 Updating Commands
- 7.9 Broadcasters and Observers
- 8. XPCOM and XPConnect
- 9. Skins and Locales
- 9.1 Adding Style Sheets
- 9.2 Styling a Tree
- 9.3 Modifying the Default Skin
- 9.4 Creating a Skin
- 9.5 Localization
- 9.6 Property Files
- 10. Bindings
- 10.1 Introduction to XBL
- 10.2 Anonymous Content
- 10.3 XBL Attribute Inheritance
- 10.4 Adding Properties
- 10.5 Adding Methods
- 10.6 Adding Event Handlers
- 10.7 XBL Inheritance
- 10.8 XBL Example
- 11. Specialized Window Types
- 11.1 Features of a Window
- 11.2 Creating Dialogs
- 11.3 Open and Save Dialogs
- 11.4 Creating a Wizard
- 11.5 More Wizards
- 11.6 Overlays
- 11.7 Dynamic Overlays
- 12. Installation
- 12.1 Creating an Installer
- 12.2 Install Scripts
- 12.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
- Memory
- Arenas
- Threading
- Event Queues
- Timers
- Proxies
- Recycling Allocator
- Text formatting
- nsCRT
- Escaping
- Native charset conversion
- Data Structures
- Arrays
- Enumerators
- Strings
- Hashtables
- Atoms
- Buffers
- Observers
- Property Lists
- nsInt64
- Time
- nsISupportsPrimitives
- Quicksort
- Variants?
- Vectors?
- I/O
- File objects
- Directory Service
- Streams
- Input
- Output
- Binary
- StringStream
- Unicode/UTF8
- Buffers
- Fastload
- Pipes
- Manifest line reader
- 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
- 1.0 What is XPCOM?
- 2.0 Using XPCOM Components
- 3.0 Component Internals
- 4.0 Creating the Component Code
- 5.0 Using XPCOM Utilities To Make Things Easier
- 6.0 Starting WebLock
- 7.0 Finishing the Component
- 8.0 Building the WebLock UI
- 9.0 Packaging WebLock
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)