Mozilla.UITour¶
Introduction¶
Mozilla.UITour
is a JS library that exposes an event-based Web API for
communicating with the Firefox browser chrome. It can be used for tasks such
as opening menu panels, highlighting buttons, or querying Firefox Account
signed-in state. It is supported in Firefox 29 onward, but some API calls
are only supported in later versions.
For security reasons Mozilla.UITour
will only work on white-listed domains
and over a secure connection. The list of allowed origins can be found here:
https://searchfox.org/mozilla-central/source/browser/app/permissions
The Mozilla.UITour
library is maintained on Mozilla Central.
Important
The API is supported only on the desktop versions of Firefox. It doesn’t work on Firefox for Android and iOS.
Local development¶
To develop or test using Mozilla.UITour locally you need to create some custom
preferences in about:config
.
browser.uitour.testingOrigins
(string) (value: local address e.g.http://127.0.0.1:8000
)browser.uitour.requireSecure
(boolean) (value:false
)
Note that browser.uitour.testingOrigins
can be a comma separated list of domains, e.g.
Important
Prior to Firefox 36, the testing preference was called browser.uitour.whitelist.add.testing
(Bug 1081772). This old preference does not accept a comma separated list of domains, and you
must also exclude the domain protocol e.g. https://
. A browser restart is also required
after adding an allowed domain.
If you are working on Firefox Accounts integration, you can use the identity.fxaccounts.autoconfig.uri
config property to change the Accounts server. For example, to change it to stage environment use this value:
https://accounts.stage.mozaws.net/
. Restart the browser and make sure the configuration updated.
identity.fxaccounts.remote.root
preference should now point to https://accounts.stage.mozaws.net
.
If it has not changed for some reason, update it manually.
Ref: https://mozilla-services.readthedocs.io/en/latest/howtos/run-fxa.html
JavaScript API¶
The UITour API documentation can be found in the Mozilla Source Tree Docs.