What this enables
- Force-install the extension for users (no manual install).
- Pre-configure managed settings (via
chrome.storage.managed) so the extension knows which ScreenSteps “setup page” to use.
The extension currently supports one managed setting:
setupUrl(string): Full URL to your ScreenSteps extension setup page (example:https://help.yourdomain.com/extension/setup).
Managed storage schema (copy/paste)
This is the extension’s managed storage schema:
{
"type": "object",
"properties": {
"setupUrl": {
"title": "ScreenSteps Setup URL",
"description": "The full URL to your ScreenSteps extension setup page (e.g., 'https://acme.screenstepslive.com/extension/setup' or 'https://help.yourcustomdomain.com/extension/setup')",
"type": "string"
}
}
}Extension IDs (choose the correct one)
Use the ID that matches the store listing you deploy.
- Chrome Web Store:
kjnpdblaciideghjecicchjnjpmodnfp - Microsoft Edge Add-ons:
mmhfdlbngmgnfphepihackgejcjepmkj
Deployment checklist
- Decide browser: Chrome/Edge
- Force-install the extension
- Set managed configuration (
setupUrl) - Verify in the extension service worker console
- Force-install the extension (Chrome / Edge)
Use your MDM / policy tooling to force-install the extension by ID.
You’ll need:
- Chrome update URL (Chrome Web Store):
https://clients2.google.com/service/update2/crx - Edge update URL (Edge Add-ons):
https://edge.microsoft.com/extensionwebstorebase/v1/crx
If your environment uses offline CRX distribution or a private store, use your standard method for that and still apply the managed configuration in the next section.
Example:
ExtensionSettings(copy/paste)Chrome (Chrome Web Store):
{ "kjnpdblaciideghjecicchjnjpmodnfp": { "installation_mode": "force_installed", "update_url": "https://clients2.google.com/service/update2/crx" } }Edge (Edge Add-ons):
{ "mmhfdlbngmgnfphepihackgejcjepmkj": { "installation_mode": "force_installed", "update_url": "https://edge.microsoft.com/extensionwebstorebase/v1/crx" } } - Chrome update URL (Chrome Web Store):
- Configure managed storage (setupUrl)
The extension reads managed settings from
chrome.storage.managed(Chromium browsers).Set the value:
- Key:
setupUrl - Value:
https://<your-domain>/extension/setup
Windows (Registry / GPO) — managed storage keys
Managed extension storage is written under the browser policy hive:
- Chrome:
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome\3rdparty\extensions\<extension_id>\policy
- Edge:
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge\3rdparty\extensions\<extension_id>\policy
Example
.reg(copy/paste and customize):Windows Registry Editor Version 5.00 ; ScreenSteps Sidekick managed storage policy ; Requires Administrator privileges ; Chrome [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome\3rdparty\extensions\<CHROME_EXTENSION_ID>\policy] "setupUrl"="https://<your-domain>/extension/setup" ; Edge [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge\3rdparty\extensions\<EDGE_EXTENSION_ID>\policy] "setupUrl"="https://<your-domain>/extension/setup"macOS (Configuration Profile /
.mobileconfig) — Chrome managed storageOn macOS, extension managed storage must be delivered by a configuration profile (MDM).
Chrome extension managed settings use the preference domain:
com.google.Chrome.extensions.<extension_id>
Within that, use a
Forcedpayload and set:mcx_preference_settings.setupUrl = "https://<your-domain>/extension/setup"
Example payload snippet (copy/paste and customize):
<key>PayloadContent</key> <array> <dict> <key>PayloadContent</key> <dict> <key>com.google.Chrome.extensions.<CHROME_EXTENSION_ID></key> <dict> <key>Forced</key> <array> <dict> <key>mcx_preference_settings</key> <dict> <key>setupUrl</key> <string>https://your-domain/extension/setup</string> </dict> </dict> </array> </dict> </dict> <key>PayloadType</key> <string>com.apple.ManagedClient.preferences</string> </dict> </array> - Key:
- Verify the policy is applied
Verify in the browser
- Chrome: open
chrome://policyand confirm policies are present. - Edge:
edge://policyoften does not show extension-level managed storage. Use the runtime verification below.
Verify from the extension (recommended)
- Open
chrome://extensions/(Chrome) oredge://extensions/(Edge) - Enable Developer mode
- Find “ScreenSteps Sidekick” and click Service worker to open DevTools for the background context
- In the console, run:
chrome.storage.managed.get(null, console.log);Expected output includes:
{ setupUrl: "https://<your-domain>/extension/setup" } - Chrome: open
Troubleshooting
- Policy changes not taking effect:
- Fully quit and relaunch the browser (on macOS: Cmd+Q)
- On Windows, ensure policies are set in HKLM (machine-level) if you expect them to apply to all users
- Wrong extension ID:
- Confirm the ID in
chrome://extensions//edge://extensions/(Developer mode shows it) - Ensure you used the correct Chrome vs Edge ID for the store listing you deployed
- Confirm the ID in
- Managed settings are empty (
{}):- Confirm the policy path/domain exactly matches the extension ID
- Confirm your MDM/GPO is actually deploying the payload to the target device/user group