Guides

This page lists more theoretical in-depth articles about the SDK.


SDK Infrastructure

Module structure of the SDK

The SDK, and add-ons built using it, are of composed from reusable JavaScript modules. This explains what these modules are, how to load modules, and how the SDK's module tree is structured.

Program ID

The Program ID is a unique identifier for your add-on. This guide explains how it's created, what it's used for and how to define your own.

Firefox compatibility

Working out which Firefox releases a given SDK release is compatible with, and dealing with compatibility problems.

SDK API lifecycle

Definition of the lifecycle for the SDK's APIs, including the stability ratings for APIs.

SDK Idioms

Working With Events

Write event-driven code using the the SDK's event emitting framework.

Two Types of Scripts

This article explains the differences between the APIs available to your main add-on code and those available to content scripts.

Content Scripts

Introducing content scripts

An overview of content scripts.

Loading content scripts

Load content scripts into web pages, specified either as strings or in separate files, and how to control the point at which they are executed.

Accessing the DOM

Detail about the access content scripts get to the DOM.

Communicating with other scripts

Detail about how content scripts can communicate with "main.js", with other content scripts, and with scripts loaded by the web page itself.

Using "port"

Communicating between a content script and the rest of your add-on using the port object.

Using "postMessage()"

Communicating between a content script and the rest of your add-on using the postMessage() API, and a comparison between this technique and the port object.

Reddit example

A simple add-on which uses content scripts.

XUL Migration

XUL Migration Guide

Techniques to help port a XUL add-on to the SDK.

XUL versus the SDK

A comparison of the strengths and weaknesses of the SDK, compared to traditional XUL-based add-ons.

Porting Example

A walkthrough of porting a relatively simple XUL-based add-on to the SDK.