+> [!WARNING]
+> Documentation for policy behavior and syntax is being migrated to the [Firefox administrator reference](https://firefox-admin-docs.mozilla.org/).
+
Firefox policies can be specified using the [Group Policy templates on Windows](https://github.com/mozilla/policy-templates/tree/master/windows), [Intune on Windows](https://support.mozilla.org/kb/managing-firefox-intune), [configuration profiles on macOS](https://github.com/mozilla/policy-templates/tree/master/mac), or by creating a file called `policies.json`. On Windows, create a directory called `distribution` where the EXE is located and place the file there. On Mac, the file goes into `Firefox.app/Contents/Resources/distribution`. On Linux, the file goes into `firefox/distribution`, where `firefox` is the installation directory for firefox, which varies by distribution or you can specify system-wide policy by placing the file in `/etc/firefox/policies`.
Unfortunately, JSON files do not support comments, but you can add extra entries to the JSON to use as comments. You will see an error in about:policies, but the policies will still work properly. For example:
| Policy Name | Description
| --- | --- |
| **[`3rdparty`](#3rdparty)** | Set policies that WebExtensions can access via chrome.storage.managed.
+| **[`AIControls`](#aicontrols)** | Configure AI controls.
| **[`AllowedDomainsForApps`](#alloweddomainsforapps)** | Define domains allowed to access Google Workspace.
| **[`AllowFileSelectionDialogs`](#allowfileselectiondialogs)** | Allow file selection dialogs.
| **[`AppAutoUpdate`](#appautoupdate)** | Enable or disable automatic application update.
}
```
+### AIControls
+Configure AI controls.
+For more information, see [Block generative AI features with Firefox AI controls](https://support.mozilla.org/en-US/kb/firefox-ai-controls) on support.mozilla.org.
+
+Each key controls the availability of a specific AI feature. The following AI feature keys are available:
+
+- `Default`: Controls the default state for AI features listed below, unless they are explicitly configured in the policy.
+- `Translations`: Controls AI-powered page translations.
+- `PDFAltText`: Controls AI-generated alt text for images in PDF documents.
+- `SmartTabGroups`: Controls AI-powered tab grouping suggestions.
+- `LinkPreviewKeyPoints`: Controls AI-generated key point summaries shown in link previews.
+- `SidebarChatbot`: Controls the AI chatbot panel in the Firefox sidebar.
+- `SmartWindow`: Controls AI-powered window arrangement features. (Firefox 150)
+
+All keys accept the following sub-keys:
+
+- `Value`:
+ - `available` makes the feature accessible to users and it can be enabled or disabled.
+ - `blocked` disables the feature and users won't see it. For on-device AI, any models already downloaded are removed.
+- `Locked`: if `true`, the user cannot change the setting.
+
+**Compatibility:** Firefox 149.0.2 (SmartWindow: Firefox 150)\
+**CCK2 Equivalent:** N/A\
+**Preferences Affected:** `browser.ml.chat.enabled`, `browser.ml.chat.page`, `browser.ai.control.sidebarChatbot`, `browser.translations.enable`, `browser.ai.control.translations`, `pdfjs.enableAltText`, `browser.ai.control.pdfjsAltText`, `browser.ml.linkPreview.enabled`, `browser.ai.control.linkPreviewKeyPoints`, `browser.tabs.groups.smart.userEnabled`, `browser.ai.control.smartTabGroups`, `browser.ai.control.smartWindow`
+
+#### Windows (GPO)
+```
+Software\Policies\Mozilla\Firefox\AIControls\Default\Value = "available" | "blocked"
+Software\Policies\Mozilla\Firefox\AIControls\Default\Locked = 0x1 | 0x0
+Software\Policies\Mozilla\Firefox\AIControls\Translations\Value = "available" | "blocked"
+Software\Policies\Mozilla\Firefox\AIControls\Translations\Locked = 0x1 | 0x0
+Software\Policies\Mozilla\Firefox\AIControls\PDFAltText\Value = "available" | "blocked"
+Software\Policies\Mozilla\Firefox\AIControls\PDFAltText\Locked = 0x1 | 0x0
+Software\Policies\Mozilla\Firefox\AIControls\SmartTabGroups\Value = "available" | "blocked"
+Software\Policies\Mozilla\Firefox\AIControls\SmartTabGroups\Locked = 0x1 | 0x0
+Software\Policies\Mozilla\Firefox\AIControls\LinkPreviewKeyPoints\Value = "available" | "blocked"
+Software\Policies\Mozilla\Firefox\AIControls\LinkPreviewKeyPoints\Locked = 0x1 | 0x0
+Software\Policies\Mozilla\Firefox\AIControls\SidebarChatbot\Value = "available" | "blocked"
+Software\Policies\Mozilla\Firefox\AIControls\SidebarChatbot\Locked = 0x1 | 0x0
+Software\Policies\Mozilla\Firefox\AIControls\SmartWindow\Value = "available" | "blocked"
+Software\Policies\Mozilla\Firefox\AIControls\SmartWindow\Locked = 0x1 | 0x0
+```
+#### Windows (Intune)
+OMA-URI:
+```
+./Device/Vendor/MSFT/Policy/Config/Firefox~Policy~firefox~AIControls~Default/Default_Value
+```
+Value (string):
+```
+<enabled/>
+<data id="AIControls_Value" value="available | blocked"/>
+```
+OMA-URI:
+```
+./Device/Vendor/MSFT/Policy/Config/Firefox~Policy~firefox~AIControls~Default/Default_Locked
+```
+Value (string):
+```
+<enabled/> or <disabled/>
+```
+OMA-URI:
+```
+./Device/Vendor/MSFT/Policy/Config/Firefox~Policy~firefox~AIControls~Translations/Translations_Value
+```
+Value (string):
+```
+<enabled/>
+<data id="AIControls_Value" value="available | blocked"/>
+```
+OMA-URI:
+```
+./Device/Vendor/MSFT/Policy/Config/Firefox~Policy~firefox~AIControls~Translations/Translations_Locked
+```
+Value (string):
+```
+<enabled/> or <disabled/>
+```
+OMA-URI:
+```
+./Device/Vendor/MSFT/Policy/Config/Firefox~Policy~firefox~AIControls~PDFAltText/PDFAltText_Value
+```
+Value (string):
+```
+<enabled/>
+<data id="AIControls_Value" value="available | blocked"/>
+```
+OMA-URI:
+```
+./Device/Vendor/MSFT/Policy/Config/Firefox~Policy~firefox~AIControls~PDFAltText/PDFAltText_Locked
+```
+Value (string):
+```
+<enabled/> or <disabled/>
+```
+OMA-URI:
+```
+./Device/Vendor/MSFT/Policy/Config/Firefox~Policy~firefox~AIControls~SmartTabGroups/SmartTabGroups_Value
+```
+Value (string):
+```
+<enabled/>
+<data id="AIControls_Value" value="available | blocked"/>
+```
+OMA-URI:
+```
+./Device/Vendor/MSFT/Policy/Config/Firefox~Policy~firefox~AIControls~SmartTabGroups/SmartTabGroups_Locked
+```
+Value (string):
+```
+<enabled/> or <disabled/>
+```
+OMA-URI:
+```
+./Device/Vendor/MSFT/Policy/Config/Firefox~Policy~firefox~AIControls~LinkPreviewKeyPoints/LinkPreviewKeyPoints_Value
+```
+Value (string):
+```
+<enabled/>
+<data id="AIControls_Value" value="available | blocked"/>
+```
+OMA-URI:
+```
+./Device/Vendor/MSFT/Policy/Config/Firefox~Policy~firefox~AIControls~LinkPreviewKeyPoints/LinkPreviewKeyPoints_Locked
+```
+Value (string):
+```
+<enabled/> or <disabled/>
+```
+OMA-URI:
+```
+./Device/Vendor/MSFT/Policy/Config/Firefox~Policy~firefox~AIControls~SidebarChatbot/SidebarChatbot_Value
+```
+Value (string):
+```
+<enabled/>
+<data id="AIControls_Value" value="available | blocked"/>
+```
+OMA-URI:
+```
+./Device/Vendor/MSFT/Policy/Config/Firefox~Policy~firefox~AIControls~SidebarChatbot/SidebarChatbot_Locked
+```
+Value (string):
+```
+<enabled/> or <disabled/>
+```
+OMA-URI:
+```
+./Device/Vendor/MSFT/Policy/Config/Firefox~Policy~firefox~AIControls~SmartWindow/SmartWindow_Value
+```
+Value (string):
+```
+<enabled/>
+<data id="AIControls_Value" value="available | blocked"/>
+```
+OMA-URI:
+```
+./Device/Vendor/MSFT/Policy/Config/Firefox~Policy~firefox~AIControls~SmartWindow/SmartWindow_Locked
+```
+Value (string):
+```
+<enabled/> or <disabled/>
+```
+#### macOS
+```
+<dict>
+ <key>AIControls</key>
+ <dict>
+ <key>Default</key>
+ <dict>
+ <key>Value</key>
+ <string>available | blocked</string>
+ <key>Locked</key>
+ <true/> | <false/>
+ </dict>
+ <key>Translations</key>
+ <dict>
+ <key>Value</key>
+ <string>available | blocked</string>
+ <key>Locked</key>
+ <true/> | <false/>
+ </dict>
+ <key>PDFAltText</key>
+ <dict>
+ <key>Value</key>
+ <string>available | blocked</string>
+ <key>Locked</key>
+ <true/> | <false/>
+ </dict>
+ <key>SmartTabGroups</key>
+ <dict>
+ <key>Value</key>
+ <string>available | blocked</string>
+ <key>Locked</key>
+ <true/> | <false/>
+ </dict>
+ <key>LinkPreviewKeyPoints</key>
+ <dict>
+ <key>Value</key>
+ <string>available | blocked</string>
+ <key>Locked</key>
+ <true/> | <false/>
+ </dict>
+ <key>SidebarChatbot</key>
+ <dict>
+ <key>Value</key>
+ <string>available | blocked</string>
+ <key>Locked</key>
+ <true/> | <false/>
+ </dict>
+ <key>SmartWindow</key>
+ <dict>
+ <key>Value</key>
+ <string>available | blocked</string>
+ <key>Locked</key>
+ <true/> | <false/>
+ </dict>
+ </dict>
+</dict>
+```
+#### policies.json
+```
+{
+ "policies": {
+ "AIControls": {
+ "Default": {
+ "Value": "available" | "blocked",
+ "Locked": true | false
+ },
+ "Translations": {
+ "Value": "available" | "blocked",
+ "Locked": true | false
+ },
+ "PDFAltText": {
+ "Value": "available" | "blocked",
+ "Locked": true | false
+ },
+ "SmartTabGroups": {
+ "Value": "available" | "blocked",
+ "Locked": true | false
+ },
+ "LinkPreviewKeyPoints": {
+ "Value": "available" | "blocked",
+ "Locked": true | false
+ },
+ "SidebarChatbot": {
+ "Value": "available" | "blocked",
+ "Locked": true | false
+ },
+ "SmartWindow": {
+ "Value": "available" | "blocked",
+ "Locked": true | false
+ }
+ }
+ }
+}
+```
### AllowedDomainsForApps
Define domains allowed to access Google Workspace.
"IsPerUser": true | false,
"PipePathName": "pipe_custom_name",
"ShowBlockedResult": true | false,
- "TimeoutResult": 0 | 1 | 2,
+ "TimeoutResult": 0 | 1 | 2
}
}
}
"Block": ["http://example.edu/"],
"Locked": true | false,
"Behavior": "accept" | "reject-foreign" | "reject" | "limit-foreign" | "reject-tracker" | "reject-tracker-and-partition-foreign",
- "BehaviorPrivateBrowsing": "accept" | "reject-foreign" | "reject" | "limit-foreign" | "reject-tracker" | "reject-tracker-and-partition-foreign",
+ "BehaviorPrivateBrowsing": "accept" | "reject-foreign" | "reject" | "limit-foreign" | "reject-tracker" | "reject-tracker-and-partition-foreign"
}
}
}
{
"policies": {
"DisabledCiphers": {
- "CIPHER_NAME": true | false,
+ "CIPHER_NAME": true | false
}
}
}
"ProviderURL": "URL_TO_ALTERNATE_PROVIDER",
"Locked": true | false,
"ExcludedDomains": ["example.com"],
- "Fallback": true | false,
+ "Fallback": true | false
}
}
}
`Exceptions` are origins for which tracking protection is not enabled.
-`Category` can be either ```strict``` or ```standard```. If category is set, it overrides all other settings except `Exceptions` and the user cannot change the category. (Firefox 142, Firefox ESR 140.2)
+`Category` can be either ```strict``` or ```standard```. If category is set, it overrides all other settings except `Exceptions`, `BaselineExceptions` and `ConvenienceExceptions`, and the user cannot change the category. (Firefox 142, Firefox ESR 140.2)
IF `BaselineExceptions` is true, Firefox will automatically apply exceptions required to avoid major website breakage. (Firefox 145)