38 lines
1.4 KiB
Markdown
38 lines
1.4 KiB
Markdown
# Stable Extension ID
|
|
|
|
Chrome and Brave derive an extension ID from the extension public key. If the
|
|
key changes, the extension ID changes too.
|
|
|
|
Why this matters for rclone-jav:
|
|
|
|
- `chrome.storage.sync` settings are scoped to the extension ID.
|
|
- The native messaging host manifest authorizes specific extension IDs in
|
|
`allowed_origins`.
|
|
- Moving or reloading an unpacked extension without a fixed key can make settings
|
|
appear to vanish and can break native messaging.
|
|
|
|
## Recommended workflow
|
|
|
|
1. Export settings from Options -> Backup before changing install paths.
|
|
2. Keep Production loaded from a stable folder path.
|
|
3. For a permanently stable unpacked ID, add a fixed Chrome extension public key
|
|
to `manifest.json` under the `key` field.
|
|
4. After the ID changes intentionally, update the native host manifest
|
|
`allowed_origins` and re-register the host.
|
|
5. Import the settings backup.
|
|
|
|
## Packed extension workflow
|
|
|
|
If you pack the extension as a `.crx`, save the generated `.pem` private key.
|
|
Packing future versions with the same `.pem` produces the same extension ID.
|
|
|
|
Do not lose or share the `.pem`; it controls the extension identity.
|
|
|
|
## Unpacked extension workflow
|
|
|
|
For unpacked installs, use the public key derived from the `.pem` as
|
|
`manifest.json`'s `key` value. The value must be the Chrome extension public key
|
|
format, not an arbitrary string.
|
|
|
|
Same manifest key = same extension ID.
|