Extended Preferences 签名验证
安装和更新已签名的浏览器配置,保留可修改的应用数据,并处理无效或已到期的偏好文件。
能力:signedExtendedPrefs。此能力要求提供有效的已签名 Extended Preferences 文件,不授权 chrovia.prefs 或具体配置功能,它们需要各自的能力。
获取匹配的文件
向 License 提供方确认该部署的已签名配置交付流程,并提供 License ID 和要使用的完整浏览器配置。如果尚未约定交付流程,请在启用此能力前联系 Chrovia 支持。浏览器没有用于签名文件的命令或 JavaScript 方法。
获取与 License 匹配的完整 Extended Preferences 文件。不要将一个文件的签名与另一个文件的配置拼接,也不要原样使用文档中的未签名示例。
安装与验证
- 完全退出浏览器实例,包括关闭窗口后仍在运行的进程。
- 备份实例当前的
Extended Preferences文件。 - 将收到的文件放入
--user-data-dir指定的根目录,不是其中的Default子目录。保持原文件名,不带.json或.txt。 - 使用对应的 License 启动,检查配置的功能,例如实例标签。
- 如果还拥有
extendedPrefs,可在 Provision Service Worker 中读取一个已知的应用字段。仅凭值不存在无法判断签名是否有问题,还应检查 License、文件位置、字段名和 API 上下文。
对于新实例,可以将文件放在 Provision 根目录作为默认配置。仅当实例没有 Extended Preferences 文件时才会复制。替换 Provision 默认文件不会更新已有实例。
修改配置或更新到期文件
将完整的新配置交给配置提供方,获取替换用的已签名文件。关闭实例后安装,再重启验证。文件到期,或更换 License 后需要使用不同的配置交付安排时,也应按此流程处理。
不要编辑已签发文件中的 internal 或配套的 signature 对象。本地编辑和 prefs.set() 调用不会更新签名。当前运行期间看似生效的修改,可能导致下次启动无法加载偏好。
保留可修改的应用数据
运行时需要修改的应用字段放在 internal 外,与它并列。例如,my_plugin.ready 可以独立于受保护的浏览器设置更新。替换文件时,如果应用仍需要这些字段,应保留它们。
已签名文件不是秘密保险箱。有文件访问权限的人和已授权的偏好调用者仍能读取内容。应限制访问,不要记录敏感值。
处理无效配置
已签名配置缺失、被修改、不匹配或到期时,会阻止所有 Extended Preferences 读写,包括 internal 外的应用字段。prefs.get() 可能返回 undefined,写入可能正常解析却不修改数据。这些方法不是签名状态 API。
核对文件名和实例目录,确认文件与 License 属于同一部署,并恢复未经修改的匹配文件。文件已到期或需要不同设置时,应获取替换文件,而不是编辑已签发文件。
软件通行密钥注册和登录可能更新受保护的凭据数据。如果将本地通行密钥与已签名偏好组合使用,应安排在下次启动前获取更新的已签名文件;仅备份凭据还不够。参见软件认证器。
参见 EP 存储与 API 和 License 安装。