13. Host Application Responsibilities
A conforming host MUST:
- Respect
type,auth, andclientsexactly as declared - never strip auth requirements, never call a Locked Addon without the credential the author asked for, never fabricate aclientId. - Fail gracefully when an addon (or a specific resource) is unavailable - fall back to another installed addon or a built-in provider, never crash the surrounding UI.
- Sandbox compiled modules (§9.5) and never execute one with more
privilege than the manifest's declared
resourcesimply. - Surface
storesData: true,clients.enforced: true, theauthmethod, and anyauth.requirementsto the user at install time, so nothing about an addon's access model is hidden. - Never send the same tokenized URL/key to a different addon or log it in a way the addon's author didn't opt into (e.g. shipping analytics that include a Locked Addon's token is a spec violation of the "no abuse" principle in §1).
A conforming host SHOULD:
- Send a stable, honest
clientIdon every request so allowlisting is actually usable by authors who want it. - Support both distribution formats (§4) where feasible, defaulting to HTTP addons and treating compiled modules as an enhancement.