Firefox/EnterprisePolicies/Testing
This page documents how to test the Enterprise Policies Manager
Contents
Prefs to enable
Please set these two prefs to test this feature:
browser.policies.enabled = true devtools.chrome.enabled = true
Note: the browser.policies.enabled
pref doesn't exist and will need to be created (as a Boolean pref).
Adding the policies.json file
To test this feature (once enabled), you'll need to create a policies.json file (example files are given below), and to put it in a specific location in the installation directory of Firefox (not the profile directory).
Since this location varies by platform and by install type (local build, try build, installed with the installer, etc.), the easier way to figure out the location is by running the following code Snippet in the Browser Console:
Services.dirsvc.get("XREAppDist", Ci.nsIFile).path
Per-platform examples
(these may be different depending on how you installed the try build, so I recommend running the snippet above). These are for illustration purposes only.
- Mac: /Applications/FirefoxNightly.app/Contents/Resources/distribution
- Windows: C:\Program Files (x86)\Mozilla Firefox\distribution
Checking the status of the engine
Soon, this status will be exposed in about:support. In the meantime, you can run this snippet in the Browser Console to get it:
Services.policies.status
The values are:
- 0: Uninitialized - Should never see this value
- 1: Inactive - When the feature is disabled (the pref wasn't created), or if the policies.json file doesn't exist. This should be the default value you get when the feature is not being used.
- 2: Active - When the feature is correctly in use
- 3: Error - When the feature was attempted to be used, but there was a malformed error in the policies.json file
Testing the policies
There are currently a few dummy policies implemented, and we can test that they are being correctly activated by the policies.json file by verifying some log messages or running a snippet:
Policy Name | How to verify |
---|---|
block_about_config | Snippet: Services.policies.isAllowed("about:config") returns false when the policy is in use
|
block_devtools | Snippet: Services.policies.isAllowed("devtools") returns false when the policy is in use
|
test_dummy_feature1 | Snippet Services.policies.isAllowed("test_dummy_feature1") returns false when the policy is in use
|
url_policy | Watch the message "URL POLICY spec: http://example.com" in the Browser console |
bookmarks_test_policy | Watch the message "BOOKMARK: TITLE: foo, URL: bar" for each entry in the Browser console |
Example files
- JSON file with all policies enabled:
{ "policies": { "block_about_config": true, "block_devtools": true, "test_dummy_feature1": true, "url_policy": "example.com", "bookmarks_test_policy": { "title": "Bookmark title", "url": "http://www.example.com/bookmark" } } }
- JSON with just the about:config enabled (use it to verify that devtools doesn't get blocked):
{ "policies": { "block_about_config": true } }
- Malformed JSON (to test the ERROR state):
{ "polic
View supported policies
To view the policies that have already landed in the Nightly you're testing, run this Snippet:
var { schema } = Cu.import("resource:///modules/policies/schema.jsm", {}); console.log("Available Policies:") for (let policy of Object.keys(schema.properties)) { console.log(` ${policy}`); }
Note: Please ignore the `block_about_config` policy because it's just in the list of supported policies as a placeholder, but the code for it hasn't landed yet. Every other policy will land together with the code and should be ready to test.