+ "HardwareAcceleration": true | false
+ }
+}
+```
+### Homepage
+Configure the default homepage and how Firefox starts.
+
+`URL` is the default homepage.
+
+`Locked` prevents the user from changing homepage preferences.
+
+`Additional` allows for more than one homepage.
+
+`StartPage` is how Firefox starts. The choices are no homepage, the default homepage or the previous session.
+
+**Compatibility:** Firefox 60, Firefox ESR 60 (StartPage was added in Firefox 60, Firefox ESR 60.4)\
+**CCK2 Equivalent:** `homePage`,`lockHomePage`\
+**Preferences Affected:** `browser.startup.homepage`,`browser.startup.page`
+
+#### Windows
+```
+Software\Policies\Mozilla\Firefox\Homepage\URL = "https://example.com"
+Software\Policies\Mozilla\Firefox\Homepage\Locked = 0x1 | 0x0
+Software\Policies\Mozilla\Firefox\Homepage\Additional\1 = "https://example.org"
+Software\Policies\Mozilla\Firefox\Homepage\Additional\2 = "https://example.edu"
+Software\Policies\Mozilla\Firefox\Homepage\StartPage = "none" | "homepage" | "previous-session"
+```
+#### macOS
+```
+<dict>
+ <key>Homepage</key>
+ <dict>
+ <key>URL</key>
+ <string>http://example.com</string>
+ <key>Locked</key>
+ <true/> | <false/>
+ <key>Additional</key>
+ <array>
+ <string>http://example.org</string>
+ <string>http://example.edu</string>
+ </array>
+ <key>StartPage</key>
+ <string>always | never | from-visited</string>
+ </dict>
+</dict>
+```
+#### JSON
+```
+{
+ "policies": {
+ "Homepage": {
+ "URL": "http://example.com/",
+ "Locked": true | false,
+ "Additional": ["http://example.org/",
+ "http://example.edu/"],
+ "StartPage": "none" | "homepage" | "previous-session"
+ }
+ }
+}
+```
+### InstallAddonsPermission
+Configure the default extension install policy as well as origins for extension installs are allowed. This policy does not override turning off all extension installs.
+
+`Allow` is a list of origins where extension installs are allowed.
+
+`Default` determines whether or not extension installs are allowed by default.
+
+**Compatibility:** Firefox 60, Firefox ESR 60\
+**CCK2 Equivalent:** `permissions.install`\
+**Preferences Affected:** `xpinstall.enabled`
+
+#### Windows
+```
+Software\Policies\Mozilla\Firefox\InstallAddonsPermission\Allow\1 = "https://example.org"
+Software\Policies\Mozilla\Firefox\InstallAddonsPermission\Allow\2 = "https://example.edu"
+Software\Policies\Mozilla\Firefox\InstallAddonsPermission\Default = 0x1 | 0x0
+```
+#### macOS
+```
+<dict>
+ <key>InstallAddonsPermission</key>
+ <dict>
+ <key>Allow</key>
+ <array>
+ <string>http://example.org</string>
+ <string>http://example.edu</string>
+ </array>
+ <key>Default</key>
+ <true/> | <false/>
+ </dict>
+</dict>
+```
+#### JSON
+```
+{
+ "policies": {
+ "InstallAddonsPermission": {
+ "Allow": ["http://example.org/",
+ "http://example.edu/"],
+ "Default": true | false
+ }
+ }
+}
+```
+### NoDefaultBookmarks
+Disable the creation of default bookmarks.
+
+This policy is only effective if the user profile has not been created yet.
+
+**Compatibility:** Firefox 60, Firefox ESR 60\
+**CCK2 Equivalent:** `removeDefaultBookmarks`\
+**Preferences Affected:** N/A
+
+#### Windows
+```
+Software\Policies\Mozilla\Firefox\NoDefaultBookmarks = 0x1 | 0x0
+```
+#### macOS
+```
+<dict>
+ <key>NoDefaultBookmarks</key>
+ <true/> | <false/>
+</dict>
+```
+#### JSON
+```
+{
+ "policies": {
+ "NoDefaultBookmarks": true | false
+ }
+}
+```
+### NetworkPrediction
+Enable or disable network prediction (DNS prefetching).
+
+**Compatibility:** Firefox 67, Firefox ESR 60.7\
+**CCK2 Equivalent:** N/A\
+**Preferences Affected:** `network.dns.disablePrefetch`,`network.dns.disablePrefetchFromHTTPS`
+
+#### Windows
+```
+Software\Policies\Mozilla\Firefox\NetworkPrediction = 0x1 | 0x0
+```
+#### macOS
+```
+<dict>
+ <key>NetworkPrediction</key>
+ <true/> | <false/>
+</dict>
+```
+#### JSON
+```
+{
+ "policies": {
+ "NetworkPrediction": true | false
+}
+```
+### NewTabPage
+Enable or disable the New Tab page.
+
+**Compatibility:** Firefox 68, Firefox ESR 68\
+**CCK2 Equivalent:** N/A\
+**Preferences Affected:** N/A
+
+#### Windows
+```
+Software\Policies\Mozilla\Firefox\NewTabPage = 0x1 | 0x0
+```
+#### macOS
+```
+<dict>
+ <key>NewTabPage</key>
+ <true/> | <false/>
+</dict>
+```
+#### JSON
+```
+{
+ "policies": {
+ "NewTabPage": true | false
+}
+```
+### OfferToSaveLogins
+Control whether or not Firefox offers to save passwords.
+
+**Compatibility:** Firefox 60, Firefox ESR 60\
+**CCK2 Equivalent:** `dontRememberPasswords`\
+**Preferences Affected:** `signon.rememberSignons`
+
+#### Windows
+```
+Software\Policies\Mozilla\Firefox\OfferToSaveLogins = 0x1 | 0x0
+```
+#### macOS
+```
+<dict>
+ <key>OfferToSaveLogins</key>
+ <true/> | <false/>
+</dict>
+```
+#### JSON
+```
+{
+ "policies": {
+ "OfferToSaveLogins": true | false
+ }
+}
+```
+### OverrideFirstRunPage
+Override the first run page. If the value is blank, no first run page is displayed.
+
+**Compatibility:** Firefox 60, Firefox ESR 60\
+**CCK2 Equivalent:** `welcomePage`,`noWelcomePage`\
+**Preferences Affected:** `startup.homepage_welcome_url`
+
+#### Windows
+```
+Software\Policies\Mozilla\Firefox\OverrideFirstRunPage = "http://example.org"
+```
+#### macOS
+```
+<dict>
+ <key>OverrideFirstRunPage</key>
+ <string>http://example.org</string>
+</dict>
+```
+#### JSON
+```
+{
+ "policies": {
+ "OverrideFirstRunPage": ""http://example.org""
+}
+```
+### OverridePostUpdatePage
+Override the upgrade page. If the value is blank, no upgrade page is displayed.
+
+**Compatibility:** Firefox 60, Firefox ESR 60\
+**CCK2 Equivalent:** `upgradePage`,`noUpgradePage`\
+**Preferences Affected:** `startup.homepage_override_url`
+
+#### Windows
+```
+Software\Policies\Mozilla\Firefox\OverridePostUpdatePage = "http://example.org"
+```
+#### macOS
+```
+<dict>
+ <key>OverridePostUpdatePage</key>
+ <string>http://example.org</string>
+</dict>
+```
+#### JSON
+```
+{
+ "policies": {
+ "OverridePostUpdatePage": ""http://example.org""
+}
+```
+### Permissions
+Set permissions associated with camera, microphone, location, and notifications
+
+`Allow` is a list of origins where the feature is allowed.
+
+`Block` is a list of origins where the feature is not allowed.
+
+`BlockNewRequests` determines whether or not new requests can be made for the feature.
+
+`Locked` prevents the user from changing preferences for the feature.
+
+**Compatibility:** Firefox 62, Firefox ESR 60.2\
+**CCK2 Equivalent:** N/A\
+**Preferences Affected:** `permissions.default.camera`,`permissions.default.microphone`,`permissions.default.geo`,`permissions.default.desktop-notification`
+
+#### Windows
+```
+Software\Policies\Mozilla\Firefox\Permissions\Camera\Allow\1 = "https://example.org"
+Software\Policies\Mozilla\Firefox\Permissions\Camera\Block\1 = "https://example.edu"
+Software\Policies\Mozilla\Firefox\Permissions\Camera\BlockNewRequests = 0x1 | 0x0
+Software\Policies\Mozilla\Firefox\Permissions\Camera\Locked = 0x1 | 0x0
+Software\Policies\Mozilla\Firefox\Permissions\Microphone\Allow\1 = "https://example.org"
+Software\Policies\Mozilla\Firefox\Permissions\Microphone\Block\1 = "https://example.edu"
+Software\Policies\Mozilla\Firefox\Permissions\Microphone\BlockNewRequests = 0x1 | 0x0
+Software\Policies\Mozilla\Firefox\Permissions\Microphone\Locked = 0x1 | 0x0
+Software\Policies\Mozilla\Firefox\Permissions\Location\Allow\1 = "https://example.org"
+Software\Policies\Mozilla\Firefox\Permissions\Location\Block\1 = "https://example.edu"
+Software\Policies\Mozilla\Firefox\Permissions\Location\BlockNewRequests = 0x1 | 0x0
+Software\Policies\Mozilla\Firefox\Permissions\Location\Locked = 0x1 | 0x0
+Software\Policies\Mozilla\Firefox\Permissions\Notifications\Allow\1 = "https://example.org"
+Software\Policies\Mozilla\Firefox\Permissions\Notifications\Block\1 = "https://example.edu"
+Software\Policies\Mozilla\Firefox\Permissions\Notifications\BlockNewRequests = 0x1 | 0x0
+Software\Policies\Mozilla\Firefox\Permissions\Notifications\Locked = 0x1 | 0x0
+```
+#### macOS
+```
+<dict>
+ <key>Permissions</key>
+ <dict>
+ <key>Camera</key>
+ <dict>
+ <key>Allow</key>
+ <array>
+ <string>https://example.org</string>
+ </array>
+ <key>Block</key>
+ <array>
+ <string>https://example.edu</string>
+ </array>
+ <key>BlockNewRequests</key>
+ <true/>
+ <key>Locked</key>
+ <true/>
+ </dict>
+ <key>Microphone</key>
+ <dict>
+ <key>Allow</key>
+ <array>
+ <string>https://example.org</string>
+ </array>
+ <key>Block</key>
+ <array>
+ <string>https://example.edu</string>
+ </array>
+ <key>BlockNewRequests</key>
+ <true/>
+ <key>Locked</key>
+ <true/>
+ </dict>
+ <key>Location</key>
+ <dict>
+ <key>Allow</key>
+ <array>
+ <string>https://example.org</string>
+ </array>
+ <key>Block</key>
+ <array>
+ <string>https://example.edu</string>
+ </array>
+ <key>BlockNewRequests</key>
+ <true/>
+ <key>Locked</key>
+ <true/>
+ </dict>
+ <key>Notifications</key>
+ <dict>
+ <key>Allow</key>
+ <array>
+ <string>https://example.org</string>
+ </array>
+ <key>Block</key>
+ <array>
+ <string>https://example.edu</string>
+ </array>
+ <key>BlockNewRequests</key>
+ <true/>
+ <key>Locked</key>
+ <true/>
+ </dict>
+ </dict>
+</dict>
+```
+#### JSON
+```
+{
+ "policies": {
+ "Permissions": {
+ "Camera": {
+ "Allow": ["https://example.org"],
+ "Block": ["https://example.edu"],
+ "BlockNewRequests": true | false,
+ "Locked": true | false
+ },
+ "Microphone": {
+ "Allow": ["https://example.org"],
+ "Block": ["https://example.edu"],
+ "BlockNewRequests": true | false,
+ "Locked": true | false
+ },
+ "Location": {
+ "Allow": ["https://example.org"],
+ "Block": ["https://example.edu"],
+ "BlockNewRequests": true | false,
+ "Locked": true | false
+ },
+ "Notifications": {
+ "Allow": ["https://example.org"],
+ "Block": ["https://example.edu"],
+ "BlockNewRequests": true | false,
+ "Locked": true | false
+ }
+ }
+ }
+}
+```
+### PopupBlocking
+Configure the default pop-up window policy as well as origins for which pop-up windows are allowed.
+
+`Allow` is a list of origins where popup-windows are allowed.
+
+`Default` determines whether or not pop-up windows are allowed by default.
+
+`Locked` prevents the user from changing pop-up preferences.
+
+**Compatibility:** Firefox 60, Firefox ESR 60\
+**CCK2 Equivalent:** `permissions.popup`\
+**Preferences Affected:** `dom.disable_open_during_load`
+
+#### Windows
+```
+Software\Policies\Mozilla\Firefox\PopupBlocking\Allow\1 = "https://example.org"
+Software\Policies\Mozilla\Firefox\PopupBlocking\Allow\2 = "https://example.edu"
+Software\Policies\Mozilla\Firefox\PopupBlocking\Default = 0x1 | 0x0
+Software\Policies\Mozilla\Firefox\PopupBlocking\Locked = 0x1 | 0x0
+```
+#### macOS
+```
+<dict>
+ <key>PopupBlocking</key>
+ <dict>
+ <key>Allow</key>
+ <array>
+ <string>http://example.org</string>
+ <string>http://example.edu</string>
+ </array>
+ <key>Default</key>
+ <true/> | <false/>
+ <key>Locked</key>
+ <true/> | <false/>
+ </dict>
+</dict>
+```
+#### JSON
+```
+{
+ "policies": {
+ "PopupBlocking": {
+ "Allow": ["http://example.org/",
+ "http://example.edu/"],
+ "Default": true | false,
+ "Locked": true | false
+ }
+ }
+}
+```
+### Preferences
+Set and lock certain preferences.
+
+**Compatibility:** See below\
+**CCK2 Equivalent:** `preferences`\
+**Preferences Affected:** See below
+
+| Preference | Type | Compatibility
+| --- | --- | ---
+| app.update.auto | boolean | Firefox 68, Firefox 68 ESR
+| browser.cache.disk.enable | boolean | Firefox 68, Firefox 68 ESR
+| browser.cache.disk.parent_directory | string | Firefox 68, Firefox 68 ESR
+| browser.fixup.dns_first_for_single_words | boolean | Firefox 68, Firefox 68 ESR
+| browser.search.update | boolean | Firefox 68, Firefox 68 ESR
+| browser.tabs.warnOnClose | boolean | Firefox 68, Firefox 68 ESR
+| browser.urlbar.suggest.bookmark | boolean | Firefox 68, Firefox 68 ESR
+| browser.urlbar.suggest.history | boolean | Firefox 68, Firefox 68 ESR
+| browser.urlbar.suggest.openpage | boolean | Firefox 68, Firefox 68 ESR
+| datareporting.policy.dataSubmissionPolicyBypassNotification | boolean | Firefox 68, Firefox 68 ESR
+| dom.disable_window_flip | boolean | Firefox 68, Firefox 68 ESR
+| dom.disable_window_move_resize | boolean | Firefox 68, Firefox 68 ESR
+| dom.event.contextmenu.enabled | boolean | Firefox 68, Firefox 68 ESR
+| dom.keyboardevent.keypress.hack.dispatch_non_printable_keys.addl | string | Firefox 68, Firefox 68 ESR
+| dom.keyboardevent.keypress.hack.use_legacy_keycode_and_charcode.addl | string | Firefox 68, Firefox 68 ESR
+| extensions.getAddons.showPane | boolean | Firefox 68, Firefox 68 ESR
+| media.gmp-gmpopenh264.enabled | boolean | Firefox 68, Firefox 68 ESR
+| media.gmp-widevinecdm.enabled | boolean | Firefox 68, Firefox 68 ESR
+| network.dns.disableIPv6 | boolean | Firefox 68, Firefox 68 ESR
+| network.IDN_show_punycode | boolean | Firefox 68, Firefox 68 ESR
+| places.history.enabled | boolean | Firefox 68, Firefox 68 ESR
+| security.default_personal_cert | string | Firefox 68, Firefox 68 ESR
+| security.ssl.errorReporting.enabled | boolean | Firefox 68, Firefox 68 ESR
+| ui.key.menuAccessKeyFocuses | boolean | Firefox 68, Firefox 68 ESR
+#### Windows
+```
+Software\Policies\Mozilla\Firefox\Preferences\boolean_preference_name = 0x1 | 0x0
+Software\Policies\Mozilla\Firefox\Preferences\string_preference_name = "string_value"
+```
+#### macOS
+```
+<dict>
+ <key>Preference</key>
+ <dict>
+ <key>boolean_preference_name</key>
+ <true/> | <false/>
+ <key>string_preference_name</key>
+ <string>string_value</string>
+ </dict>
+</dict>
+```
+#### JSON
+```
+{
+ "policies": {
+ "Preference": {
+ "boolean_preference_name": true | false,
+ "string_preference_name": "string_value"
+ }