Enterprise Policies
Introduction
Enterprise policies control Firefox behavior and let you centrally manage various aspects of Firefox across devices.
Policies can be applied using Group Policy, Microsoft Intune, or by creating a file called policies.json and defining behavior within the JSON.
The reference documentation for each policy, including guides for applying and managing them, is in the Firefox Admin Documentation. For other resources for deploying Firefox in an organization, see the Firefox Enterprise page.
Kiosk Mode
Firefox Kiosk Mode is a basic full-screen mode intended for environments where the content displayed in the browser is controlled by a kiosk owner. It’s designed for cases where users have no keyboard access or where keyboard access is restricted (particularly Ctrl and Alt). Kiosk administrators are responsible for ensuring that content displayed on the device cannot unexpectedly navigate users away.
To run Kiosk Mode, start Firefox from the command line with the --kiosk option:
firefox --kiosk
# Or provide a URL
firefox --kiosk 'https://example.com/my-dashboard'
To put the kiosk window on a particular monitor, use --kiosk-monitor with the monitor number, instead:
# --kiosk-monitor implies --kiosk
firefox --kiosk-monitor 1 'https://example.com/my-dashboard'
Kiosk Mode does three main things:
Main browser windows (not popup windows) switch to full-screen mode that can’t be exited within Firefox.
The context menu isn’t shown.
Status for URLs and page loading isn’t shown.
Two policies that are important for for a kiosk are UserMessaging and DisableFirefoxStudies. Together they stop Firefox from interrupting the kiosk content with recommendations, onboarding, What’s New, and studies.
Kiosk mode also won’t suppress updates, the notifications and restart prompts for them, block about: pages, developer tools, and other behavior, so you should use policies for controlling these, too.
Policy schema and metadata
For policies, there is a schema file located at policies-schema.json.
Documentation and admin tools read this schema and can describe a policy without having to hardcode details about it beforehand.
The following policies-schema.json members are required for each policy:
descriptionThe description is written for the admins setting it and covers what the policy does.
x-categoryThe category the policy is listed under, such as
SecurityorBookmarks.x-compatibilityWhich release channels the policy is available, described below.
x-restart-requiredWhether the policy needs a restart before it’s applied. Firefox ignores this since it applies all policies at startup, so set it to
truefor a new policy. Firefox Enterprise is the only consumer.examplesAt least one value an admin could set, in the shape the policy accepts.
For each policy, the required members are enforced by a meta file policies-schema.meta.json, which is checked by test_policies_schema.js xpcshell tests.
Compatibility data
An x-compatibility block states the first version that supports a policy:
"x-compatibility": {
"firefox": { "version_added": "141" },
"firefox_esr": { "version_added": "140.1.0" },
"firefox_enterprise": { "version_added": "149" }
}
In an x-compatibility block, all three release channels are required.
A version for each channel is a string of up to three numbers, or false if the channel doesn’t support the policy.
An optional notes member can accompany compat information.
Notes as a sibling of all channels apply to every channel, like DisableLaunchOnLogin:
"x-compatibility": {
"firefox": { "version_added": "155" },
"firefox_esr": { "version_added": false },
"firefox_enterprise": { "version_added": "155" },
"notes": [
"Windows support added in 155, macOS support added in 156. Has no effect on Linux."
]
}
Notes inside a release channel apply only to that channel:
"x-compatibility": {
"firefox": {
"version_added": "60",
"notes": "The policy accepted an object form in 123, and accepts a boolean form since 134."
},
"firefox_esr": { "version_added": "60" },
"firefox_enterprise": { "version_added": "149" }
}