self

The self module provides access to data that is bundled with the add-on as a whole. It also provides access to the Program ID, a value which is unique for each add-on.

Note that the self module is completely different from the global self object accessible to content scripts, which is used by a content script to communicate with the add-on code.

API Reference

Properties

id : string

This property is a printable string that is unique for each add-on. It comes from the id property set in the package.json file in the main package (i.e. the package in which you run cfx xpi). While not generally of use to add-on code directly, it can be used by internal API code to index local storage and other resources that are associated with a particular add-on. Eventually, this ID will be unspoofable (see JEP 118 for details).

name : string

This property contains the add-on's short name. It comes from the name property in the main package's package.json file.

version : string

This property contains the add-on's version string. It comes from the version property set in the package.json file in the main package.

loadReason : string

This property contains of the following strings describing the reason your add-on was loaded:

install
enable
startup
upgrade
downgrade

data : object

The data object is used to access data that was bundled with the add-on. This data lives in the main package's data/ directory, immediately below the package.json file. All files in this directory will be copied into the XPI and made available through the data object.

The Package Specification section explains the package.json file.

Methods
data.load(name)

The data.load(NAME) method returns the contents of an embedded data file, as a string. It is most useful for data that will be modified or parsed in some way, such as JSON, XML, plain text, or perhaps an HTML template. For data that can be displayed directly in a content frame, use data.url(NAME).

name : string

The filename to be read, relative to the package's data directory. Each package that uses the self module will see its own data directory.

Returns: string
data.url(name)

The data.url(NAME) method returns a url that points at an embedded data file. It is most useful for data that can be displayed directly in a content frame. The url can be passed to a content frame constructor, such as the Panel:

var self = require("self");
var myPanel = require("panel").Panel({
  contentURL: self.data.url("my-panel-content.html")
});
myPanel.show();
name : string

The filename to be read, relative to the package's data directory. Each package that uses the self module will see its own data directory.

Returns: String